博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
0106递归下降语意分析
阅读量:5997 次
发布时间:2019-06-20

本文共 948 字,大约阅读时间需要 3 分钟。

#include
#include
int i,j=1;char N[100];void A();void A1();void B();void B1();void C();void A(){B();A1();}void B(){C();B1();}void A1(){if(N[i]=='+'||N[i]=='-'){i++;B();A1();}else if(N[i]=='#'||N[i]==')'){i++;}}void B1(){if(N[i]=='*'||N[i]=='/'){i++;C();B1();}else if(N[i]=='#'||N[i]==')'){i++;}}void C(){int d;if((N[i]<='z'&&N[i]>='a')||(N[i]<='Z'&&N[i]>='A')){if((N[i++]<='z'&&N[i++]>='a')||(N[i++]<='Z'&&N[i++]>='A'))i++;else {printf("\n分析失败!\n");j=0;}}if(N[i]<='9'&&N[i]>='0'){if(N[i++]<='9'&&N[i++]>='0')i++;else {printf("\n分析失败!\n");j=0;}}else if(N[i]=='('){A();if(N[i]==')'){i++;}else{ printf("\n分析失败!\n");exit (0);}}else{ printf("\n分析失败!\n");exit (0);}}int main(){int len,d;start:printf("请输入表达式:\n");scanf("%s",N);len=strlen(N);N[len]='#';N[len+1]='\0';E();if(J==1){printf("是否为正确的表达式\n");}printf("是否重试?重试输入1:");scanf("%d",&d);if(d=1)goto start;return 0;

 

转载于:https://www.cnblogs.com/whitestar/p/5106300.html

你可能感兴趣的文章
自定义key解决zabbix端口监听取值不准确的问题
查看>>
入门级----黑盒测试、白盒测试、手工测试、自动化测试、探索性测试、单元测试、性能测试、数据库性能、压力测试、安全性测试、SQL注入、缓冲区溢出、环境测试...
查看>>
composer 安装 ubuntu 12.04
查看>>
微服务(二)hystrix
查看>>
Performing a thread dump in Linux or Windows--reference
查看>>
推荐系统中常用算法 以及优点缺点对比
查看>>
cocos2d-x v3.2环境配置(现在3.x版本号可以配置该)
查看>>
穷举法解决旅行商问题
查看>>
括号配对问题
查看>>
Oracle自学笔记(一)
查看>>
利用5w1h写出高效的git commit
查看>>
用div和css样式控制页面布局
查看>>
Python自定义库文件路径
查看>>
Get和Post的区别
查看>>
Redis--优化
查看>>
JSTL截取字符串以及格式化时间
查看>>
Bugtags 使用技巧之 setUserData
查看>>
Go语言标准库之JSON编解码
查看>>
使用windows search 搜索文件和文件夹(一)
查看>>
“江苏科技”背后有哪些大咖倾力参与?
查看>>