19.3 Python 抽象構文

compiler.ast モジュールは Python の抽象構文木 AST を定義します。 AST では各ノードがそれぞれの構文要素をあらわします。 木の根は Module オブジェクトです。

抽象構文木 AST は、パーズされた Python ソースコードに対する 高水準のインターフェイスを提供します。Python インタプリタにおける parser モジュールと コンパイラは C で書かれおり、具体的な構文木を使っています。 具体的な構文木は Python のパーザ中で使われている構文と密接に関連しています。 ひとつの要素に単一のノードを割り当てる代わりに、ここでは Python の 優先順位に従って、何層にもわたるネストしたノードがしばしば使われています。

抽象構文木 AST は、compiler.transformer (変換器) モジュールに よって生成されます。transformer は組み込みの Python パーザに依存しており、 これを使って具体的な構文木をまず生成します。つぎにそこから抽象構文木 AST を 生成します。

transformer モジュールは、実験的な Python-to-C コンパイラ用に Greg Stein と Bill Tutt によって作られました。 現行のバージョンではいくつもの修正と改良がなされていますが、 抽象構文木 AST と transformer の基本的な構造は Stein と Tutt によるものです。



ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。