我有一个习惯
ParsingException(字符串消息,整数位置,字符串offendingText)
我希望我的解析器在遇到解析/词法错误时抛出此异常。
这个对吗 ?
@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错误。
最佳答案
您应该覆盖syntaxError
的BaseErrorListener
方法,而不是此处描述的notifyErrorListeners
和recover
:ojita。