为什么我的ANTLR构建Ant任务失败并且“无法确定生成的类”?

我正在尝试为Ant使用ANTLR3任务 ,但是我得到了“无法确定生成的类”构建失败消息。

一项快速研究表明,许多人遇到了同样的问题,没有提供解决方案(见下面的链接)。

有人可以提出一个不使用常规Java Ant任务的解决方案吗?

外部链接:

  • http://www.antlr.org/pipermail/antlr-interest/2009-November/036795.html
  • http://www.antlr.org/pipermail/antlr-interest/2006-July/016870.html
  • http://palove.kadeco.sk/itblog/posts/40

Ant 1.8.2(最新版本)中包含的antlr任务似乎依赖于ANTLR 2.7.2(在$ANT_HOME/lib/ant-antlr.pom并使用$ANT_HOME/lib/ant-antlr.jar

任务正在执行的是扫描目标文件以查找与^class (.*) extends .*匹配的行,其中第一个匹配组将用作生成文件的名称。 这一小段语法似乎已经在ANTLR 3.x中被删除,或者至少是可选的,因为我能够使用你提到的常规java任务来生成解析器而不使用它。

在http://antlr.org/的首页下面的“文件共享”标题是Ant的ANTLR v3任务的链接,但不幸的是它似乎并不是我希望的那种替代品。 。 实际上,它似乎相当复杂,所以我坚持使用普通的java任务。