[antlr-interest] Parsing a file
Yuri Tijerino
yuri at tijerino.net
Wed Nov 12 10:56:07 PST 2008
Thanks Gavin,
Unfortunately my grammar is about 6500 lines long and already takes
about 1 minute to generate the lexer and parser with backtracking turned
on. So as soon as I add the wildcard to the main loop, I get all kinds
of "createLookaheadDFA(Unknown Source): could not even do K=1 for
decision..." errors during generation.
Yuri
Gavin Lambert wrote:
> 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
> ;
>
>
More information about the antlr-interest
mailing list