收藏 分享(赏)

北方工业大学编译原理实验2报告语法分析.docx

上传人:天天快乐 文档编号:431913 上传时间:2018-04-06 格式:DOCX 页数:18 大小:77.21KB
下载 相关 举报
北方工业大学编译原理实验2报告语法分析.docx_第1页
第1页 / 共18页
北方工业大学编译原理实验2报告语法分析.docx_第2页
第2页 / 共18页
北方工业大学编译原理实验2报告语法分析.docx_第3页
第3页 / 共18页
北方工业大学编译原理实验2报告语法分析.docx_第4页
第4页 / 共18页
北方工业大学编译原理实验2报告语法分析.docx_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、编译原理实验报告实验题目:语法分析器构造指导教师:杨健姓名:杨先宇班级:计 13-4学号:15901020402实验成绩:实验题目实验二 语法分析器构造实验目的和要求借助于词法分析程序提供的分析结果,编写一个算符优先语法分析程序,程序能进行语法结构分析和错误检查,并产生相应的归约信息。同时给出出错信息和错误类型,从而加深对语法分析的理解。说明提示:1. 本实验的优先表可以手工先设计好。2. 本实验要求中提出的“产出相应的归约信息”意指在语法分析的过程中,一旦产生归约,在程序上产生并最终输出归约产生式序号。3. 出错类型的产生可预先对应优先表中出错栏列表说明其出错类型,并分别编序,当分析中产生错

2、误时以字符串输出相应表中错误信息。设计思想与框架功能描述:LL(1)分析法是一种不带回溯的非递归的自上而下的分析法.其基本思想是 根据输入串的当前输入符号来唯一确定选用某条规则来进行推倒,当这个输入符号与推倒的第一个符号相同时再取输入串的下一个符号,继续确定下一个推倒应选的规则,如此下去,直到推倒出被分析的输入串为止.1.首先,手工制作一个算符优先表(也可以编程序实现) 。2.将词法分析所得到的预处理文件作为该程序的输入文件,并根据相应的算法提取出算术表达式并转换为输入串,将其保存在 strings 这个字符数组中,并把表达式中相应常量用字符i来表示,以便规约(以#结束输入串) 。3.其次,初

3、始化符号栈。将输入串里的字符读进 a 里(a 用于表示当前的输入字符) ,将栈顶元素与 a(当前字符)相比较,如果栈顶元素的优先级比 a 的低或等于则进栈;如果栈顶元素的优先级比 a 的高则将栈顶指针下移,直到找到一个字符串的优先级比它上一个字符串的优先级低的字符串(该过程为寻找最左素短语) ,然后将这两个字符中间的符号串寻找匹配的产生式后进行规约,并将其弹出站定,将规约得到的非终结符入栈;栈顶元素的下一个元素优先级低于或等于当前输入的字符串就移进,否则就出错。然后重复 c 过程,直到输入串结束(遇见#) 。 (输出相应的移近规约过程) 。4.重复 b 和 c 过程,直到该预处理文件结束(遇见

4、#) 。核心算法void process(char *temp)int k = 1, j, w, l, m, t = 0, p, q, v, yu = 0;stack0 = ;stackk = #;dangqianfuhao = ;panduanshengyuzifuchuan(yu);step = 0;shuchu(0, -1);/ 这是对#号的处理/-1 代表char Q;int i = 0;dodangqianfuhao = tempi;/ 取符号int flag = 0; / 对终结符号的善意假设for (w = 0; w )doQ = stackj;int flag = 0; / 再

5、次做出善意假设终结符for (w = 0; w #include#includechar word8=+,-,*,/,(,),i,#;char *xingshi6=“N+N“,“N-N“,“N*N“,“N/N“,“)N(“,“i“;释 char M88=,e2,e2,e2,e2,“);printf(“%10c“, dangqianfuhao);printf(“%10s“, shengyushuruchuan);if (t = 0)printf(“ 移进n“);if (t = 1)printf(“ 规约n“);step+;void panduanshengyuzifuchuan(int a) /判断剩余字符串int t,v;for (t = 0; t char Q;int i = 0;dodangqianfuhao = tempi;/ 取符号int flag = 0; / 对终结符号的善意假设for (w = 0; w )do

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报