Class Trees


  • public class Trees
    extends Object
    A set of utility routines useful for all kinds of ANTLR trees.
    • Method Detail

      • getChildren

        public static List<Tree> getChildren​(Tree t)
        Return ordered list of all children of this node
      • getAncestors

        public static List<? extends Tree> getAncestors​(Tree t)
        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.
        Since:
        4.5.1
      • isAncestorOf

        public static boolean isAncestorOf​(Tree t,
                                           Tree u)
        Return true if t is u's parent or a node on path to root from u. Use == not equals().
        Since:
        4.5.1
      • _findAllNodes

        public static void _findAllNodes​(ParseTree t,
                                         int index,
                                         boolean findTokens,
                                         List<? super ParseTree> nodes)
      • getDescendants

        public static List<ParseTree> getDescendants​(ParseTree t)
        Get all descendents; includes t itself.
        Since:
        4.5.1
      • getRootOfSubtreeEnclosingRegion

        public static ParserRuleContext getRootOfSubtreeEnclosingRegion​(ParseTree t,
                                                                        int startTokenIndex,
                                                                        int stopTokenIndex)
        Find smallest subtree of t enclosing range startTokenIndex..stopTokenIndex inclusively using postorder traversal. Recursive depth-first-search.
        Since:
        4.5.1
      • stripChildrenOutOfRange

        public static void stripChildrenOutOfRange​(ParserRuleContext t,
                                                   ParserRuleContext root,
                                                   int startIndex,
                                                   int stopIndex)
        Replace any subtree siblings of root that are completely to left or right of lookahead range with a CommonToken(Token.INVALID_TYPE,"...") node. The source interval for t is not altered to suit smaller range! WARNING: destructive to t.
        Since:
        4.5.1
      • findNodeSuchThat

        public static Tree findNodeSuchThat​(Tree t,
                                            Predicate<Tree> pred)
        Return first node satisfying the pred
        Since:
        4.5.1