为以下语法构造一个预测解析表并检查字符串 id + id * id 是否被接受。
问题 - 考虑以下语法 -
E → TE′
E′ → +TE′|ε
T′ → FT′
T′ → FT′|ε
F → (E)|id
解决方案 -
Step1- 消除左递归并执行左因子分解
由于语法中没有左递归,所以我们将按原样进行。此外,不需要左因子分解。
Step2- FIRST 的计算
FIRST(E)= FIRST(T)= FIRST(F)= {(, id}
第一 (E′) = {+, ε}
FIRST (T′) = {*, ε}
Step3- FOLLOW的计算
跟随 (E) = 跟随(E′) = {), $}
跟随 (T) = 跟随(T′) = {+, ), $}
跟随 (F) = {+,*,),$}
Step4− 预测解析表的构建
创建表,即逐行写入所有非终端和逐列写入所有终端。
现在,通过应用构建预测解析表的规则来填充表格。
E → TE′
比较 E → TE′ 与 A → α
E → | TE' |
A → | 甲 |
∴ A = E, α = TE′
∴ FIRST(α) = FIRST(TE′) = FIRST(T)= {(, id}
预测解析表的应用规则(1)
∴ ADD E → TE′ 到 M[E, ( ] 和 M[E, id]
∴ 在行 (E) 和列 {(, id} (1) 前面写 E → TE′
E′ → +TE′|
以上是 为以下语法构造一个预测解析表并检查字符串 id + id * id 是否被接受。 的全部内容, 来源链接: utcz.com/z/363368.html