[antlr-interest] Parsing a file
Yuri Tijerino
yuri at tijerino.net
Wed Nov 12 10:59:19 PST 2008
Thank you Sam,
This sounds like what I am looking for. However, I am having hard-time
understanding how those functions work. I have looked at the API, but
would appreciate an example of how to modify those. Let me know if you
come across any examples.
Yuri
Sam Harwell wrote:
> You can also implement your own recovery mechanism by overriding
> recover, recoverFromMismatchedSet, recoverFromMismatchedToken and/or the
> functions the base versions call. For a C/C++-style language, I suppose
> one might try to recover by skipping to a } or a ;. I haven't
> implemented the best error handling in my primary grammar yet; after I
> have I'll probably have more information about the results.
>
> Sam
>
> -----Original Message-----
> From: antlr-interest-bounces at antlr.org
> [mailto:antlr-interest-bounces at antlr.org] On Behalf Of Gavin Lambert
> Sent: Wednesday, November 12, 2008 12:19 PM
> To: Yuri Tijerino; antlr-interest at antlr.org
> Subject: Re: [antlr-interest] Parsing a file
>
> At 06:49 13/11/2008, Yuri Tijerino wrote:
> >> What I really want is change the default behavior and throw
> >> away the tokens that cause the exception and continue
> >> parsing the input after those tokens as if it was a new
> >> input. Is this even possible?
> [...]
> >Isn't this in a way what the Lexer does when trying to find
> >tokens based on EBNF rules? How do I duplicate that behavior
> >in the parser rules so that it won't stop trying to match the
> >rest of the input when a rule partially matches something and
> >it can't recover automagically?
>
> You could try turning backtracking on, and have as your final alt
> something that consumes a single token and then tries the standard
> recognition again. Something like this:
>
> start
> : ( somethingvalid | somethingelse | . )* EOF
> ;
>
>
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe:
> http://www.antlr.org/mailman/options/antlr-interest/your-email-addr
> ess
>
>
>
More information about the antlr-interest
mailing list