gpt4 book ai didi

python - 是否可以在没有 grako 的情况下使用 grako 生成的解析器?

转载 作者:太空宇宙 更新时间:2023-11-04 05:34:14 25 4
gpt4 key购买 nike

看标题。对于我正在编写的一个小工具,我想引入一种简单的 bool 过滤器语言,并决定“正确地”这样做并使用解析器生成器。在与 grako 玩了一会儿之后,我发现我喜欢它并且相当快地完成了过滤器语言(这也很好 :))

现在的问题是,如果我想在其他计算机上使用该工具或将其提供给其他人,我首先必须以某种方式使 grako 在那里可用,这有点麻烦,因为其他一切都是标准的 python3 东西。

我想通过共同打包必要的 grako 类是可能的,但这似乎有点困惑(无论如何都会提到许可)。也许我忽略了一些内置方法。

最佳答案

简短的回答是

Grako 生成的解析器确实需要 grako 库。

例如:

with self._group():
with self._choice():
with self._option():
self._token('nameguard')
with self._option():
self._token('ignorecase')
with self._option():
self._token('left_recursion')
self._error('expecting one of: ignorecase left_recursion nameguard')

所有 self._xyz() 来自 grako.contexts.ParseContextgrako.parsing.Parser。所需的回溯、缓存和簿记都隐藏在上下文管理器和装饰器之后。

让生成的解析器依赖于 grako 是一种旨在使解析器更小且更易于理解的设计选择,这是该项目的主要目标之一(因为有许多其他方面非常出色的解析器生成混淆代码的生成器)。

另一种选择是将生成的解析器可能依赖的代码复制到每个解析器上,但这似乎有点不符合 Python 风格。

关于python - 是否可以在没有 grako 的情况下使用 grako 生成的解析器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36092623/

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