1231递归下降语法分析程序设计
2015-12-31 14:43
155 查看
#include<stdio.h> #include<string> char str[10]; //记录要分析的字符串 int x=0; //记录第一个字符 void E(); void X(); void T(); void Y(); void F(); int main() { int len; printf("请输入算数表达式:"); scanf("%s",str); len=strlen(str); str[len]='#'; str[len+1]='\0'; E(); printf("\n是正确的表达式!"); strcpy(str,""); x=0; return 0; } void E() { T(); X(); } void X() { if(str[x]=='+'||str[x]=='-') { x++; T(); X(); } } void T() { F(); Y(); } void Y() { if(str[x]=='*'||str[x]=='/') { x++; F(); Y(); } } void F() { if(str[x]>='a'&&str[x]<='z') { x++; } else if(str[x]>=0&&str[x]<=9) { x++; } else if (str[x]=='(') { x++; E(); if(str[x]==')') { x++; } else { printf("\n有语法错误!"); exit(0); } } else { printf("\n有语法错误!"); exit(0); } }
相关文章推荐
- b
- Android学习之ActionBar(2)
- 英语总结
- 修改数据库的sql语句_alter的使用
- 华为总监:2015年做设计最大的思考和收获
- HDU 2215 Maple trees(凸包-Graham扫描法+最小圆覆盖)
- HTML的音频和视频
- brick pallet
- Git CMD - remote: Manage set of tracked repositories
- iOS UIView如何管理它的子视图
- GreenDao的简单使用说明(二)单表的增,删,改,查
- GreenDao的简单使用说明(二)单表的增,删,改,查
- c++ typedef使用
- EHCI和OHCI,UHCI的比较和区别
- Sping MVC后台,EasyUI 分页简单功能实现
- AndroidDevTools简介
- git 查看远程分支、本地分支、创建分支、把分支推到远程repository、删除本地分支
- 关于响应式框架 Foundation 概述与特点,教程
- 南方周末1998新年献词
- UITableView增加自定义Button并绑定点击事件