Le fichier lexer est généré par flex read_config_lex.l
. Il génère un fichier
lex.yy.c
qu'il est préférable de renommer en read_config_lex.c
pour avoir un nom
moins générique..
Le fichier parser est généré par bison -y -d read_config_yy.y
. De même, il est
préférable de renommer y.tab.c
en read_config_yy.c
et y.tab.h
en
read_config_yy.h
. D'ailleurs, le fichier source généré par flex
necéssite le fichier read_config_yy.h
: c'est ce que l'on a mis explicitement au début de
read_config_lex.l
dans une ligne avec #include "read_config_lex.l"
.
Ensuite, il ne reste qu'à compiler les fichier C comme d'habitude :
gcc -c read_config_lex.c gcc -c read_config_yy.c
Remarque : au début du fichier read_config_yy.y
se trouve une ligne #include "my_config.h"
.
Ce fichier my_config.h
ne contient qu'une définition de la structure que renvoit la fonction
init_config()
. Ce fichier contient aussi le prototype de la fonction init_config()
.
C'est un fichier d'en-tête général qu'il convient d'avoir séparément car toute fonction qui aura besoin de
la configuration du programme aura besoin de la définition de cette structure. Voici donc ce fichier :
typedef struct { int unentier; int intstr1; char *intstr2; int unbooleen; } MYCONFIG; MYCONFIG *init_config (char *config_file_name);
© 2001 Yves Mettier