Vu l'heure tardive, je n'étais plus là
Citation :
comment faire lorsqu'il y a des + ? il faut les laisser tel quel ?
Oui, bien sûr, + est un élément du langage, il reste tel quel (on est dans un cadre formel, il n'y a pas de calcul de type arithmétique avec réductions ou simplifications).
Je reviens à
Exercice 2 2) Pour éliminer la récursivité à gauche on doit transformer les règles du type
A => A
|
en
A =>
A'
A' =>
A'|
Je me limite pour ne pas trop en écrire à
Expr => Expr + Expr| nbre
Je prends A = Expr, A' = SExpr,
= + Expr,
= nbre, on obtient donc
Expr => nbre SExpr
SExpr => + Expr SExpr|
En rendant propre cette grammaire
Expr => nbre | nbre SExpr
SExpr => + Expr SExpr|+ Expr
Pour intégrer le symbole -
Expr => nbre | nbre SExpr
SExpr => + Expr SExpr | + Expr | - Expr SExpr | - Expr
doit convenir. La grammaire intuitive simplifiée que j'avais donnée au départ est sans doute bonne aussi. A vérifier.
Exercice 3 2) Désolé de t'avoir peut-être induit en erreur, c'était correct, je n'avais pas compris la notation e, que j'ai l'habitude de voir notée
ou VIDE. Par contre (et conformément aux règles données sur le site cité), j'aurais écrit plus simple:
E-> TE' | T | nbre
E'-> +TE' | +T
T-> (E)T' | (E)
T'-> (E)T' | (E)
Si je peux me permettre de te recommander un ouvrage de personnes avec qui j'ai travaillé:
P.-C. Scholl, M.-C. Fauvet, F. Lagnier, F. Maraninchi, Cours d'Informatique - Langages et Programmation, Manuels Informatiques Masson
Cordialement.