在 java 中使用 antlr 3
我无法在此处从令牌中打印文本:
@lexer::members {
public void displayRecognitionError(String[] tokenNames, RecognitionException e) {
System.err.println("Encountered an illegal char " + getText() + " on line "+getLine()+":"+getCharPositionInLine ());
}
}
我正在为词法分析器语法制作更详细的错误报告。
问题是当错误发生时(用户输入一个:
未定义的令牌)它只显示"Encountered an illegal char on line x:y"
,而不是它应该显示:
char 和行 x:y 之间的无效字符。
如何显示无效字符、行和列?