class Journey::Visitors::Dot
Public Class Methods
new()
click to toggle source
# File lib/journey/visitors.rb, line 125 def initialize @nodes = [] @edges = [] end
Public Instance Methods
accept(node)
click to toggle source
Calls superclass method
# File lib/journey/visitors.rb, line 130 def accept node super <<-eodot digraph parse_tree { size="8,5" node [shape = none]; edge [dir = none]; #{@nodes.join "\n"} #{@edges.join("\n")} } eodot end
Private Instance Methods
binary(node)
click to toggle source
Calls superclass method
# File lib/journey/visitors.rb, line 144 def binary node node.children.each do |c| @edges << "#{node.object_id} -> #{c.object_id};" end super end
nary(node)
click to toggle source
Calls superclass method
# File lib/journey/visitors.rb, line 151 def nary node node.children.each do |c| @edges << "#{node.object_id} -> #{c.object_id};" end super end
terminal(node)
click to toggle source
# File lib/journey/visitors.rb, line 183 def terminal node value = node.left @nodes << "#{node.object_id} [label=\"#{value}\"];" end
unary(node)
click to toggle source
Calls superclass method
# File lib/journey/visitors.rb, line 158 def unary node @edges << "#{node.object_id} -> #{node.left.object_id};" super end
visit_CAT(node)
click to toggle source
Calls superclass method
# File lib/journey/visitors.rb, line 168 def visit_CAT node @nodes << "#{node.object_id} [label=\"○\"];" super end
visit_GROUP(node)
click to toggle source
Calls superclass method
# File lib/journey/visitors.rb, line 163 def visit_GROUP node @nodes << "#{node.object_id} [label=\"()\"];" super end
visit_OR(node)
click to toggle source
Calls superclass method
# File lib/journey/visitors.rb, line 178 def visit_OR node @nodes << "#{node.object_id} [label=\"|\"];" super end
visit_STAR(node)
click to toggle source
Calls superclass method
# File lib/journey/visitors.rb, line 173 def visit_STAR node @nodes << "#{node.object_id} [label=\"*\"];" super end