为以下语法构造 SLR Parsing 表。此外,解析输入字符串 a * b + a。
描述 - 考虑语法
E → E + T|T
T → TF|F
F → F*|a|b。
解决方案
Step1 - 构建增强语法并对产生式进行编号。
(0) E′ → E
(1) E → E + T
(2) E → T
(3) T→TF
(4) T → F
(5) F → F *
(6) F→a
(7) F→b。
Step2 - 找到闭包和 goto 函数来构造 LR (0) 项目。
方框代表新状态,圆圈代表重复状态。
FOLLOW 的计算
我们可以找出
FOLLOW(E)= {+, $}
FOLLOW(T)= {+, a, b, $}
FOLLOW(F)= {+,*, a, b, $}
解析输入字符串 a * b + a -
堆 | 输入字符串 | 行动 |
---|---|---|
0 | a * b + a $ | Shift |
0 一 4 | * b + a $ | Reduce by F → a. |
0 楼 3 | * b + a $ | Shift |
0 F 3 * 8 | b + a $ | Reduce by F → F ∗ |
0 楼 3 | b + a $ | Reduce by T → F |
0 吨 2 | b + a $ | Shift |
0 T 2 b 5 | +一美元 | Reduce by F → b |
0 T 2 F 7 | +一美元 | Reduce by T → TF |
0 吨 2 | +一美元 | Reduce by E → T |
0 E 1 | +一美元 | Shift |
0 E 1 + 6 | 一美元 | Shift |
0 E 1 + 6 一 4 | $ | Reduce by F → a |
0 E 1 + 6 F 3 | $ | Reduce by T → F |
0 E 1 + 6 T 9 | $ | Reduce by E → E + T |
0 E 1 | $ | 接受 |
以上是 为以下语法构造 SLR Parsing 表。此外,解析输入字符串 a * b + a。 的全部内容, 来源链接: utcz.com/z/363384.html