ALGORITMO DE ANÁLISIS SINTÁCTICO POR PRECEDENCIA DE OPERADOR • Entrada. Una cadena de entrada w y una tabla de relaciones de precedencia de operador. • Salida. Si w es sintácticamente correcta, se habrá construido en la pila implícitamente su árbol de análisis (se habría podido construir explícitamente si se hubiera necesitado); en caso contrario, la salida será una indicación de error sintáctico. • Método. Inicialmente la pila contiene el símbolo de fondo de pila, $, y el “buffer” de entrada contiene la cadena y su delimitador, w$. El algoritmo de análisis es el siguiente: punt_ent apunta al primer símbolo de w$; repeat if el contenido de la pila es $S y punt_ent apunta a $ then return (* aceptar *) else begin sea a el símbolo terminal de cima de pila y b el apuntado por punt_ent; if a<b o a=b then begin (* desplazar b *) meter b en la pila; avanzar punt_ent al siguiente símbolo de la entrada; end; else if a>b (* reducir por S Æ α *) then repeat (* sacar de la pila el consecuente de la regla *) sacar el elemento de la cima de la pila until el terminal de la cima de la pila esté relacionado por < con el terminal más recientemente extraído; sea α=ap...aj la cadena de elementos sacados de la pila, con ap el más recientemente extraído, y sea S Æ α ∈ P; meter S en la pila else error () end (* meter el antecedente *) (* error *)