LR(0项目对某个活前缀有效 定义 项目A→β1.β2对活前缀r=aB1是有效的,如果存在 个规范推导SaA=>aB1B2 若项目A→aB对活前缀r=6a是有效的且B→x是 个产生式,则项目B→.对r8a也是有效的 因为由假定,存在一个规范推导 S=8Aω=>8aBB R 设3x,则对B→有规范推导 R s8A=8aBBo38aBxo=)8anx o 于是项目B→.久对r=8a也是有效的
LR(0)项目对某个活前缀有效 定义 项目A →β1.β2对活前缀r=αβ1是有效的,如果存在 一个规范推导S => αAω =>αβ1β2 ω 若项目A →α.Bβ对活前缀r=α是有效的且B→是 一个产生式,则项目B→.对r=α也是有效的. 因为由假定,存在一个规范推导 S => Aω => αBβω 设βω =>ω,则对B→有规范推导 S => Aω=>αBβω=>αB ω =>α ω 于是项目B→.对r=α也是有效的 R * R * R * R * R *
LR(1)项目对某个活前缀有效 定义 个LR(项目[A→a.B,a]对活前缀r=6a是 有效的如果存在一个规范推导S>8AO >δaβG 其中或的第一个符号为a,或=e而a为 若LR)项目A→a.BB,a]对活前缀r=8a是有 效的且B→是一个产生式则项目B→,λ,b 对r=δa也是有效的其中b或者是从β推出的 第一个终结符或者BE而b=,两者结合在 起,即:b∈ FIRST(Ba)
LR(1)项目对某个活前缀有效 定义 一个LR(1)项目[A →α.β,a]对活前缀r=α是 有效的,如果存在一个规范推导S => Aω => αβω 其中或ω的第一个符号为a,或ω=而a为# 若LR(1)项目[A →α.Bβ,a]对活前缀r=α是有 效的且B→是一个产生式,则项目[B→.,b] 对r=α也是有效的.其中b或者是从β推出的 第一个终结符,或者β=> 而b=a,两者结合在 一起,即:b FIRST(βa) R * *