www.pudn.com > pl0_compiler_c.rar > pc.cpp


// PL0 Compiler 
////////////////////////////////////////////////////////////////////// 
#include  
#include  
#include  
#include "pl0.h" 
 
void main(int argc,char *argv[]) 
{ 
	char filename[256]; 
	int endtype; 
	printf("Welcome to 35060413 dongzy's Pl0 world!\n"); 
	if (argc!=2) 
	{ 
		printf("请输入源文件路径:"); 
		gets(filename); 
	} 
	else 
		strcpy(filename,argv[1]); 
 
	CPlCompiler pl(filename); 
	char ch; 
	if (pl.FileEmpty()) 
	{ 
		printf("对不起,没有找到文件!\n"); 
		return; 
	} 
 
	printf("List the source file?(y/n): "); 
	ch=getch(); 
	while (ch!='y' && ch!='n')  
		  ch=getch(); 
	printf("%c\n",ch); 
	if (ch=='y') 
		pl.DisplaySrcfile(); 
    printf("---PL/0 Compiling start---\n"); 
	pl.Compile(); 
	if (pl.ErrorNumber()) 
	{ 
		pl.DisplayErrors(); 
		printf("Continue?(y/n): "); 
		ch=getch(); 
		while (ch!='y' && ch!='n') ch=getch(); 
		printf("%c\n",ch); 
		if (ch=='n') return; 
	} 
 
	printf("---PL/0 Compiling finished---\nList object code?(y/n): "); 
	ch=getch(); 
	while (ch!='y' && ch!='n') ch=getch(); 
	printf("%c\n",ch); 
	if (ch=='y') pl.ListCode(); 
	printf("start\n"); 
	pl.Interpret(); 
	scanf("%d",&endtype); 
}