Interface Tree

All Known Implementing Classes:
ANTLRParser.GrammarASTErrorNode, BaseTree, CommonErrorNode, CommonTree, GrammarAST, ParseTree, RemoteDebugEventSocketListener.ProxyTree, TreeWizard.TreePattern, TreeWizard.WildcardTreePattern

public interface Tree
What does a tree look like? ANTLR has a number of support classes such as CommonTreeNodeStream that work on these kinds of trees. You don't have to make your trees implement this interface, but if you do, you'll be able to use more support code. NOTE: When constructing trees, ANTLR can build any kind of tree; it can even use Token objects as trees if you add a child list to your tokens. This is a tree node without any payload; just navigation and factory stuff.
  • Field Details

    • INVALID_NODE

      static final Tree INVALID_NODE
  • Method Details

    • getChild

      Tree getChild(int i)
    • getChildCount

      int getChildCount()
    • getParent

      Tree getParent()
    • setParent

      void setParent(Tree t)
    • hasAncestor

      boolean hasAncestor(int ttype)
      Is there is a node above with token type ttype?
    • getAncestor

      Tree getAncestor(int ttype)
      Walk upwards and get first ancestor with this token type.
    • getAncestors

      List<?> getAncestors()
      Return a list of all ancestors of this node. The first node of list is the root and the last is the parent of this node.
    • getChildIndex

      int getChildIndex()
      This node is what child index? 0..n-1
    • setChildIndex

      void setChildIndex(int index)
    • freshenParentAndChildIndexes

      void freshenParentAndChildIndexes()
      Set the parent and child index values for all children
    • addChild

      void addChild(Tree t)
      Add t as a child to this node. If t is null, do nothing. If t is nil, add all children of t to this' children.
    • setChild

      void setChild(int i, Tree t)
      Set ith child (0..n-1) to t; t must be non-null and non-nil node
    • deleteChild

      Object deleteChild(int i)
    • replaceChildren

      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). num of children can increase or decrease. For huge child lists, inserting children can force walking rest of children to set their childindex; could be slow.
    • isNil

      boolean isNil()
      Indicates the node is a nil node but may still have children, meaning the tree is a flat list.
    • getTokenStartIndex

      int getTokenStartIndex()
      What is the smallest token index (indexing from 0) for this node and its children?
    • setTokenStartIndex

      void setTokenStartIndex(int index)
    • getTokenStopIndex

      int getTokenStopIndex()
      What is the largest token index (indexing from 0) for this node and its children?
    • setTokenStopIndex

      void setTokenStopIndex(int index)
    • dupNode

      Tree dupNode()
    • getType

      int getType()
      Return a token type; needed for tree parsing
    • getText

      String getText()
    • getLine

      int getLine()
      In case we don't have a token payload, what is the line for errors?
    • getCharPositionInLine

      int getCharPositionInLine()
    • toStringTree

      String toStringTree()
    • toString

      String toString()
      Overrides:
      toString in class Object