2016-08-01 13 views
1

私はPythonプロジェクトですべてのプロジェクトファイルをスキャンし、特定のタイプのサブクラスであるオブジェクトのインスタンス化をすべて確認してから、 を指定します。オブジェクトのインスタンス化 2.そのオブジェクト作成のすべての呼び出しスタックを識別し、その呼び出しスタック内のすべての関数にデコレータを追加します。Rascalを使用したPythonソースファイルの解析と変換

は、Rascalを使用していますか?

答えて

1

Pythonソースコードをツリー(パーズツリーまたは抽象構文ツリー)として表現すると、 はこれをRascalデータ型に変換し、 の処理にRascalを使用できます。これは既存のPythonパーサーを使用して接続し、PythonプログラムのRascal 表現を生成することで実現できます。これは、単純に で、Rascalが読み取れる形式で構文解析ツリーをダンプすることで実行できます。

なぜこの複雑な解決策:組み込みパーサー のRascalジェネレータは、まだPythonのような字下げに敏感な言語 を解析することはできません。