Tema 3: Análisis sintáctico - Ejercicios de análisis LL(1) y RLL(1)
Ejercicio A7
Apartado A7.1
Averigua si la siguiente gramática es LL(1), construyendo
la tabla de análisis LL(1):
<A> -> a <B> a
<B> -> b b <A> b b
<B> -> c <C>
<B> -> <D> <E> <F>
<B> -> <G> <H> i
<C> -> c <C>
<C> ->
<D> -> d e d
<D> ->
<E> -> e d e
<E> ->
<F> -> f f f
<F> ->
<G> -> g
<H> -> h <H>
<H> ->
Apartado A7.2
Utilizando la tabla de analisis LL(1) anterior, analiza la cadena a d e d f f f a.
Inventa después ejemplos de cadenas que no pertenezcan al lenguaje modelado por la gramática, y comprueba que el método de análisis detecta un error sintáctico.
Apartado A7.3
Averigua si la siguiente gramática es RLL(1), viendo la solución anterior.
<A> -> a ( b b <A> b b | c+ | (d e d)? (e d e)? (f f f)? | <G> h* i) a
<G> -> g
Apartado A7.4
Observa ahora la siguiente gramática, y trata de decir si
es RLL(1) sin tener que rellenar la tabla de análisis:
<A> -> a ( b b <A> b b | c+ | (d e d)? (e d e)? (f f f)? | <G> h* i) b
<G> -> g
Apartado A7.5
Haz lo mismo con la siguiente gramática:
<A> -> a ( b b <A> b b | c+ | (d e d)? (e d e)? (f f f)? | <G> h* i) e
<G> -> g
Apartado A7.6
Haz lo mismo con la siguiente gramática:
<A> -> a ( b b <A> b b | c+ | (d e d)? (e d e)? (f f f) | <G> h* i) b
<G> -> g