Analizador sintáctico LL

De estas gramáticas, la gramática LL(1), aunque es bastante restrictiva, éstas son muy populares porque los analizadores LL correspondientes sólo necesita ver el siguiente token para hacer el análisis de sus decisiones.

Lenguajes mal diseñados usualmente suelen tener gramáticas con un alto nivel de k, y requieren un esfuerzo considerable a analizar.

Sin embargo, este solo mantiene en la pila lo que todavía necesita ser reescrito.

Para explicar un analizador LL(1) tenemos que considerar la siguiente pequeña gramática LL(1): Y analizar la siguiente entrada: (a + a) Construimos una tabla de análisis para esta gramática expandiendo todos los símbolos terminales por columnas y los no terminales por fila.

Después, las expresiones son numeradas por la posición donde las columnas y filas cruzan.

La tabla es como la siguiente: (Note que también hay una columna para el terminal especial, representado aquí como $, ese es usado para indicar el final del flujo de entrada.)

La pila entonces se convierte en: Mientras el '(' del flujo de entrada no igualo el símbolo más alto, 'S', de la pila, este no fue removido, y se mantiene como el siguiente símbolo disponible en el siguiente paso.