org.antlr.runtime.tree.DOTTreeGenerator Class Reference

Collaboration diagram for org.antlr.runtime.tree.DOTTreeGenerator:

Collaboration graph
[legend]

List of all members.

Public Member Functions

ST toDOT (Object tree, TreeAdaptor adaptor, ST _treeST, ST _edgeST)
ST toDOT (Object tree, TreeAdaptor adaptor)
ST toDOT (Tree tree)

Static Public Attributes

static ST _treeST
static ST _nodeST
static ST _edgeST

Protected Member Functions

void toDOTDefineNodes (Object tree, TreeAdaptor adaptor, ST treeST)
void toDOTDefineEdges (Object tree, TreeAdaptor adaptor, ST treeST)
ST getNodeST (TreeAdaptor adaptor, Object t)
int getNodeNumber (Object t)
String fixString (String in)

Package Attributes

HashMap nodeToNumberMap = new HashMap()
int nodeNumber = 0


Detailed Description

A utility class to generate DOT diagrams (graphviz) from arbitrary trees. You can pass in your own templates and can pass in any kind of tree or use Tree interface method. I wanted this separator so that you don't have to include ST just to use the org.antlr.runtime.tree.* package. This is a set of non-static methods so you can subclass to override. For example, here is an invocation:

CharStream input = new ANTLRInputStream(System.in); TLexer lex = new TLexer(input); CommonTokenStream tokens = new CommonTokenStream(lex); TParser parser = new TParser(tokens); TParser.e_return r = parser.e(); Tree t = (Tree)r.tree; System.out.println(t.toStringTree()); DOTTreeGenerator gen = new DOTTreeGenerator(); StringTemplate st = gen.toDOT(t); System.out.println(st);

Definition at line 53 of file DOTTreeGenerator.java.


Member Function Documentation

ST org.antlr.runtime.tree.DOTTreeGenerator.toDOT ( Object  tree,
TreeAdaptor  adaptor,
ST  _treeST,
ST  _edgeST 
)

Definition at line 79 of file DOTTreeGenerator.java.

ST org.antlr.runtime.tree.DOTTreeGenerator.toDOT ( Object  tree,
TreeAdaptor  adaptor 
)

Definition at line 92 of file DOTTreeGenerator.java.

ST org.antlr.runtime.tree.DOTTreeGenerator.toDOT ( Tree  tree  ) 

Generate DOT (graphviz) for a whole tree not just a node. For example, 3+4*5 should generate:

digraph { node [shape=plaintext, fixedsize=true, fontsize=11, fontname="Courier", width=.4, height=.2]; edge [arrowsize=.7] "+"->3 "+"->"*" "*"->4 "*"->5 }

Return the ST not a string in case people want to alter.

Takes a Tree interface object.

Definition at line 115 of file DOTTreeGenerator.java.

void org.antlr.runtime.tree.DOTTreeGenerator.toDOTDefineNodes ( Object  tree,
TreeAdaptor  adaptor,
ST  treeST 
) [protected]

Definition at line 119 of file DOTTreeGenerator.java.

void org.antlr.runtime.tree.DOTTreeGenerator.toDOTDefineEdges ( Object  tree,
TreeAdaptor  adaptor,
ST  treeST 
) [protected]

Definition at line 146 of file DOTTreeGenerator.java.

ST org.antlr.runtime.tree.DOTTreeGenerator.getNodeST ( TreeAdaptor  adaptor,
Object  t 
) [protected]

Definition at line 178 of file DOTTreeGenerator.java.

int org.antlr.runtime.tree.DOTTreeGenerator.getNodeNumber ( Object  t  )  [protected]

Definition at line 188 of file DOTTreeGenerator.java.

String org.antlr.runtime.tree.DOTTreeGenerator.fixString ( String  in  )  [protected]

Definition at line 200 of file DOTTreeGenerator.java.


Member Data Documentation

Initial value:

                new ST(
                        "digraph {\n\n" +
                        "\tordering=out;\n" +
                        "\tranksep=.4;\n" +
                        "\tbgcolor=\"lightgrey\"; node [shape=box, fixedsize=false, fontsize=12, fontname=\"Helvetica-bold\", fontcolor=\"blue\"\n" +
                        "\t\twidth=.25, height=.25, color=\"black\", fillcolor=\"white\", style=\"filled, solid, bold\"];\n" +
                        "\tedge [arrowsize=.5, color=\"black\", style=\"bold\"]\n\n" +
                        "  <nodes>\n" +
                        "  <edges>\n" +
                        "}\n")

Definition at line 55 of file DOTTreeGenerator.java.

Initial value:

                        new ST("<name> [label=\"<text>\"];\n")

Definition at line 67 of file DOTTreeGenerator.java.

Initial value:

                        new ST("<parent> -> <child> // \"<parentText>\" -> \"<childText>\"\n")

Definition at line 70 of file DOTTreeGenerator.java.

Track node to number mapping so we can get proper node name back

Definition at line 74 of file DOTTreeGenerator.java.

Track node number so we can get unique node names

Definition at line 77 of file DOTTreeGenerator.java.


The documentation for this class was generated from the following file:

Generated on Tue Jul 19 11:42:10 2011 for ANTLR API by  doxygen 1.5.5