北方工业大学编译原理实验2报告语法分析
编译原理实验报告
实验题目:语法分析器构造
指导教师:杨健
姓名:杨先宇
班级:计13-4
学号实验成绩:
实验题目
实验二 语法分析器构造
实验目的和要求
借助于词法分析程序提供的分析结果,编写一个算符优先语法分析程序,程序能进行语法结构分析和错误检查,并产生相应的归约信息。同时给出出错信息和错误类型,从而加深对语法分析的理解。
说明提示:
1. 本实验的优先表可以手工先设计好。
2. 本实验要求中提出的“产出相应的归约信息”意指在语法分析的过程中,一旦产生归约,在程序上产生并最终输出归约产生式序号。
3. 出错类型的产生可预先对应优先表中出错栏列表说明其出错类型,并分别编序,当分析中产生错误时以字符串输出相应表中错误信息。设计思想与框架功能描述:LL(1)分析法是一种不带回溯的非递归的自上而下的分析法.其基本思想是 根据输入串的当前输入符号来唯一确定选用某条规则来进行推倒,当这个输入符号与推倒的第一个符号相同时再取输入串的下一个符号,继续确定下一个推倒应选的规则,如此下去,直到推倒出被分析的输入串为止.
1.首先,手工制作一个算符优先表(也可以编程序实现)。
2.将词法分析所得到的预处理文件作为该程序的输入文件,并根据相应的算法提取出算术表达式并转换为输入串,将其保存在strings这个字符数组中,并把表达式中相应常量用字符‘i’来表示,以便规约(以#结束输入串)。
3.其次,初始化符号栈。将输入串里的字符读进a里(a用于表示当前的输入字符),将栈顶元素与a(当前字符)相比较,如果栈顶元素的优先级比a的低或等于则进栈;如果栈顶元素的优先级比a的高则将栈顶指针下移,直到找到一个字符串的优先级比它上一个字符串的优先级低的字符串(该过程为寻找最左素短语),然后将这两个字符中间的符号串寻找匹配的产生式后进行规约,并将其弹出站定,将规约得到的非终结符入栈;栈顶元素的下一个元素优先级低于或等于当前输入的字符串就移进,否则就出错。然后重复c过程,直到输入串结束(遇见#)。(输出相应的移近——规约过程)。
4.重复b和c过程,直到该预处理文件结束(遇见#)。
核心算法
void process(char *temp)
{
int k = 1, j, w, l, m, t = 0, p, q, v, yu = 0;
stack[0] = ;
stack[k] = #;
dangqianfuhao = ;
panduanshengyuzifuchuan(yu);
step = 0;
shuchu(0, -1);
// 这是对#号的处理
//-1代表 0代表= 1代表
char Q;
int i = 0;
do
{
dangqianfuhao = temp[i]; // 取符号
int flag = 0; // 对终结符号的善意假设
for (w = 0; w 8; w++) // 查找运算符表,谁与stack[k]匹配
{
if (stack[k] == word[w])
flag = 1;
}
if (flag == 1)
j = k; // j指向终极符了
else
j = k - 1; // j指向stack中最后一个非终结符
for (w = 0; w 8; w++) // 找出s[j]和当前字符在优先表里的位置
{
if (stack[j] == word[w])
l = w; // l记录了当前字符的终结符类型
if (dangqianfuhao == word[w])
m = w; // 终结符的处理
}
while (M[l][m] == )
{
do
{
Q = stack[j];
int flag = 0; // 再次做出善意假设终结符
for (w = 0; w 8; w++)
{
if (stack[j - 1] == word[w])
flag = 1;
}
if (flag == 1)
j = j - 1;
else
j = j - 2;
for (w = 0; w 8; w++) // 找出s[j]和Q对应优先表里的位置,对决
{
if (stack[j] == word[w])
p = w; // p记录员,代理人
if (Q == word[w])
q = w; // q记录员,代理人
您可能关注的文档
- 北京初三化学15年1模各区实际生产分析.doc
- 北京全媒体数据中心(融合云平台)建设项目招标文件技术需求部分20150705.docx
- 北京大学附中河南分校20152016学年高一12月月考语文试卷.doc
- 北京大学自学考试社会调查教程重点.doc
- 北京大学附属中学河南分校(宇华教育集团)20152016学年高一12月月考语文试题Word版含答案.doc
- 北京大学附属中学河南分校20152016学年高一语文12月月考试题.doc
- 北京市159中学20142015学年高一下学期期中考试化学试卷.doc
- 北京工业大学十套数据结构试题及答案.doc
- 北京城的发展.pptx
- 北京工业大学大学物理竞赛辅导3电磁学讨论课电流磁场电磁感应.pptx
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 2025统编版小学道德与法治三年级下册教学计划、教学设计附教学反思(附目录).docx
- 2026年廉政答案考试题库(考试直接用).docx VIP
- 虚列费用培训课件.ppt VIP
- Z20名校联盟(浙江省名校新高考研究联盟)2026届高三第二次联考日语含答案.doc VIP
- 煤矿2026年机电工作计划方案.docx VIP
- 企业合规法律服务指引(湖北省律师协会法律顾问专委会).pdf VIP
- Qu系列说明书QU16&QU24(加强版).pdf VIP
- 数学与生活:一元二次方程的起源.pptx VIP
- 事业单位d类综合应用能力必背知识点.pdf VIP
- (课堂用)TheFutureoftheEnglish(课件.ppt VIP
原创力文档

文档评论(0)