def visit(node)
      if respond_to?(node.class.visit_method, true)
        send(node.class.visit_method, node) {visit_children(node)}
      else
        visit_children(node)
      end
    end
def visit(node)
      if respond_to?(node.class.visit_method, true)
        send(node.class.visit_method, node) {visit_children(node)}
      else
        visit_children(node)
      end
    end
Runs the visitor on the given node.
 This can be overridden by subclasses that need to do something for each node.

 @param node [Tree::Node] The node to visit.
 @return [Object] The return value of the `visit_*` method for this node.