?? pl.c
字號:
#include "pll.h"
int main()
{
char c;
int i=0;
int mm;
char filename[20];
bool nextlev[keynum];
c='\0';
mm=0;
nerror=0;
printf("Inialize the environment...\n");
init();
printf("Input the source file(*.pl):\n");
scanf("%s",filename);
fin=fopen(filename,"r");
if(fin==NULL)
{
printf("can't open the source file:%s\n",filename);
return -1;
}
//fout=fopen("test3.out","w");
//if(fout==NULL)
// {
// printf("can not create the file!\n");
// return -1;
// }
printf("Create the table file(*.tab),Input file name:\n");
scanf("%s",filename);
ftab=fopen(filename,"w");
if(ftab==NULL)
{
printf("can not create the table file!\n");
return -1;
}
printf("Create the vmcode file(*.cod),Input file name:\n");
scanf("%s",filename);
fcode=fopen(filename,"w");
if(fcode==NULL)
{
printf("can not create file for the middle code.\n");
return -1;
}
cc=ll=0;
ch='\t';
getsymdo;
nextlev[period]=true;
printf("Pcc compiling...\n");
mm=senantic(0,0,nextlev);
printf("Pcc linking...\n");
if(nerror>1)
{
for(i=0;i<32;i++)
printf("**");
printf("\n");
printf("****************Too manay errors .can't execute.****************\n");
for(i=0;i<32;i++)
printf("**");
printf("\n");
return -1;
}
interpret_exec();
printf("Out put the middle code...\n");
for(mm=0;mm<cx;mm++)
{
if(code[mm].flag==0||code[mm].flag==1)
{
printf("%d %s %d %d\n",mm,charcode[code[mm].vc],code[mm].l,code[mm].a);
fprintf(fcode,"%d\t %s\t %d\t %d\n",mm,charcode[code[mm].vc],code[mm].l,code[mm].a);
}
else
{
printf("%d %s %d %f\n",mm,charcode[code[mm].vc],code[mm].l,code[mm].a);
fprintf(fcode,"%d\t %s\t %d\t %f\n",mm,charcode[code[mm].vc],code[mm].l,code[mm].a);
}
}
printf("Close the files:you can check them in directory.\n");
printf("Pcc finished!\n");
close();
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -