第5章自下而上语法分析方法精选.ppt

2、 LR(0)分析器 例如,对于文法: 若 则 2、 LR(0)分析器 GO函数(状态转换函数) 假设I是一个项目集,X是文法G的一个文法符号,则定义状态转换函数GO(I, X)如下: GO(I, X)=CLOSURE(J) 其中 J={任何形如A→αX?β的项目| A→α?Xβ属于I} 例如,对于文法: 设 则 2、 LR(0)分析器 LR(0)项目集规范族的构造 通过函数CLOSURE和GO很容易构造一个文法的拓广文法的LR(0)项目集规范族C,步骤如下: Step1:初始化:令C=CLOSURE({S?→?S}); Step2:对C中每一个项目集I和文法中任意文法符号X应用状态转换函数GO(I, X),得到新的项目集J,若J非空且不在C中,则将其加入到C中; Step3:重复Step2直到C不再增大为止。 2、 LR(0)分析器 LR(0)项目集规范族的构造 为了能够有效地使用以上步骤计算LR(0)项目集规范族C,我们借助一个项目栈来存储构造过程中加入的每一个新的项目集,计算的每一步是先将栈顶项弹出,记为I,然后对

文档评论(0)

1亿VIP精品文档

相关文档