编译原理上机实验程序(LR分析).docx
《编译原理上机实验程序(LR分析).docx》由会员分享,可在线阅读,更多相关《编译原理上机实验程序(LR分析).docx(20页珍藏版)》请在优知文库上搜索。
1、小型编译程序:高级语言到四元式的编译ttincludestdio.h/*如果使用TC的话,需要配置头文件路径*/#includestring.h/*如果使用VC的话,可以配置头文件conio.h*/ftdefineACC-2/*/ftdefinesy_if0ftdefinesythen1#definesyeIse2#definesywhile3#definesybegin4ftdefinesydo5ftdefinesyend6ftdefinea7ftdefinesemicolon8ttdefinee9#definejinghao10ftdefineS11ftdefineL12#definete
2、mpsy15ftdefineEA18*Eand*/ftdefineEO19*Eor*/#defineplus34#definetimes36ftdefinebecomes38ftdefineopand39ftdefineopor40ftdefineopnot41ftdefinerop42#define!parent48ftdefinerparent49ftdefineident56ftdefineintconst57/*/charch-0,;/*从字符缓冲区读取当前字符*/intcount=0;/*词法分析结果缓冲区计数器*/staticcharSPening10=;*存放识别的单词符号*/s
3、taticcharIine81=;*一行字符缓冲区,最多80个字符*/charSpline;/*字符缓冲区指针*/staticcharntabl10010;/*变量名表,共100项,每项长度10*/structntabintinttc;fc;ntab2200;intIabel=O;/*真值*/*假值*/*在布尔表达式E中保存有关布尔变量的真、假值*/*指向ntab2的指针*/*存放临时变量的表的定义*/structrwordscharsp10;intsy;);*保存字表)匹配表的结构,用来与输入缓冲区中的单词进行匹配*/*匹配表初始化,大小为10*/structrwordsreswords10
4、-zzifzz,sy_if),do,sy_do,z,elsezz,sy_else,whilez,sy_while,thenzz,sy_then),zbegin,z,sy_begin,end,sy_end,and,opand,zzorzz,opor,structaaintsyl;intpos;buf1000,n,nl,E,sstack100,ibuf100,stack1000;structaaoth;not,opnot);/*存放单词符号的种别编码*/*存放单词符号自身的值*/*词法分析结果缓冲区,保存识别出来的单词符号*/*读取二元式的当前符号*/*当前表达式中的符号*/*非终结符*/*算术或
5、布尔表达式加工处理使用的符号栈*/*算术或布尔表达式使用的缓冲区*/*语法分析加工处理使用的符号栈*/*四元式中空白位置*/structfourexpcharop10;structaaargl;structaaarg2;intresult;fexp200;*四元式的结构定义*/intssp=O;/*指向SStaCk栈指针*/structaa*pbuf=buf;/*指向词法分析缓冲区的指针*/intnlength=O;intInum=O;/*词法分析中记录单词的长度*/*源程序行数记数,源程序长度*/intttl=O;FILEdefile;Afile*mfiie;*/*变量名表指针*/*源程序文
6、件,为结束符*/intnewt=0;intnxq=100;/*临时变量计数器*/*nxq指向下一个形成的四元式的地址*/*每次执行gen)时,地址自动增1*/i11tIr;/*扫描LR分析表1过程中保存的当前状态值*/intIrl;intsp=O;/*扫描LR分析表2或表3所保存的当前状态值*/*查找LR分析表时状态栈的栈顶指针*/intStackl100;intspl=O;intnum=0;struct11intnxql;inttcl;intfcl;labelmark10;/*状态栈1的定义*/*状态栈1的栈顶指针*/*算术或布尔表达式缓冲区指针*/*记录下一条四元式的地址*/*真值链*/*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 上机 实验 程序 LR 分析
