【发布时间】:2021-04-06 11:42:24
【问题描述】:
我想为自定义语言生成 Python 解析器。由于我是解析新手,到目前为止我唯一的要求是生成的模块不应依赖于生成器。
我学习了 Tatsu,因为它可以将解析器生成为 Python 模块。但是当我查看生成的模块时,它仍然以
开头from tatsu.buffering import Buffer
from tatsu.parsing import Parser
from tatsu.parsing import tatsumasu, leftrec, nomem
...
有没有办法使用 Tatsu 生成独立的(仅取决于标准 Python 库)解析器模块?如果没有,我还有其他选择吗?
【问题讨论】:
-
为什么模块不应该有依赖关系很重要?
-
@BrianMcCutchon 这将是 Blender 的一个插件。他们捆绑了自己的 Python 安装,我不想在那里引入新的依赖项。
-
我知道的大多数解析器生成器将依赖项复制到生成的代码中。 TatSu 选择导入它们。