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

📄 lrparse.txt

📁 词法分析器代码,用c语言编写 词法分析器代码,用c语言编写
💻 TXT
字号:
lrparser()
{
	if(syn==1)
	{
		//读入下个单词符号
		yucu();  //调用yucu函数
		if(syn==6)
		{
		   //读入下个单词符号
			if(syn==0 && (kk==0))
			{
				printf("success\n");   //输出success
			}
		}
		else 
		{
			if(kk!=1) 
			{
			    printf("Error!!  Missing 'end'in the statement!\n");	//输出缺少end错误;
				kk=1;
			}
		}
	}
	else
	{
		 printf("Error!! 'begin' is required\n");   //输出‘begin’错误信息。
		 kk=1;
	}
	return ;
}

yucu()
{
	statement();   //调用statement();
	
	while(syn==26)
	{
		//读入下个单词符号
	    statement();	//调用statement()函数。
	}
	return ;
}

statement()
{
	if(syn=10)
	{
		//读入下个单词符号,
		if(syn==18)
		{
			//读入下个单词符号。
			expresssion();  //调用expression()函数
		}
		else
		{
			printf("Error!! ':=' is required!\n");  //输出附值号错误;
			kk=1;
		}
		return;
	}
}

expression()
{
	term();  //调用term函数;
	while(syn==13 || syn==14)
	{
		//读入下个单词符号
		term();  //调用term函数
	}
	return;
}	

term()
{
	factor();  //调用factor函数
	while(syn==15 || syn==16)
	{
		//读入下个单词符号
		factor(); //调用factor函数
	}
	return;
}
factor()
{
	if(syn==10 || syn==11)
	{
		//读入下个单词符号
	}
	else if(syn==27)
	{
		//读入下个单词符号
		expression();   //调用expression()函数
		if(syn==28)
		{
			//读入下个单词符号

		}
		else
		{
		  printf("Error!! ')' is required!\n");	//输出‘)’错误;
		  kk=1;
		}
	}
	else
	{
		printf("Error !!Something wrong with the expression!\n"); //输出表达式错误;
		kk=1;
	}
	return ;
}

⌨️ 快捷键说明

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