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

📄 funcdec.c

📁 北京航空航天大学计算机系要求的编译器大作业。大概6000行代码。
💻 C
字号:
/***************************************
By BHU 35060122 Peng Hui;
2008.02
description:
A small compiler to translate a C program to 80X80 Assembly Code
***************************************/

#include"Global.h"

void FuncDef()  	// <子函数定义>
{
	if(strcmp(Symbol[1],"int") == 0)
	{
		DeclHead();
	}
	else if(strcmp(Symbol[1],"void") == 0)
	{
		NextSym(temp);
		if(strcmp(Symbol[1],"ID") != 0)
			Error(5);
		NextSym(temp);
	}
	Parameter();
	CompStmt();
}

void voidFunc()
{
	NextSym(temp);
	Parameter();
	CompStmt();
}


void MainFunc()    // <主函数>
{
	if(strcmp(Symbol[1],"main") == 0)
	{
		NextSym(temp);
		if(strcmp(Symbol[1],"LParen") == 0)
		{
			NextSym(temp);
			if(strcmp(Symbol[1],"RParen") == 0)
			{
				NextSym(temp);
				//CompStmt();
				if(strcmp(Symbol[1],"LBrace") == 0)
				{
					NextSym(temp);
					if(strcmp(Symbol[1],"const") == 0)
					{
						while(strcmp(Symbol[1],"const") == 0)
						{
							ConstDec();
						}
					}
					if(strcmp(Symbol[1],"int") == 0)
					{
						while(strcmp(Symbol[1],"int") == 0)
						{
							VariDec();
						}
					}

					StmtList();
					if(strcmp(Symbol[1],"RBrace") != 0)
						Error(6);
					return;
				}
				else
				{
					Error(6);
					NextSym(temp);
				}
			}
			else
				Error(10);
		}
		else
			Error(10);
	}
	else
		Error(10);
}

⌨️ 快捷键说明

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