我们首先用S′→·S作为初态集的项目,然后用闭包函数和转换函数构造识别文法G′的识别活前缀的有限自动机DFA如图7.11所示,可以发现在项目集I5和I7中存在移进和归约冲突。
  I5:S→ae·c    I7:S→be·d
    A→e·       A→e·
  而归约项目左部非终结符的FOLLOW(A)={c,d}
  在I5中,FOLLOW(A)∩{c}={c,d}∩{c}≠
  在I7中,FOLLOW(A) ∩{d}={c,d}∩{d}≠
  因此I5,I7中冲突不能用SLR(1)方法解决。只能考虑用下面将要介绍的LR(1)方法解决。
图 7.11 LR(0)识别G′的活前缀的DFA
  由于用SLR(1)方法解决动作冲突时,对于归约项目A→α·,只要当前面临输入符为a∈FOLLOW(A)时,就确定采用产生式A→α进行归约,但是如果栈中的符号串为βα,归约后变为βA,再移进当前符a,则栈里变为βAa,而实际上βAa未必为文法规范句型的活前缀。
  例如:在识别表达式文法的活前缀DFA中,(见图7.10)在项目集I2存在移进-归约冲突,即{E→T· T→T·*F}若栈顶状态为2,栈中符号为#T,当前输入符为')',而')'属FOLLOW(E)中,这时按SLR(1)方法应用产生式E→T进行归约,归约后栈顶符号为#E,而再加当前符')'后,栈中为#E)不是表达式文法规范句型的活前缀。