CPython使用什么解析器生成器?

mat*_*ots 6 python parsing parser-generator asdl

我正在阅读文档中的这个页面,并注意到它说

这是完整的Python语法,因为它由解析器生成器读取并用于解析Python源文件

但是,我很难找到CPython使用的解析器生成器.那么CPython使用什么解析器生成器呢?是否有其他解析器生成器可以在该页面上进行语法而不进行任何修改?

Die*_*Epp 6

Python 是开源的,因此您可以检查源代码...

在 Python 源目录中有一个“Parser”目录,其中包含“Python.asdl”和注释

-- ASDL 的四种内置类型是 identifier, int, string, object

同一目录中还有一个“asdl.py”文件......

"""Zephyr 抽象语法定义语言的实现。

见http://asdl.sourceforge.net/http://www.cs.princeton.edu/research/techreps/TR-554-97

只支持顶层模块 decl,不支持 view。我猜那个观点
旨在支持浏览器,我对
浏览器。

Python 的更改:添加对模块版本的支持
"""

所以看起来它是一个自定义的解析器生成器。LALR(1) 解析器生成器并不难写。