On 4/25/17, Kelvin Sherlock <ksherl...@gmail.com> wrote:
>
> I believe the issue is line 4164 which should be … = LEMON_TRUE.  Currently,
> when i=0, all rules will erroneously be optimized out.
>
>   4157    /* Mark rules that are actually used for reduce actions after all
>   4158    ** optimizations have been applied
>   4159    */
>   4160    for(rp=lemp->rule; rp; rp=rp->next) rp->doesReduce = LEMON_FALSE;
>   4161    for(i=0; i<lemp->nxstate; i++){
>   4162      for(ap=lemp->sorted[i]->ap; ap; ap=ap->next){
>   4163        if( ap->type==REDUCE || ap->type==SHIFTREDUCE ){
>   4164          ap->x.rp->doesReduce = i;
>   4165        }
>   4166      }
>   4167    }
>

Well done.  I fear that you have had to learn more about Lemon and
LALR(1) parsing than perhaps you really ever wanted to know.  Your
efforts are greatly appreciated.
-- 
D. Richard Hipp
d...@sqlite.org
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to