ja som to spachal nejako takto:
| FOR LOZAT VoidVyraz BCIARKA Vyraz BCIARKA VoidVyraz POZAT Prikaz
{
if($5.sig[0]!='Z')
yyerror("Ocakava sa log.vyraz pre FOR");
$$=(char*)malloc(200+strlen($3.kod)+strlen($5.kod)+strlen($7.kod)+strlen($9));
pn1=navestie++; /* zaciatok cyklu */
pn2=navestie++; /* za koncom cyklu */
sprintf($$, "\t%s", $3.kod); /*inicializacia*/
sprintf($$+strlen($$),"\t.%d\n", pn1); /*Navestie 1*/
sprintf($$+strlen($$),"%s", $5.kod); /*Vykonaj podmienku*/
sprintf($$+strlen($$),"\tifeq\t.%d\n", pn2); /*testuje ci je vysledok podmienky 0. ak hej, skace na koniec*/
sprintf($$+strlen($$),"%s", $9); /*Vykona obsah*/
sprintf($$+strlen($$),"%s", $7.kod); /*Vykona zvycajne "inkrementaciu"*/
sprintf($$+strlen($$),"\tgoto\t.%d\n", pn1); /*Navrat na zaciatok cyklu*/
sprintf($$+strlen($$),"\t.%d\n", pn2); /*Navestie 2*/
free($3.kod);
free($5.kod);
free($7.kod);
free($9);
}