递归下降语法分析程序设计
2015-12-31 13:56
274 查看
#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是正确的表达式!\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有语法错误!\n"); exit(0); } } else { printf("\n有语法错误!\n"); exit(0); } }
相关文章推荐
- TextView中文字的省略显示
- 连接池 druid(阿里巴巴的框架)
- recyclerview的简单使用
- 图表部件设置成员小数位数简介
- 【虫师--系列03】性能测试知多少----性能测试分类之我见
- android-Animating Views Using Scenes and Transitions
- 图表部件设置成员小数位数简介
- 24小时与12小时切换
- IOS开发之----两种保存用户名和密码实现记住密码库
- HTML5获取位置信息
- Android Studio快捷键每日一练(2)
- 【虫师--系列02】在做性能测试之后需要知道些什么
- java 点滴
- 自定义快速索引,仿微信好友查询列表
- ActiveMQ简单介绍以及安装
- android 4.0 到 4.4的不同(我碰到的)
- cnn训练出现的问题
- ASCII、ANSI、MBCS、UNICODE字符集
- ubuntu安装ssh和telnet服务器
- 【虫师--系列01】在做性能测试之前需要知道什么