Bonjour,

J'essaie d'écrire un fichier Makefile pour un mini-compilateur écrit en lex/yacc, le soucis est que j'utilise une structure dans le fichier yacc qui a cette tête la:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
typedef struct types{
     char * chaine;
     int entier;
     double reel;
}types;
 
#define YYSTYPE types
Et que le fichier Lex dans la compilation cri au scandale parce qu'il ne la connaît pas, je pensais pourtant avoir fait les choses dans l'ordre avec les dépendances, voilà le Makefile:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
LEX = lex
YACC = yacc -d -v
CC = gcc -g 
 
analyseur_c: tabvar.o lex.yy.c y.tab.c y.tab.h
	$(CC) -o analyseur  tabvar.o lex.yy.c y.tab.c y.tab.h
 
tabvar.o:tabvar.c tabvar.h
 
y.tab.c y.tab.h: analyseur_c.y
	$(YACC) analyseur_c.y 
 
lex.yy.c: analyseur_c.l tabvar.h
	$(LEX) analyseur_c.l tabvar.h
 
clean:
	rm -f *.o y.tab.* y.output lex.yy.*
Voila ce qui se passe aprés un Make:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
make
gcc -g     -c -o tabvar.o tabvar.c
lex analyseur_c.l tabvar.h
yacc -d -v analyseur_c.y 
gcc -g  -o analyseur  tabvar.o lex.yy.c y.tab.c y.tab.h
analyseur_c.l: In function 'yylex':
analyseur_c.l:32: error: request for member 'chaine' in something not a structure or union
analyseur_c.l:34: error: request for member 'reel' in something not a structure or union
analyseur_c.l:35: error: request for member 'chaine' in something not a structure or union
analyseur_c.l:36: error: request for member 'chaine' in something not a structure or union
make: *** [analyseur_c] Error 1
 
Compilation exited abnormally with code 2 at Mon Apr 13 11:00:05
Une idée d'où ça peut venir ?
Je suis preneur de tout info ou critique de mon code, si vous en voulez plus n'hésitez pas à me le demander !

Je vous remercie d'avance !