Public Member Functions
rve_interface_gen.antlr3.tree.BaseTreeAdaptor Class Reference
Inheritance diagram for rve_interface_gen.antlr3.tree.BaseTreeAdaptor:
Inheritance graph
[legend]

List of all members.

Public Member Functions

def addChild
def becomeRoot
def createFromToken
def createFromType
def createToken
def deleteChild
def dupTree
def errorNode
def getChild
def getChildCount
def getText
def getType
def getUniqueID
def isNil
def nil
def rulePostProcessing
def setChild
def setText
def setType

Detailed Description

@brief A TreeAdaptor that works with any Tree implementation.

Definition at line 959 of file tree.py.


Member Function Documentation

def rve_interface_gen.antlr3.tree.BaseTreeAdaptor.addChild (   self,
  tree,
  child 
)
Add a child to the tree t.  If child is a flat tree (a list), make all
in list children of t.  Warning: if t has no children, but child does
and child isNil then you can decide it is ok to move children to t via
t.children = child.children; i.e., without copying the array.  Just
make sure that this is consistent with have the user will build
ASTs.

Reimplemented from rve_interface_gen.antlr3.tree.TreeAdaptor.

Definition at line 1020 of file tree.py.

def rve_interface_gen.antlr3.tree.BaseTreeAdaptor.becomeRoot (   self,
  newRoot,
  oldRoot 
)
If oldRoot is a nil root, just copy or move the children to newRoot.
If not a nil root, make oldRoot a child of newRoot.

  old=^(nil a b c), new=r yields ^(r a b c)
  old=^(a b c), new=r yields ^(r ^(a b c))

If newRoot is a nil-rooted single child tree, use the single
child as the new root node.

  old=^(nil a b c), new=^(nil r) yields ^(r a b c)
  old=^(a b c), new=^(nil r) yields ^(r ^(a b c))

If oldRoot was null, it's ok, just return newRoot (even if isNil).

  old=null, new=r yields r
  old=null, new=^(nil r) yields ^(nil r)

Return newRoot.  Throw an exception if newRoot is not a
simple node or nil root with a single child node--it must be a root
node.  If newRoot is ^(nil x) return x as newRoot.

Be advised that it's ok for newRoot to point at oldRoot's
children; i.e., you don't have to copy the list.  We are
constructing these nodes so we should have this control for
efficiency.

Reimplemented from rve_interface_gen.antlr3.tree.TreeAdaptor.

Definition at line 1037 of file tree.py.

def rve_interface_gen.antlr3.tree.BaseTreeAdaptor.createFromToken (   self,
  tokenType,
  fromToken,
  text = None 
)
Create a new node derived from a token, with a new token type and
(optionally) new text.

This is invoked from an imaginary node ref on right side of a
rewrite rule as IMAG[$tokenLabel] or IMAG[$tokenLabel "IMAG"].

This should invoke createToken(Token).

Reimplemented from rve_interface_gen.antlr3.tree.TreeAdaptor.

Definition at line 1108 of file tree.py.

def rve_interface_gen.antlr3.tree.BaseTreeAdaptor.createFromType (   self,
  tokenType,
  text 
)
Create a new node derived from a token, with a new token type.

This is invoked from an imaginary node ref on right side of a
rewrite rule as IMAG["IMAG"].

This should invoke createToken(int,String).

Reimplemented from rve_interface_gen.antlr3.tree.TreeAdaptor.

Definition at line 1121 of file tree.py.

def rve_interface_gen.antlr3.tree.BaseTreeAdaptor.createToken (   self,
  fromToken = None,
  tokenType = None,
  text = None 
)
Tell me how to create a token for use with imaginary token nodes.
For example, there is probably no input symbol associated with imaginary
token DECL, but you need to create it as a payload or whatever for
the DECL node as in ^(DECL type ID).

If you care what the token payload objects' type is, you should
override this method and any other createToken variant.

Reimplemented in rve_interface_gen.antlr3.tree.CommonTreeAdaptor.

Definition at line 1166 of file tree.py.

Remove ith child and shift children down from right.

Reimplemented from rve_interface_gen.antlr3.tree.TreeAdaptor.

Definition at line 1154 of file tree.py.

def rve_interface_gen.antlr3.tree.BaseTreeAdaptor.dupTree (   self,
  t,
  parent = None 
)
This is generic in the sense that it will work with any kind of
tree (not just Tree interface).  It invokes the adaptor routines
not the tree node routines to do the construction.

Definition at line 993 of file tree.py.

def rve_interface_gen.antlr3.tree.BaseTreeAdaptor.errorNode (   self,
  input,
  start,
  stop,
  exc 
)
create tree node that holds the start and stop tokens associated
with an error.

If you specify your own kind of tree nodes, you will likely have to
override this method. CommonTree returns Token.INVALID_TOKEN_TYPE
if no token payload but you might have to set token type for diff
node type.

You don't have to subclass CommonErrorNode; you will likely need to
subclass your own tree node class to avoid class cast exception.

Reimplemented from rve_interface_gen.antlr3.tree.TreeAdaptor.

Definition at line 972 of file tree.py.

Get a child 0..n-1 node

Reimplemented from rve_interface_gen.antlr3.tree.TreeAdaptor.

Reimplemented in rve_interface_gen.antlr3.tree.CommonTreeAdaptor.

Definition at line 1146 of file tree.py.

How many children?  If 0, then this is a leaf node

Reimplemented from rve_interface_gen.antlr3.tree.TreeAdaptor.

Reimplemented in rve_interface_gen.antlr3.tree.CommonTreeAdaptor.

Definition at line 1158 of file tree.py.

Reimplemented from rve_interface_gen.antlr3.tree.TreeAdaptor.

Reimplemented in rve_interface_gen.antlr3.tree.CommonTreeAdaptor.

Definition at line 1138 of file tree.py.

For tree parsing, I need to know the token type of a node

Reimplemented from rve_interface_gen.antlr3.tree.TreeAdaptor.

Reimplemented in rve_interface_gen.antlr3.tree.CommonTreeAdaptor.

Definition at line 1130 of file tree.py.

For identifying trees.

How to identify nodes so we can say "add node to a prior node"?
Even becomeRoot is an issue.  Use System.identityHashCode(node)
usually.

Reimplemented from rve_interface_gen.antlr3.tree.TreeAdaptor.

Definition at line 1162 of file tree.py.

Is tree considered a nil node used to make lists of child nodes?

Reimplemented from rve_interface_gen.antlr3.tree.TreeAdaptor.

Definition at line 989 of file tree.py.

Return a nil node (an empty but non-null node) that can hold
a list of element as the children.  If you want a flat tree (a list)
use "t=adaptor.nil(); t.addChild(x); t.addChild(y);"

Reimplemented from rve_interface_gen.antlr3.tree.TreeAdaptor.

Definition at line 968 of file tree.py.

Transform ^(nil x) to x and nil to null

Reimplemented from rve_interface_gen.antlr3.tree.TreeAdaptor.

Definition at line 1092 of file tree.py.

def rve_interface_gen.antlr3.tree.BaseTreeAdaptor.setChild (   self,
  t,
  i,
  child 
)
Set ith child (0..n-1) to t; t must be non-null and non-nil node

Reimplemented from rve_interface_gen.antlr3.tree.TreeAdaptor.

Definition at line 1150 of file tree.py.

Node constructors can set the text of a node

Reimplemented from rve_interface_gen.antlr3.tree.TreeAdaptor.

Definition at line 1142 of file tree.py.

Node constructors can set the type of a node

Reimplemented from rve_interface_gen.antlr3.tree.TreeAdaptor.

Definition at line 1134 of file tree.py.


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


rve_interface_gen
Author(s): Josh Faust
autogenerated on Wed Dec 11 2013 14:31:00