gpt4 book ai didi

python - 将 Ply 与 iPython/Jupyter 结合使用

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

我正在开发一个使用层解析工具的项目。我需要在 iPython 中实现该项目,但如这篇文章所示 Problems with PLY LEX and YACC 、 ply 导致该工具出现问题。因此,我想知道是否有针对该问题的修复或解决方法,使我能够同时使用 ply 和笔记本工具。

最佳答案

也许回复有点晚了,但我刚刚遇到了同样的问题并设法找到了解决方法。

要构建词法分析器,PLY 需要一个名为 __file__ 的变量。因此,在调用 lex.lex() 之前,您必须将 __file__ 设置为笔记本文件的名称。

例如:

[...]
__file__ = "My_Notebook.ipynb"
lexer = lex.lex()
[...]

如果您正在使用一个类(如下 example ):

class MyLexer(object):
# [...]
# lots and lots of token declarations
# [...]

# Build the lexer
def build(self,**kwargs):
self.lexer = lex.lex(module=self, **kwargs)

my_lexer = MyLexer()
__file__ = "My_Notebook.ipynb"
my_lexer.build()

此外,每个笔记本文件不应定义多个词法分析器,如 PLY documentation 所指出的那样。在第 4.15 节末尾。

现在,要在 IPython/Jupyter Notebook 中使用 yacc,您必须像这样调用它:

parser = yacc.yacc(write_tables=False)

关于python - 将 Ply 与 iPython/Jupyter 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36393114/

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