Quelqu'un peut-il m'éclairer pourquoi un analyseur de descente récursive avec retour arrière qui essaie les productions et (dans cet ordre) ne reconnaît pas le langage formé par la grammaire .
Il semble analyser uniquement les mots de la langue .
J'ai généré un tel analyseur à l'aide de ce générateur d' analyseur ABNF avec la règle de production S = "a" S "a" / "aa"
et l'analyseur ne reconnaît pas le mot aaaaaa
, par exemple.
Je m'attendrais à ce qu'il utilise la production jusqu'à ce que la concaténation des nœuds terminaux de l'arbre d'analyse à partir de la gauche commence par 7 , puis monte dans l'arbre d'analyse en choisissant la production place jusqu'à ce que l'arbre ressemble ce:a
S
/ | \
a S a
/ | \
a S a
/ \
a a
aaaaaa
.
aaaaaa
doit analyser et ne fonctionne pas. Mais aaaa
analyse. Vous avez apparemment raison sur les pouvoirs de 2. La chose doit être mise sur écoute. il analyse uniquement aa
avec S = "aa" / "a" [S] "a"
. Pouvez-vous retracer ce que fait l'analyseur?