/**
* @see BaseErrorListener#reportAmbiguity
*/
@Override
public void syntaxError(Recognizer<?, ?> recognizer, Object offendingSymbol, int line,
int charPositionInLine, String msg, RecognitionException e) {
List<String> stack = ((Parser) recognizer).getRuleInvocationStack();
Collections.reverse(stack);
String logMsg = "Parser ERROR: line " + line + ":" + charPositionInLine + " at "
+ offendingSymbol + ": " + msg;
CommonToken tok = (CommonToken) offendingSymbol;
String s = tok.getText();
logMsg += ": offending token " + s;
if (s.equals("<EOF>")) {
logMsg += ". Look for tag=(null or empty).";
} else {
try {
Integer.parseInt(s);
} catch (NumberFormatException ex) {
logMsg += " not a number. ";
}
}
FixRulesParserErrorListener.logger.error(logMsg + " Tree = {}", stack);
throw new RuntimeException(logMsg);
}
FixRulesParserErrorListener.java 文件源码
java
阅读 17
收藏 0
点赞 0
评论 0
项目:infix
作者:
评论列表
文章目录