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

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    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
    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 confirm�
    Inscrit en
    Janvier 2004
    Messages
    101
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 101
    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 confirm�
    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
    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 confirm�
    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
    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 confirm�
    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
    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 confirm�
    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
    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 confirm�
    Inscrit en
    Janvier 2004
    Messages
    101
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 101
    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 confirm�
    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
    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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    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 confirm�
    Inscrit en
    Janvier 2004
    Messages
    101
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 101
    Par d�faut
    exactement.
    Moi aussi j ai du cr�e un fichier vide

  12. #12
    Membre confirm�
    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
    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 confirm�
    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
    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 confirm�
    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
    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 confirm�
    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
    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
    Invit� de passage
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 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
    Invit� de passage
    Inscrit en
    Mai 2006
    Messages
    1
    D�tails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 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