class Parser::AST::Processor


@api public
#

def on_argument(node)

def on_argument(node)
  arg_name, value_node = *node
  node.updated(nil, [
    arg_name, process(value_node)
  ])
end

def on_casgn(node)

def on_casgn(node)
  scope_node, name, value_node = *node
  node.updated(nil, [
    process(scope_node), name, process(value_node)
  ])
end

def on_const(node)

def on_const(node)
  scope_node, name = *node
  node.updated(nil, [
    process(scope_node), name
  ])
end

def on_def(node)

def on_def(node)
  name, args_node, body_node = *node
  node.updated(nil, [
    name,
    process(args_node), process(body_node)
  ])
end

def on_defs(node)

def on_defs(node)
  definee_node, name, args_node, body_node = *node
  node.updated(nil, [
    process(definee_node), name,
    process(args_node), process(body_node)
  ])
end

def on_op_asgn(node)

def on_op_asgn(node)
  var_node, method_name, value_node = *node
  node.updated(nil, [
    process(var_node), method_name, process(value_node)
  ])
end

def on_send(node)

def on_send(node)
  receiver_node, method_name, *arg_nodes = *node
  receiver_node = process(receiver_node) if receiver_node
  node.updated(nil, [
    receiver_node, method_name, *process_all(arg_nodes)
  ])
end

def on_var(node)

def on_var(node)
  name, = *node
  node
end

def on_vasgn(node)

def on_vasgn(node)
  name, value_node = *node
  node.updated(nil, [
    name, process(value_node)
  ])
end

def process_argument_node(node)

def process_argument_node(node)
  on_argument(node)
end

def process_regular_node(node)

def process_regular_node(node)
  node.updated(nil, process_all(node))
end

def process_var_asgn_node(node)

def process_var_asgn_node(node)
  on_vasgn(node)
end

def process_variable_node(node)

def process_variable_node(node)
  on_var(node)
end