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

:nodoc:
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