[antlr-interest] Parsing a file
Sam Harwell
sharwell at pixelminegames.com
Wed Nov 12 10:27:19 PST 2008
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