[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