Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python在ANTLR中执行自定义错误报告?_Python_Antlr_Antlr3 - Fatal编程技术网

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

如何使用python在ANTLR中执行自定义错误报告?,python,antlr,antlr3,Python,Antlr,Antlr3,我正在为我的compilers类编写一个简单的解析器(只是一个概念证明,我可以让工具正常工作),并将ANTLR与python绑定一起使用。我已经让我们的琐碎语法正确地标记和解析了,但是我还想用一种自定义的方式处理错误。根据ANTLR文档(更具体地说:),我可以在语法文件中放入以下代码来完成此操作: @成员{ 私有列表错误=新建LinkedList(); public void displayRecognitionError(字符串[]标记名, 认可例外(e){ 字符串hdr=getErrorHe

我正在为我的compilers类编写一个简单的解析器(只是一个概念证明,我可以让工具正常工作),并将ANTLR与python绑定一起使用。我已经让我们的琐碎语法正确地标记和解析了,但是我还想用一种自定义的方式处理错误。根据ANTLR文档(更具体地说:),我可以在语法文件中放入以下代码来完成此操作:

@成员{
私有列表错误=新建LinkedList();
public void displayRecognitionError(字符串[]标记名,
认可例外(e){
字符串hdr=getErrorHeader(e);
String msg=getErrorMessage(e,tokenNames);
错误。添加(hdr+“”+msg);
}
公共列表getErrors(){
返回错误;
}
}

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

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

@成员{
def displayRecognitionError(self、tokenNames、e):
#做点什么
通过
antlr3.BaseRecognitor.displayRecognitionError=displayRecognitionError
}

目前还不能接受我自己的答案,但如果没有更好的解决方案,我会在明天接受。这似乎是一个很好的处理方法:我不希望有任何其他答案!:)