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.
aaaaaadoit analyser et ne fonctionne pas. Mais aaaaanalyse. Vous avez apparemment raison sur les pouvoirs de 2. La chose doit être mise sur écoute. il analyse uniquement aaavec S = "aa" / "a" [S] "a". Pouvez-vous retracer ce que fait l'analyseur?