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

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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 interface org.antlr.v4.runtime.ANTLRErrorStrategy
      Overrides:
      sync in class org.antlr.v4.runtime.BailErrorStrategy
      Parameters:
      recognizer -