funcdec.c

来自「北京航空航天大学计算机系要求的编译器大作业。大概6000行代码。」· C语言 代码 · 共 84 行

C
84
字号
/***************************************
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 + =
减小字号Ctrl + -
显示快捷键?