public abstract class BaseTree extends Object implements Tree
Modifier and Type | Field and Description |
---|---|
protected List |
children |
INVALID_NODE
Constructor and Description |
---|
BaseTree() |
BaseTree(Tree node)
Create a new node from an existing node does nothing for BaseTree
as there are no fields other than the children list, which cannot
be copied as the children are not considered part of this node.
|
Modifier and Type | Method and Description |
---|---|
void |
addChild(Tree t)
Add t as child of this node.
|
void |
addChildren(List kids)
Add all elements of kids list as children of this node
|
protected List |
createChildrenList()
Override in a subclass to change the impl of children list
|
Object |
deleteChild(int i) |
void |
freshenParentAndChildIndexes()
Set the parent and child index values for all child of t
|
void |
freshenParentAndChildIndexes(int offset) |
Tree |
getAncestor(int ttype)
Walk upwards and get first ancestor with this token type.
|
List |
getAncestors()
Return a list of all ancestors of this node.
|
int |
getCharPositionInLine() |
Tree |
getChild(int i) |
int |
getChildCount() |
int |
getChildIndex()
BaseTree doesn't track child indexes.
|
List |
getChildren()
Get the children internal List; note that if you directly mess with
the list, do so at your own risk.
|
Tree |
getFirstChildWithType(int type) |
int |
getLine()
In case we don't have a token payload, what is the line for errors?
|
Tree |
getParent()
BaseTree doesn't track parent pointers.
|
boolean |
hasAncestor(int ttype)
Walk upwards looking for ancestor with this token type.
|
boolean |
isNil()
Indicates the node is a nil node but may still have children, meaning
the tree is a flat list.
|
void |
replaceChildren(int startChildIndex,
int stopChildIndex,
Object t)
Delete children from start to stop and replace with t even if t is
a list (nil-root tree).
|
void |
sanityCheckParentAndChildIndexes() |
void |
sanityCheckParentAndChildIndexes(Tree parent,
int i) |
void |
setChild(int i,
Tree t)
Set ith child (0..n-1) to t; t must be non-null and non-nil node
|
void |
setChildIndex(int index) |
void |
setParent(Tree t) |
abstract String |
toString()
Override to say how a node (not a tree) should look as text
|
String |
toStringTree()
Print out a whole tree not just a node
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
dupNode, getText, getTokenStartIndex, getTokenStopIndex, getType, setTokenStartIndex, setTokenStopIndex
protected List children
public BaseTree()
public BaseTree(Tree node)
public List getChildren()
public Tree getFirstChildWithType(int type)
public int getChildCount()
getChildCount
in interface Tree
public void addChild(Tree t)
public void addChildren(List kids)
public void setChild(int i, Tree t)
Tree
public Object deleteChild(int i)
deleteChild
in interface Tree
public void replaceChildren(int startChildIndex, int stopChildIndex, Object t)
replaceChildren
in interface Tree
protected List createChildrenList()
public boolean isNil()
Tree
public void freshenParentAndChildIndexes()
freshenParentAndChildIndexes
in interface Tree
public void freshenParentAndChildIndexes(int offset)
public void sanityCheckParentAndChildIndexes()
public void sanityCheckParentAndChildIndexes(Tree parent, int i)
public int getChildIndex()
getChildIndex
in interface Tree
public void setChildIndex(int index)
setChildIndex
in interface Tree
public Tree getParent()
public boolean hasAncestor(int ttype)
hasAncestor
in interface Tree
public Tree getAncestor(int ttype)
getAncestor
in interface Tree
public List getAncestors()
getAncestors
in interface Tree
public String toStringTree()
toStringTree
in interface Tree
public int getLine()
Tree
public int getCharPositionInLine()
getCharPositionInLine
in interface Tree
Copyright © 2020. All rights reserved.