Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix a bug in lemon in computation of which non-terminals can generate an empty string. This bug and the fix make absolutely no difference for the grammar used by SQLite, but it can make a difference when lemon is used in other grammars. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
ce32775b232da894343f62deefaf19b0 |
User & Date: | drh 2012-01-07 15:17:18.449 |
Context
2012-01-08
| ||
00:54 | Fix harmless compiler warning seen with MSVC. (check-in: 9612bcd648 user: mistachkin tags: trunk) | |
2012-01-07
| ||
15:17 | Fix a bug in lemon in computation of which non-terminals can generate an empty string. This bug and the fix make absolutely no difference for the grammar used by SQLite, but it can make a difference when lemon is used in other grammars. (check-in: ce32775b23 user: drh tags: trunk) | |
2012-01-06
| ||
13:58 | Add missing finish_test to the end of the zerodamage.test module. Disable the zerodamage module if virtual tables are omitted from the build. (check-in: d2a5685b5e user: drh tags: trunk) | |
Changes
Changes to tool/lemon.c.
︙ | ︙ | |||
682 683 684 685 686 687 688 | /* First compute all lambdas */ do{ progress = 0; for(rp=lemp->rule; rp; rp=rp->next){ if( rp->lhs->lambda ) continue; for(i=0; i<rp->nrhs; i++){ | | > | | 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 | /* First compute all lambdas */ do{ progress = 0; for(rp=lemp->rule; rp; rp=rp->next){ if( rp->lhs->lambda ) continue; for(i=0; i<rp->nrhs; i++){ struct symbol *sp = rp->rhs[i]; assert( sp->type==NONTERMINAL || sp->lambda==LEMON_FALSE ); if( sp->lambda==LEMON_FALSE ) break; } if( i==rp->nrhs ){ rp->lhs->lambda = LEMON_TRUE; progress = 1; } } }while( progress ); |
︙ | ︙ |