Package org.antlr.v4.runtime.tree
Class Trees
java.lang.Object
org.antlr.v4.runtime.tree.Trees
A set of utility routines useful for all kinds of ANTLR trees.
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
_findAllNodes
(ParseTree t, int index, boolean findTokens, List<? super ParseTree> nodes) Deprecated.findAllNodes
(ParseTree t, int index, boolean findTokens) static Collection
<ParseTree> findAllRuleNodes
(ParseTree t, int ruleIndex) static Collection
<ParseTree> findAllTokenNodes
(ParseTree t, int ttype) static Tree
findNodeSuchThat
(Tree t, Predicate<Tree> pred) Return first node satisfying the predgetAncestors
(Tree t) Return a list of all ancestors of this node.getChildren
(Tree t) Return ordered list of all children of this nodeGet all descendents; includes t itself.static String
getNodeText
(Tree t, List<String> ruleNames) static String
getNodeText
(Tree t, Parser recog) static ParserRuleContext
getRootOfSubtreeEnclosingRegion
(ParseTree t, int startTokenIndex, int stopTokenIndex) Find smallest subtree of t enclosing range startTokenIndex..stopTokenIndex inclusively using postorder traversal.static boolean
isAncestorOf
(Tree t, Tree u) Return true if t is u's parent or a node on path to root from u.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.static String
toStringTree
(Tree t) Print out a whole tree in LISP form.static String
toStringTree
(Tree t, List<String> ruleNames) Print out a whole tree in LISP form.static String
toStringTree
(Tree t, Parser recog) Print out a whole tree in LISP form.
-
Method Details
-
toStringTree
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
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
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
-
getNodeText
-
getChildren
Return ordered list of all children of this node -
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.- Since:
- 4.5.1
-
isAncestorOf
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
-
findAllRuleNodes
-
findAllNodes
-
_findAllNodes
-
getDescendants
Get all descendents; includes t itself.- Since:
- 4.5.1
-
descendants
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
Return first node satisfying the pred- Since:
- 4.5.1
-