Evadream -jbd- | 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 :
- enum cas_inst_mil {
- Inst_vide, Affectation, Composition, Conditionnelle, Boucle, Lecture, Ecriture, Espace, Ligne
- };
|
Apres modif :
Code :
- enum cas_inst_mil {
- Inst_vide, Affectation, Composition, Conditionnelle, Boucle, Lecture, Ecriture, Espace, Ligne, Faire
- };
|
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 :
- enum cas_inst_mil {
- Inst_vide, Affectation, Composition,
- Conditionnelle, Boucle, Lecture,
- Ecriture, Espace, Ligne, Faire
- };
|
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
|