《编译原理语义分析程序设计》由会员分享,可在线阅读,更多相关《编译原理语义分析程序设计(9页珍藏版)》请在人人文库网上搜索。
1、实验3 语义分析程序设计【实验目的】加深对语法制导翻译原理的理解,掌握将语法分析所识别的语法成分变换为中间代码的语义翻译方法。【实验内容】采用递归下降语法制导翻译法,对算术表达式、赋值语句进行语义分析并生成四元式序列。置初值调用scaner读下一个单词符号调用lrparser结束【设计思路】1、流程图输出四元式图2.1递归下降分析程序示意图2、源程序代码(1)scan.h /头文件-扫描程序#include#includechar prog80,token8;char ch;int syn,p,m,n,sum; /p是缓冲区prog的指针,m是token的指针char *rwtab6=begi。
2、n,if,then,while,do,end;void scanner() /词法扫描程序memset(token,0,sizeof(token);/清空数组tokenm=0;while(ch= )+p;ch=progp; /读下一个字符;if(ch=a&ch=A&ch=a&ch=A&ch=0&ch=0&ch=0&ch)syn=21;+m;tokenm=ch;else if(ch=)syn=22;+m;tokenm=ch;elsesyn=20;break;case:token0=ch;+p;ch=progp;if(ch=)syn=24;token0=ch;elsesyn=23;break;ca。
3、se:token0=ch;+p;ch=progp;if(ch=)syn=18;+m;tokenm=ch;+p;ch=