作成するために使われた入力に関係なく、ASTオブジェクトはリスト木またはタプル木として表される解析木へ変換されるか、または実行可能なオブジェクトへコンパイルされます。解析木は行番号情報を持って、あるいは持たずに抽出されます。
ast[, line_info]) |
line_infoが真ならば、トークンを表すリストの三番目の要素として行番号情報がすべての終端トークンに含まれます。与えられた行番号はトークンが終わる行を指定していることに注意してください。フラグが偽または省略された場合は、この情報は省かれます。
ast[, line_info]) |
line_infoが真ならば、トークンを表すリストの三番目の要素として行番号情報がすべての終端トークンに含まれます。フラグが偽または省略された場合は、この情報は省かれます。
ast[, filename = '<ast>' ]) |
ASTオブジェクトをコンパイルすることは、コンパイルに関する例外を引き起こすことになるかもしれません。例としては、del f(0)
の解析木によって発生させられるSyntaxErrorがあります: この文はPythonの形式文法としては正しいと考えられますが、正しい言語コンストラクトではありません。この状況に対して発生するSyntaxErrorは、実際にはPythonバイトコンパイラによって通常作り出されます。これがparserモジュールがこの時点で例外を発生できる理由です。解析木のインスペクションを行うことで、コンパイルが失敗するほとんどの原因をプルグラムによって診断することができます。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。