编译原理实验报告5

上传人:ni****g 文档编号:559574384 上传时间:2022-11-08 格式:DOCX 页数:17 大小:122.82KB
返回 下载 相关 举报
编译原理实验报告5_第1页
第1页 / 共17页
编译原理实验报告5_第2页
第2页 / 共17页
编译原理实验报告5_第3页
第3页 / 共17页
编译原理实验报告5_第4页
第4页 / 共17页
编译原理实验报告5_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《编译原理实验报告5》由会员分享,可在线阅读,更多相关《编译原理实验报告5(17页珍藏版)》请在金锄头文库上搜索。

1、实验5语法分析程序的设计(2)、实验目的通过设计、编制、调试一个典型的语法分析程序,实现对词法分析程序所提供的单词序 列进行语法检查和结构分析,进一步掌握常用的语法分析中算法优先分析方法。二、实验内容设计一个文法的算法优先分析程序,判断特定表达式的正确性。三、实验要求1、给出文法如下:GEE-TIE+T;T-FIT*F;F-iI(E);可以构造算符优先表如下:+*()i+*(i2、计算机中表示上述优先关系,优先关系的机内存放方式有两种1)直接存放,2)为 优先关系建立优先函数,这里由学生自己选择一种方式;1、给出算符优先分析算法如下:k:=l;Sk:= #;REPEAT把下一个输入符号读进a中

2、;IF Sk VT THEN j:=k ELSE j:=k-1;WHILE Sj A a DOBEGINREPEATQ:=Sj;IF Sj-1VT THEN j:=j-1 ELSE j:=j-2UNTIL Sj V Q把Sj+l.Sk归约为某个N;k:=j+1;Sk:=N;END OF WHILE;IF Sj *(=e2e2ie2e2#e3TIE+T;T-FIT*F; F-iI(E);算符优先文法并未对非终结符定义优先关系,无法对单非产生式进行规约,所 以实际上在规约时,上面的E-T,T-F基本没有使用,而且规约时并不严格按照 产生式的右部规约,只要待规约项符合句型#N1a1N2a2_Nnan

3、Nn+1# (每个ai都是 终结符,Ni是可有可无的非终结符),并且相对产生式,在相同位置有相同的非终结符即可规约,这样算符优先文法规约 很快,但有些语法错误将无法识别,在本实验中,只要在要规约的地方准确的判断 可规约的项,即符合句型,在不严格要求非终结符相同而终结符位置符号相同时, 存在可匹配文法的产生式,即可规约,例如:F * F可以匹配T*F继而规约为T。定义用Wch表示字符名为ch的符号;实际程序中关于终结符优先关系的比 较是利用R获取优先关系标志的,算法中为了可读性,直接将结构体进行比较了。 从文本文件读入一行数据,反复调用scanP()得到符号集合,用符号结构体数组E存 储;k =

4、 1; i = 0; Sk = W#;Do A = Ei+;if (Sk是终结符)j = k;elsej = k - 1;while(Sj A) Do Q = Sj;If(Sj - 1是终结符)j = j - 1;elsej = j - 2;while(Sj Q);N = Statute(S,j + 1,k);k = j + 1;Sk = N;If(Sj = a & ch = 0 & ch = 9)flag = 1;return flag;int Reserve(char strToken) 整型函数,对strToken中的字符串査找保留字表,若它是一个保留字则返回它的编码,否则返回0int

5、code = 0, i;char keyWord66 = if, t hen, else, while, do ;for (i = 0; i 5; i+) if (st rcmp(s trToken, keyWordi) = 0) code = i + 1;break;return code;int SearchOP(char ch) 整型函数,对st rToken中的字符串査找运算符和界符,若它是一个运算符或界符,则返回它的编码,否则返回0int code = 0, i;char OP10 = *, (, ),; ;for (i = 0; i 10; i+) if (ch = OPi) code = i + 1;break;return code;char Ret rac t(FILE* fp, char ch) 子函数,将搜索指示器回调一个字符位置,将ch置为空白字符 ch =,;fseek(fp, -1L, 1); return ch;void ProErrorO printf(输入错误! n);return;int scan(FILE* fp

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

当前位置:首页 > 学术论文 > 其它学术论文

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