第05章语法-自底向上精品.ppt

* 4、识别活前缀的有穷自动机构造算法 给定一文法G,该文法的开始符号为S。 C={ C0,C1,…,Cn}, 其中C0是开始项目集,C称为LR(0)项目集规范族。 构造DFA的算法: C={ closure({S’→·S}) }; do{ for( C中的每个项目集I和每个符号X ) if( GO(I,X)非空,且不在C中 ) 把GO(I,X)加入C中; }while( C增大 ) return C; * 5.4.4 LR(0)分析表的构造 1) 若项目A→α·aβ∈Ci且GO[i,a]= Cj,其中a为终结符,置ACTION[i,a]=“把状态j和符号a移进栈”,简记为“Sj”; 2) 若项目A→α·∈Ci,则对于任何输入符号a或结束符#,置ACTION[i,a]=“用产生式A→α进行归约”,简记为“Rj”(假定A→α是文法G’的第j条产生式); 3) 若项目S→δ·∈ Ci,则置ACTION[i,#]=“接收”,简记为‘A’; 4) 若GO[i,A]=Cj,A为非终结符,则置GOTO[i,A]=j; 5) 分析表中凡不能用规则①- ④添入信息的单元为空或均置上ERROR,表示有错。 * R1 A→(A)· 5 GO[4,)]=5 A→(A·) 4 R2 A→a· 3

文档评论(0)

1亿VIP精品文档

相关文档