Probleme yacc [yacc] - Divers - Programmation
Marsh Posté le 07-06-2004 à 12:16:22
C'est normal.
Quand yacc va détecter un SI suivit d'un PAREN_GAUCHE que doit-il faire ? Faire ton printf ou passer à la deuxième règle ? Il sait pas donc il doit te sortir un avertissement shift/reduce, non ?
Marsh Posté le 07-06-2004 à 12:24:39
exact, comment faire laors ?
Marsh Posté le 07-06-2004 à 14:00:36
sbucci2 a écrit : exact, comment faire laors ? |
A mon avis, tu es coincé car les deux règles sont trop proches.
Il te faut réécrire la grammaire. Un truc du style :
|
mais ça affiche les printf aux deux règles.
Marsh Posté le 07-06-2004 à 14:14:42
j avais pas corrigé mais ca change quelque chose avec la deucieme comme ca :
|SI PAREN_GAUCHE entre_parenthese PAREN_DROITE ALORS Input SINON Input FINSI {;}
Marsh Posté le 07-06-2004 à 14:29:56
Merci ca marche, voila ce que ca donne
Citation : structureIteratif: |
Marsh Posté le 07-06-2004 à 16:58:13
sbucci2 a écrit : Bjr,
|
A la base ca ne marchait probablement pas parce que tu n'avait pas escapé une parenthese:
SI PAREN_GAUCHE { printf(" si\(" ); }...
A+,
Marsh Posté le 07-06-2004 à 18:59:37
gilou a écrit : A la base ca ne marchait probablement pas parce que tu n'avait pas escapé une parenthese: |
entre les accolades, c'est du C, hein...
Donc printf( " si(" ); est valide....
Marsh Posté le 07-06-2004 à 12:13:12
Bjr,
Dans mon fichier yacc j ai cette regle, la partie en gras pose probleme à la compilation , un idée pourquoi ca marche po ?
merci d avance
structureIteratif:
SI PAREN_GAUCHE { printf(" si(" ); } entre_parenthese PAREN_DROITE ALORS Input FINSI { printf(" si \(" ); }
|SI PAREN_GAUCHE entre_parenthese PAREN_DROITE ALORS texte SINON texte FINSI {;}
;
Message édité par sbucci2 le 07-06-2004 à 12:13:51