确定的Antlr参考 - 第3章和AntlrWorks

时间:2013-03-12 01:36:47

标签: antlr3 antlrworks

我是Antlr的新手,我的设置如下:Windows 7,Java JDK 1.7.0_17,AntlrWorks 1.5,Antlr 3.5。

AntlrWorks帮助 - 关于显示以下信息:

ANTLRWorks 1.5
ANTLR 3.5
StringTemplate v3 3.2.1
StringTemplate v4 4.0.7-SNAPSHOT
Java 1.7.0_17(Oracle Corporation)

最终Antlr参考书的第3章介绍了表达式评估的示例语法(Expr.g),我从本书PDF版本的超链接中下载了该语法。

本书建议使用AntlrWorks,但是当我在AntlrWorks中生成代码(Ctrl + Shift + G)时,它会产生没有“throws”子句的代码。

例如,在AntlrWorks中生成以下内容:

// $ANTLR start "prog"
// C:\\Users\\Mark\\Documents\\output\\Expr.g:12:1: prog : ( stat )+ ;
public final void prog() throws  {
    try {

请注意throws关键字后的缺失代码...

如果我使用此命令行从命令提示符生成:
    java -cp antlr-3.5-complete.jar org.antlr.Tool Expr.g

我得到了这个输出:

// $ANTLR start "prog"
// Expr.g:12:1: prog : ( stat )+ ;
public final void prog() throws RecognitionException {
    try {

我的问题是 - 如何让AntlrWorks生成相同的代码?

1 个答案:

答案 0 :(得分:2)

这是ANTLRWorks 1.5中的已知问题,已在下一版本中得到解决。

#5: ANTLRworks fails to generate proper Java Code