我刚刚开始研究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 {
用于启动ANTLRWorks
的JDK的当前版本是1.6x
有没有人见过这个?
不幸的是,这个编译错误ANTLRWorks
不允许我在其中调试我的语法。每次我想测试时,我都被迫手动修复文件。
答案 0 :(得分:0)
我刚刚使用ANTLRWorks 1.5 rc1
和JDK 1.7.0.11
编译了你的语法。
所有编译良好,并提到的代码行如下:
public final ASTDemoParser.parse_return parse() throws RecognitionException {
可能是任意的bug表现。尝试重新编译它,可能您尝试使用JDK 1.7
。