ANTLR从语法文件生成java源代码。生成的源依赖于ANTLR类。
我可以使用ANTLR生成'干净'的java源码,它没有任何antlr依赖性吗?
如果没有,有人可以推荐一些性能优异且可以生成干净的java代码的java解析器吗?
答案 0 :(得分:2)
在ANTLR上删除运行时依赖项实际上是不切实际的。您需要使用识别器分发ANTLR运行时库。
如果我没记错的话,JavaCC会创建必要的运行时类(JavaCC“样板”)的副本,作为“生成”代码的一部分,这样您就不需要包含额外的JAR。
您对ANTLR依赖关系的关注点是什么?
答案 1 :(得分:1)
您可以使用Apache Maven Shade Plugin将ANTLR重新定位到一个新包中,该包不会与同一进程中的其他ANTLR运行时安装冲突。 StringTemplate 4将此方法恰好用作relocate the ANTLR runtime to package st4hidden.org.antlr
ST4-4.0.8-complete.jar可分发jar的一部分。