求 select

G→+TG | ε------ +| ε
S→*FS | ε------ *| ε
F→(E) | i ------ (,i
T→FS ------- (,i
E→TG ------ (,i,
#include<bits/stdc++.h>using namespace std;
string s;
int pos,cnt;
void E();
void F();
void G();
void S();
void T();
void E(){if(s[pos]=='('||s[pos]=='i'){cout<<cnt++<<" E-->TG\n";T();G();}else {cout<<"error\n";exit(0);}
}
void T(){if(s[pos]=='('||s[pos]=='i'){cout<<cnt++<<" T-->FS\n";F();S();}else {cout<<"error\n";exit(0);}
}
void G(){if(s[pos]=='+'){cout<<cnt++<<" G-->+TG\n";pos++;T();G();}else   cout<<cnt++<<" G-->&\n";
}
void S(){if(s[pos]=='*'){cout<<cnt++<<" S-->*FS\n";pos++;F();S();}else     cout<<cnt++<<" S-->&\n";
}
void F(){if(s[pos]=='('){cout<<cnt++<<" F-->(E)\n";pos++;E();if(s[pos]==')')pos++;else {cout<<"error\n";exit(0);}}else if(s[pos]=='i'){cout<<cnt++<<" F-->i\n";pos++;}else {cout<<"error\n";exit(0);}
}int main()
{cin>>s;E();
if(s[pos]=='#') cout<<"accept\n";
else cout<<"error\n";
}

SDUT - 表达式语法分析——递归子程序法相关推荐

  1. SDUT-D-表达式语法分析——递归子程序法-附带解释函数

    表达式语法分析--递归子程序法 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 递归子程序法是一种确定的自顶向下语法分析 ...

  2. 自上而下的语法分析-递归下降分析和LL(1)文法

    对输入的任意单词符号串,试图用一切可能的办法,从文法开始符号(树根)出发,自上而下.自左而右地建立起一棵语法分析树,使得该树的叶结点自左而右地排列起来,刚好就是所给的输入串.显然,这一过程应该与一个最 ...

  3. 递归下降分析法的基本思想。_语法分析 | 递归下降分析算法

    递归下降分析算法是自顶向下分析算法的一部分. 递归下降分析算法 也称为预测分析 分析高效(线性时间) 容易实现(方便手工编码) 错误定位和诊断信息准确 被很多开源和商业的编译器所采用 GCC 4.0, ...

  4. PLSQL - 递归子查询RSF打破CONNECT BY LOOP限制

    例如有表EMP_ROLES存有数据如下图 RNAME表示员工充当的角色名称,当一人身兼多职时,便会以+号串联各个角色 这是一种很聪明的存储方法,但有时我们却又可能需要拆出每个人的所有角色以便匹配,也就 ...

  5. SQL Server中公用表表达式 CTE 递归的生成帮助数据,以及递归的典型应用

    原文: SQL Server中公用表表达式 CTE 递归的生成帮助数据,以及递归的典型应用 本文出处:http://www.cnblogs.com/wy123/p/5960825.html 我们在做开 ...

  6. foreach jdk8 递归_[Java 8] (8) Lambda表达式对递归的优化(上) - 使用尾递归 .

    递归优化 很多算法都依赖于递归,典型的比如分治法(Divide-and-Conquer).但是普通的递归算法在处理规模较大的问题时,常常会出现StackOverflowError.处理这个问题,我们可 ...

  7. 一篇文章带你了解JavaScript中的函数表达式,递归,闭包,变量,this对象,模块作用域

    作者 | Jeskson 来源 | 达达前端小酒馆 定义函数的方式: 第一种为 函数声明: 第二种为 函数表达式. 语法: function functionName(arg0, arg1, arg2 ...

  8. python 三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数

    一.三元表达式 语法:[成立1 if condition1 else成立2 if condition2 else ...if 成立N conditionN else 不成立] sex = 'man' ...

  9. JS函数表达式——函数递归、闭包

    一:定义函数的方式: 1.函数声明:2.函数表达式 函数声明的重要特征:函数声明提升,在执行代码之前会先读取函数声明. sayHi(); function sayHi(){console.log(&q ...

  10. Python--三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数...

    三元表达式 列表推导式 生成器表达式 递归与二分法 匿名函数 内置函数 一.三元表达式 name=input('姓名>>: ') res='True' if name == 'lee' e ...

最新文章

  1. 核心动画的接触点滴(五)
  2. ol xyz 加载天地图_OpenLayers加载天地图方法——WMTS和XYZ
  3. 深度技术win11 32位全新专业版系统v2021.07
  4. 《MongoDB管理与开发精要》——2.6节常用GUI管理工具
  5. redis中数据的持久化
  6. 一个极其微小的优化想法
  7. 【译】Simple MySQL ORM for C
  8. Install Cockpit on Fedora/CentOS/RHEL
  9. 怎么实现多用户同时远程连接到一台电脑上
  10. c语言五大常用算法,C语言------五大常用算法总结
  11. visio中使用连接线连接形状
  12. cissp怎么维持?cissp维持费用多少?
  13. 农场花园种花偷花前后端完整项目
  14. 【大前端】用html和css写一个QQ邮箱登录页面
  15. Java @Min(0)的意义
  16. 解决主机不能访问VirtualBox上Linux虚拟机ip的问题
  17. android_文件下载
  18. 北大邹磊:图数据库中的子图匹配算法
  19. Java垃圾回收笔记
  20. 学习Linux的博客和资源网站

热门文章

  1. Saas平台接入商户代小程序开发解决方案
  2. 【H5钢琴示例代码】
  3. python爬取作品集_Python爬虫爬取哈利波特小说集,并用数据可视化剖析登场人物...
  4. java的副语言_公共表达中,悄悄影响你的“副语言”
  5. FPGA开发中常见报错或警告汇总
  6. python安装os模块_python安装os
  7. 毕业设计c语言课程设计,毕业设计—c语言—课程设计.doc
  8. python怎么做计算题_用python做算术题
  9. Python练习实战股票网页数据
  10. 深度学习中关于 “深度” 的理解