[antlr-interest] Declaring exceptions in rules
Gavin Lambert
antlr at mirality.co.nz
Tue Apr 21 05:04:48 PDT 2009
At 17:08 21/04/2009, Christof Lutteroth wrote:
>I am trying to get ANTRL 3.1.3 to generate a method that
declares
>an exception.
>For example, I want rule compilationUnit (from the Java grammar
in
>the grammars section of the ANTLR website) to throw an
Exception:
>
>compilationUnit throws Exception
> : ( (annotations)?
> packageDecl=packageDeclaration
> )?
> (importDeclaration)*
> (typeDeclaration)*
> ;
>
>So now I would expect that the compilationUnit() method that is
>generated would declare "throws Exception", but:
>
> public final void compilationUnit() throws
>RecognitionException {
>
>Why is the Exception declaration not generated?
Because while that's accepted by the ANTLR grammar structure, it's
a feature that isn't currently implemented. (There are a few more
things like that.)
For now, you'll need to throw a RuntimeError-derived class
instead. (Since IIRC you don't need to declare those.)
More information about the antlr-interest
mailing list