2012-03-25 19 views
0

私はScons(Python)スクリプトを別のビルドシステムに変換しようと考えていますが、Scons/Pythonスクリプトを調べるためにPython解析ライブラリがあるのだろうかと疑問に思っていましたか?Sconsのビルドスクリプトを解剖するPython言語を "解析する"?

私はおそらく後でJavaの反射メカニズムのラインに沿ったものですが、これはJython/Java、Javaでコーディングすると可能です私はPythonで実際の背景がありません)。

私ができる必要があることは、スクリプト内の特定の名前付きクラスの型とメソッドの変数の値などを抽出して、それらを新しい出力形式に転送できるようにすることです。

アイデア?

おかげ

リッチ

+1

あなたは質問が明確ではありません - 特定の名前付きクラスの型とメソッドのための変数の値などを抽出してください。あなたは何をしようとしているのですか?あなたは例を挙げることができますか(例えば、いくつかのサンプルコードとあなたが望む出力の種類?)そして、それを動かすシステムは何ですか? –

答えて

0

現在sconsのファイルは、標準的なテキスト編集ツールで「ダム」何かをする方が簡単かもしれ非常に定期的かつ一貫している場合。よりスマートにしたい場合は、scons自体がPythonプログラムであり、Pythonであるビルドファイルも読み込まれることに注意してください。だからあなたはビルドスクリプトが(プログラムやライブラリなどを追加するために)使う関数を実装した独自の "特別な"バージョンのsconsを作ることができます。次に、あなたの "偽の" sconsプログラムでビルドスクリプトを実行して、新しいビルドシステムに適した形式で引数をダンプすることができます。

つまり、Pythonの文法を完全に解析するという点では問題はないと思ってください。ビルドスクリプトを実際にPythonコードとして実行し、その動作をハイジャックすることができることに気づきましょう。

簡単に言えば、私は確信しています。

0

私はそれがsconsを移行するための最良のツールだとは思っていませんが、pythonのinspectモジュールはいくつかの反射機能を提供しています。残りの部分では、ライブクラスとオブジェクトの内部を単純に突き抜けることができます。Pythonにはデータが隠されていますが、アクセス制限はありません。

関連する問題