org.antlr.runtime.tree
public class TreeWizard extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static interface |
TreeWizard.ContextVisitor |
static class |
TreeWizard.TreePattern
When using %label:TOKENNAME in a tree for parse(), we must
track the label.
|
static class |
TreeWizard.TreePatternTreeAdaptor
This adaptor creates TreePattern objects for use during scan()
|
static class |
TreeWizard.Visitor |
static class |
TreeWizard.WildcardTreePattern |
Modifier and Type | Field and Description |
---|---|
protected TreeAdaptor |
adaptor |
protected java.util.Map |
tokenNameToTypeMap |
Constructor and Description |
---|
TreeWizard(java.lang.String[] tokenNames) |
TreeWizard(TreeAdaptor adaptor)
During fillBuffer(), we can make a reverse index from a set
of token types of interest to the list of indexes into the
node stream.
|
TreeWizard(TreeAdaptor adaptor,
java.util.Map tokenNameToTypeMap) |
TreeWizard(TreeAdaptor adaptor,
java.lang.String[] tokenNames) |
Modifier and Type | Method and Description |
---|---|
protected static boolean |
_equals(java.lang.Object t1,
java.lang.Object t2,
TreeAdaptor adaptor) |
protected void |
_index(java.lang.Object t,
java.util.Map m)
Do the work for index
|
protected boolean |
_parse(java.lang.Object t1,
TreeWizard.TreePattern tpattern,
java.util.Map labels)
Do the work for parse.
|
protected void |
_visit(java.lang.Object t,
java.lang.Object parent,
int childIndex,
int ttype,
TreeWizard.ContextVisitor visitor)
Do the recursive work for visit
|
java.util.Map |
computeTokenTypes(java.lang.String[] tokenNames)
Compute a Map
|
java.lang.Object |
create(java.lang.String pattern)
Create a tree or node from the indicated tree pattern that closely
follows ANTLR tree grammar tree element syntax:
(root child1 ...
|
boolean |
equals(java.lang.Object t1,
java.lang.Object t2)
Compare type, structure, and text of two trees, assuming adaptor in
this instance of a TreeWizard.
|
static boolean |
equals(java.lang.Object t1,
java.lang.Object t2,
TreeAdaptor adaptor)
Compare t1 and t2; return true if token types/text, structure match exactly.
|
java.util.List |
find(java.lang.Object t,
int ttype)
Return a List of tree nodes with token type ttype
|
java.util.List |
find(java.lang.Object t,
java.lang.String pattern)
Return a List of subtrees matching pattern.
|
java.lang.Object |
findFirst(java.lang.Object t,
int ttype) |
java.lang.Object |
findFirst(java.lang.Object t,
java.lang.String pattern) |
int |
getTokenType(java.lang.String tokenName)
Using the map of token names to token types, return the type.
|
java.util.Map |
index(java.lang.Object t)
Walk the entire tree and make a node name to nodes mapping.
|
boolean |
parse(java.lang.Object t,
java.lang.String pattern) |
boolean |
parse(java.lang.Object t,
java.lang.String pattern,
java.util.Map labels)
Given a pattern like (ASSIGN %lhs:ID %rhs:.) with optional labels
on the various nodes and '.' (dot) as the node/subtree wildcard,
return true if the pattern matches and fill the labels Map with
the labels pointing at the appropriate nodes.
|
void |
visit(java.lang.Object t,
int ttype,
TreeWizard.ContextVisitor visitor)
Visit every ttype node in t, invoking the visitor.
|
void |
visit(java.lang.Object t,
java.lang.String pattern,
TreeWizard.ContextVisitor visitor)
For all subtrees that match the pattern, execute the visit action.
|
protected TreeAdaptor adaptor
protected java.util.Map tokenNameToTypeMap
public TreeWizard(TreeAdaptor adaptor)
public TreeWizard(TreeAdaptor adaptor, java.util.Map tokenNameToTypeMap)
public TreeWizard(TreeAdaptor adaptor, java.lang.String[] tokenNames)
public TreeWizard(java.lang.String[] tokenNames)
public java.util.Map computeTokenTypes(java.lang.String[] tokenNames)
public int getTokenType(java.lang.String tokenName)
public java.util.Map index(java.lang.Object t)
protected void _index(java.lang.Object t, java.util.Map m)
public java.util.List find(java.lang.Object t, int ttype)
public java.util.List find(java.lang.Object t, java.lang.String pattern)
public java.lang.Object findFirst(java.lang.Object t, int ttype)
public java.lang.Object findFirst(java.lang.Object t, java.lang.String pattern)
public void visit(java.lang.Object t, int ttype, TreeWizard.ContextVisitor visitor)
protected void _visit(java.lang.Object t, java.lang.Object parent, int childIndex, int ttype, TreeWizard.ContextVisitor visitor)
public void visit(java.lang.Object t, java.lang.String pattern, TreeWizard.ContextVisitor visitor)
public boolean parse(java.lang.Object t, java.lang.String pattern, java.util.Map labels)
public boolean parse(java.lang.Object t, java.lang.String pattern)
protected boolean _parse(java.lang.Object t1, TreeWizard.TreePattern tpattern, java.util.Map labels)
public java.lang.Object create(java.lang.String pattern)
public static boolean equals(java.lang.Object t1, java.lang.Object t2, TreeAdaptor adaptor)
public boolean equals(java.lang.Object t1, java.lang.Object t2)
protected static boolean _equals(java.lang.Object t1, java.lang.Object t2, TreeAdaptor adaptor)
Copyright © 2014. All Rights Reserved.