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

📄 paramter.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 VParamList()	// <值参数列表>
{
	/*if(strcmp(Symbol[1],"RParen") != 0)
	{
		Express();
		while(strcmp(Symbol[1],"COLOM") == 0)
		{
			NextSym(temp);
			Express();
		}
	}
	else
		Error(18);*/
	Express();
	while(strcmp(Symbol[1],"COLOM") == 0)
	{
		NextSym(temp);
		Express();
	}
}

void ParamList()   // <参数表>
{
		/*if(strcmp(Symbol[1],"int") == 0)
		{
			NextSym(temp);
			while(1)
			{
				NextSym(temp);
				if(strcmp(Symbol[1],"ID") == 0)
				{
					NextSym(temp);
					if(strcmp(Symbol[1],"COLOM") == 0)
						continue;
					else
						break;
				}
				else
					Error(9);
			}
		}
		else
		{
			return;
		}*/
	while(1)
	{
		if(strcmp(Symbol[1],"int") == 0)
		{
			NextSym(temp);
			if(strcmp(Symbol[1],"ID") == 0)
			{
				NextSym(temp);
				if(strcmp(Symbol[1],"COLOM") == 0)
				{
					NextSym(temp);
					continue;
				}
				else if(strcmp(Symbol[1],"RParen") == 0)
					break;
				else
				{
					Error(9);
					break;
				}
			}
		}
		else
		{
			Error(9);
			break;
		}
	}
}

void Parameter()   // <参数>
{
	if(strcmp(Symbol[1],"LParen") == 0)
	{
		NextSym(temp);
		if(strcmp(Symbol[1],"RParen") != 0)
			ParamList();
		if(strcmp(Symbol[1],"RParen") != 0)
		{
			Error(8);
			NextSym(temp);
		}
		else
			NextSym(temp);
	}
	else
	{
		Error(7);
		NextSym(temp);
	}
}

⌨️ 快捷键说明

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