ドキュメントでこのページを読んでいて、次のように書かれていることに気付きました
これは完全な Python 文法であり、パーサー ジェネレーターによって読み取られ、Python ソース ファイルの解析に使用されます。
ただし、パーサー ジェネレーター CPython が使用するものを見つけるのに苦労しています。では、CPython はどのパーサー ジェネレーターを使用するのでしょうか? そのページの文法を変更せずに取得する他のパーサージェネレーターはありますか?
ドキュメントでこのページを読んでいて、次のように書かれていることに気付きました
これは完全な Python 文法であり、パーサー ジェネレーターによって読み取られ、Python ソース ファイルの解析に使用されます。
ただし、パーサー ジェネレーター CPython が使用するものを見つけるのに苦労しています。では、CPython はどのパーサー ジェネレーターを使用するのでしょうか? そのページの文法を変更せずに取得する他のパーサージェネレーターはありますか?
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) パーサー ジェネレーターは、それほど難しくありません。