class Riml::Compiler::AssignNodeVisitor
Public Instance Methods
compile(node)
click to toggle source
# File lib/riml/compiler.rb, line 302 def compile(node) lhs = visit_lhs(node) rhs = visit_rhs(node) if GetVariableNode === node.lhs && node.scope && (func = node.scope.function) if func.argument_variable_names.include?(node.lhs.full_name) if !func.shadowed_argument_variable_names.include?(node.lhs.full_name) func.shadowed_argument_variable_names << node.lhs.full_name end end end node.compiled_output = "#{lhs}#{rhs}" node.force_newline = true node.compiled_output end
visit_lhs(node)
click to toggle source
# File lib/riml/compiler.rb, line 317 def visit_lhs(node) node.lhs.accept(visitor_for_node(node.lhs, :propagate_up_tree => false)) "let #{node.lhs.compiled_output} #{node.operator} " end
visit_rhs(node)
click to toggle source
# File lib/riml/compiler.rb, line 322 def visit_rhs(node) node.rhs.accept(visitor_for_node(node.rhs, :propagate_up_tree => false)) node.rhs.compiled_output end