Package antlr
Class BaseAST
java.lang.Object
antlr.BaseAST
- All Implemented Interfaces:
AST
,Serializable
A Child-Sibling Tree.
A tree with PLUS at the root and with two children 3 and 4 is
structured as:
PLUS
|
3 -- 4
and can be specified easily in LISP notation as
(PLUS 3 4)
where every '(' starts a new subtree.
These trees are particular useful for translators because of
the flexibility of the children lists. They are also very easy
to walk automatically, whereas trees with specific children
reference fields can't easily be walked automatically.
This class contains the basic support for an AST.
Most people will create ASTs that are subclasses of
BaseAST or of CommonAST.
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Add a node to the end of the child list for this nodestatic String
static String
boolean
Is node t equal to this in terms of token type and text?boolean
equalsList
(AST t) Is t an exact structural and equals() match of this tree.boolean
equalsListPartial
(AST sub) Is 'sub' a subtree of this list? The siblings of the root are NOT ignored.boolean
equalsTree
(AST t) Is tree rooted at 'this' equal to 't'? The siblings of 'this' are ignored.boolean
equalsTreePartial
(AST sub) Is 't' a subtree of the tree rooted at 'this'? The siblings of 'this' are ignored.Walk the tree looking for all exact subtree matches.findAllPartial
(AST sub) Walk the tree looking for all subtrees.int
Get the first child of this node; null if not childrenint
getLine()
Get the next sibling in line after this oneint
How many children does this node have?getText()
Get the token text for this nodestatic String[]
Return an array of strings that maps token ID to it's text.int
getType()
Get the token type for this nodeabstract void
initialize
(int t, String txt) abstract void
initialize
(AST t) abstract void
initialize
(Token t) void
Remove all childrenvoid
setFirstChild
(AST c) Set the first child of a node.void
Set the next sibling after this one.void
Set the token text for this nodevoid
setType
(int ttype) Set the token type for this nodestatic void
setVerboseStringConversion
(boolean verbose, String[] names) toString()
Print out a child-sibling tree in LISP notationvoid
xmlSerialize
(Writer out) void
xmlSerializeNode
(Writer out) void
void
-
Field Details
-
down
-
right
-
-
Constructor Details
-
BaseAST
public BaseAST()
-
-
Method Details
-
addChild
Add a node to the end of the child list for this node -
getNumberOfChildren
public int getNumberOfChildren()How many children does this node have?- Specified by:
getNumberOfChildren
in interfaceAST
-
equals
Is node t equal to this in terms of token type and text? -
equalsList
Is t an exact structural and equals() match of this tree. The 'this' reference is considered the start of a sibling list.- Specified by:
equalsList
in interfaceAST
-
equalsListPartial
Is 'sub' a subtree of this list? The siblings of the root are NOT ignored.- Specified by:
equalsListPartial
in interfaceAST
-
equalsTree
Is tree rooted at 'this' equal to 't'? The siblings of 'this' are ignored.- Specified by:
equalsTree
in interfaceAST
-
equalsTreePartial
Is 't' a subtree of the tree rooted at 'this'? The siblings of 'this' are ignored.- Specified by:
equalsTreePartial
in interfaceAST
-
findAll
Walk the tree looking for all exact subtree matches. Return an ASTEnumerator that lets the caller walk the list of subtree roots found herein. -
findAllPartial
Walk the tree looking for all subtrees. Return an ASTEnumerator that lets the caller walk the list of subtree roots found herein.- Specified by:
findAllPartial
in interfaceAST
-
getFirstChild
Get the first child of this node; null if not children- Specified by:
getFirstChild
in interfaceAST
-
getNextSibling
Get the next sibling in line after this one- Specified by:
getNextSibling
in interfaceAST
-
getText
Get the token text for this node -
getType
public int getType()Get the token type for this node -
getLine
public int getLine() -
getColumn
public int getColumn() -
initialize
- Specified by:
initialize
in interfaceAST
-
initialize
- Specified by:
initialize
in interfaceAST
-
initialize
- Specified by:
initialize
in interfaceAST
-
removeChildren
public void removeChildren()Remove all children -
setFirstChild
Description copied from interface:AST
Set the first child of a node.- Specified by:
setFirstChild
in interfaceAST
-
setNextSibling
Description copied from interface:AST
Set the next sibling after this one.- Specified by:
setNextSibling
in interfaceAST
-
setText
Set the token text for this node -
setType
public void setType(int ttype) Set the token type for this node -
setVerboseStringConversion
-
getTokenNames
Return an array of strings that maps token ID to it's text. @since 2.7.3 -
toString
-
toStringList
Print out a child-sibling tree in LISP notation- Specified by:
toStringList
in interfaceAST
-
toStringTree
- Specified by:
toStringTree
in interfaceAST
-
decode
-
encode
-
xmlSerializeNode
- Throws:
IOException
-
xmlSerializeRootOpen
- Throws:
IOException
-
xmlSerializeRootClose
- Throws:
IOException
-
xmlSerialize
- Throws:
IOException
-