In these cases, you'll want to override the Recover method in your generated grammar and throw a new exception (derived from RuntimeException, not RecognitionException) containing better information about the cause of the error. In .NET I throw an OperationCanceledException. This should work for all types of grammars.
This uses an unchecked but appropriate exception for the situation. Allowing user-specified checked exceptions in a mix of generated and library code is unnecessary and impractical. Sam From: Wujek Srujek [mailto:wujek.sru...@googlemail.com] Sent: Monday, September 12, 2011 10:40 AM To: Sam Harwell Subject: Re: [antlr-interest] ANTLRWorks 2 (for ANTLR v4) Hi. I think the @rulecatch has to be specified per rule, which makes it at least cumbersome for pretty much all grammars. Please correct me if I am wrong. How about the lexer? Do you mean failing on first error is useless? I think it is not - [removed example before sending to public list]. I don't want any recovery here, with some artificial tokens inserted for me - I want the whole [.] to fail. As I was not the only one who searched for an answer (the ANTLR site has a dedicated site for it) I guess it is not so uncommon. I agree that recovery is nice in some cases, but not in all of them. Thank you for your answer. wujek On Mon, Sep 12, 2011 at 5:26 PM, Sam Harwell <sharw...@pixelminegames.com> wrote: This is easy for a parser. Just add the following to your grammar. @rulecatch{} Aside from answering the single question "In the input recognized by this grammar? (yes/no)", this is a rather useless thing to do. There are many, many other ways to approach error handling that are more appropriate for any other task. Sam -----Original Message----- From: antlr-interest-boun...@antlr.org [mailto:antlr-interest-boun...@antlr.org] On Behalf Of Wujek Srujek Sent: Monday, September 12, 2011 4:18 AM To: antlr-interest Interest Subject: Re: [antlr-interest] ANTLRWorks 2 (for ANTLR v4) I am new to ANTLR3 and haven't yet got a lot of experience with it. The one thing that is bugging me, though, is how hard it was to make sure ANTLR doesn't perform any recovery and fails on first error with checked exceptions. And it involved a nasty trick with sneaky throwing... I would love to see it made easier. wujek 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-inter...@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.