Hi Joe, This feature is not yet implemented in v3. I may be able to get it implemented for release 3.4, but there are some technical issues that prevent it from working in a few cases that make it difficult.
Sam -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Joe Lemmer Sent: Tuesday, April 12, 2011 6:59 AM To: [email protected] Subject: [antlr-interest] throwing non-antlr exceptions Hi there, I'd like to throw a Non-Antlr exception from one of my rules in a Parser. I'm using ANTLR v3 I've tried to find some documentation and came across some stuff for ANTLR v2 that says the following: " To specify that your parser (or tree parser rule) can throw a non-ANTLR specific exception, use the exceptions clause. For example, here is a simple parser specification with a rule that throws MyException: class P extends Parser; a throws MyException : A ; ANTLR generates the following for rule a: public final void a() throws RecognitionException, TokenStreamException, MyException { try { match(A); } catch (RecognitionException ex) { reportError(ex); consume(); consumeUntil(_tokenSet_0); } } " I have implemented my rule as follows: variable throws IdentifierIsKeywordException @after { if($i.text.equals("repeat")) { throw new IdentifierIsKeywordException("\"repeat\"is a keyword, and may not be used as an identifier.");} } : i=IDENTIFIER -> IDENTIFIER ; but in the java file that is created for my parser, the method relating to this rule still only throws the RecognitionException. I really want to throw this exception and for it to be propagated right down to the class that calls my Parser. I'd be grateful for any hints as to where I'm going wrong and how I can get the method in the parser for my variable rule to thow my IdentifierIsKeywordException. Many thanks in advance Joe List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address 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 [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.
