2014-02-25 74 views
0

我正在使用Antlr4創建Java(Java 7)源代碼轉換工具。我將一個Main.java文件作爲輸入,並將其轉換爲輸出newMain.java源文件,該文件對應於相同的程序,但只做了很小的修改。要運行我使用導出generator.jar文件,如下所示我的轉換工具:有什麼辦法可以在Java編譯過程中包含Antlr嗎?

第一步(我用的是generator.jar使用以下命令來創建newMain.java文件):

java -jar generator.jar folderName/Main.java 

步驟2:(我編譯newMain.java文件)

javac folderName/newMain.java 

步驟3:(我運行newMain.class文件)

java newMain 

我想知道是否有任何其他方式進行此操作,這對用戶來說是透明的(通過命令行或使用IDE)?我的意思是用戶應該編譯他的Main.java類而不看到生成的newMain.java源文件既不是newMain.class。實際上,新生成的.class文件應該替換最初的Main.class文件。

+1

您可能可以使用註釋做些事情,但這實際上是您的翻譯工具的一項功能,與ANTLR無關。 –

+0

感謝您的回覆。你說得對,它與Antlr沒有關係。我只想指出,我使用Antlr作爲我的翻譯工具,因爲我認爲可能有一種使用java編譯器的Antlr類的方法。 –

回答

1

我不知道該怎麼建你正在使用的工具,但你提到的命令行,所以也許這樣的事情在Bourne shell中:

#!/bin/sh 

FOLDER=folderName 
CLASS=Main 

java -jar generator.jar $FOLDER/$CLASS.java 

javac $FOLDER/new$CLASS.java 
/bin/mv $FOLDER/new$CLASS.class $FOLDER/$CLASS.class 
/bin/rm $FOLDER/new$CLASS.java 

java $FOLDER/$CLASS 

這僅僅是真正的簡單,沒有做任何錯誤檢查(例如翻譯或編譯錯誤)。

相關問題