版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 1 / 8 /文法为/(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 /根据算符优先文法的分析规则求得终结符优先关系表/ + * i ( )
2、0; #/ + > < < < < > >/ * > > < < &
3、#160; < > >/ > > < < < > >/ i > >
4、160; > > >/ ( < < < < < = /
5、60; ) > > > > >/ # < < < < &
6、#160; < =#include<stdlib.h>#include<stdio.h>#include<dos.h>#include<stdio.h>#include<string.h>#include<ctype.h>#include<iostream.h>#define SIZE 128char youxian77; /算符优先关系数组char lexbufSIZE; /存放输入的
7、要进行分析的句子char lexSIZE; /存放剩余串char fenxizhanSIZE;/分析栈void fenxi();int panduanyou(char x);void shengyuchuan();int k;void zengjia();void main() /将算符优先关系存放在算符优先关系数组里 youxian00='>' youxian01='<' youxian02='<' youxian
8、03='<' youxian04='<' youxian05='>' youxian06='>' /_ youxian10='>' youxian11='>' youxian12='<' youxian13='<' youxian14='<' youxian15='>'
9、;youxian16='>' /_ youxian20='>' youxian21='>' youxian22='<' youxian23='<' youxian24='<' youxian25='>' youxian26='>' /_ youxian30='>' youxian31=
10、9;>' youxian32='>' youxian33='$'/无优先关系的用$表示 youxian34='$' youxian35='>' youxian36='>' /_ youxian40='<' youxian41='<' youxian42='<' &
11、#160; youxian43='<' youxian44='<' youxian45='=' youxian46='$' /_ youxian50='>' youxian51='>' youxian52='>' youxian53='$'
12、; youxian54='$' youxian55='>' youxian56='>' /_ youxian60='<' youxian61='<' youxian62='<' youxian63='<' youxian64='<
13、39; youxian65='$' youxian66='=' /_ printf("现在就要进行算符优先分析,请做好准备 n"); printf("*n"); printf("请输入要进行分析的句子n&q
14、uot;); cin.get(lexbuf,SIZE); /将输入的字符串存到数组 printf("步骤 栈 优先关系 当前符号 剩余输入串 移进或归约n"); k=0; fenxizhank='#' fenxizhank+1='0' int lenth,i1; /初始化 剩余串数
15、组为输入串 lenth=strlen(lexbuf); for(i1=0;i1<lenth;i1+) lexi1=lexbufi1; lexi1='0' fenxi(); void fenxi() int i,j,f,z,z1,n,n1,z4,n4; int flag=0;/操作的步骤数 char a; /存放正在分析的字符 char p6,Q,p1,p4;
16、0; f=strlen(lexbuf); /测出数组的长度 for(i=0;i<f;i+) a=lexbufi; if(fenxizhank='+'|fenxizhank='*'|fenxizhank=''|fenxizhank='i'|fenxizhank='('|fenxizhank=')'|fenxizhank='#') j=k; else &
17、#160; j=k-1; z=panduanyou(fenxizhanj);/ 从优先关系表中查出sj和a的优先关系 if(a='+'|a='*'|a=''|a='i'|a='('|a=')'|a='#') n=panduanyou(a); else /如果句子含有不是终结符集合里的其它字符,不合法 p
18、rintf("error!不合法的句子"); break; p6=youxianzn; if(p6='>') loop: Q=fenxizhanj; if(fenxizhanj-1='+'|fenxizhanj-1='*'|fenxizhanj-1=''|fenxizhanj-1='i'|fenxizhanj-1='('|fenxizhanj-1=')
19、9;|fenxizhanj-1='#') j=j-1; else j=j-2; z1=panduanyou(fenxizhanj); n1=panduanyou(Q); p1=youxianz1n1; if(p1='<') /fenxizhanj+1fenxizhank归约为N k=j+1;
20、160; shengyuchuan(); flag+; printf("(%d) %s %c %c %s
21、0; 归约n",flag,fenxizhan,p6,a,lex); i-; fenxizhank='N' int hou,hou1; hou=strlen(fenxizhan); for(hou1=k+1;hou1<hou;hou1+) fenxizhanhou1='0'/多个字符归约,把栈顶后面的舍弃 zengjia();/归约剩余串没变化
22、; else goto loop; else if(p6='<') /移进 有一个问题就是如果上一步是不归约,剩余的字符串减少一个 shengyuchuan(); &
23、#160; lexbuff='0' flag=flag+1; printf("(%d) %s %c %c %s
24、0; 移进n",flag,fenxizhan,p6,a,lex); /printf("1 "); /printf(" %s ",fenxizhan); /printf(" %c ",p); / printf("
25、; %c ",a); /printf(" %s",lex); /printf(" 移进n"); / printf("%s",lex); /printf(&qu
26、ot;(i)"); k=k+1; fenxizhank=a; else if(p6='=') z4=panduanyou(fenxizhanj); n4=panduanyou('#'); p4=youxianz4n4; if(p4='=')
27、60; shengyuchuan(); flag+; printf("(%d) %s %c %c %s 接受n",flag,fenxizhan,p6,a,lex); printf("合法的句子"); break;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年河北省三河市高二生物下册期末考试测试卷含答案(考试直接用)
- 2025年云南省楚雄市高二生物下册期末考试模拟卷(综合题)附答案
- 2026年广东省开平市高二生物下册期末考试模拟卷(突破训练)附答案
- 2026年山东省乐陵市高二生物下册期末考试检测卷含答案【A卷】
- 2026年吉林省双辽市高二生物下册期末考试检测卷附完整答案(有一套)
- 2026年辽宁省灯塔市高二生物下册期末考试检测卷及参考答案(B卷)
- 2025年浙江省余姚市高二生物下册期末考试模拟卷及参考答案【轻巧夺冠】
- 2026年江苏省宜兴市高二生物下册期末考试考试卷含答案(培优A卷)
- 2025年浙江省建德市高二生物下册期末考试模拟卷附参考答案【培优B卷】
- 2025年云南省腾冲市高二生物下册期末考试测试卷含完整答案(典优)
- 行星架铸造工艺设计【版本2】
- 第13课-他们都说我包的饺子好吃(口语)
- 无碳小车测试题及答案大全
- 2024年消防考试真题解析试题及答案
- 2025陕西烟草专卖局招聘42人易考易错模拟试题(共500题)试卷后附参考答案
- 2025年农村自建房包工不包料合同
- 车祸伤的救治与护理
- 离婚协议书模板标准电子版分享
- 2023年江苏省无锡市中考政治真题含解析
- 新理性主义完整版本
- 江苏省苏州市2021年中考物理真题试卷(答案+解析)
评论
0/150
提交评论