- 11
- 0
- 约7.9千字
- 约 7页
- 2021-11-07 发布于山东
- 举报
实验三 LR(1) 分析法
实验学时: 4
实验类型:验证
实验要求:必修
一、实验目的
构造 LR(1) 分析程序,利用它进行语法分析,判断给出的符号串是否为该文
法识别的句子,了解 LR (K)分析方法是严格的从左向右扫描,和自底向上的语
法分析方法。
二、实验内容
对下列文法,用 LR (1)分析法对任意输入的符号串进行分析: ( 产生式有误,
进行修改 )
(1)E- E+T
(2)E- E —T (E-T)
(3)T- T*F
(4)T- T/F (T-F)
(5)F- (E)
(6)F- i
三、实验目的
1、编程时注意编程风格:空行的使用、注释的使用、缩进的使用等。
2、如果遇到错误的表达式,应输出错误提示信息。
3、程序输入 / 输出实例:
输入一以 #结束的符号串 ( 包括 +—*/ ()i#) :在此位置输入符号串
输出过程如下:
步骤 状态栈 符号栈 剩余输入串 动 作
1 0 # i+i*i# 移进
i+i*i 的 LR分析过程
步骤 状态栈 符号栈 输入串 动作说明
1 0 # i+i*i# ACTION[0,i]=S 5 , 状态 5 入栈
2 05 #i +i*i# r 6 : F →i 归约 ,GOTO(0,F)=3 入栈
3 03 #F +i*i# r 4 : T →F 归约 ,GOTO(0,T)=3 入栈
2
4 02 #T +i*i# r : E →T 归约 ,GOTO(0,E)=1入栈
5 01 #E +i*i# ACTION[1,+]=S6 , 状态 6 入栈
6 016 #E+ i*i# ACTION[6,i]=S 5 , 状态 5 入栈
7 0165 #E+i *i# r 6 : F →i 归约 ,GOTO(6,F)=3 入栈
4
8 0163 #E+F *i# r : T →F 归约 ,GOTO(6,T)=9 入栈
9 0169 #E+T *i# ACTION[9,*]=S 7 , 状态 7 入栈
10 01697 #E+T* i# ACTION[7,i]=S 5 , 状态 5 入栈
11 016975 #E+T*i # r 6 :F →i 归约 ,GOTO(7,F)=10 入栈
3
12 0169710 #E+T*F # r : T →T*F 归约 ,GOTO(6,T)=9 入栈
1
13 0169 #E+T # r :E →E+T,GOTO(0,E)=1入栈
14 01 #E # Acc:分析成功
实验报告正文的内容:
描述 LR(1) 语法分析程序的设计思想 :
定义项目的一般形式是 [A → · , a 1a2 …ak] ,这样的一个项目称为一个
您可能关注的文档
最近下载
- 2024-2025学年度苏州健雄职业技术学院单招考试文化素质数学能力检测试卷(名校卷)附答案详解.docx VIP
- 2025年苏州卫生职业技术学院高职单招语文2019-2024历年真题考点试卷含答案解析.docx
- 大国博弈:美伊关系解析.pptx VIP
- 儿科中心静脉导管护理实践指南(2025年版).docx
- 2024年上海市长宁区中考二模英语试题(含答案解析).pdf VIP
- 平移、旋转和轴对称练习题(基础练习).docx VIP
- 2025年信息系统安全专家网络地址转换与端口安全配置专题试卷及解析.pdf VIP
- 触电与触电急救.pptx VIP
- 如何数胎动讲解.ppt VIP
- 2026年春学期北师大版小学数学六年级下册教学进度表.docx VIP
原创力文档

文档评论(0)