From: drh <> Date: Fri, 27 Aug 2021 11:26:37 +0000 (+0000) Subject: Patch lemon to fix "error" token handling, according ot X-Git-Tag: version-3.37.0~268 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6d77a2948e86f8975c1e2ff63580dc9dcc806ee4;p=thirdparty%2Fsqlite.git Patch lemon to fix "error" token handling, according ot [forum:/forumpost/e680f42f53090061|forum post e680f42f53090061]. FossilOrigin-Name: 106b5e5355a3836a9756333e6dcbb13f0878a5352dab00973b8f0900879bd724 --- diff --git a/manifest b/manifest index 7e071f28fb..bd49b608f7 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Add\sthe\s--safe\sto\sthe\sCLI.\s\sAlso\sthe\s--nonce\soption\sand\sthe\s.nonce\scommand. -D 2021-08-26T18:31:39.329 +C Patch\slemon\sto\sfix\s"error"\stoken\shandling,\saccording\sot\n[forum:/forumpost/e680f42f53090061|forum\spost\se680f42f53090061]. +D 2021-08-27T11:26:37.146 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -1840,8 +1840,8 @@ F tool/genfkey.test b6afd7b825d797a1e1274f519ab5695373552ecad5cd373530c63533638a F tool/getlock.c f4c39b651370156cae979501a7b156bdba50e7ce F tool/index_usage.c f62a0c701b2c7ff2f3e21d206f093c123f222dbf07136a10ffd1ca15a5c706c5 F tool/kvtest-speed.sh 4761a9c4b3530907562314d7757995787f7aef8f -F tool/lemon.c a5acddd3eec6a388872aae6efc7563336348a9c45e5563642f77e8e3a50e859d -F tool/lempar.c 757e4ec699b99e0b7e78ffd8ec2063d9fa198b9102d2009dbe08369dc5775dcb +F tool/lemon.c dabeb66806057235fdca34d77e077a554396d8b8c2e1982dfd292b9dba3be13c +F tool/lempar.c 7d4b1c863a6c7f75f0a04bfa7000b7388898c9ee9c906adc675bc40590ad0abe F tool/libvers.c caafc3b689638a1d88d44bc5f526c2278760d9b9 F tool/loadfts.c c3c64e4d5e90e8ba41159232c2189dba4be7b862 F tool/logest.c 11346aa019e2e77a00902aa7d0cabd27bd2e8cca @@ -1922,7 +1922,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P c7f0813cabf9d8ab367bead5ba8cf20132b8bb9274d8e47b76ad66a10517dd2a -R 96ba0fa0400f19ae37fbb446bcbce223 +P c76870cb1a8e2e1389ad864c51b9f596dff21df8bb58f438f0a2cacfa63b22a4 +R c18392e64d5f9a64cf0c5ede682cfbfb U drh -Z c0d94ba9195f86107b44ea4e3e28e613 +Z 30473933374c4aa8bce1a958333c8a4a diff --git a/manifest.uuid b/manifest.uuid index bf8ee8bbc8..25d36a2c85 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -c76870cb1a8e2e1389ad864c51b9f596dff21df8bb58f438f0a2cacfa63b22a4 \ No newline at end of file +106b5e5355a3836a9756333e6dcbb13f0878a5352dab00973b8f0900879bd724 \ No newline at end of file diff --git a/tool/lemon.c b/tool/lemon.c index 75fc7aa2fb..edf17cae74 100644 --- a/tool/lemon.c +++ b/tool/lemon.c @@ -3571,7 +3571,9 @@ PRIVATE int compute_action(struct lemon *lemp, struct action *ap) /* Since a SHIFT is inherient after a prior REDUCE, convert any ** SHIFTREDUCE action with a nonterminal on the LHS into a simple ** REDUCE action: */ - if( ap->sp->index>=lemp->nterminal ){ + if( ap->sp->index>=lemp->nterminal + && (lemp->errsym==0 || ap->sp->index!=lemp->errsym->index) + ){ act = lemp->minReduce + ap->x.rp->iRule; }else{ act = lemp->minShiftReduce + ap->x.rp->iRule; diff --git a/tool/lempar.c b/tool/lempar.c index bbb0cc367d..d5ebe69424 100644 --- a/tool/lempar.c +++ b/tool/lempar.c @@ -985,10 +985,6 @@ void Parse( yyact = yy_find_reduce_action(yypParser->yytos->stateno, YYERRORSYMBOL); if( yyact<=YY_MAX_SHIFTREDUCE ) break; - if( yyact>=YY_MIN_REDUCE && yyRuleInfoNRhs[yyact-YY_MIN_REDUCE] ){ - yyact -= YY_MIN_REDUCE - YY_MIN_SHIFTREDUCE; - break; - } yy_pop_parser_stack(yypParser); } if( yypParser->yytos <= yypParser->yystack || yymajor==0 ){