我正在为我的编译器类编写一个简单的解析器(只是我可以让工具工作的概念证明),并且正在将 ANTLR 与 python 绑定一起使用。我已经获得了正确标记和解析的简单语法,但我还想以自定义方式处理错误。根据 ANTLR 文档(更具体地说:http ://www.antlr.org/wiki/display/ANTLR3/Error+reporting+and+recovery ),我可以将以下代码放入我的语法文件中:
@members {
private List<String> errors = new LinkedList<String>();
public void displayRecognitionError(String[] tokenNames,
RecognitionException e) {
String hdr = getErrorHeader(e);
String msg = getErrorMessage(e, tokenNames);
errors.add(hdr + " " + msg);
}
public List<String> getErrors() {
return errors;
}
}
但是,这是一个我似乎无法在 python 中复制的 Java 示例(我可以复制代码,但似乎无法让它运行)。有谁知道我会怎么做?