9

ドキュメントでこのページを読んでいて、次のように書かれていることに気付きました

これは完全な Python 文法であり、パーサー ジェネレーターによって読み取られ、Python ソース ファイルの解析に使用されます。

ただし、パーサー ジェネレーター CPython が使用するものを見つけるのに苦労しています。では、CPython はどのパーサー ジェネレーターを使用するのでしょうか? そのページの文法を変更せずに取得する他のパーサージェネレーターはありますか?

4

1 に答える 1

6

Python はオープンソースなので、ソースコードを調べることができます...

Python ソース ディレクトリには、"Python.asdl" を含む "Parser" ディレクトリがあります。

-- ASDL の 4 つの組み込み型は、identifier、int、string、object です。

同じディレクトリに「asdl.py」ファイルもあります...

"""Zephyr 抽象構文定義言語の実装。
http://asdl.sourceforge.net/および
http://www.cs.princeton.edu/research/techreps/TR-554-97
を参照してください。

ビューではなく、最上位モジュールの宣言のみをサポートします。その見方だとおもいます
ブラウザをサポートすることを意図しており、私は興味がありません
ブラウザ。

Python の変更点: モジュール バージョンのサポートを追加
"""

したがって、これはカスタム パーサー ジェネレーターのようです。LALR(1) パーサー ジェネレーターは、それほど難しくありません。

于 2012-05-25T05:03:33.790 に答える