IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Flex et Bison avec Visual


Sujet :

MFC

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 115
    Points : 42
    Points
    42
    Par défaut Flex et Bison avec Visual
    bonjour ,
    Voila je souhaite me servir des outils flex et bison version windows ( http://www.monmouth.com/~wstreett/lex-yacc/lex-yacc.html ) sous visualC++.
    Je me suis deja servi de ces utilitaires avec gcc, mais là etant novice sous l'environnement Visual je me demande comment je peux intégrer cela au mieux.

    Si vous pouviez me donner des conseils
    Merci

  2. #2
    Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 101
    Points : 48
    Points
    48
    Par défaut
    tu récupère les binaires flex.exe et bison.exe compilés pour Win32 et tu fait du custom build.
    Des sources sont générés et sont directement compilés.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 115
    Points : 42
    Points
    42
    Par défaut
    MErci benoit de ta reponse,
    mais au risque de paraitre bete : et tu fait du custom build.
    Comment je peux faire cela? Et cela veut dire quoi concretement ?

    MErci d'avance
    ++

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 115
    Points : 42
    Points
    42
    Par défaut
    Re,
    Bon j'essaie de faire fonctionner cela mais je n'y arrive pas. Ectuellement j'ai ces erreurs :
    --------------------Configuration: calculatrice - Win32 Debug--------------------

    Compiling...

    calculatrice.lex.c

    calculatrice.y.c

    bison.simple(317) : warning C4013: 'yyerror' undefined; assuming extern returning int

    bison.simple(323) : warning C4013: 'alloca' undefined; assuming extern returning int

    bison.simple(377) : warning C4013: 'yylex' undefined; assuming extern returning int

    Linking...

    calculatrice.lex.obj : error LNK2001: unresolved external symbol _yywrap

    calculatrice.y.obj : error LNK2001: unresolved external symbol _alloca

    Debug/calculatrice.exe : fatal error LNK1120: 2 unresolved externals

    Error executing link.exe.



    calculatrice.exe - 3 error(s), 3 warning(s)
    En dehors des problemes qui doivent etre liés a mes fichiers flex et bison, il y a des erreurs lors de l'edition des liens... Pour aller vite j'ai repris l'exemple présenté ici : http://pltplp.net/lex-yacc/example.html.en


    Est ce que qq a deja fait ca avec visual ?

    Serai t'il possible que quelqu'un m'aide ou me donne la demarche a suivre?

    Merci bcp
    ++

  5. #5
    mat.M
    Invité(e)
    Par défaut
    unresolved external symbol signifie qu'il manque une bibliothéque ( .lib ) ou dll additionnelle au projet

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 115
    Points : 42
    Points
    42
    Par défaut
    merci de ta reponse,
    mais cela m'embete car je ne vois pas ce qui peut manquer... Normallement bison et flex donnent chacuns un fichiers c qui s'agit de compiler ensemble (enfin sous linux). Là je ne vois pas ce qui peut manquer...

    Vous avez une idée?
    MErci

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 115
    Points : 42
    Points
    42
    Par défaut
    Bon je me demande maintenant si ce ne sont pas les entetes des fichiers générés qui ne sont pas compatibles completement avec VC++ .
    Et malheureusement je ne connais pas assez le fonctionnement interne de ces outils pour le modifier directement.

    Existe t'il d'autres outils compatibles avec VC++ ayant un fonctionnement equivalent avec lex et yacc ? (j'ai fais des recherches google, mais je voudrai avoir l'avis de personnes qui en auraient reellement essayé un )

    ++

  8. #8
    Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 101
    Points : 48
    Points
    48
    Par défaut
    Flex et bison ca marche avec VC jte rassure.
    Custom build = tu ajoute ton fichier .lex et .bison ds ton projet VC et tu clic droit dessus puis tu coche l'option custom build.
    Tu peux dans la mm option mettre une ligne de commande.
    Dans ce cas tu aura lex.exe $inputPath -... -(tes options, y compris le chemin des fichiers générés)
    L'erreur de link n'est pas normale.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 115
    Points : 42
    Points
    42
    Par défaut
    MErci benoit de ta reponse
    En fait j'ai fini par arriver a faire marcher tout ça Merci !

    Seulement un autre probleme s'ammène alors je ne passe pas tout de suite ce post en resolu

    En fait j'aimerai pouvoir travailler en C++ et non en C. Du coup je fais generer des fichiers .cpp et une option dans flex est ajoutée pour generer un parseur C++. Seuelemtn dans ce parseur il y a un appel a unistd.h . Or d'apres mes recherches , ce fichier est bel et bien reservé au monde Unix.

    Donc comment palier a cela? Comment travailler en C++ avec flex et bison donc

    Merci d'avance

  10. #10
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Peut-être que je m'y étais pris comme une guiche, mais à l'époque la seule solution que j'avais trouvée était de créer un <unistd.h> bidon pour qu'il soit content -- il n'en a pas besoin pour la suite. D'ailleurs ça m'étonnait qu'il ne sache pas détecter la plateforme et faire les inclusions appropriées.

    Remarque qui ne mange pas de pain : si l'utilisation de Flex et Bison n'est pas imposée, il existe de bien meilleures bibliothèques équivalentes en C++ (ANTLR, boost::spirit).

  11. #11
    Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 101
    Points : 48
    Points
    48
    Par défaut
    exactement.
    Moi aussi j ai du crée un fichier vide

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 115
    Points : 42
    Points
    42
    Par défaut
    Salut et merci bcp pour vos reponses
    Je vais tester ca tout de suite !

    Sinon Loulou , non flex et bison ne me sont pas imposés. J'avais cherché d'autres solutions mais je n'avais pas vu celles que tu me propose. Je n'ai pas reussi a installer boost sur mon poste (enfin la partie regex en tout cas - d'ailleurs si vous pouviez me donner un meilleur lien que celui du site officiel concernant l'installation ) , donc je vais regarder ANTLR

    Mais flex et bison devraient suffir, bref je verrai

    Merci encore

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 115
    Points : 42
    Points
    42
    Par défaut
    arf j'ai l'impression d'etre un gros boulet
    Avec votre astuce pour unistd la compilation avance et se bloque sur FlexLexer.h maintenant. Je comprend pas pourquoi flex ne me fournit pas le fichier .h avec la declaration des 2 classes ...

    Apres une petite recherche, j'ai trouvé sur le net un fichier FlexLexer, seulement j'obtiens une erreur lors de la creation de l'objet (j'ai pas noté l'erreur dslé)

    Bref, faut'il que je recupere un fichier FLexLexer.h qq part, ou Flex doit me le generer ?

    Merci encore

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 115
    Points : 42
    Points
    42
    Par défaut
    Yop un petit retour juste pour dire que mon erreur vient de yylex qui semble pas definie.
    Cela ma parai normal puisque si je comprend bien, cette fonction devient en fait une méthode de la classe FlexLexer ..

    Donc vous avez fais comment ?

    ++

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 115
    Points : 42
    Points
    42
    Par défaut
    salut,
    je voulais juste dire que j'ai fini par trouver. Il faut bien remplacer yylex par la methode de la classe yyFlexLexer. J'ai eu du mal avant d'en etre sur, car j'avais une erreur dans ma grammaire qui me donnait une parseur error, et betement je pensais que cela venait d'une mauvaise initialisation de yylex. En fait non

    Je n'ai pas le temps de donner du code, mais si cela interesse qq, qu'il n'hésite pas à se manifester (qui sait ), et je prendrai le temps à ce moment là .

    Merci encore de votre aide Z'etes vraiment cool

    ++

  16. #16
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut calculatrice avec lex
    salut tous le monde

    en fait j'ai besoin de votre aide sur ecrire une programme avec c en utilisant les et grammer lex
    si vous connaisez une programme comme ça sur le site presentez moi

    merci de votre aide

    amicalment
    cendre-veet

  17. #17
    Nouveau Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut flex2- pas de tutorial complet!!!!!
    Voila, je suis en train de bucher sur flex2!
    le probleme c'est que je ne sais pas a quoi servent certains attibuts!
    par exemple, je voudrais savoir si il est possible de fixer un nombre maximal d'elements dans un formulaire!!ou encore comment bloquer certaines valeurs pour les texts input!!
    si quelqu'un a une idée ca serait gentil....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utiliser Flex et Bison avec C
    Par zitou20 dans le forum Générateurs de compilateur
    Réponses: 5
    Dernier message: 26/11/2014, 10h34
  2. yyin avec Flex et Bison sous ubuntu8.10
    Par bilred dans le forum Linux
    Réponses: 1
    Dernier message: 08/04/2009, 12h10
  3. compiler flex (et plus tard bison) avec vs ?
    Par Baygon_Rouge dans le forum Visual C++
    Réponses: 1
    Dernier message: 10/07/2008, 23h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo