Utiliser flex et bison

Résolu/Fermé
rourou - 8 févr. 2009 à 23:44
 momo - 14 mai 2011 à 13:16
Bonjour,
je suis entrain de réaliser un compilateur.
je dois nécessairement utiliser les outils flex et bison.
j'ai réussi à télécharger ces 2 outils et je m'ai documenté un peu à propos de ces derniers. mais voilà la question qui est très simple : comment dois je faire pour compiler les fichier.lex et .y?
c à d est ce que je dois ouvrir l'executable de flex ou de bison ou l'invite de commnades (pour écrire les commandes ) ou même compiler les fichier avec le compilateur c++?
voilà je suis bloquée et j'ai pas compris comment compiler les fichiers .lex et .y

j'ai beson d'aide, please.
A voir également:

4 réponses

TLa Messages postés 57 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 14 février 2009 12
9 févr. 2009 à 23:44
1
salut, merci pour votre aide mais j'ai déjà consulté ce que vous avez envoyé comme lien auparavant.
est ce que vous pouvez me renseigner sur la version windows de lex? cette version est elle appelée lex ou flex ?
merci.
0
TLa Messages postés 57 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 14 février 2009 12 > rourou
10 févr. 2009 à 01:28
je ne sais pas trop si il y en a des natifs win32.

en utilisant cygwin, tu aurra un gcc, g++, du flex, du bison ...
http://cygwin.com/cgi-bin2/package-grep.cgi?grep=bison
0
rourou > TLa Messages postés 57 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 14 février 2009
10 févr. 2009 à 23:25
merci beaucoup pour ton aide bien que j'ai pas bien compris ta réponse.
bon je me suis débrouillée et j'ai réussi à compiler un premier exemple avec flex et bison. j'ai suivi à la lettre l'exemple figurant dans ce lien http://www.linux-france.org/article/devl/lexyacc/minimanlexyacc-4.html
et comment dire ?
j'ai saisis toutes ces lingnes de commandes
>bison -d calc.y
>mv calc.tab.h calc.h
>mv calc.tab.c calc.y.c
>flex calc.lex
>mv lex.yy.c calc.lex.c
>gcc -c calc.lex.c -o calc.lex.o
>gcc -c calc.y.c -o calc.y.o
>gcc -o calc calc.lex.o calc.y.o -ll -lm [eventuellement -lfl]

tout va bien sauf la dernière ligne de commande un message d'erreur est tjrs affiché :
connot find -lfl ou bien connot find -ll
quoi faire ? sachant que dans cette page http://www.linux-france.org/article/devl/lexyacc/minimanlexyacc-4.html l'auteur a mentionné la phrase suivante : "Il suffit alors de compiler, sans oublier de linker avec la librairie mathématique ("-lm") et la librairie spéciale Lex ("-ll"). "
"
est ce que je dois télecharger qql chose dll ou autre?

si tu m'envois une rèponse je serais fortement reconnaissante.
merci TLa pour ton support.
0
TLa Messages postés 57 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 14 février 2009 12 > rourou
10 févr. 2009 à 23:47
Bonjour,

sur quoi tu execute ces commandes ?
si c'est cygwin, il te faut le package flex/flex-2.5.33-1 :
http://cygwin.com/cgi-bin2/package-cat.cgi?file=flex%2Fflex-2.5.33-1
qui te fourni : /usr/lib/libfl.a

et
gcc -o calc calc.lex.o calc.y.o -ll -lfl
devrait alors fonctionner
0
rourou > TLa Messages postés 57 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 14 février 2009
10 févr. 2009 à 23:51
salut TLa
j'utilise plutôt MinGW.
0
salut
j'attends une réponse.
je souffre.
une réponse SVP.
j'ai une autre question : flex et bison sont à utiliser pour un système Unix ou Windows?
0
unix et windows , mais il sont varier . j'ait le mm problem j'essayer d'etuliser lex et yacc pour faire un compilateur d'un langage algorithmique.
0
TLa Messages postés 57 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 14 février 2009 12
13 févr. 2009 à 17:57
recherche
bison mingw
flex mingw

done

http://cobcurses.wiki.sourceforge.net/Install-MinGW-bison
http://cobcurses.wiki.sourceforge.net/Installing-MinGW-flex

ça a l'air pas mal
0
bonjour

Enfin j'ai arrivé à faire tourner corretement l'exemple. bon j'ai réinstallé une autre version de flex (qui dispose de la librairie libfl.a). et ça marche très bien.
pour ton support et tes précieuses conseils je veux te dire mille mercis. tu m'as soulagée et suis très reconnaissante.

Merci.
0
Bonjour j'adresse la parole pour tous qui ont éprouvé des difficultés lors de l'excecution de l'exemple de la calculatrice sous windows et non Unix.
cet exemple est situé à cette page : http://www.linux-france.org/article/devl/lexyacc/minimanlexyacc-4.html
1) vous devez télécharger n'impote quel version de bison
2) vous devez télécharger la version Flex se trouvant à cette page : https://sourceforge.net/projects/gnuwin32/files/flex/
3) vous devez télécharger MinGW : pour télécharger gcc qui sera utilisé ultérieurement
4)pour compiler l'exemple et faire dégager l'éxcecutable, vous devez saisir sous l'invite de commandes (sous Windows)

bison -d calc.y
// au lieu de saisir commande bison tout court vous devez saisir tout le chemin d'accès conduisant à l'emplacement de bison par exemple : "C:/LexYacc/Bison/bin/bison.exe" -d calc.y
de même pour le reste des commandes flex et gcc sans oublier l'extension .exe
move calc.tab.h calc.h
move calc.tab.c calc.y.c
flex calc.lex
move lex.yy.c calc.lex.c
gcc -c calc.lex.c -o calc.lex.o
gcc -c calc.y.c -o calc.y.o
gcc -o calc calc.lex.o calc.y.o -lfl

j'espère que ça sera bien facile à comprendre et à l'appliquer.
0
Bonjour TLa
je suis bien reconnaissante por ton aide et soutien.
Mais j'ai d'autreS questions à propos de Lex et Yacc. Si tu peux m'orienter encore une fois.
comment faire tourner lex tout seul c-a-d comment faire tourner un analyseur lexical tout seul sans obligatoirement passer par l'analyse syntaxique.
une deuxieme question si tu permet : comment fournir un fichier contenent le coude source à analyser au programme (lex et yacc)?
TLa, je compte sur toi mon ami(e).
0
wArMiNa Messages postés 3 Date d'inscription mercredi 11 février 2009 Statut Membre Dernière intervention 11 mars 2009 4 > rourou
7 mars 2009 à 11:49
bonjour TLa,

moi aussi j'ai le meme probleme que rourou, je veux donner a l'executable fournis apres compilation par flex et bison un fichier deja pres, dans lequel se trouve le code source a compiler.
comment faire ceci???
merci
0
wArMiNa Messages postés 3 Date d'inscription mercredi 11 février 2009 Statut Membre Dernière intervention 11 mars 2009 4
11 mars 2009 à 22:29
alors TLa, t'as pas d'idées???
0
Salut,
pour générer les fichiers C à partir de ces deux fichiers .l et .y, tu dois ouvir l'invite de commande et taper les commandes suivantes :

flex -oNomFichier.c Nomfichier.l
bison -d NomFichier.y
cl NomFichier_tab.c Nomfichier.c

Bonne chance
0
roufafun Messages postés 1 Date d'inscription lundi 3 août 2009 Statut Membre Dernière intervention 3 août 2009
3 août 2009 à 23:01
salu, j'ai un projet mini compilateur c, je dois le réaliser avec lex et yacc sous unix(ubuntu) ,j'ai pa compris comment le faire? est ce que vous pouvez m'aider svp;
0
rourou > roufafun Messages postés 1 Date d'inscription lundi 3 août 2009 Statut Membre Dernière intervention 3 août 2009
8 août 2009 à 18:52
Bonjour,

Si c'est possible tu peux me filer ton adresse E-mail pour t'envoyer deux documents qui peuvent certainement t'aider dans la réalisation de ton projet (je les ai utilisé personnellemnt dans mon projet de fin d'ètudes).
0