4.jpg
代码下载地址
源码请点击:Github
说明
首先改写文法为LL(1)文法;然后为每一个非终结符,构造相应的递归过程,过程的名字表示规则左部的非终结符;
过程体按规则右部符号串的顺序编写。
Syntactic_Analysis.c
#include
void E();
void T();
void E1();
void T1();
void F();
char s[100];
int i, SIGN;
int main()
{
printf("请输入一个语句,以#号结束语句(直接输入#号推出)\n");
while( 1 )
{
SIGN = 0;
i=0;
scanf("%s",&s);
if( s[0] == '#')
return 0;
E();
if(s[i]=='#')
printf("正确语句!\n");
printf("请输入一个语句,以#号结束语句\n");
}
return 1;
}
void E()<