[Flex/Bison] Erreur syntaxique récurrente et inexpliquée
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:
1 2 3
| GET
get OK
/!\ syntax error /!\ |
Voici mon fichier Flex (Essai01.lex) :
Code:
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:
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:
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 :)