1

在 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 之间的无效字符。

如何显示无效字符、行和列?

4

0 回答 0