Bonjour,

Je travaille sur une partie de projet en Flex et Bison et j'ai un erreur syntaxique que je ne comprend pas !

OS : Ubuntu 6.06
Commandes de compilation (voir Makefile plus bas) :
Commande d'éxécution :
Affichage :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
GET
get OK
/!\ syntax error /!\
Voici mon fichier Flex (Essai01.lex) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
%{
        #include "Essai01.h"
%}
GET             ("G"|"g")("E"|"")("T"|"t")
POST            ("P"|"p")("O"|"")("S"|"s")("T"|"t")
HEAD            ("H"|"h")("E"|"e")("A"|"a")("D"|"d")
%%
{GET}           {return(GET);}
{POST}          {return(POST);}
{HEAD}          {return(HEAD);}
%%
Mon fichier Bison correspondant (Essai01.y) :
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
19
20
21
%{
        #include <stdio.h>
%}
%token GET POST HEAD
%start entete
%%
entete : GET {printf("get OK\n");};
entete : POST {printf("post OK\n");};
entete : HEAD {printf("head OK\n");};
%%
int yyerror(char * message)
{
        printf("/!\\ %s /!\\\n",message);
        return 0;
}
 
int main()
{
        yyparse();
        return 0;
}
Et mon Makefile :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
all :
        bison -d -o Essai01.c Essai01.y
        flex Essai01.lex
        gcc -c Essai01.c
        gcc -c lex.yy.c
        gcc -o Essai01 lex.yy.o Essai01.o -ll
clean :
        rm Essai01.c
        rm lex.yy.c
        rm Essai01.o
        rm lex.yy.o
        rm Essai01.h
        rm Essai01
Quelqu'un aurait-il une explication ?

Merci