ANTLR Python 解析器错误



我尝试用python阅读antlr语法。

就像这个问题一样:

JSON文件中的变音会导致ANTLR4创建的Python代码错误

错误:

File "/usr/local/lib/python2.7/dist-packages/antlr4/Lexer.py", line 109,     
in nextToken
tokenStartMarker = self._input.mark()
AttributeError: 'str' object has no attribute 'mark'

发生。

我的语法在java上工作正常,没有德语变音符号。

代码生成如下:

antlr4 -Dlanguage=Python2 -visitor MyGrammar.g4

错误可能还有其他原因吗?也许版本问题 还是别的什么?

出现此问题的原因是,您没有使用antlr4。输入流 标记函数是输入流类的一部分

https://github.com/antlr/antlr4/blob/master/runtime/Python2/src/antlr4/InputStream.py

以下代码有效

语法文件

语法
一些语法; 操作:数字"+"数字; 编号 : [0-9]+ ; 空格 : ' ' -> 跳过 ;

蟒蛇代码

进口安特尔4 从 ANTLR4 进口 * from psqlListener import psqlListener 从 psqlLexer import psqlLexer 从 psqlParser import psqlParser 导入系统 inputStream = antlr4.输入流('4+5'(; 词法分析器 = psqlLexer(inputStream( stream = CommonTokenStream(词法分析器( 解析器 = psqlParser(stream(

相关内容

  • 没有找到相关文章

最新更新