pl0c.c
#include <stdio.h>
#include "pl0c.h"
#include "string.h"
/* 盾瞥峇佩扮聞喘議媚 */
#define stacksize 500
int main()
{
bool nxtlev[symnum];
init(); /* 兜兵晒 */
fas=fopen("fas.tmp","w");
fa1=fopen("fa1.tmp","w");
printf("Input file? ");
fprintf(fa1,"Input file? ");
scanf("%s",fname); /* 補秘猟周兆 */
fin=fopen(fname,"r");
if(fin)
{
fprintf(fa1,"%s\n",fname);
printf("List object code?(Y/N)"); /* 頁倦補竃倡亭字旗鷹 */
scanf("%s",fname);
listswitch=(fname[0]=='y'||fname[0]=='Y');
printf("List symbol table?(Y/N)"); /* 頁倦補竃兆忖燕 */
scanf("%s",fname);
tableswitch=(fname[0]=='y'||fname[0]=='Y');
err=0;
cc=cx=ll=0;
ch=' ';
kk=al-1;
if(-1!=getsym())
{
fa=fopen("fa.tmp","w");
fa2=fopen("fa2.tmp","w");
addset(nxtlev,declbegsys,statbegsys,symnum);
nxtlev[period]=true;
if(-1==block(0,0,nxtlev)) /* 距喘園咎殻會 */
{
fclose(fa);
fclose(fa1);
fclose(fin);
printf("\n");
return 0;
}
fclose(fa);
fclose(fa1);
if(sym!=period)error(9);
if(err==0)interpret(); /* 距喘盾瞥峇佩殻會 */
else
{
printf("Errors in pl/0 program");
}
}
fclose(fin);
}
else
{
printf("Can't open file!\n");
fprintf(fa1,"Can't open file!\n");
fclose(fa1);
}
fclose(fas);
printf("\n");
return 0;
}
|