Class Trees

java.lang.Object
org.antlr.v4.runtime.tree.Trees

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

    • toStringTree

      public static String toStringTree(Tree t)
      Print out a whole tree in LISP form. getNodeText(org.antlr.v4.runtime.tree.Tree, org.antlr.v4.runtime.Parser) is used on the node payloads to get the text for the nodes. Detect parse trees and extract data appropriately.
    • toStringTree

      public static String toStringTree(Tree t, Parser recog)
      Print out a whole tree in LISP form. getNodeText(org.antlr.v4.runtime.tree.Tree, org.antlr.v4.runtime.Parser) is used on the node payloads to get the text for the nodes. Detect parse trees and extract data appropriately.
    • toStringTree

      public static String toStringTree(Tree t, List<String> ruleNames)
      Print out a whole tree in LISP form. getNodeText(org.antlr.v4.runtime.tree.Tree, org.antlr.v4.runtime.Parser) is used on the node payloads to get the text for the nodes.
    • getNodeText

      public static String getNodeText(Tree t, Parser recog)
    • getNodeText

      public static String getNodeText(Tree t, List<String> ruleNames)
    • 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
    • findAllTokenNodes

      public static Collection<ParseTree> findAllTokenNodes(ParseTree t, int ttype)
    • findAllRuleNodes

      public static Collection<ParseTree> findAllRuleNodes(ParseTree t, int ruleIndex)
    • findAllNodes

      public static List<ParseTree> findAllNodes(ParseTree t, int index, boolean findTokens)
    • _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
    • descendants

      public static List<ParseTree> descendants(ParseTree t)
      Deprecated.
    • 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