2014-02-25 109 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 

这仅仅是真正的简单,没有做任何错误检查(例如翻译或编译错误)。

相关问题