Bonjour,
Vous avez tout à fait raison.
La suppression d'une règle récursive à gauche de type A → Aα | β avec β qui ne commence pas par A consiste à remplacer ces deux règles par :
- A → βA'
- A' → αA' | ε
On peut généraliser cela en remplaçant A → Aα1 | Aα2 | .. | Aαn | β1 | β2 ... | βm par :
- A → β1A' | β2A' ... | βmA'
- A' → α1A' | α2A' | .. | αnA' | ε
Dans l'exemple du cours (transparent 12 du cours Analyse Syntaxique), on a :
- E → E add T | E sous T | T
donc
- α1 = add T
- α2 = sous T
- β1 = T.
On doit donc remplacer ces trois règles par les règles suivantes :
- E → TE'
- E' → add T E' | sous T E' | ε
Merci pour cette rectification. Je vais ajouter un erratum au cours.
Cordialement.