我刚开始研究 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
不允许我在其中调试我的语法。每次我想测试时,我都不得不手动修复文件。
最佳答案
我刚刚使用 ANTLRWorks 1.5 rc1
和 JDK 1.7.0.11
编译了您的语法。
所有编译都很好,提到的代码行如下所示:
public final ASTDemoParser.parse_return parse() 抛出 RecognitionException {
它可能是任意错误表现。再次尝试重新编译,可能是您尝试使用JDK 1.7
。
关于java - ANTLRWorks 生成解析器声明抛出但在 java 文件中没有其他内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14381146/