|Yacc error recovery... email@example.com (1996-10-03)|
|Re: Yacc error recovery... firstname.lastname@example.org (1996-10-06)|
|Re: Yacc error recovery... email@example.com (1996-10-12)|
|Re: Yacc error recovery... firstname.lastname@example.org (1996-10-24)|
|Date:||3 Oct 1996 22:55:54 -0400|
|Keywords:||yacc, errors, question|
The normal way for a yacc-generated parser to recover using an ``error
production'' of the form A -> error b is to keep reading tokens until
a 'b' nonterminal is encountered, and then reduce by the production.
This is not very satisfactory, since at times it would be nice to either
insert tokens into the input stream, or even just have the input stream
read up to, but not including 'b'. For example, 'b' could be the non-terminal
'}', making it possible for the error recovery to read only until the end
of the enclosing scope in a C-like language.
Is there some yacc method for doing more flexible error recovery, preferrably
one that works across the various compatible parser generators?
I hate having a compiler fumble around after one parse error that could have
been easily recovered from.
Return to the
Search the comp.compilers archives again.