2010-08-25
*1282701893*Pythonいじり2
今朝の出勤電車ここまではできるようになった
||
pprintast.build(_mod)
===== AST =====
_ast.Interactive object at 0x100606690
===== END AST =====
(Interactive (Expr (Call (Attribute (Name (Load)) (Load)) (Name (Load)))))
||
Python側で_astを見やすく表示するモジュールを作るという選択肢。
しかしまだNameとかの具体的な値が表示されていない。あとで作る。
hr
|c|
PyRun_SimpleString(import pprintast;reload(pprintast); print pprintast.build(_mod));
||
って書き換えたので、Pythonで書いた表示モジュールを書き換えつつ対話的にそれをテストできる。
|python|
a = 1
===== AST =====
(Interactive (Assign (Name'a' (Store)) (Num1))) ===== END AST =====
||
なかなかいい感じ。もっと大きな例。
|python|
def build(node):
... return Node(node.__class__.__name__,
... node)
...
===== AST =====
||
S式(になりきれてないけど最終的にはなる予定)をきれいに改行&インデントするライブラリとかすでに誰かがつくってそうだなぁ。