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

📄 main.cpp

📁 编译原理课程设计 词,语法分析器 用C++手工编写
💻 CPP
字号:
#include "globals.h"

/*	set NO_PARSE to TRUE to get a scanner-only compiler	*/
#define NO_PARSE FALSE

/*	set NO_ANALYZE to TRUE to get a parse-only compiler	*/
#define NO_ANALYZE TRUE

/*	set NO_CODE to TRUE to get a compiler that does not	
 *	generate code
 */

#define NO_CODE FALSE



#include "util.h"
#if NO_PARSE
#include "scan.h"
#else
#include "parse.h"
#if !NO_ANALYZE
#include "analyze.h"
#if !NO_CODE
#include "cgen.h"
#endif
#endif
#endif

/*	allocate global variables	*/
int lineno = 0;
FILE* source;
FILE* listing;
FILE* code;

/*	allocate and set tracing flags	*/
int EchoSource = TRUE;
int TraceScan = TRUE;
int TraceParse = TRUE;
int TraceAnalyze = TRUE;
int TraceCode = TRUE;

int Error = FALSE;



int main(int argc, char* argv[])
{
	TreeNode * syntaxTree;
	char pgm[120];		//	source code file name
	if(argc != 2)
	{
		fprintf(stderr, "usage: %s <filename>\n", argv[0]);
		exit(1);
	}
	
	strcpy(pgm, argv[1]);

	if (strchr(pgm, '.') == NULL)
	{
		strcat(pgm,".c-");
	}
	source = fopen(pgm, "r");

	if (source == NULL)
	{
		fprintf(stderr, "File %s not found\n", pgm);
		exit(1);
	}

	listing = stdout;	//senf listing to screen
	fprintf(listing, "\nC- Compilation: %s\n", pgm);

#if NO_PARSE
	while (getToken() != ENDFILE);
#else
	syntaxTree = parse();
	if (TraceParse)
	{
		fprintf(listing, "\nSyntax tree:\n");
		printTree(syntaxTree);
	}

#endif
	fclose(source);
	return 0;
}	

⌨️ 快捷键说明

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