2022年编译原理语法分析程序设计 2.pdf
《2022年编译原理语法分析程序设计 2.pdf》由会员分享,可在线阅读,更多相关《2022年编译原理语法分析程序设计 2.pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验 1 语法分析程序设计【实验目的】(1)理解语法分析在编译程序中的作用,以及它与词法分析程序的关系(2)加深对递归下降语法分析原理的理解(3)掌握递归下降语法分析的实现方法【实验内容】编制一个递归下降分析程序,实现对词法分析程序提供的单词序列的语法检查和结构分析。【设计思路】1、流程图图 2.1 递归下降分析程序示意图2、源程序代码(1)scan.h /头文件 - 扫描程序#include #include char prog80,token8; char ch; int syn,p,m,n,sum; /p 是缓冲区 prog 的指针, m 是 token 的指针char *rwtab6=
2、begin,if,then,while,do,end; void scanner() /词法扫描程序 memset(token,0,sizeof(token);/ 清空数组 token m=0; while(ch= ) +p;ch=progp; /读下一个字符 ; if(ch=a&ch=A&ch=a&ch=A&ch=0&ch=9) 置初值调用 scaner读下一个单词符号调用 lrparser 结束名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - -
3、 - - - - tokenm+=ch; +p;ch=progp;/ 读下一个字符 ; tokenm+=0; syn=10; for(n=0;n=0&ch=0&ch=9) sum=sum*10+ch-0;/ 将 ch 转换为数字+p; ch=progp; syn=11; else switch(ch)/ 其他字符情况 case) syn=21; +m; tokenm=ch; else if(ch=) syn=22; +m; tokenm=ch; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
4、 - 第 2 页,共 7 页 - - - - - - - - - else syn=20; break; case: token0=ch; +p; ch=progp; if(ch=) syn=24; token0=ch; else syn=23; break; case: token0=ch; +p; ch=progp; if(ch=) syn=18; +m; tokenm=ch; +p; ch=progp; else syn=17; break; case+: syn=13;token0=ch;ch=prog+p; break; case-: syn=14;token0=ch;ch=prog
5、+p; break; case*: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - - - - - - - syn=15;token0=ch;ch=prog+p; break; case/: syn=16;token0=ch;ch=prog+p; break; case=: syn=25;token0=ch;ch=prog+p; break; case;: syn=26;token0=ch;ch=prog+p; break; case(: syn=27
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年编译原理语法分析程序设计 2022 编译 原理 语法分析 程序设计
限制150内