SLR 分析表示例:逻辑表达式 G[S] 的识别过程

逻辑表达式 G[S]:

0	S→ A
1	A→A∨B
2	A→ B
3	B→B∧C
4	B→ C
5	C→┐D
6	C→ D
7	D→(A)
8	D→a

SLR 分析表:

| 状态 | 动作 | GOTO | |---|---|---| | | ┐ | ∨ | ∧ | a | ( | ) | # | A | B | C | D | | 0 | s5 | | | | s7 | s6 | | | 1 | 2 | 3 | 4 | | 1 | | s8 | | | | | | a0 | | | | | | 2 | | r2 | s9 | | | r2 | r2 | | | | | | | 3 | | r4 | r4 | | | r4 | r4 | | | | | | | 4 | | r6 | r6 | | | r6 | r6 | | | | | | | 5 | | | | | s7 | s6 | | | | | | 10 | | 6 | s5 | | | | s7 | s6 | | 11 | 2 | 3 | 4 | | 7 | | r8 | r8 | | | r8 | r8 | | | | | | | 8 | s5 | | | | s7 | s6 | | | 12 | 3 | 4 | | 9 | s5 | | | | s7 | s6 | | | | 13 | 4 | | 10 | | r5 | r5 | | | r5 | r5 | | | | | | | 11 | | s8 | | | | s14 | | | | | | | | 12 | | r1 | s9 | | | r1 | r1 | | | | | | | 13 | | r3 | r3 | | | r3 | r3 | | | | | | | 14 | | r7 | r7 | | | r7 | r7 | | | | | |

给出 #(a∨┐a)∧a# 的识别过程:

| 步骤 | 栈内容 | 输入串 | 操作 | |---|---|---|---| | 1 | #0 | (┐a∨a)∧a# | S6 内容: | | 2 | #06 | ┐a∨a)∧a# | S5 | | 3 | #065 | a∨a)∧a# | R4 | | 4 | #04 | a)∧a# | S7 | | 5 | #047 | )∧a# | R6 | | 6 | #03 | )∧a# | S7 | | 7 | #037 | ∧a# | S6 | | 8 | #0376 | a# | S5 | | 9 | #03765 | # | R2 | | 10 | #023 | # | S8 | | 11 | #0238 | | 接受 |

注:

  • s 表示移进操作,r 表示规约操作,数字表示状态或规约规则编号。
  • a0 表示接受状态。
  • # 表示结束符。
  • 表示逻辑非操作。
  • 表示逻辑或操作。
  • 表示逻辑与操作。
  • () 表示括号。

通过以上 SLR 分析表和识别过程,我们可以清楚地看到 SLR 分析器是如何通过状态转移和规约操作识别输入串的,并最终得到接受结果。


原文地址: https://www.cveoy.top/t/topic/od2K 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录