0
我有一個自定義 ParsingException(字符串消息,INT位置,字符串offendingText)正確的方式自定義異常增加詞法分析器/分析器文件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);由於違規的符號爲空,我怎樣才能得到違規的文字?謝謝 –