Cyan's Blog

Search

Search IconIcon to open search

Compiler-4-4_LR(1)_分析

Last updated Unknown Edit Source

# LR (1) 分析

LR (1) 分析在一开始构建 DFA 的时候便考虑到了前瞻符号, 使得其在结构上更为强大.

# LR (1) 项

在 LR (0) 项的基础上, LR (1) 项添加了前瞻符号: $$A\rightarrow \alpha\cdot \beta, a $$

# LR(1)分析: 构造DFA

# LR(1): NFA的状态转移

注意到除了不变的前瞻符号a, 这和LR(0)里面几乎相同.

# 再论SLR(1)

SLR(1)分析法虽然在构造DFA的时候没有考虑前瞻符号, 但是我们可以这样类比LR(1):

SLR(1) Transition States

LR(1) Transition States

# 构造DFA

我们还是从初始状态出发, 逐步构建闭包, 直到整个图形不再变化.

# 开始分析


  1. CCP&P 5.4节 ↩︎

  2. 这个图是虎书里面的算法, 所以符号和前面稍有不同, 请注意 ↩︎