Anda di halaman 1dari 2

ANLISIS SINTCTICO SLR (1)

5.31 El algoritmo de anlisis sintctico SLR (1)


El anlisis sintctico LR (1) simple, o SLR (1) utiliza el DFA (le conjuntos de elementos LR (0) como se construyeron en la seccin anterior. Sin embargo, incrementa de manera importante la potencia del anlisis sintctico LR(O) al utilizar el token siguiente en la cadena de entrada para dirigir sus acciones. Lo hace de dos maneras. La primera consulta el token de entrada antes de un desplazamiento para asegurarse de que existe una transicin DFA apropiada. La segunda utiliza el conjunto Siguiente de un no terminal, como se construy en la seccitn 4.3, para decidir si debera efectuarse una reduccin. Sorprende que este simple uso de la bsqueda hacia adelante sea tan poderoso que permita analizar casi toda construccin de un lenguaje que se presenta comnmente. El algoritmo de anlisis sintctico SLR (1). Sea s el estado actual (en la parte superior de la pila de anlisis sintctico). Entonces las acciones se definen como sigue: 1. Si el estado s contiene cualquier elemento de la forma ,donde X es un terminal, y X es el siguiente token en la cadena de entrada, entonces la accin es desplazar el token de entrada actual a la pila, y el nuevo estado que se insertar en la pila es el estado que contiene el elemento 2. Si el estado s contiene el elemento completo y el token siguiente en la cadena de entrada est en una Siguiente(A), entonces la accin es reducir mediante la regla . Una rediiccin mediante la regla S' -+ S, donde S es el estado in cid,-es equivalente a la aceptacin: esto ocurrir slo si el siguiente token de entr da es $! En todos los otros casos, el nuevo estado se calcula como sigue. Elimine cadena a y todos sus estados correspondientes de la pila de anlisis sintctico. De la misma manera, retroceda en el DFA hacia el estado en el cual comenz la cons truccin de a. Por construccin, este estado debe contener un elemento de la fo nia B -t y.A P. Inserte rl en la pila, e inserte el estado que contiene el elemen B-ta'4.p.

Decimos que tina gramtica es una gramtica SLR (1) si la aplicacin de las anteriores reglas de anlisis sintctico SLR (l) no producen una ambigedad. En particular, una
'e, ranitica

es SLR (1) si y slo si, para cualquier estado .S, se satisfacen las siguientes dos condiciones: