1.LR(0)项目集规范组的构造
构成识别一个文法构造的DFA项目集的全体叫做这个文法的LR(0)项目集规范族(列表法)
2.LR(0)项目
如果U ::= ub 是文法G的一个规则,其中u或v可为空串,则U—>u.v是G的一个LR(0)项目
(文法G中每个产生式右边适当位置添加一个圆点构成项目)
这六个项目含义不同,一个产生式一共可以产生长度+1个项目
如果是空产生式,如果A只能推出空串,A - > ·
3.LR(0)项目的含义
每个LR(0)项目的含义与圆点的位置有关
移进项:圆点后面为终结符的项目
待约项:圆点后面为非终结符的项目
归约项:圆点在最右边的项目
接受项:Z - > u.,Z是识别符号
初始项:文法G[Z]的LR(0)项目Z ->.u,称为G的初始项
后继项:设U ->u·Av是文法G的一个LR(0)项,A∈V,则LR(0) U ->uA.v是后继项
项目集(项集):LR(0)项所组成的集合
后继项集:如果一个项集有一个项目,其中圆点后面是X,则在X进入的状态是X的后继状态,相继是X的后继项集
项集的闭包:设Sj是文法G的一个项集,项集Sj的闭包CLOSURE(Sj)是按照下列步骤得到的项集
(1)Sj的每一个项都在CLOSURE中
(2)如果U ->u.Vv∈CLOSURE(Sj),且 V::=w是一个规则,把V ->w放入CLOSURE(Sj)中
(3)重复步骤2,直到不在扩大
4.LR(0)项集规范族的构造步骤
5.项集规范族和特征有穷状态机
文法的LR(0)项集规范族可以被抽象成一个有穷状态机(FSM)
4.LR(0)文法的定义
LR(0)项目集规范族不存在移进-归约冲突或者归约-归约冲突的时候,称其为LR(0)文法(LR(0)分析表不存在多重定义)
5.GO(I,X)转换函数
GO(I,X) = CLOSURE(J) I是状态,X是后继符号,J是基本项集