Package org.parboiled.matchers
Class ProxyMatcher
java.lang.Object
org.parboiled.matchers.ProxyMatcher
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<R> R
accept
(MatcherVisitor<R> visitor) Accepts the given matcher visitor.boolean
boolean
void
Supplies this ProxyMatcher with its underlying delegate.Returns the sub nodes of this node.getLabel()
getSubContext
(MatcherContext context) Creates a context for the matching of this matcher using the given parent context.getTag()
Retrieves a previously set tag object.boolean
boolean
boolean
Attaches a label to this Rule.<V> boolean
match
(MatcherContext<V> context) Tries a match on the given MatcherContext.Enables memoization of rule mismatches for consecutive rule applications at the same input location.void
void
Associates an arbitrary object with this matcher.skipNode()
Instructs parboiled to not create a parse tree node for this rule.Instructs parboiled to not create a parse tree node for this rule and all subrules, which can significantly increase parsing performance.Instructs parboiled to not create parse tree nodes for the subrules of this rule, which can significantly increase parsing performance.toString()
static Matcher
Retrieves the innermost Matcher that is not a ProxyMatcher.
-
Constructor Details
-
ProxyMatcher
public ProxyMatcher()
-
-
Method Details
-
getChildren
Description copied from interface:GraphNode
Returns the sub nodes of this node.- Specified by:
getChildren
in interfaceGraphNode<Matcher>
- Returns:
- the sub nodes
-
setLabel
-
match
Description copied from interface:Matcher
Tries a match on the given MatcherContext. -
getLabel
-
hasCustomLabel
public boolean hasCustomLabel()- Specified by:
hasCustomLabel
in interfaceMatcher
- Returns:
- true if this matcher has been assigned a custom label
-
isNodeSuppressed
public boolean isNodeSuppressed()- Specified by:
isNodeSuppressed
in interfaceMatcher
- Returns:
- true if this matcher has been marked with @SuppressNode
-
areSubnodesSuppressed
public boolean areSubnodesSuppressed()- Specified by:
areSubnodesSuppressed
in interfaceMatcher
- Returns:
- true if this matcher has been marked with @SuppressSubnodes
-
isNodeSkipped
public boolean isNodeSkipped()- Specified by:
isNodeSkipped
in interfaceMatcher
- Returns:
- true if this matcher has been marked with @SkipNode
-
areMismatchesMemoed
public boolean areMismatchesMemoed()- Specified by:
areMismatchesMemoed
in interfaceMatcher
- Returns:
- true if this matcher has been marked with @MemoMismatches
-
setTag
Description copied from interface:Matcher
Associates an arbitrary object with this matcher. Used for example during profiling and packrat parsing. The matcher implementations themselves completely ignore the contents of this property. It purely serves as a performance optimization for ParseRunners and/or MatchHandlers and saves these from the need to use Map<Matcher, XYZ> structures for associating internal objects with matchers. -
getTag
Description copied from interface:Matcher
Retrieves a previously set tag object. -
accept
Description copied from interface:Matcher
Accepts the given matcher visitor. -
toString
-
label
Description copied from interface:Rule
Attaches a label to this Rule. Corresponds to the @Label annotation. -
suppressNode
Description copied from interface:Rule
Instructs parboiled to not create a parse tree node for this rule and all subrules, which can significantly increase parsing performance. Corresponds to the @SuppressNode annotation.- Specified by:
suppressNode
in interfaceRule
- Returns:
- this Rule
-
suppressSubnodes
Description copied from interface:Rule
Instructs parboiled to not create parse tree nodes for the subrules of this rule, which can significantly increase parsing performance. Corresponds to the @SuppressSubnodes annotation.- Specified by:
suppressSubnodes
in interfaceRule
- Returns:
- this Rule
-
skipNode
Description copied from interface:Rule
Instructs parboiled to not create a parse tree node for this rule. The parse tree nodes of all subrules are directly attached to the parent of this rule (or more correctly: the first ancestor not having been marked skipNode(). Note that, even though a rule marked as skipNode() does not create a parse tree node of its own and is therefore "invisible" in the parse tree, the rule still exists as a regular rule in the rule tree and is accompanied by a "regular" ruleContext
during rule matching. Corresponds to the @SkipNode annotation. -
memoMismatches
Description copied from interface:Rule
Enables memoization of rule mismatches for consecutive rule applications at the same input location.- Specified by:
memoMismatches
in interfaceRule
- Returns:
- this rule
-
arm
Supplies this ProxyMatcher with its underlying delegate.- Parameters:
target
- the Matcher to delegate to
-
unwrap
Retrieves the innermost Matcher that is not a ProxyMatcher.- Parameters:
matcher
- the matcher to unwrap- Returns:
- the given instance if it is not a ProxyMatcher, otherwise the innermost non-proxy Matcher
-
getSubContext
Description copied from interface:Matcher
Creates a context for the matching of this matcher using the given parent context.- Specified by:
getSubContext
in interfaceMatcher
- Parameters:
context
- the parent context- Returns:
- the context this matcher is to be run in
-