-C Changes\sto\sa\scouple\sof\stest\sscripts\sto\shandle\sthe\stcl\s8.5\sversion\sof\s(file\sattributes\s-readonly)\son\smac.\s(CVS\s4472)
-D 2007-10-05T15:53:29
+C Changes\slemon\sso\sthat\sthe\sgenerated\sparser\sdoes\snot\saccept\sprior\sto\nseeing\sthe\sEOF\stoken.\s\sThis\sis\sa\slemon\schange\sonly\sand\sdoes\snot\neffect\sSQLite.\s\sTicket\s#2550.\s(CVS\s4473)
+D 2007-10-05T16:16:36
F Makefile.in 75b729d562e9525d57d9890ec598b38e1a8b02bc
F Makefile.linux-gcc 65241babba6faf1152bf86574477baab19190499
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
F test/zeroblob.test 7d1854ea79d048e023e5f2e38106a7e99a17435c
F tool/diffdb.c 7524b1b5df217c20cd0431f6789851a4e0cb191b
F tool/fragck.tcl 5265a95126abcf6ab357f7efa544787e5963f439
-F tool/lemon.c 1f8c0ee267cd8224bb6c979ca3b7cf36299c4c78
+F tool/lemon.c 5b243377708d5fadb7ed4795ad6b2e9c379e1f0f
F tool/lempar.c 8f998bf8d08e2123149c2cc5d0597cd5d5d1abdd
F tool/memleak.awk 4e7690a51bf3ed757e611273d43fe3f65b510133
F tool/memleak2.awk 9cc20c8e8f3c675efac71ea0721ee6874a1566e8
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
-P f795431c725d88bd4011f20cf63cac630de842f1
-R 979cdcdc8ea6ae6406c777ce279b3379
-U danielk1977
-Z c03fae9704ced5b927314f1297351417
+P a51946e66badab37cd54982265631bbc5e414f8e
+R 210c10367161878aed944ec38d45f171
+U drh
+Z 3fd649e0712ea99e40f908f4ebe8b274
struct rule {
struct symbol *lhs; /* Left-hand side of the rule */
char *lhsalias; /* Alias for the LHS (NULL if none) */
+ int lhsStart; /* True if left-hand side is the start symbol */
int ruleline; /* Line number for the rule */
int nrhs; /* Number of RHS symbols */
struct symbol **rhs; /* The RHS symbols */
** left-hand side */
for(rp=sp->rule; rp; rp=rp->nextlhs){
struct config *newcfp;
+ rp->lhsStart = 1;
newcfp = Configlist_addbasis(rp,0);
SetAdd(newcfp->fws,0);
}
}
if( ap->type!=REDUCE ) continue;
rp = ap->x.rp;
+ if( rp->lhsStart ) continue;
if( rp==rbest ) continue;
n = 1;
for(ap2=ap->next; ap2; ap2=ap2->next){