我可以从生成的代码中删除ANTLR依赖项吗?

时间:2011-11-21 14:02:32

标签: java antlr antlr3

ANTLR从语法文件生成java源代码。生成的源依赖于ANTLR类。

我可以使用ANTLR生成'干净'的java源码,它没有任何antlr依赖性吗?

如果没有,有人可以推荐一些性能优异且可以生成干净的java代码的java解析器吗?

2 个答案:

答案 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的一部分。