实验内容
(1)写出你所选定的语言的算术表达式的文法,利用递归下降的方法编写判定给定的单词串能否构成一个正确的算术表达式的函数,写一个主函数读入一个单词串,进行测试尽可能多、尽可能准确地给出错误信息。
(2)写出你所选定的语言的布尔表达式(含关系表达式)的文法,利用递归下降的方法编写判断给定的单词串能否构成一个正确的布尔表达式的函数。
#include<stdio.h>
#include<string>
char 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;
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++;

该博客探讨了如何利用递归下降法来设计文法,用于判断算术和布尔表达式的正确性。实验内容包括编写函数检查单词串是否构成合法的算术和布尔表达式,并在主函数中读取输入,提供详尽的错误反馈。
最低0.47元/天 解锁文章
3144

被折叠的 条评论
为什么被折叠?



