我們需要生成Java源代碼。我們通過對抽象語法樹進行建模並使用樹沃克生成實際的源代碼文本來實現此目的。這一切都很好。生成java代碼解析樹並對其進行評估
由於我的AST代碼有點舊,它不支持註釋和泛型。所以我正在尋找開放項目,以用於將來需要代碼生成的項目。這就是實際問題出現的地方。我們想要測試生成的代碼是否具有正確的行爲。
這裏是我得到的想法,實際上評估AST而不是生成Java源代碼,編譯它,並針對該代碼運行測試。評估者會加速單元測試,並且可以評估更小的生成代碼片段,例如只有一種方法,使得「單位」更合理。
到目前爲止,我發現com.sun.codemodel項目對於作爲現代(支持java5和6功能)基於AST的代碼生成解決方案來說似乎相當不錯。
任何人都知道是否有另一個項目可以讓我直接評估AST片段(例如單個生成的方法)?
+1有趣的問題,我們想知道答案現在:-) – KLE 2009-09-16 09:51:51
我只是生成該方法的代碼,編譯和測試。創建一個解釋器是相當多的工作。 – 2009-09-16 09:57:01
是沒有任何方法可以使javac的發射解析樹和中介交涉之類的東西? (類型決議,課堂查詢,無論艾拉巴克斯特在答案中如何表達)。 – 2014-04-27 01:45:16