org.antlr.runtime.tree
Class DOTTreeGenerator
java.lang.Object
org.antlr.runtime.tree.DOTTreeGenerator
public class DOTTreeGenerator
- extends java.lang.Object
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);
Field Summary |
static org.antlr.stringtemplate.StringTemplate |
_edgeST
|
static org.antlr.stringtemplate.StringTemplate |
_nodeST
|
static org.antlr.stringtemplate.StringTemplate |
_treeST
|
Method Summary |
protected java.lang.String |
fixString(java.lang.String in)
|
protected int |
getNodeNumber(java.lang.Object t)
|
protected org.antlr.stringtemplate.StringTemplate |
getNodeST(TreeAdaptor adaptor,
java.lang.Object t)
|
org.antlr.stringtemplate.StringTemplate |
toDOT(java.lang.Object tree,
TreeAdaptor adaptor)
|
org.antlr.stringtemplate.StringTemplate |
toDOT(java.lang.Object tree,
TreeAdaptor adaptor,
org.antlr.stringtemplate.StringTemplate _treeST,
org.antlr.stringtemplate.StringTemplate _edgeST)
|
org.antlr.stringtemplate.StringTemplate |
toDOT(Tree tree)
Generate DOT (graphviz) for a whole tree not just a node. |
protected void |
toDOTDefineEdges(java.lang.Object tree,
TreeAdaptor adaptor,
org.antlr.stringtemplate.StringTemplate treeST)
|
protected void |
toDOTDefineNodes(java.lang.Object tree,
TreeAdaptor adaptor,
org.antlr.stringtemplate.StringTemplate treeST)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
_treeST
public static org.antlr.stringtemplate.StringTemplate _treeST
_nodeST
public static org.antlr.stringtemplate.StringTemplate _nodeST
_edgeST
public static org.antlr.stringtemplate.StringTemplate _edgeST
DOTTreeGenerator
public DOTTreeGenerator()
toDOT
public org.antlr.stringtemplate.StringTemplate toDOT(java.lang.Object tree,
TreeAdaptor adaptor,
org.antlr.stringtemplate.StringTemplate _treeST,
org.antlr.stringtemplate.StringTemplate _edgeST)
toDOT
public org.antlr.stringtemplate.StringTemplate toDOT(java.lang.Object tree,
TreeAdaptor adaptor)
toDOT
public org.antlr.stringtemplate.StringTemplate 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.
toDOTDefineNodes
protected void toDOTDefineNodes(java.lang.Object tree,
TreeAdaptor adaptor,
org.antlr.stringtemplate.StringTemplate treeST)
toDOTDefineEdges
protected void toDOTDefineEdges(java.lang.Object tree,
TreeAdaptor adaptor,
org.antlr.stringtemplate.StringTemplate treeST)
getNodeST
protected org.antlr.stringtemplate.StringTemplate getNodeST(TreeAdaptor adaptor,
java.lang.Object t)
getNodeNumber
protected int getNodeNumber(java.lang.Object t)
fixString
protected java.lang.String fixString(java.lang.String in)
Copyright © 2011. All Rights Reserved.