Синтаксический анализатор. Написание синтаксического анализатора для языка ADA на любом доступном языке программирования., страница 6

file1=fopen("Ident.txt","w");

fclose(file);

fclose(file1);

ListBox1->Clear(); ListBox4->Clear(); ListBox5->Clear();

char zxz[100]; //Статический буфер строки

int count = Memo1->Lines->Count;

//Memo1->Lines->Strings[0];

for (int i=0;i<count;i++)

{

strcpy(zxz,Memo1->Lines->Strings[i].c_str());

if (!comment(zxz))

prov(zxz);

}       

}

//--------------------------------------------------------------------------void __fastcall TForm1::N8Click(TObject *Sender)

{

Form1->Edit2->Text="";

int yy=0;

int i,j; //значения на ленте

int mag; //значене в магазине

int count=0; //номер симлова на ленте

push(0);

push(54);

//Edit2->Text=FloatToStrF(que[18].i,ffFixed,7,4);

while (count<=ique)

{

mag=peek();

switch (mag)

{

case 0: //  #

if (count==ique)

{

dop=1;

goto met4;

}

case 1:   //DIA

if (que[count].i==20&&que[count].j==0)

{

pop();

push(2); push(64); push(2);

break;

}

if (que[count].i==20&&que[count].j==1)

{

pop();

push(2); push(64); push(2);

break;

}

if (que[count].i==40)

{

pop();

push(2); push(64); push(2);

break;

}

if (que[count].i==30)

{

pop();

push(2); push(64); push(2);

break;

}

dop=0;

goto met4;

case 2:                //PR_VR

if (que[count].i==20&&que[count].j==0)

{

pop();

push(6); push(4); push(3);

break;

}

if (que[count].i==20&&que[count].j==1)

{

pop();

push(6); push(4); push(3);

break;

}

if (que[count].i==10&&que[count].j==2)

{

pop();

push(6); push(4); push(3);

break;

}

if (que[count].i==40)

{

pop();

push(6); push(4); push(3);

break;

}

if (que[count].i==30)

{

pop();

push(6); push(4); push(3);

break;

}

dop=0;

goto met4;

case 3:                 //CK2

if (que[count].i==20&&que[count].j==0)

{

pop();

count++; //сдвиг по ленте

break;

}

if (que[count].i==20&&que[count].j==1)

{

pop();

count++;

break;

}

if (que[count].i==10&&que[count].j==2)

{

pop();

count++;

break;

}

if (que[count].i==40)

{

pop();

break;

}

if (que[count].i==30)

{

pop();

break;

}

dop=0;

goto met4;

case 4:             //SLAG

if (que[count].i==40)

{

pop();

push(9); push(11);

break;

}

if (que[count].i==30)

{

pop();

push(9); push(11);

break;

}

dop=0;

goto met4;

/*case 5:                         //SP2

if (que[count].i==20&&que[count].j==11)     ///add  ;

{

pop();    break;

}

if (que[count].i==20&&que[count].j==0)

{

pop();

push(6); push(4); push(7);

break;

}

if (que[count].i==20&&que[count].j==1)

{

pop();

push(6); push(4); push(7);

break;

}

if (que[count].i==20&&que[count].j==11)

{

pop();

break;

}

dop=0;

goto met4;  */

case 6:                      //SP__2

if (que[count].i==20&&que[count].j==0)

{

pop();

push(6); push(4); push(7);

break;

}

if (que[count].i==20&&que[count].j==1)

{

pop();

push(6); push(4); push(7);

break;

}

if (que[count].i==20&&que[count].j==11)     ///add  ;

{

pop();    break;

}

if (que[count].i==20&&que[count].j==7)

{

pop();

break;

}

if (que[count].i==20&&que[count].j==8)

{

pop();   break;

}

if (que[count].i==20&&que[count].j==16)

{

pop();  break;

}

if (que[count].i==20&&que[count].j==9)

{

pop();  break;

}

if (que[count].i==20&&que[count].j==18)

{

pop();   break;

}

if (que[count].i==20&&que[count].j==5)

{

pop();  break;

}

if (que[count].i==20&&que[count].j==19)

{

pop();   break;

}

if (que[count].i==20&&que[count].j==6)

{

pop();   break;

}

if (que[count].i==20&&que[count].j==20)

{

pop();  break;

}

if (que[count].i==20&&que[count].j==11)

{

pop();   break;

}

if (que[count].i==20&&que[count].j==22)

{

pop();   break;

}

if (que[count].i==20&&que[count].j==4)

{

pop();  break;

}