paramter.c

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

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