Проектировании транслятора (язык проектирования Си++) с языка Си++ на язык Ассемблер (Лабораторная работа № 1-4), страница 7

                                               if (tab[n].terms[0]>1) fprintf(error2,"Syntax error: missing identifier or constant\n");

                                               else if (tab[n].terms[0]==0) fprintf(error2,"Syntax error: missing %s\n", Words[tab[n].terms[2]]);

                                               else fprintf(error2,"Syntax error: missing %s\n", Razdel[tab[n].terms[2]]);

                                    else

                                               if (a==0) fprintf(error2,"Syntax error: %s\n", Words[c]);

                                               else if (a==1) fprintf(error2,"Syntax error: %s\n", Razdel[c]);

                                               else if (a==2) fprintf(error2,"Syntax error: %s\n", Var.getname(b,c));

                                               else fprintf(error2,"Syntax error: %s\n", Con.getconst(b,c));

                        }

            } while (n && !err && !feof(in2)); // пока текущий переход не нулевой, нет ошибки или конца файла

}

void init()

{

            tab[1].terms[0]=0; tab[1].terms[1]=0; tab[1].terms[2]=2;

            tab[1].n=1; tab[1].jump=2; tab[1].accept=1; tab[1].stack=0; tab[1].ret=0; tab[1].err=1;

            tab[2].terms[0]=1; tab[2].terms[1]=0; tab[2].terms[2]=7;

            tab[2].n=1; tab[2].jump=3; tab[2].accept=1; tab[2].stack=0; tab[2].ret=0; tab[2].err=1;

            tab[3].terms[0]=1; tab[3].terms[1]=0; tab[3].terms[2]=8;

            tab[3].n=1; tab[3].jump=4; tab[3].accept=1; tab[3].stack=0; tab[3].ret=0; tab[3].err=1;

            tab[4].terms[0]=1; tab[4].terms[1]=0; tab[4].terms[2]=9;

            tab[4].n=1; tab[4].jump=5; tab[4].accept=1; tab[4].stack=0; tab[4].ret=0; tab[4].err=1;

            tab[5].terms[0]=0; tab[5].terms[1]=0; tab[5].terms[2]=0; tab[5].terms[3]=2; tab[5].terms[6]=0; tab[5].terms[7]=0; tab[5].terms[8]=1; tab[5].terms[9]=1; tab[5].terms[10]=0; tab[5].terms[11]=9; tab[5].terms[12]=1; tab[5].terms[13]=0; tab[5].terms[14]=11;

            tab[5].n=5; tab[5].jump=7; tab[5].accept=0; tab[5].stack=1; tab[5].ret=0; tab[5].err=1;

            tab[6].terms[0]=1; tab[6].terms[1]=0; tab[6].terms[2]=10;

            tab[6].n=1; tab[6].jump=0; tab[6].accept=1; tab[6].stack=0; tab[6].ret=1; tab[6].err=1;

            tab[7].terms[0]=0; tab[7].terms[1]=0; tab[7].terms[2]=0;

            tab[7].n=1; tab[7].jump=10; tab[7].accept=0; tab[7].stack=0; tab[7].ret=0; tab[7].err=0;

            tab[8].terms[0]=2; tab[8].terms[3]=0; tab[8].terms[4]=0; tab[8].terms[5]=1; tab[8].terms[6]=1; tab[8].terms[7]=0; tab[8].terms[8]=9; tab[8].terms[9]=1; tab[8].terms[10]=0; tab[8].terms[11]=11;

            tab[8].n=4; tab[8].jump=14; tab[8].accept=0; tab[8].stack=0; tab[8].ret=0; tab[8].err=0;

            tab[9].terms[0]=1; tab[9].terms[1]=0; tab[9].terms[2]=11;

            tab[9].n=1; tab[9].jump=16; tab[9].accept=0; tab[9].stack=0; tab[9].ret=0; tab[9].err=1;

            tab[10].terms[0]=0; tab[10].terms[1]=0; tab[10].terms[2]=0;

            tab[10].n=1; tab[10].jump=11; tab[10].accept=1; tab[10].stack=0; tab[10].ret=0; tab[10].err=1;

            tab[11].terms[0]=2;

            tab[11].n=1; tab[11].jump=17; tab[11].accept=0; tab[11].stack=1; tab[11].ret=0; tab[11].err=1;

            tab[12].terms[0]=1; tab[12].terms[1]=0; tab[12].terms[2]=11;

            tab[12].n=1; tab[12].jump=13; tab[12].accept=1; tab[12].stack=0; tab[12].ret=0; tab[12].err=1;

            tab[13].terms[0]=0; tab[13].terms[1]=0; tab[13].terms[2]=0; tab[13].terms[3]=2; tab[13].terms[6]=0; tab[13].terms[7]=0; tab[13].terms[8]=1; tab[13].terms[9]=1; tab[13].terms[10]=0; tab[13].terms[11]=9; tab[13].terms[12]=1; tab[13].terms[13]=0; tab[13].terms[14]=11;

            tab[13].n=5; tab[13].jump=7; tab[13].accept=0; tab[13].stack=0; tab[13].ret=0; tab[13].err=1;