Class ParseTreeMatch
java.lang.Object
org.antlr.v4.runtime.tree.pattern.ParseTreeMatch
Represents the result of matching a
ParseTree against a tree pattern.-
Constructor Summary
ConstructorsConstructorDescriptionParseTreeMatch(ParseTree tree, ParseTreePattern pattern, MultiMap<String, ParseTree> labels, @Nullable ParseTree mismatchedNode) Constructs a new instance ofParseTreeMatchfrom the specified parse tree and pattern. -
Method Summary
Modifier and TypeMethodDescriptionboolean@Nullable ParseTreeGet the last node associated with a specificlabel.Return all nodes matching a rule or token tag with the specified label.The map includes special entries corresponding to the names of rules and tokens referenced in tags in the original pattern.@Nullable ParseTreegetTree()inthashCode()booleanGets a value indicating whether the match operation succeeded.toString()
-
Constructor Details
-
ParseTreeMatch
public ParseTreeMatch(ParseTree tree, ParseTreePattern pattern, MultiMap<String, ParseTree> labels, @Nullable ParseTree mismatchedNode) Constructs a new instance ofParseTreeMatchfrom the specified parse tree and pattern.- Parameters:
tree- The parse tree to match against the pattern.pattern- The parse tree pattern.labels- A mapping from label names to collections ofParseTreeobjects located by the tree pattern matching process.mismatchedNode- The first node which failed to match the tree pattern during the matching process.
-
-
Method Details
-
get
Get the last node associated with a specificlabel.For example, for pattern
<id:ID>,get("id")returns the node matched for thatID. If more than one node matched the specified label, only the last is returned. If there is no node associated with the label, this returnsnull.Pattern tags like
<ID>and<expr>without labels are considered to be labeled withIDandexpr, respectively.- Parameters:
label- The label to check.- Returns:
- The last
ParseTreeto match a tag with the specified label, ornullif no parse tree matched a tag with the label.
-
getAll
Return all nodes matching a rule or token tag with the specified label.If the
labelis the name of a parser rule or token in the grammar, the resulting list will contain both the parse trees matching rule or tags explicitly labeled with the label and the complete set of parse trees matching the labeled and unlabeled tags in the pattern for the parser rule or token. For example, iflabelis"foo", the result will contain all of the following.- Parse tree nodes matching tags of the form
<foo:anyRuleName>and<foo:AnyTokenName>. - Parse tree nodes matching tags of the form
<anyLabel:foo>. - Parse tree nodes matching tags of the form
<foo>.
- Parameters:
label- The label.- Returns:
- A collection of all
ParseTreenodes matching tags with the specifiedlabel. If no nodes matched the label, an empty list is returned.
- Parse tree nodes matching tags of the form
-
succeeded
public boolean succeeded()Gets a value indicating whether the match operation succeeded.- Returns:
trueif the match operation succeeded; otherwise,false.
-
toString
-
getTree
-
getPattern
-
getLabels
The map includes special entries corresponding to the names of rules and tokens referenced in tags in the original pattern. For additional information, see the description -
getMismatchedNode
-
equals
-
hashCode
public int hashCode()
-