递归设计语法分析程序,求大神讲解代码! 5
#include//#includecharstr[10];intindex=0;voidE();//E->TX;voidX();//X->+TX|evoidT();//...
#include
// #includechar str[10];
int index=0;
void E(); //E->TX;
void X(); //X->+TX | e
void T(); //T->FY
void Y(); //Y->*FY | e
void F(); //F->(E) | i
int main()
{
int len;
int m;
printf("请输入要测试的次数:");
scanf("%d",&m);
while(m--)
{
printf("请输入算数表达式:");
scanf("%s",str);
len=strlen(str);
str[len]='#';
str[len+1]='\0';
E();
printf("正确语句!\n");
strcpy(str,"");
index=0;
}
return 0;
}
void E()
{ T();
X();
} void X()
{ if(str[index]=='+')
{ index++; T(); X(); } }
void T() {
F(); Y(); }
void Y()
{ if(str[index]=='*')
{ index++; F(); Y(); } }
void F() { if(str[index]=='i')
{ index++; }
else if (str[index]=='(')
{ index++;
E(); if(str[index]==')')
{ index++;
}else{ printf("\n分析失败!\n");
exit (0); } }
else{ printf("分析失败!\n");
exit(0); } } 展开
// #includechar str[10];
int index=0;
void E(); //E->TX;
void X(); //X->+TX | e
void T(); //T->FY
void Y(); //Y->*FY | e
void F(); //F->(E) | i
int main()
{
int len;
int m;
printf("请输入要测试的次数:");
scanf("%d",&m);
while(m--)
{
printf("请输入算数表达式:");
scanf("%s",str);
len=strlen(str);
str[len]='#';
str[len+1]='\0';
E();
printf("正确语句!\n");
strcpy(str,"");
index=0;
}
return 0;
}
void E()
{ T();
X();
} void X()
{ if(str[index]=='+')
{ index++; T(); X(); } }
void T() {
F(); Y(); }
void Y()
{ if(str[index]=='*')
{ index++; F(); Y(); } }
void F() { if(str[index]=='i')
{ index++; }
else if (str[index]=='(')
{ index++;
E(); if(str[index]==')')
{ index++;
}else{ printf("\n分析失败!\n");
exit (0); } }
else{ printf("分析失败!\n");
exit(0); } } 展开
1个回答
展开全部
递归设计语法分析程序设计我给你帮这个忙.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
单片机汇编程序是用汇编语言编写的程序,用于控制单片机的操作。汇编语言是一种比较接近计算机硬件语言的低级语言,相对于高级语言来说更容易理解和实现。下面是单片机汇编程序的基本步骤:1. 将代码和数据汇编到规定的段中。2. 在存储器中用未初始化的...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询