On 05/07/2016 18:12, Richard Hipp wrote:
Please try https://www.sqlite.org/src/info/2683b375ad129117 and verify
that the changes on trunk are working. Thanks.
Still doesn't work for me. The structure of the #ifdefs in `Parse` is:
#ifdef YYERRORSYMBOL
...
#elif defined(YYNOERRORRECOVERY)
...
#else /* YYERRORSYMBOL is not defined */
...
#endif
Your first check-in modifies the first branch, your second check-in the second
branch, resulting in:
#ifdef YYERRORSYMBOL
...
#ifndef YYNOERRORRECOVERY
yypParser->yyerrcnt = -1;
#endif
...
#elif defined(YYNOERRORRECOVERY)
...
#ifndef YYNOERRORRECOVERY
yypParser->yyerrcnt = -1;
#endif
...
#else /* YYERRORSYMBOL is not defined */
...
#endif
The change to the second branch has no effect because YYNOERRORRECOVERY is
always defined. My patch modifies the third branch ("YYERRORSYMBOL is not
defined"). This fixes code that defines neither YYERRORSYMBOL nor
YYNOERRORRECOVERY. I think the code should look like this:
#ifdef YYERRORSYMBOL
...
#ifndef YYNOERRORRECOVERY
yypParser->yyerrcnt = -1;
#endif
...
#elif defined(YYNOERRORRECOVERY)
...
#else /* YYERRORSYMBOL is not defined */
...
yypParser->yyerrcnt = -1;
...
#endif
(Another check for YYNOERRORRECOVERY isn't really needed in the third branch.
It will always be undef.)
Nick
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users