Utiliser flex et bison

Résolu
rourou -  
 momo -
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.
Configuration: Windows XP
Internet Explorer 7.0

4 réponses

  1. TLa Messages postés 57 Statut Membre 12
     
    1
    1. rourou
       
      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
    2. rourou > TLa Messages postés 57 Statut Membre
       
      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
    3. rourou > TLa Messages postés 57 Statut Membre
       
      salut TLa
      j'utilise plutôt MinGW.
      0
  2. rourou
     
    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
    1. momo
       
      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
  3. TLa Messages postés 57 Statut Membre 12
     
    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
    1. rourou
       
      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
    2. rourou
       
      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
    3. rourou
       
      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
      1. wArMiNa Messages postés 3 Statut Membre 4 > rourou
         
        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
    4. wArMiNa Messages postés 3 Statut Membre 4
       
      alors TLa, t'as pas d'idées???
      0
  4. hnayna
     
    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
    1. roufafun Messages postés 1 Statut Membre
       
      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
      1. rourou > roufafun Messages postés 1 Statut Membre
         
        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