类 BaseTree

  • 所有已实现的接口:
    Tree
    直接已知子类:
    CommonTree, ParseTree, RemoteDebugEventSocketListener.ProxyTree

    public abstract class BaseTree
    extends java.lang.Object
    implements Tree
    A generic tree implementation with no payload. You must subclass to actually have any user data. ANTLR v3 uses a list of children approach instead of the child-sibling approach in v2. A flat tree (a list) is an empty node whose children represent the list. An empty, but non-null node is called "nil".
    • 字段详细资料

      • children

        protected java.util.List<java.lang.Object> children
    • 构造器详细资料

      • BaseTree

        public BaseTree()
      • BaseTree

        public 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.
    • 方法详细资料

      • getChild

        public Tree getChild​(int i)
        指定者:
        getChild 在接口中 Tree
      • getChildren

        public java.util.List<? extends java.lang.Object> getChildren()
        Get the children internal List; note that if you directly mess with the list, do so at your own risk.
      • getFirstChildWithType

        public Tree getFirstChildWithType​(int type)
      • getChildCount

        public int getChildCount()
        指定者:
        getChildCount 在接口中 Tree
      • addChild

        public void addChild​(Tree t)
        Add t as child of this node. Warning: if t has no children, but child does and child isNil then this routine moves children to t via t.children = child.children; i.e., without copying the array.
        指定者:
        addChild 在接口中 Tree
      • addChildren

        public void addChildren​(java.util.List<? extends Tree> kids)
        Add all elements of kids list as children of this node
      • setChild

        public void setChild​(int i,
                             Tree t)
        从接口复制的说明: Tree
        Set ith child (0..n-1) to t; t must be non-null and non-nil node
        指定者:
        setChild 在接口中 Tree
      • insertChild

        public void insertChild​(int i,
                                java.lang.Object t)
        Insert child t at child position i (0..n-1) by shifting children i+1..n-1 to the right one position. Set parent / indexes properly but does NOT collapse nil-rooted t's that come in here like addChild.
      • deleteChild

        public java.lang.Object deleteChild​(int i)
        指定者:
        deleteChild 在接口中 Tree
      • replaceChildren

        public void replaceChildren​(int startChildIndex,
                                    int stopChildIndex,
                                    java.lang.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.
        指定者:
        replaceChildren 在接口中 Tree
      • createChildrenList

        protected java.util.List<java.lang.Object> createChildrenList()
        Override in a subclass to change the impl of children list
      • isNil

        public boolean isNil()
        从接口复制的说明: Tree
        Indicates the node is a nil node but may still have children, meaning the tree is a flat list.
        指定者:
        isNil 在接口中 Tree
      • freshenParentAndChildIndexes

        public void freshenParentAndChildIndexes()
        Set the parent and child index values for all child of t
        指定者:
        freshenParentAndChildIndexes 在接口中 Tree
      • freshenParentAndChildIndexes

        public void freshenParentAndChildIndexes​(int offset)
      • freshenParentAndChildIndexesDeeply

        public void freshenParentAndChildIndexesDeeply()
      • freshenParentAndChildIndexesDeeply

        public void freshenParentAndChildIndexesDeeply​(int offset)
      • sanityCheckParentAndChildIndexes

        public void sanityCheckParentAndChildIndexes()
      • sanityCheckParentAndChildIndexes

        public void sanityCheckParentAndChildIndexes​(Tree parent,
                                                     int i)
      • getChildIndex

        public int getChildIndex()
        BaseTree doesn't track child indexes.
        指定者:
        getChildIndex 在接口中 Tree
      • setChildIndex

        public void setChildIndex​(int index)
        指定者:
        setChildIndex 在接口中 Tree
      • getParent

        public Tree getParent()
        BaseTree doesn't track parent pointers.
        指定者:
        getParent 在接口中 Tree
      • setParent

        public void setParent​(Tree t)
        指定者:
        setParent 在接口中 Tree
      • hasAncestor

        public boolean hasAncestor​(int ttype)
        Walk upwards looking for ancestor with this token type.
        指定者:
        hasAncestor 在接口中 Tree
      • getAncestor

        public Tree getAncestor​(int ttype)
        Walk upwards and get first ancestor with this token type.
        指定者:
        getAncestor 在接口中 Tree
      • getAncestors

        public java.util.List<? extends Tree> 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.
        指定者:
        getAncestors 在接口中 Tree
      • toStringTree

        public java.lang.String toStringTree()
        Print out a whole tree not just a node
        指定者:
        toStringTree 在接口中 Tree
      • getLine

        public int getLine()
        从接口复制的说明: Tree
        In case we don't have a token payload, what is the line for errors?
        指定者:
        getLine 在接口中 Tree
      • toString

        public abstract java.lang.String toString()
        Override to say how a node (not a tree) should look as text
        指定者:
        toString 在接口中 Tree
        覆盖:
        toString 在类中 java.lang.Object