Utiliser flex et bison

Résolu
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

Résumé de la discussion

La discussion porte sur l'utilisation des outils flex et bison pour créer un compilateur et sur la manière de compiler les fichiers .lex et .y, notamment sous Windows. Plusieurs réponses évoquent l'utilisation d'environnements compatibles comme MinGW sur Windows et l'exécution des outils via l'invite de commandes plutôt que d'ouvrir des exécutables, avec des références vers des ressources historiques et des tutoriels. D'autres éléments abordent la confusion entre lex et flex sous Windows et la possibilité d'exécuter lex seul pour l'analyse lexicale, ainsi que la manière de fournir un fichier source à analyser par les programmes générés. En cas de doute, des réponses mentionnent aussi des variantes Unix ou Windows et l'intérêt d'utiliser un environnement de développement adapté comme MinGW ou Cygwin.

Bobot (l’IA à votre service)
  1. 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
    1. 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;
    2. @roufafunBonjour,

      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).
  2. 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
    1. 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.
    2. 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.
    3. 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).
    4. @rouroubonjour 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
    5. alors TLa, t'as pas d'idées???
    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.
    2. @TLamerci 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.
    3. @TLasalut TLa
      j'utilise plutôt MinGW.
  3. 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?
    1. 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.