Documentos de Académico
Documentos de Profesional
Documentos de Cultura
P={ (1) E T E (2) E + T E (3) E (4) T F T (5) T * F T (6) T (7) F ( E ) (8) F identificador (9) F nmero }
Funcin E: lgico inicio referencia Componente lxico actual {SIMULACIN DE LA REGLA E + T E} si emparejar( + ) = VERDADERO entonces avanzar_entrada si T = VERDADERO entonces si E = VERDADERO entonces DEVOLVER VERDADERO si no retroceder_entrada(referencia) fin si si no retroceder_entrada(referencia) fin si si no retroceder_entrada(referencia) fin si {SIMULACIN DE LA REGLA E } DEVOLVER VERDADERO fin
3
Funcin T: lgico inicio {SIMULACIN DE LA REGLA T F T} si F = VERDADERO entonces si T = VERDADERO entonces DEVOLVER VERDADERO si no ERROR DEVOLVER FALSO fin si si no ERROR DEVOLVER FALSO fin si fin
Funcin T: lgico inicio referencia Componente lxico actual {SIMULACIN DE LA REGLA T * F T} si emparejar( * ) = VERDADERO entonces avanzar_entrada si F = VERDADERO entonces si T = VERDADERO entonces DEVOLVER VERDADERO si no retroceder_entrada(referencia) fin si si no retroceder_entrada(referencia) fin si si no retroceder_entrada(referencia) fin si {SIMULACIN DE LA REGLA T } DEVOLVER VERDADERO fin
5
Funcin F: lgico inicio referencia Componente lxico actual {SIMULACIN DE LA REGLA F ( E )} si emparejar( ( ) = VERDADERO entonces avanzar_entrada si E = VERDADERO entonces si emparejar( ) ) = VERDADERO entonces avanzar_entrada DEVOLVER VERDADERO si no retroceder_entrada(referencia) fin si si no retroceder_entrada(referencia) fin si si no retroceder_entrada(referencia) fin si
{SIMULACIN DE LA REGLA F identificador} si emparejar( identificador ) = VERDADERO entonces avanzar_entrada DEVOLVER VERDADERO si no retroceder_entrada(referencia) fin si {SIMULACIN DE LA REGLA F nmero} si emparejar( nmero ) = VERDADERO entonces avanzar_entrada DEVOLVER VERDADERO si no retroceder_entrada(referencia) fin si {SI NINGUNA REGLA ES CORRECTA, SE DEVUELVE FALSO} DEVOLVER FALSO fin
TABLA PREDICTIVA
E E T T F identificador nmero 1 1 4 8 4 6 9 5 7 + 2 4 6 6 * ( 1 ) 3 $ 3
10
Procedimiento E inicio {SIMULACIN DE LA REGLA E + T E} si (token = + ) entonces avanzar_entrada(token) T; E; si no {SIMULACIN DE LA REGLA E } si (token = )) o (token = $) entonces {SENTENCIA NULA} si no ERROR fin si fin si fin
11
Procedimiento T; inicio {SIMULACIN DE LA REGLA T F T} si (token = identificador) o (token = nmero) o (token = () entonces F; T; si no ERROR fin si fin
12
Procedimiento T inicio {SIMULACIN DE LA REGLA T * F T} si (token = * ) entonces avanzar_entrada(token) F; T; si no {SIMULACIN DE LA REGLA T } si (token = +) o (token = )) o (token = $) entonces {SENTENCIA NULA} si no ERROR fin si fin si fin
13
Procedimiento F inicio {SIMULACIN DE LA REGLA F ( E )} si (token = ( ) entonces avanzar_entrada(token) E; si (token = ) ) entonces avanzar_entrada(token) si no ERROR fin si si no
14
{SIMULACIN DE LA REGLA F identificador} si (token = identificador) entonces avanzar_entrada(token) si no {SIMULACIN DE LA REGLA F nmero} si (token = nmero) entonces avanzar_entrada(token) si no ERROR fin si fin si fin si fin
15
si no
{Cima VT, por tanto Cima VN} si (M[Cima, Token] = Cima X1 X2 XN) entonces {Se extrae el smbolo actual de la cima de la pila} desapilar (Cima) { Se introducen los smbolos de la alternativa en orden inverso} para i = N hasta 1 hacer apilar (X i) fin para si no {Cima VN y M[Cima, Token] = vaco } Llamar a una funcin de error
17
E E T T F
identificador 1 3* 4 6* 8
nmero 1 3* 4 6* 9
( 1 3* 4 6* 7
Producciones psilon o Se han introducido producciones psilon marcadas con asterisco en las celdas vacas de los smbolos no terminales que contienen a psilon en su conjunto primero. Esta accin posterga la deteccin del error. Sincronizacin: o Se han utilizado como smbolos de sincronizacin del smbolo no terminal A a los smbolos de siguiente(A). o Se eliminara el smbolo no terminal de la pila del anlisis sintctico.
18
E E T T F identificador nmero + * ( ) $
Las producciones psilon marcadas con asterisco postergan la deteccin del error. E1: o Diagnstico: falta el parntesis derecho. o Posible accin: extraer el parntesis derecho de la pila. E2: o Diagnstico: smbolo inesperado. o Posible accin: eliminar el smbolo de la entrada. E3: o Diagnstico: falta operando. o Posible accin: se inserta en la entrada identificador.
19