Parsing 在LR(1)前瞻中考虑哪些产品?

Parsing 在LR(1)前瞻中考虑哪些产品?,parsing,context-free-grammar,lr1,Parsing,Context Free Grammar,Lr1,目前,我正在使用以下工具查看两个闭包计算示例: 例1 S -> A c A -> b B B -> A b 此处,在初始状态下,以以下项结束: [S -> .A c, $]; [A -> .b B, c]} 例2 S -> A B A -> a B -> b B -> '' 计算的第一步闭合为: {[S -> .A B, $]; [A -> .a, b/$]} 在示例1中,为什么规则3中b的后续项不包括在前瞻中?在案例2

目前,我正在使用以下工具查看两个闭包计算示例:

例1

S -> A c
A -> b B
B -> A b
此处,在初始状态下,以以下项结束:

[S -> .A c, $]; [A -> .b B, c]}
例2

S -> A B
A -> a
B -> b
B -> ''
计算的第一步闭合为:

{[S -> .A B, $]; [A -> .a, b/$]}
在示例1中,为什么规则3中b的后续项不包括在前瞻中?在案例2中,我们遵循B来计算$是前瞻的一部分,所以在1的情况下是否有一些特殊的原因不考虑所有的规则?

< p>当用“α”做一个闭包时,我们使用第一(α)作为前瞻,并且仅包含包含(父)的前瞻,如果ε。∈ 第一(α)。在示例1中,ε∉ 第一个(c),所以向前看就是c。在例2中,ε∈ 首先(B),我们将包含的lookahead($在本例中)添加到lookahead


FOLLOW永远不相关。

谢谢,这很有意义,并解释了上下文与解析设置的关系。这与我在这里找到的一个很好的定义相对应:。