LR(1)项目集族的构造:如何确定前向搜索符
陈火旺国防工业第三版《编译原理》在讲述LR(1)规范项目集族的时候,提到了前向搜索串,书上完全按照定义给出推导,属于找到了就有,没找到就没有,完全无法令人理解,这里给出前向搜索串的一种直观理解以及推导过程
前向搜索串定义
在构造规范项目集族的时候,带上每一个项目的前向搜索串,以解决移进-规约冲突问题。当且仅当下一个输入串为当前规约项目的前向搜索符时候,进行规约,否则一律移进
前向搜索串的理解
给定一个文法G:
- S‘ --> S
- S --> BB
- B --> aB
- B --> b
该项目的第一个规范项目集族应当有
序号 | 产生式 | 搜索串 |
---|---|---|
1 | S’–>·S | # |
2 | S --> ·BB | # |
3 | B --> ·aB | a/b |
4 | B --> ·b | a/b |
现在解释2,3,4中象印的搜索串是如何得到的:
- 根据项目1(S’–>·S),我们可以将所有形如 S–>·?,即(S–>·BB)加入到本项目族中