Diff for /gforth/vmgen-ex/mini.y between versions 1.2 and 1.3

version 1.2, 2001/04/29 11:48:21 version 1.3, 2002/06/02 17:02:56
Line 94  stats: stats stat ';' Line 94  stats: stats stat ';'
   
 stat: IF expr THEN { gen_zbranch(&vmcodep, 0); $<instp>$ = vmcodep; }  stat: IF expr THEN { gen_zbranch(&vmcodep, 0); $<instp>$ = vmcodep; }
       stats { $<instp>$ = $<instp>4; }         stats { $<instp>$ = $<instp>4; } 
       elsepart END IF { BB_BOUNDARY; $<instp>7[-1] = vmcodep; }        elsepart END IF { BB_BOUNDARY; $<instp>7[-1] = (Inst)vmcodep; }
     | WHILE   { BB_BOUNDARY; $<instp>$ = vmcodep; }       | WHILE   { BB_BOUNDARY; $<instp>$ = vmcodep; } 
       expr DO { gen_zbranch(&vmcodep, 0); $<instp>$ = vmcodep; }        expr DO { gen_zbranch(&vmcodep, 0); $<instp>$ = vmcodep; }
       stats END WHILE { gen_branch(&vmcodep, $<instp>2); $<instp>5[-1] = vmcodep; }        stats END WHILE { gen_branch(&vmcodep, $<instp>2); $<instp>5[-1] = (Inst)vmcodep; }
     | IDENT BECOMES expr        { gen_storelocal(&vmcodep,  var_offset($1)); }      | IDENT BECOMES expr        { gen_storelocal(&vmcodep,  var_offset($1)); }
     | PRINT expr                { gen_print(&vmcodep); }      | PRINT expr                { gen_print(&vmcodep); }
     | expr                      { gen_drop(&vmcodep); }      | expr                      { gen_drop(&vmcodep); }
     ;      ;
   
 elsepart: ELSE { gen_branch(&vmcodep, 0); $<instp>$ = vmcodep; $<instp>0[-1] = vmcodep; }  elsepart: ELSE { gen_branch(&vmcodep, 0); $<instp>$ = vmcodep; $<instp>0[-1] = (Inst)vmcodep; }
           stats { $$ = $<instp>2; }            stats { $$ = $<instp>2; }
         | { $$ = $<instp>0; }          | { $$ = $<instp>0; }
         ;          ;

Removed from v.1.2  
changed lines
  Added in v.1.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>