⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 PL语言到中间代码的编译程序
💻 CPP
字号:
#include "common.h"

SymbolItem *CurSymbol;

void main(int argc,char **argv)
{
	char src_filename[FILENAMESIZE];
	FILE *src_file;
	char *src_filename_point;

	if(argc>1)
		strcpy(src_filename,argv[1]);//字符串的内容复制到另一字符串
	else
	{
		printf("Please input the source file name : ");
		scanf("%s",src_filename);
	}
	if(!(src_file=fopen(src_filename,"rb")))//fopen打开文件,使程序能对文件读写,rb是打开文件的模式
	{
		printf("Error : source file %s not found\n",src_filename);
		exit(1);
	}
	GetSymbol(src_file);

	EnterBlock();
	InitNametab();
	
	CurSymbol=Symbols;
	Program();//生成四元式
	
	QuitBlock();

	for(src_filename_point=&src_filename[strlen(src_filename)];*src_filename_point!='.' && src_filename_point!=src_filename;src_filename_point--)
		;
	*src_filename_point=0;  //删除后面的扩展名
	WriteCodeList(strcat(src_filename,".lst"));//strcat把两个字符串相连接
	for(src_filename_point=&src_filename[strlen(src_filename)];*src_filename_point!='.' && src_filename_point!=src_filename;src_filename_point--)
		;
	*src_filename_point=0;
	WriteObjCode(strcat(src_filename,".obj"));
	ClearArrayItem();
	ClearObjCode();
	ClearNametabItem();
	DestroySymbols();
	fclose(src_file);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -