Package org.harctoolbox.irp
Class ErrorStrategy
java.lang.Object
org.antlr.v4.runtime.DefaultErrorStrategy
org.antlr.v4.runtime.BailErrorStrategy
org.harctoolbox.irp.ErrorStrategy
- All Implemented Interfaces:
org.antlr.v4.runtime.ANTLRErrorStrategy
public class ErrorStrategy
extends org.antlr.v4.runtime.BailErrorStrategy
This implementation of ANTLRErrorStrategy responds to syntax errors
by immediately canceling the parse operation with a
ParseCancellationException
. The implementation ensures that the
ParserRuleContext.exception
field is set for all parse tree nodes
that were not completed prior to encountering the error.
This error strategy is useful in the following scenarios.
- Two-stage parsing: This error strategy allows the first
stage of two-stage parsing to immediately terminate if an error is
encountered, and immediately fall back to the second stage. In addition to
avoiding wasted work by attempting to recover from errors here, the empty
implementation of
BailErrorStrategy.sync(org.antlr.v4.runtime.Parser)
improves the performance of the first stage. - Silent validation: When syntax errors are not being
reported or logged, and the parse result is simply ignored if errors occur,
the
BailErrorStrategy
avoids wasting work on recovering from errors when the result will be ignored either way.
myparser.setErrorHandler(new BailErrorStrategy());
- See Also:
-
Parser.setErrorHandler(ANTLRErrorStrategy)
-
Field Summary
Fields inherited from class org.antlr.v4.runtime.DefaultErrorStrategy
errorRecoveryMode, lastErrorIndex, lastErrorStates, nextTokensContext, nextTokensState
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
sync
(org.antlr.v4.runtime.Parser recognizer) Make sure we don't attempt to recover from problems in subrules.Methods inherited from class org.antlr.v4.runtime.BailErrorStrategy
recover, recoverInline
Methods inherited from class org.antlr.v4.runtime.DefaultErrorStrategy
beginErrorCondition, consumeUntil, endErrorCondition, escapeWSAndQuote, getErrorRecoverySet, getExpectedTokens, getMissingSymbol, getSymbolText, getSymbolType, getTokenErrorDisplay, inErrorRecoveryMode, reportError, reportFailedPredicate, reportInputMismatch, reportMatch, reportMissingToken, reportNoViableAlternative, reportUnwantedToken, reset, singleTokenDeletion, singleTokenInsertion
-
Constructor Details
-
ErrorStrategy
public ErrorStrategy()
-
-
Method Details
-
sync
public void sync(org.antlr.v4.runtime.Parser recognizer) Make sure we don't attempt to recover from problems in subrules.- Specified by:
sync
in interfaceorg.antlr.v4.runtime.ANTLRErrorStrategy
- Overrides:
sync
in classorg.antlr.v4.runtime.BailErrorStrategy
- Parameters:
recognizer
-
-