【发布时间】:2012-04-12 01:19:33
【问题描述】:
我正在为我的编译器类编写一个简单的解析器(只是我可以让这些工具正常工作的概念证明),并且正在将 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 示例(我可以复制代码,但似乎无法让它运行)。有谁知道我该怎么做?
【问题讨论】: