class Riml::AST_Rewriter::DeserializeVarAssignment
Public Instance Methods
match?(node)
click to toggle source
# File lib/riml/ast_rewriter.rb, line 975 def match?(node) AssignNode === node && AssignNode === node.rhs && node.operator == '=' end
replace(node)
click to toggle source
# File lib/riml/ast_rewriter.rb, line 979 def replace(node) orig_assign = node.dup assigns = [] while assign_node = (AssignNode === node && node.rhs) assigns.unshift([node.lhs, node.rhs]) node = assign_node end assigns = assigns[0..0].concat(assigns[1..-1].map! { |(lhs, rhs)| [lhs, rhs.lhs] }) assigns.map! do |(lhs, rhs)| AssignNode.new('=', lhs, rhs) end new_assigns = Nodes.new(assigns) new_assigns.parent = orig_assign.parent orig_assign.replace_with(new_assigns) establish_parents(new_assigns) end