2012-08-12 60 views
1

這個問題不僅限於lex和yacc,但是如何將一個自定義腳本編譯器添加爲項目的一部分?例如,我在該項目中的以下文件:Eclipse:腳本編譯器作爲項目的一部分

grammar.y 
grammar.l 
test.script 

二進制「script_compiler」將使用grammar.y被生成並通過grammar.l法,YACC和g ++編譯。然後我想使用生成的script_compiler編譯test.script來生成CompiledScript.java。這個文件應該與項目中其餘的java文件一起編譯。 XCode或make可以實現這種設置,但是單獨使用Eclipse也可以嗎?如果不是,那麼與Maven插件一起怎麼樣?

(我可能會安裝腳本編譯器作爲一個單獨的項目,但它會很好,如果可以將它們放在同一個項目,以便更改語法文件可以立即應用)

預先感謝你的幫助!

回答

0

您可以從項目屬性對話框中添加一個自定義的「Builder」。這可以是一個ant腳本(帶有可選目標)或任何其他腳本或可執行文件。

還有用於antscripting languages

+0

謝謝你的回答,尼古拉斯。我不熟悉Ant,但會嘗試。 – 2012-08-20 18:23:22

+0

在這種情況下,請幫忙和s/ant/maven / – 2012-08-21 09:00:21

0

Maven插件如果你只想運行Maven的外部程序,這是你想要的:http://mojo.codehaus.org/exec-maven-plugin/ - 然後你可以從你的IDE或命令行運行Maven目標它應該做正確的事情。

要與常規編譯集成,請將插件綁定到「generate-sources」階段,並將生成Java文件的位置添加到exec插件的「sourceRoot」選項。這樣編譯器就會選擇它們。

理想情況下,您將代碼生成到「target/generated-sources/MY_SCRIPT_NAME」文件夾中。這是Maven世界中生成源的標準位置,例如IntelliJ IDEA將在該位置獲取源文件。請注意,如果文件直接位於「目標/生成源」中,則這不起作用。

另一種選擇是編寫自己的Maven插件,這實際上也很容易。見例如https://github.com/peterbecker/maven-code-generator