算法:LR(0)
Last updated
Last updated
拓广文法→列项目→项目集规范簇(DFA图)→分析表
在起始符前面再加上一个起始符
有选择运算符的,将每一个单列为一个产生式
I0,将所有产生式左部加上一个点
点往后跳一个符号,如果点后面是终结符不用管
如果点后是非终结符,将这个非终结符的所有项目都写到当前这个项目中(除去第一个拓广文法)。
注意不同项目之间的关系,保证不能重复新建项目簇,如果重复需要指向之前的项目簇。
ACTION是终结符的集合,GOTO表中是非终结符的集合。
将当前状态能够转换到达的状态填入表中对应位置
GOTO部分直接写序号,ACTION部分需要写S+序号
如果当前状态是最终状态(点在最后),并且在拓广文法中有相应的产生式,则在全部ACTION部分填入r+序号(拓广文法中产生式的序号),代表结束
将额外添加的第一个拓广文法所在的项目簇对应$处填入acc。