正在加载图片...
四、LR(1)分析表的的造 尽管SLR(1)分析表简单实用,但还不能解决所有问题; 例如,文法S’→SS→ CbBA A→Aab|abB→C|Db C→aD→a相应的DFA见下页。 其中项目集I10={ SCbA,A→Aab}中存在“移进-归约” 冲突,由 FOLLOW(S)={#}≠{a},冲突是可解决的 但项目集Ig={C→a,D→a-}中, FOLLOW(C)={a,b}, FOLLOW(D)={b},存在公共元素b,不能解决此冲突 还需考虑另一个条件:归约后得到的符号串应该是一个 规范句型的前缀,即当分析栈内容为#6a,输入符为a时, 若将α归约为A,则#δAa必须是某一规范句型的前缀,否则 这个归约就是无效的7 四、LR(1)分析表的构造 尽管SLR(1)分析表简单实用,但还不能解决所有问题; 例如,文法 S’→S S→CbBA A→Aab|ab B→C|Db C→a D→a 相应的DFA见下页。 – 其中项目集I10={S→CbBA·,A→A·ab}中存在“移进-归约” 冲突,由FOLLOW(S)={#} ≠{a}, 冲突是可解决的. – 但项目集I8={C→a·,D→a·}中, FOLLOW(C)={a,b}, FOLLOW(D)={b},存在公共元素b,不能解决此冲突. 还需考虑另一个条件:归约后得到的符号串应该是一个 规范句型的前缀,即当分析栈内容为#,输入符为a时, 若将归约为A,则#Aa必须是某一规范句型的前缀,否则 这个归约就是无效的
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有