En algunas situaciones el análisis SLR genera conflictos, este tipo de problemas también se pueden dar en el análisis LR y LALR, pero al ser el análisis SLR el más restrictivo de ellos es más fácil que se generen conflictos.
Un conflicto ocurre cuando en la tabla de análisis generada hay más de una acción para alguna entrada de la tabla. Los conflictos pueden ser de los siguientes tipos:
Desplazamiento/Reducción. Por ejemplo, en la siguiente gramática
S→A | xb
A→aAb | B
B→x
Al calcular el cierre, uno de los estados queda de la siguiente forma:
Al generar la tabla de acción en este estado con la b hay que hacer un desplazamiento y una reducción. El problema es que en los seguidores de la B, está la b, y es donde se genera el conflicto. Es decir, con la b la tabla nos informa que son posibles dos acciones, un desplazamiento y una reducción, lo cual es un conflicto que no se puede resolver con la información de que disponemos (el siguiente componente léxico en la entrada, y el estado actual del autómata).
Reducción/Reducción. Por ejemplo, en la siguiente gramática
S→Ab | Bc
A→a
B→a
A→Bb
Uno de los estados generados al calcular el autómata sería:
En este estado hay que realizar dos reducciones, el problema está en que en lo seguidores de B y en los seguidores de A hay un terminal común que es la b. Por lo tanto no se sabe la reducción que hay que aplicar y se genera un conflicto
El motivo de estos conflictos, viene dado por el hecho de que a la hora de reducir por un no terminal X en un estado, se hace uso de un símbolo que vendrá dado por los seguidores de X en todos los estados posibles. Como se verá después lo que hace el método LR es mantener un conjunto de símbolos de anticipación más discriminante. Para ello hay que modificar la definición de item hecha anteriormente. En la nueva definición, al item se le incorpora un elemento más que es un conjunto de símbolos de anticipación. De esta forma, en cada item se van registrando los símbolos de anticipación por los que hacer la reducción. Estos símbolos de anticipación solo tienen efecto en las reducciones no en los desplazamientos.