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