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