У меня есть пользовательские ParsingException (String сообщение, внутр местоположение, String offendingText)Правильный способ добавления пользовательских исключений в Лексер/Parser файлы в antlr4
Я хочу, чтобы мой парсер, чтобы бросить это исключение при разборе/лексическая ошибка встречается.
Это правильно?
@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());
}
}
Я получаю ошибку UnhandledException с этим.
нормально, но если я делаю lexer.addErrorListener (ThrowingParsingExceptionErrorListener.INSTANCE); как я могу получить оскорбительный текст, так как оскорбительный символ имеет значение NULL? благодаря –