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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 make clean make
Affichage :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ./Essai01
Voici mon fichier Flex (Essai01.lex) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 GET get OK /!\ syntax error /!\
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 %{ #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);} %%
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
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; }
Quelqu'un aurait-il une explication ?
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
Merci
Partager