【问题标题】:How to generate standalone parser in Python?如何在 Python 中生成独立的解析器?
【发布时间】: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 选择导入它们。

标签: python parsing tatsu


【解决方案1】:

查看 pegen,作者 Guido van Rossum、Pablo Galindo 等人。

它是 Python 3.9 中 Python 解析器的基础。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-26
    • 2014-08-03
    • 1970-01-01
    相关资源
    最近更新 更多