Bonjour à tous !
j'ai un petit problème de grammaire avec yacc, au départ la grammaire est la suivante :
ligne : ligne E '\n' {printf("Resultat : %d\n",$2);}
|
;
E : E '+' E {$$=$1+$3;printf("On fait la somme de %d et %d\n",$1,$3);}
| E '*' E {$$=$1*$3;printf("On fait le produit de %d et %d\n",$1,$3);}
| '(' E ')' {$$=$2;printf("%d est entre parentheses\n",$2);}
| ENTIER
;
c'est pour faire une petite calculatrice, ligne étant le symbole initiale.
Dans le fichier yacc, j'ai ajouter la règle
['quit'] {return QUIT;}
pour pouvoir terminer le programme en tappant "quit" au clavier.
J'ai donc modifié le .yacc en ajoutant :
ligne : ligne E '\n' {printf("Resultat : %d\n",$2);}
| QUIT '\n' {printf("See you later\n");return;}
|
;
Mais j'ai une erreur de syntaxe
quelqu'un a une idée ?
Partager