class Logicality::Interpreter::NodeVisitor

This is a base class for traversing a node.

Public Instance Methods

visit(node) click to toggle source
# File lib/logicality/interpreter/node_visitor.rb, line 14
def visit(node)
  return nil unless node

  visitor_name = method_name(node)

  if respond_to?(visitor_name)
    send(visitor_name, node)
  else
    generic_visit(node)
  end
end

Private Instance Methods

generic_visit(node) click to toggle source
# File lib/logicality/interpreter/node_visitor.rb, line 28
def generic_visit(node)
  raise ArgumentError, "No visitor method: #{method_name(node)}"
end
method_name(node) click to toggle source
# File lib/logicality/interpreter/node_visitor.rb, line 32
def method_name(node)
  "visit_#{node.name}"
end