




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河南工业大学实验报告河南工业大学实验报告 课程名称 编译原理 实验项目 实验四 LR 1 分析法 院 系 信息科学与工程学院 专业班级 计科 F1402 班 姓 名 苏朋辉 学 号 201416010211 指导老师 侯惠芳 日 期 2017 5 6 批改日期 成 绩 一 实验目的 1 掌握 LR 1 分析法的基本原理 2 掌握 LR 1 分析表的构造方法 3 掌握 LR 1 驱动程序的构造方法 二 实验内容及要求 构造 LR 1 分析程序 利用它进行语法分析 判断给出的符号串是否为该文法识别的 句子 了解 LR K 分析方法是严格的从左向右扫描 和自底向上的语法分析方法 根据某一文法编制调试 LR 1 分析程序 以便对任意输入的符号串进行分析 本次 实验的目的主要是加深对 LR 1 分析法的理解 程序输入 输出示例 对下列文法 用 LR 1 分析法对任意输入的符号串进行分析 1 E E T 2 E E T 3 T T F 4 T T F 5 F E 6 F i 输出的格式如下 1 LR 1 分析程序 编制人 姓名 学号 班级 2 输入一以 结束的符号串 包括 i 在此位置输入符号串 3 输出过程如下 步骤步骤 状态栈状态栈 符号栈符号栈 剩余输入串剩余输入串动作动作 10 i i i 移进 4 输入符号串为非法符号串 或者为合法符号串 备注 1 在 所用产生式所用产生式 一列中如果对应有推导则写出所用产生式 如果为匹配终结符则 写明匹配的终结符 如分析异常出错则写为 分析出错 若成功结束则写为 分析成功 2 在此位置输入符号串为用户自行输入的符号串 注意 1 表达式中允许使用运算符 分割符 括号 字符 i 结束符 2 如果遇到错误的表达式 应输出错误提示信息 该信息越详细越好 3 对学有余力的同学 测试用的表达式事先放在文本文件中 一行存放一个表达式 同时 以分号分割 同时将预期的输出结果写在另一个文本文件中 以便和输出进行对照 4 可采用的其它的文法 三 实验过程 3 1 代码如下 include include include include using namespace std 初始化预测分析表 string action 12 6 s5 error error s4 error error error s6 error error error acc error r2 s7 error r2 r2 error r4 r4 error r4 r4 s5 error error s4 error error error r6 r6 error r6 r6 s5 error error s4 error error s5 error error s4 error error error s6 error error s11 error error r1 r7 error r1 r1 error r3 r3 error r3 r3 error r5 r5 error r5 r5 string go 12 3 1 2 3 error error error error error error error error error 8 2 3 error error error error 9 3 error error 10 error error error error error error error error error error error error char Vt 6 i 终结符表 string LR 6 E E T E T T T F T F F E F i LR 文法 stack S 状态栈 stack X 符号栈 char input 10 输入字符 int num string s 判断字符串中的数字 int i string str for int j 0 j 0 i atoi str c str return i void preview char c for int j 0 c j j cout c j cout endl void print int i char c 剩余输入串的输出 for int j i c j 1 j cout c j cout t int same char a 用于查找终结符 for int i 0 i 6 i if a Vt i return i return 1 void analyse 分析程序 bool flag true 循环条件控制 int step 1 point 0 state 0 步骤 指针 状态 char ch1 ch2 int m n l 用于判断终结符 分析表 表达式右部的长度 string str1 用于判断对应分析表中的符号 string str2 str3 0 记录符号栈的所有元素 cout 姓名 苏朋辉 学号 201416010211 班级 计科 F1402 班 endl endl cout 请输入要规约的字符串 并以 号结束 input cout 您输入的字符串为 preview input X push S push 0 cout 步骤 t 状态栈 t 符号栈 t 输入串 t 动作 endl cout step t str3 t str2 t print point input cout 初始化 endl 初始化 while flag 进入循环 state S top ch1 input point m same ch1 str1 action state m 移进动作 if str1 0 s n num str1 S push n X push ch1 str2 str2 ch1 ch2 n 48 str3 str3 ch2 point cout step t str3 t str2 t print point input cout str1 移进 endl else if str1 0 r 归约动作 n num str1 l LR n 1 length 3 for int i 1 i l i S pop str3 str3 substr 0 str3 length 1 X pop str2 str2 substr 0 str2 length 1 X push LR n 1 0 str2 str2 LR n 1 0 state S top if LR n 1 0 E S push num go state 0 ch2 num go state 0 48 str3 str3 ch2 else if LR n 1 0 T S push num go state 1 ch2 num go state 1 48 str3 str3 ch2 else if LR n 1 0 F S push num go state 2 ch2 num go state 2 48 str3 str3 ch2 cout step t str3 t str2 t print point input cout str1 LR n 1 归约 endl 出错 else if str1 error cout Error n 程序错误 分析结束 endl flag false 分析成功 else if str1 acc cout Acc n 分析成功 终止程序 endl flag false int main analyse return 0 3 2 运行结果如图 2 图 3 图 2 图 3 4 实验总结 心得 通过完成实验 对 LR 1 分析法的基本原理 LR 1 分析表的构造方法 L
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国汽车用塑料行业市场调查报告
- 2024年中国低空油烟净化器行业调查报告
- 中国樟脑磺酸钠行业市场调查报告
- 中国棉纺经纱管行业市场发展前景及发展趋势与投资战略研究报告(2024-2030)
- 2025年中国转向器托架行业市场发展前景及发展趋势与投资战略研究报告
- 2025年中国一位无级调光器行业市场发展前景及发展趋势与投资战略研究报告
- 2020-2025年中国林木培育和种植市场前景预测及未来发展趋势报告
- 纯化水水质检验报告
- 2021-2026年中国自动化药房设备行业全景评估及投资规划建议报告
- 2025-2030年中国世纪情酒行业深度研究分析报告
- 低空经济八大应用场景与实践案例解析方案
- 广东省深圳市福田区2023-2024学年一年级下学期语文期末试卷(含答案)
- 2025年物业管理员(中级)职业技能鉴定试卷(含物业设施设备维护案例)
- 下肢功能锻炼的护理方法
- 核电站清洁维护派遣及环境监测服务合同
- 行政管理学科试题及答案分享
- 江苏南通2025年公开招聘农村(村务)工作者笔试题带答案分析
- 《公司法教学课件》课件
- 造价咨询保密管理制度
- 支吊架厂家抗震支架安装规范图集
- 2025年江苏瑞海投资控股集团有限公司招聘笔试参考题库含答案解析
评论
0/150
提交评论