首先,给文法增加一个辅助的开始产生式S'->.S$。令T是至今看到的状态集合,E是至今已找到的(移进或转换)边集合。
初始化T为{Closure({S'->.S$})}
初始化E为空
repeat
for T中的每一个状态I
forI中的每一项A->α.Xβ
let J是Goto(I,X)
T<-T{J}
E<-E{I X-> J}
until E和T在本次迭代没有改变
但对于符号$,我们不计算GOTO(I,$),采用accept
LR(0)的归约动作集合R:
R->{}
for T中的每一个状态I
forT中的每一项A->α
R<-R∪{(I,A->α)}