gpt4 book ai didi

python - 如何使用 python 在 ANTLR 中执行自定义错误报告?

转载 作者:太空狗 更新时间:2023-10-30 02:49:02 25 4
gpt4 key购买 nike

我正在为我的编译器类编写一个简单的解析器(只是一个概念证明,我可以让这些工具正常工作)并且正在使用 ANTLR 和 python 绑定(bind)。我已经获得了可以正确标记化和解析的简单语法,但我还想以自定义方式处理错误。根据 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;
}
}

但是,这是一个 Java 示例,我似乎无法在 Python 中复制(我可以复制代码,但似乎无法让它真正运行)。有谁知道我该怎么做?

最佳答案

我设法找到了解决问题的办法:

@members {
def displayRecognitionError(self, tokenNames, e):
# do something
pass

antlr3.BaseRecognizer.displayRecognitionError = displayRecognitionError
}

关于python - 如何使用 python 在 ANTLR 中执行自定义错误报告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10099319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com