class ActionDispatch::Journey::Visitors::Dot
:nodoc:
def accept(node)
def accept(node) super <<-eodot h parse_tree { ="8,5" [shape = none]; [dir = none]; odes.join "\n"} dges.join("\n")} eodot end
def binary(node)
def binary(node) node.children.each do |c| @edges << "#{node.object_id} -> #{c.object_id};" end super end
def initialize
def initialize @nodes = [] @edges = [] end
def nary(node)
def nary(node) node.children.each do |c| @edges << "#{node.object_id} -> #{c.object_id};" end super end
def terminal(node)
def terminal(node) value = node.left @nodes << "#{node.object_id} [label=\"#{value}\"];" end
def unary(node)
def unary(node) @edges << "#{node.object_id} -> #{node.left.object_id};" super end
def visit_CAT(node)
def visit_CAT(node) @nodes << "#{node.object_id} [label=\"○\"];" super end
def visit_GROUP(node)
def visit_GROUP(node) @nodes << "#{node.object_id} [label=\"()\"];" super end
def visit_OR(node)
def visit_OR(node) @nodes << "#{node.object_id} [label=\"|\"];" super end
def visit_STAR(node)
def visit_STAR(node) @nodes << "#{node.object_id} [label=\"*\"];" super end