Lo que cambia es el input string, y obviamente el seguimiento del parser, manteniéndose iguales la pa (parsing action), la goto (goto table) y las reglas gramaticales.
Input string: a,ba
Acción
|
Raíces del árbol de derivación (y estado asociado)*
|
Input remanente
|
Inicialización: 0
|
(0)
|
a,ba $end
|
pa(0, ‘a’) => apilar
|
(0), ‘a’
|
,ba $end
|
goto(0, ‘a’) => 3
|
(0), ‘a’ (3)
|
,ba $end
|
pa(3, ‘,’) => reducir (3)
|
(0), ‘ELEMENT’
|
,ba $end
|
goto(0, ‘ELEMENT’) => 2
|
(0), ‘ELEMENT’ (2)
|
,ba $end
|
pa(2, ‘,’) => reducir (2)
|
(0), ‘LIST’
|
,ba $end
|
goto(0, ‘LIST’) => 1
|
(0), ‘LIST’ (1)
|
,ba $end
|
pa(1, ‘,’) => apilar
|
(0), ‘LIST’ (1), ‘,’
|
ba $end
|
goto(1, ‘,’) => 5
|
(0), ‘LIST’ (1), ‘,’ (5)
|
ba $end
|
pa(5, ‘b’) => apilar
|
(0), ‘LIST’ (1), ‘,’ (5), ‘b’
|
a $end
|
goto(5, ‘b’) => 4
|
(0), ‘LIST’ (1), ‘,’ (5), ‘b’ (4)
|
a $end
|
pa(4, ‘a’) => error
|
(0), ‘LIST’ (1), ‘,’ (5), ‘b’
|
a $end
|
* Solamente el estado inicial (0) no está asociado a ninguna raíz.
No hay comentarios:
Publicar un comentario