09/01/04 02:56:38
>>29
JavaScriptは実装依存じゃないかな。toSourceとかunevalがあったよーな気がする。
Pythonだとinspect.getsoruce
>構文木をソースとして実行
構文木もコンパイルしたコードオブジェクトも実行可能。ただ、実行には結局exec/evalを使うので
構文木を弄るのでなければわざわざ変換する利点はない。see also compiler.ast, ast.parse
少し敷居は高いけど、Pythonはこの辺の標準モジュールは充実してる。
>>28
"exec を使わずに"がどういう意図なのかわからないけど、
単に字面通りなら、じゃあevalで?って話しだし。
副作用を気にしていて実行環境を分離したいのなら
>>> d = {'a': 1}
>>> exec "a = 10" in d
>>> d['a']
10
より確実にするなら、別プロセス立ち上げてsocketやpipe等で -> Rpyc等のライブラリを使う。
ところで、YAML内にPythonのソース書くって
インデントがどっちの言語のものか混ざって解らなくなったりしない?
(書いたことないけど