class Omnium::Interpreter::NodeVisitor

This is to facilite the visitor pattern regards double dispatching.

Public Instance Methods

visit(node) click to toggle source
# File lib/omnium/interpreter/node_visitor.rb, line 7
def visit(node)
  method_name = "visit_#{class_name(node)}"
  send(method_name, node)
rescue NameError
  raise NotImplementedError, "Subclass does not implement #{method_name}"
end

Private Instance Methods

class_name(node) click to toggle source
# File lib/omnium/interpreter/node_visitor.rb, line 16
def class_name(node)
  node.class.name.split('::').last
end