2

例えば::

>>> import ast
>>> print(type(ast.parse('1.2', mode='eval').body.n)
float

型のノードの元の値を保持しながら、パーサーに Python ソース ファイルを構文ツリーに変換させるにはどうすればよいstrですか? たとえば、「1.2」を、精度をまったく失うことなく、できるだけ正確な分数を使用して正確な値に変換する必要があるためです (値 1.2 は浮動小数点形式で正確に表すことはできません)。

できれば、パーサーを再実装せずにこれを行いたいと考えています。astおそらく、モジュールよりもこれに適したパーサーが他にあるでしょう。

ところで、式だけでなくプログラムも解析する必要があります。

4

2 に答える 2

0

私が知っている AST で動作する最も高度なツールは、logilab からastngバックアップされた以前のプロジェクトと同様のツールです。pylint現在、 https://bitbucket.org/logilab/astroid/Astroidから呼び出されて利用できます。

于 2013-11-27T13:31:14.867 に答える