2

我刚开始研究ANTLR,并注意到ANTLRWorks 1.5生成了 Java 解析器文件,但抛出声明不完整。

语法文件:

grammar ASTDemo;

options { 
  output=AST; 
}

parse
    :   orexpr+
    |   andexpr+
    |   TAG ' ' parens
    |   TAG (parens andexpr)+
    |   together+
    ;

parens
    :   '(' TAG ')';

andexpr
    :   TAG (AND^ TAG)+;    

orexpr
    :   '[' TAG (OR^ TAG)+ ']';

together
    :   TAG (' '^ TAG)*
    ;

TAG     : ('FOO' | 'BAR');
OR  :   '|';
AND :   ': ';
WS  :   (' ')+;

这是包含不完整 throws 语句的示例行

public final ASTDemoParser.parse_return parse() throws  {

当前用于启动的 JDK 版本ANTLRWorks是 1.6x 以前有人见过吗?

不幸的是,这个编译错误ANTLRWorks不允许我在其中调试我的语法。每次我想测试时,我都被迫手动修复文件。

4

1 回答 1

0

我刚刚使用ANTLRWorks 1.5 rc1and编译了你的语法JDK 1.7.0.11

所有编译良好,并且提到的代码行如下所示:

public final ASTDemoParser.parse_return parse() throws RecognitionException {

它可能是任意的错误表现。尝试再次重新编译它,可能你已经尝试使用JDK 1.7.

于 2013-01-17T14:34:00.640 回答