1

我有一个树解析器,它对我的​​解析器生成的 AST 进行语义分析。它有一个声明如下的规则:

transitionDefinition throws WorkflowStateNotFoundException: /* ... */

这编译得很好,并且与ANTLR Wiki上的规则语法相匹配, 但我的异常从未声明过,因此 Java 编译器会抱怨未声明的异常。

./tool/src/main/antlr3/org/antlr/grammar/v3/ANTLRv3.g表明它正在构建一棵树(但如果它是 ANTLR 3.2 使用的 v2 或 v3 语法,我实际上并不肯定):

throwsSpec
    :   'throws' id ( ',' id )* -> ^('throws' id+)
    ;

我知道我可以使它成为运行时异常,但我想使用我的异常层次结构。我做错了什么还是该语法应该起作用?

4

1 回答 1

1

看起来这是一个已知问题:http ://www.antlr.org/jira/browse/ANTLR-100

不幸的是,因为我正在尝试做同样的事情。

于 2010-06-11T23:28:09.953 回答