Class ParseTreeMatch

java.lang.Object
org.antlr.v4.runtime.tree.pattern.ParseTreeMatch

public final class ParseTreeMatch extends Object
Represents the result of matching a ParseTree against a tree pattern.
  • Constructor Details

    • ParseTreeMatch

      public ParseTreeMatch(ParseTree tree, ParseTreePattern pattern, MultiMap<String,ParseTree> labels, @Nullable ParseTree mismatchedNode)
      Constructs a new instance of ParseTreeMatch from 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 of ParseTree objects 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

      public @Nullable ParseTree get(String label)
      Get the last node associated with a specific label.

      For example, for pattern <id:ID>, get("id") returns the node matched for that ID. If more than one node matched the specified label, only the last is returned. If there is no node associated with the label, this returns null.

      Pattern tags like <ID> and <expr> without labels are considered to be labeled with ID and expr, respectively.

      Parameters:
      label - The label to check.
      Returns:
      The last ParseTree to match a tag with the specified label, or null if no parse tree matched a tag with the label.
    • getAll

      public List<ParseTree> getAll(String label)
      Return all nodes matching a rule or token tag with the specified label.

      If the label is 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, if label is "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 ParseTree nodes matching tags with the specified label. If no nodes matched the label, an empty list is returned.
    • succeeded

      public boolean succeeded()
      Gets a value indicating whether the match operation succeeded.
      Returns:
      true if the match operation succeeded; otherwise, false.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getTree

      public ParseTree getTree()
    • getPattern

      public ParseTreePattern getPattern()
    • getLabels

      public MultiMap<String,ParseTree> 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

      public @Nullable ParseTree getMismatchedNode()
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object