/// <summary> /// Make sure we don't attempt to recover inline; if the parser /// successfully recovers, it won't throw an exception. /// </summary> /// <remarks> /// Make sure we don't attempt to recover inline; if the parser /// successfully recovers, it won't throw an exception. /// </remarks> /// <exception cref="erl.Oracle.TnsNames.Antlr4.Runtime.RecognitionException"/> public override IToken RecoverInline(Parser recognizer) { InputMismatchException e = new InputMismatchException(recognizer); for (ParserRuleContext context = recognizer.Context; context != null; context = ((ParserRuleContext)context.Parent)) { context.exception = e; } throw new ParseCanceledException(e); }
/// <summary> /// This is called by /// <see cref="ReportError(Parser, RecognitionException)"/> /// when the exception is an /// <see cref="InputMismatchException"/> /// . /// </summary> /// <seealso cref="ReportError(Parser, RecognitionException)"/> /// <param name="recognizer">the parser instance</param> /// <param name="e">the recognition exception</param> protected internal virtual void ReportInputMismatch(Parser recognizer, InputMismatchException e) { string msg = "mismatched input " + GetTokenErrorDisplay(e.OffendingToken) + " expecting " + e.GetExpectedTokens().ToString(recognizer.Vocabulary); NotifyErrorListeners(recognizer, msg, e); }