$){/*栈非空*/If(X是a)把X从栈顶弹出并推进ip;elseif(X是终结符)error();elseif(M[X,a]是出错入口)error();elseif(M[X,a]=XàY1Y2…Yk){输出产生式XàY1Y2…Yk;从栈中弹出X;把YkYk-1…Y1依次压入栈,Y1在栈顶;}令X等于栈顶符号;}逐个输出表达式,并给出正误评判。5、实验数据的处理与实验报告要求写出实验报告。实验报告包括程序设计时考虑的方法和算法;调试过程中出现的问题和解决的措施;给出源程序清单和调试时所用的数据,源程序清单中应该添加足够的注释;给出实验结果。完成习题3.1、3.10、3.11。实验5语法制导属性计算1、实验目的:在语法分析的基础,完成文法属性计算;理解自下而上分析方法的原理,理解语义属性的概念及其计算方法;掌握手工编写语法分析程序的方法。2、实验的基本原理对于一个给定文法,通过改写文法,使其满足LR(1)文法的要求,根据语义确定文法符号的属性,确定语义规则或翻译方案;根据文法特点构造LR(1)分析表,进而构造语法分析和属性计算程序。分析程序根据在分析表的驱动下,完成对给定的句子进行语法分析和属性计算工作。语法分析中通过词法分析子程序获得一个单词的词法记号。3、实验内容及要求实验所用简单台式计算器文法如下。exp→expaddopterm|termAddop→+|-term→termmulopfactor|factormulop→*|/factor→(exp)|number其中number可以是多位的十进制数字串(整数即可),因此这里还需要一个小的词法分析器来得到id和number的值。改写文法,使其满足LR(1)文法的要求。按简单台式计算器的计算要求定义属性和语义规则,属性计算的结果是输出给定表达式的值。从数据文件中读出表达式,给出表达式的正误评判,对合法表达式,输出其值。