



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/文法为/(0)E #E#/(1)E E+T /(2)E T/(3)T T*F /(4)T F/(5)F PF /(6)F P/(7)P (E) /(8)P i#include#includeusing namespace std;#define MAX 100char SMAX; /分析栈Schar shuruMAX,yuMAX; /shuruMAX存放输入的字符串,yuMAX存放剩余串void scanner(); /扫描分析输入串函数int panyouxian(char x); /判断优先关系符函数void shengyuchuan();/剩余字符串函数int k;char youxian77=,$,$,$,$,为大于,为小于,=为等于,$为空格void main() int l,j; cout请输入一个字符串:; cin.get(shuru,MAX); /将输入的字符串存到数组 cout步骤 栈 优先关系 当前符号 剩余输入串 移进或归约endl; k=0; Sk=#; Sk+1=0; l=strlen(shuru); /求输入字符串的长度 for(j=0;jl;j+) yuj=shuruj; yuj=0; scanner(); void scanner() /扫描分析输入串 int i,j,l,h1,l1,h2,l2,h3,l3,y1,y2,r1,r2; int step=0;/分析步骤数 char a; /存放正在分析的字符 char p1,Q,p2; l=strlen(shuru); /算出输入串长度 for(i=0;il;i+) a=shurui; if(Sk=+|Sk=*|Sk=|Sk=i|Sk=(|Sk=)|Sk=#) j=k; else j=k-1; h1=panyouxian(Sj);/ 从优先关系表中查出Sj和a的优先关系 if(a=+|a=*|a=|a=i|a=(|a=)|a=#) l1=panyouxian(a); else /如果句子含有不是终结符集合里的其它字符,不合法 cout错误!不合法的句子!) loop: Q=Sj; if(Sj-1=+|Sj-1=*|Sj-1=|Sj-1=i|Sj-1=(|Sj-1=)|Sj-1=#) j=j-1; else j=j-2; h2=panyouxian(Sj); l2=panyouxian(Q); p1=youxianh2l2; if(p1=) /Sj+1Sk归约为F k=j+1; shengyuchuan(); step+;coutleft(stepsetw(6)setw(10)Ssetw(10)p1setw(10)asetw(5)rightyusetw(15)归约endl;i-; Sk=F;r1=strlen(S); for(r2=k+1;r2r2;r2+)Sr2=0;/多个字符归约,把栈顶后面的舍弃y1=strlen(yu); for(y2=0;y2y1;y2+) yuy1-y2=yuy1-y2-1; yu0=i; else goto loop; else if(p1=) /移进 如果上一步是不归约,剩余的字符串减少一个 shengyuchuan(); shurul=0; step=step+1; coutleft(stepsetw(6)setw(10)Ssetw(10)p1setw(10)asetw(5)rightyusetw(15)移近endl; k=k+1; Sk=a; else if(p1=) h3=panyouxian(Sj); l3=panyouxian(#); p2=youxianh3l3; if(p2=) shengyuchuan();step+;coutleft(stepsetw(6)setw(10)Ssetw(10)p1setw(10)asetw(5)rightyusetw(15)接受endl;cout合法的句子!endl;break; elsek=k+1;Sk=a; else cout出错!endl; break; void shengyuchuan() int i,j; i=strlen(yu); for(j=0;ji;j+) yuj=yuj+1; yui-1=0;int panyouxian(char x)int m;switch(x)case+:m=0;break;case*:m=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 借款合同(补偿贸易)6篇
- 2024年天津市河北区供热燃气有限公司招聘真题
- 2025赤峰环保投资有限公司招聘3人模拟试卷及参考答案详解1套
- 2025年智能制造的工业自动化智能化
- 2025年智能音箱的智能家居控制中心
- 2025年海洋能发电技术设备市场供需与竞争格局报告
- 2025广西河池市巴马瑶族自治县消防救援大队招录3人考前自测高频考点模拟试题及1套完整答案详解
- 2025广东深圳市宝安区鹏晖中英文学校急聘生物教师1人考前自测高频考点模拟试题及答案详解(有一套)
- 2024年重庆丰都县文化和旅游发展委员会公益岗招聘真题
- 2024年安庆中船柴油机有限公司招聘真题
- 结肠癌根治术后护理
- 《婚姻家庭辅导》课件
- 2024年共青团入团考试题【附答案】
- 新统计法培训
- 养老院有限空间环境安全管理制度
- 保证食品安全的规章制度清单
- GB/T 30661.10-2024轮椅车座椅第10部分:体位支撑装置的阻燃性要求和试验方法
- 《环境保护法讲座》课件
- 业务运营岗位招聘笔试题及解答(某大型国企)2025年
- 全套教学课件《工程伦理学》
- 高中文言文基础知识单选题100道及答案解析
评论
0/150
提交评论