¿Puede alguien aclararme por qué un analizador de descenso recursivo con retroceso que prueba las producciones y (en ese orden) no reconoce el lenguaje formado por la gramática .
Parece que solo analiza palabras del idioma .
Generé dicho analizador utilizando este generador de analizador ABNF con la regla de producción S = "a" S "a" / "aa"
y el analizador no reconoce la palabra aaaaaa
, por ejemplo.
Esperaría que use la producción hasta que la concatenación de los nodos terminales del árbol de análisis desde la izquierda comience con 7 's, y luego suba el árbol de análisis eligiendo la producción lugar hasta que el árbol se vea como esta:a
S
/ | \
a S a
/ | \
a S a
/ \
a a
aaaaaa
.
aaaaaa
debe analizar y no lo hace. Pero aaaa
analiza. Aparentemente tienes razón sobre los poderes de 2. La cosa debe estar molesta. se analiza solo aa
con S = "aa" / "a" [S] "a"
. ¿Puedes rastrear lo que hace el analizador?