ich eine benutzerdefinierte ParsingException (String Nachricht, int Lage, String offendingText)korrekte Art und Weise individuelle Ausnahme von Lexer/Parser-Dateien in antlr4
Ich möchte meinen Parser muss hinzufügen, diese Ausnahme werfen, wenn eine Analyse/lexing Fehler ist angetroffen.
Ist das korrekt?
@parser::members
{
@Override
public void notifyErrorListeners(Token offendingToken, String msg, RecognitionException ex)
{
throw new ParsingException(msg,offendingToken.getStartIndex(),offendingToken.getText());
}
}
@lexer::members {
@Override
public void recover(RecognitionException ex)
{
throw new ParsingException(ex.getMessage(),getCharPositionInLine(),ex.getOffendingToken().getText());
}
}
Ich bekomme einen UnhandledException Fehler mit diesem.
ok, aber wenn ich lexer.addErrorListener (ThrowingParsingExceptionErrorListener.INSTANCE); Wie kann ich den fehlerhaften Text erhalten, da das betreffende Symbol null ist? Vielen Dank –