2012-03-25 74 views
0

我正在考慮嘗試將Scons(Python)腳本轉換爲另一個構建系統,但想知道是否有可用於查詢Scons/Python腳本的Python分析庫?「分析」Python語言以剖析Scons構建腳本?

我(可能)之後的事情是沿着Java的反射機制的事情,事實上,如果這可以通過說Jython/Java,在Java中編碼,這對我來說最適合作爲Java開發Python中沒有真正的背景)。

我需要做的是爲腳本中的某些命名類類型和方法提取變量assigment值等,以便我可以將它們轉換爲我的新輸出格式。

任何想法?

感謝

豐富

+1

你的問題不清楚 - 請展開「提取某些命名類類型和方法的變量賦值等。」你想做什麼?你能舉一個例子嗎(例如,一些示例代碼和你想要的輸出類型?)以及你將它移植到哪個構建系統? – 2012-03-25 23:27:28

回答

0

如果當前scons的文件是非常有規律的和一致的可能更容易做一些「愚蠢」的標準文本編輯工具。如果你想變得更聰明,你應該注意到scons本身就是一個Python程序,它會加載你的構建文件,這也是Python。所以你可以製作自己的「特殊」版本的scons,它實現了你的構建腳本使用的功能(添加程序,庫,等等)。然後你可以在你的「假」scons程序中運行你的構建腳本,讓你的函數以適合你的新構建系統的格式轉儲它們的參數。

換句話說,不要在完全分析Python語法方面考慮問題 - 意識到您可以像Python代碼一樣運行構建腳本並劫持他們的行爲。我敢肯定,說起來容易做起來難。

0

我懷疑這是遷移scons的最佳工具,但python的inspect模塊提供了一些反射功能。其餘部分,您可以簡單地在實時類和對象中插入內容:Python有一些數據隱藏,但不強制訪問限制。