gpt4 book ai didi

python-2.7 - 在 python 中使用 antlr

转载 作者:行者123 更新时间:2023-12-04 01:00:01 25 4
gpt4 key购买 nike

我正在尝试在 python 中使用 lexer.py 和 parser.py ,但是这段代码有错误:

import antlr3
import antlr3.tree
import traceback
from test22Lexer import test22Lexer
from test22Parser import test22Parser
char_stream = antlr3.ANTLRStringStream("input.txt")
lexer = test22Lexer(char_stream)
tokens = antlr3.CommonTokenStream(lexer)
parser = test22Parser(tokens)
parser.block()

错误是:
  class block_return(ParserRuleReturnScope):
NameError: name 'ParserRuleReturnScope' is not defined

我需要帮助:D

解析器:
class block_return(ParserRuleReturnScope):
def __init__(self):
super(test22Parser.block_return, self).__init__()

self.tree = None

最佳答案

我只是遇到了完全相同的问题。我通过彩蛋寻找类(ParserRuleReturnScope),但它似乎不存在。这是使用版本 3.0.1。然后我能够找到 3.1.3 运行时以及 ANTLR 生成器 JAR 文件的相关版本。一旦我使用 3.1.3 生成,问题就消失了。所以,我建议安装 3.1.3,这里是我使用的相关链接:

ANTLR 生成器:
https://github.com/antlr/website-antlr3/blob/gh-pages/download/antlr-3.1.3.jar

下载 .jar 文件,然后运行:
java -jar path/to/jar/file myGrammar.g

使用 3.1.3 生成解析器/词法分析器后,请使用相同版本的运行时:
https://github.com/antlr/website-antlr3/blob/gh-pages/download/Python/antlr_python_runtime-3.1.3-py2.5.egg

您可以安装它,例如与easy_install。

现在模块加载(语法正确),但我仍在解决运行时错误。进步!

关于python-2.7 - 在 python 中使用 antlr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21207018/

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