Gavin Lambert wrote: > 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.) > > > List: http://www.antlr.org/mailman/listinfo/antlr-interest > Unsubscribe: > http://www.antlr.org/mailman/options/antlr-interest/your-email-address > Another way is:
cu: X Y Z ; catch [RecognitionException re] { // my code throw new MyException(re); } Which you can use to intercept the standard recognition error and do something special or throw a different exception for a particular rule. Jim List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "il-antlr-interest" group. To post to this group, send email to il-antlr-interest@googlegroups.com To unsubscribe from this group, send email to il-antlr-interest+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en -~----------~----~----~----~------~----~------~--~---