[C/gcc] Problème à la compilation louche

Problème à la compilation louche [C/gcc] - C++ - Programmation

Marsh Posté le 31-03-2003 à 21:19:03    

Bonjour, dans le cadre de mes études nous procédons à mise en place d'un petit compilateur en reprenant une bonne partie de code existant.
 
Le code base compile déja bizarrement, mais le prof nous as dit de ne pas faire attention. Perso, je trouve ca sale, mais bon...
 
Voici le résultat de la compilation :
 


gcc -Wall -ansi -pedantic   -c -o synt_abs.o synt_abs.c
gcc -Wall -ansi -pedantic   -c -o utilhash.o utilhash.c
gcc -Wall -ansi -pedantic   -c -o constructeurs.o constructeurs.c
yacc mil.yacc
lex mil.lex
gcc -Wall -ansi -pedantic   -c -o y.tab.o y.tab.c
y.tab.c: In function `yyparse':
y.tab.c:1073: warning: implicit declaration of function `yylex'
In file included from mil.yacc:220:
lex.yy.c: In function `yy_init_buffer':
lex.yy.c:1485: warning: implicit declaration of function `fileno'
mil.yacc: At top level:
lex.yy.c:1235: warning: `yyunput' defined but not used
ar -rcs synt.a synt_abs.o utilhash.o constructeurs.o y.tab.o


 
Donc mise à part ces qqs warnings dont on ne doit pas s'occupper, dixit mon prof, tout à l'air de bien fonctionner.
 
Maintenant, je rajoute un élement à un enum situé dans le fichier  synt_types.h :
 
Avant modif :

Code :
  1. enum cas_inst_mil {
  2.         Inst_vide, Affectation, Composition, Conditionnelle, Boucle, Lecture, Ecriture, Espace, Ligne
  3. };

 
 
 
Apres modif :

Code :
  1. enum cas_inst_mil {
  2.         Inst_vide, Affectation, Composition, Conditionnelle, Boucle, Lecture, Ecriture, Espace, Ligne, Faire
  3. };

 
 
Je compile, voici ce que j'obtiens
 


gcc -Wall -ansi -pedantic   -c -o synt_abs.o synt_abs.c
gcc -Wall -ansi -pedantic   -c -o utilhash.o utilhash.c
gcc -Wall -ansi -pedantic   -c -o constructeurs.o constructeurs.c
yacc mil.yacc
lex mil.lex
gcc -Wall -ansi -pedantic   -c -o y.tab.o y.tab.c
In file included from synt_abs.h:11,
                 from mil.yacc:12:
synt_types.h:93: warning: comma at end of enumerator list
synt_types.h:93: syntax error before numeric constant
y.tab.c: In function `yyparse':
y.tab.c:1073: warning: implicit declaration of function `yylex'
In file included from mil.yacc:220:
lex.yy.c: In function `yy_init_buffer':
lex.yy.c:1485: warning: implicit declaration of function `fileno'
mil.yacc: At top level:
lex.yy.c:1235: warning: `yyunput' defined but not used
make: *** [y.tab.o] Error 1
 

 
 
L'erreur ligne 93 correspond à ma modification de l'enum.
 

  • warning: comma at end of enumerator list => je vois pas de virgule mal placée :/
  • syntax error before numeric constant => y'a pas de constante numérique la dedans :/


 
Je me suis dit que ca venant du saut de ligne dans mon enum, mais ca ne change rien, même présenté comme ca :
 

Code :
  1. enum cas_inst_mil {
  2.          Inst_vide, Affectation, Composition,
  3.          Conditionnelle, Boucle, Lecture,
  4.          Ecriture, Espace, Ligne, Faire
  5. };


 
L'erreur se situe à la ligne 95, là ou se trouve le Faire que je viens de rajouter :/
 
 
 
 
 
Si qqun à une idée !
 
Merci à vous !
 
@+


Message édité par Evadream -jbd- le 31-03-2003 à 21:23:12
Reply

Marsh Posté le 31-03-2003 à 21:19:03   

Reply

Marsh Posté le 31-03-2003 à 22:23:01    

C'est la seule modif que tu ait fait du code ?
 
Essaye de placer l'accolade juste derrière le "faire" en supprimant le retour a la ligne car il y a peut être un caractère invisible mal placé.
 
Sinon, essaie de remplacer le "faire" par "LaRombiereElysee" rien que pour voir : Il y a peut être une macro sur le mot "faire" qui expande une saleté.


---------------
TOPIC PERMANENT Matrox Parhelia
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed