[antlr-interest] Throw my own exception
Christian Mayer
christian.mayer at bsse.ethz.ch
Thu Dec 17 01:23:25 PST 2009
Hi,
I would like to throw my own exception (i.e. no subclass of
RecognitionException) in a tree parser rule.
>From the rule specification I would assume that this is possible via the
throws directive:
/** rule comment */
access-modifier rule-name[«arguments»] returns [«return-values»] throws
name1, name2, ...
options {...}
scope {...}
scope global-scope-name, ..., global-scope-nameN;
@init {...}
@after {...}
: «alternative-1» -> «rewrite-rule-1»
| «alternative-2» -> «rewrite-rule-2»
...
| «alternative-n» -> «rewrite-rule-n»
;
catch [«exception-arg-1»] {...}
catch [«exception-arg-2»] {...}
finally {...}
I tried the following:
crlProgram throws ValidationException
@after{
Validator v = new Validator(model);
v.validate();
}
: statement*;
I do not get an error when generating the parser but the generated code
throws only RecognitionException:
public final GrammarParser.crlProgram_return crlProgram() throws
RecognitionException {...
While I would expect:
public final CcrnGrammarParser.crlProgram_return crlProgram() throws
RecognitionException, ValidationException {...
Does anybody know how to get this work?
Thanks and best,
Chris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20091217/a8b410ab/attachment.html
More information about the antlr-interest
mailing list