c语言实现算符优先语法分析

上传人:xzh****18 文档编号:34343872 上传时间:2018-02-23 格式:DOC 页数:5 大小:23KB
返回 下载 相关 举报
c语言实现算符优先语法分析_第1页
第1页 / 共5页
c语言实现算符优先语法分析_第2页
第2页 / 共5页
c语言实现算符优先语法分析_第3页
第3页 / 共5页
c语言实现算符优先语法分析_第4页
第4页 / 共5页
c语言实现算符优先语法分析_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《c语言实现算符优先语法分析》由会员分享,可在线阅读,更多相关《c语言实现算符优先语法分析(5页珍藏版)》请在金锄头文库上搜索。

1、#includechar prog100,zhongjian100,shu500;char ch,zh;int syn,p,q,a,b,c,d; /p 指向 prog,q 指向 zhongjianint table88=1,1,-1,-1,-1,1,-1,1,1,1,-1,-1,-1,1,-1,1,1,1,1,1,-1,1,-1,1,1,1,1,1,-1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,0, 1,1,1,1,0,1,0,1,1,1,1,1,0,1,0,1,-1,-1,-1,-1,-1,0,-1,-1;/存储算符优先关系表,大于为 1,小于或等于为-1,其它为 0 表示出

2、错char zhan100;/数组栈int z,j;/z 为栈顶指针 ,j 为 zhongjian 数组指针void push(char ch)/入栈zhanz+=ch;void pop()/出栈z-;void putzhan()/打印栈内字符for(int i=0;i=j;m-)shuc+=zhongjianm;for(int i=z-1;i0;i-)shuc+=zhani;zh=ding2();if(zh=i) /当前比较为 i,出栈一次pop(); else /当前比较不为 i,出栈三次pop(); pop(); pop(); push(E); /归约到 E printf(归约n);sh

3、uc+= ;shuc+=;shuc+=-;shuc+= ;elsesyn=-1;break;zh=ding();ch=zhongjianj;void loadch()/读入所有字符串int i=0;printf(请输入要进行算符优先分析的字符串:n);doch=getchar();progi+=ch;while(ch!=#);void scaner()syn=1;ch=progp+;while(ch= |ch=n)ch=progp+;switch(ch)case+:zhongjianq+=+;break;case-:zhongjianq+=-;break;case*:zhongjianq+=*

4、;break;case/:zhongjianq+=/;break;case(:zhongjianq+=(;break;case):zhongjianq+=);break;casei:zhongjianq+=i;break;case#:zhongjianq+=#;syn=0;break;default: syn=-1;break;void saomiao()p=0;q=0;doscaner();if(syn=-1)printf(输入符号有误!n);break;while(syn!=0);void main()loadch();saomiao();if(syn=0)chu();analyse();printf(#Et#t 结束n);if (syn=0)printf(该字符串可被文法识别n);printf(E);for(int i=c;i=0;i-)printf(%c,shui);printf(n);elseprintf(该字符串不可被文法识别n);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号