Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1567 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [Flex/Bison]Comment utiliser Flex/Bison avec Visual C++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Flex/Bison]Comment utiliser Flex/Bison avec Visual C++

n°1246203
cervantes
Posté le 15-11-2005 à 17:03:02  profilanswer
 

Slt,
 
Apres avoir deja bien bataillé pour faire fonctionner mes fichiers Flex/Bison sur Windows avec gcc de Mingw, je dois maintenant les utiliser avec Visual Studio .Net 2003.  
 
Sauf que, comment utiliser flex et bison avec VC++?
 
Avec gcc, je faisais:
 

Code :
  1. flex file_1.lex
  2. bison -y file_2.yacc
  3. gcc -c y.tab.c
  4. gcc -o testmain testmain.c y.tab.o


 
En appliquant ceci tout marchait trres bien, mais maintenant comment reproduire cette compilation sous VC++?
J'ai testé en créant un projet console dans lequel j'ai mis:
 
Source -> testmain.c + y.tab.c + lex.yy.c
Header -> testmain.h

 
Mais VC++ me renvoie enormement d'erreur par rapport au fonction de flex et bison. Donc avant de coller les messages d'erreur de VC++ sur le forum, je souhaiterais savoir si ma méthode est bonne en ce qui concerne la création de mon projet?
 
Merci
++


Message édité par cervantes le 15-11-2005 à 17:04:15
mood
Publicité
Posté le 15-11-2005 à 17:03:02  profilanswer
 

n°1246263
Trap D
Posté le 15-11-2005 à 19:13:20  profilanswer
 

Salut
Tu peux peut-être trouver des choses intéressantes ici : http://www.motiwala.com/flex.htm

n°1246297
cervantes
Posté le 15-11-2005 à 20:10:14  profilanswer
 

Ok merci,
 
je vous donne quand meme les erreurs que j'ai à la compilation de y.tab.c avec VC++:
 

Code :
  1. y.tab.c(928): error C2692: 'yylex' : fonctions entièrement prototypées requises dans le compilateur C avec l'option '/clr'
  2. lex.yy.c(1461): error C2197: 'isatty' : trop d'arguments pour un appel via le pointeur de fonction
  3. lex.yy.c(676): error C2197: 'yy_create_buffer' : trop d'arguments pour un appel via le pointeur de fonction
  4. lex.yy.c(1000): error C2197: 'yy_fatal_error' : trop d'arguments pour un appel via le pointeur de fonction
  5. lex.yy.c(1393): error C2197: 'yy_flex_alloc' : trop d'arguments pour un appel via le pointeur de fonction
  6. lex.yy.c(1428): error C2197: 'yy_flex_free' : trop d'arguments pour un appel via le pointeur de fonction
  7. lex.yy.c(1450): error C2197: 'yy_flush_buffer' : trop d'arguments pour un appel via le pointeur de fonction
  8. lex.yy.c(1335): error C2197: 'yy_init_buffer' : trop d'arguments pour un appel via le pointeur de fonction
  9. lex.yy.c(1577): error C2197: 'yy_scan_buffer' : trop d'arguments pour un appel via le pointeur de fonction
  10. lex.yy.c(1547): error C2197: 'yy_scan_bytes' : trop d'arguments pour un appel via le pointeur de fonction
  11. lex.yy.c(1528): error C2197: 'yy_switch_to_buffer' : trop d'arguments pour un appel via le pointeur de fonction
  12. lex.yy.c(925): error C2197: 'yy_try_NUL_trans' : trop d'arguments pour un appel via le pointeur de fonction
  13. y.tab.c(1288): error C2197: 'yyerror' : trop d'arguments pour un appel via le pointeur de fonction
  14. lex.yy.c(970): error C2197: 'yyrestart' : trop d'arguments pour un appel via le pointeur de fonction
  15. y.tab.c(700): error C2692: 'yydestruct' : fonctions entièrement prototypées requises dans le compilateur C avec l'option '/clr'
  16. y.tab.c(1174): error C2692: 'yyerror' : fonctions entièrement prototypées requises dans le compilateur C avec l'option '/clr'


 
N'ayant pas eu ces erreurs avec gcc de mingw, je ne sais pas quoi faire.
 
++

n°1246343
Trap D
Posté le 15-11-2005 à 20:38:15  profilanswer
 

Il a l'air de lui manquer un .h contenant les prototypes des fonctions. Désactive peut-être l'option /clr du compilo puisque c'est ce qu'il semble vouloir, mais ça ne devrait rien donner

n°1246363
cervantes
Posté le 15-11-2005 à 21:18:30  profilanswer
 

je n'ai aucun .h contenant de prototype. Ca marchait sans avec mingw
Ne serait ce pas plutot des options à rajouter dans le fichier .lex?
 
Tu sais ou on désactive l'option /clr dans VC++? je n'ai rien trouvé en rapport avec ca, d'ailleurs c quoi /clr?


Message édité par cervantes le 15-11-2005 à 21:19:57
n°1246369
Trap D
Posté le 15-11-2005 à 21:28:57  profilanswer
 

J'ai le même problème que toi, j'ai regardé dans le MSDN, j'ai rien vu non plus.

n°1246377
cervantes
Posté le 15-11-2005 à 21:41:29  profilanswer
 

Ca m'embete bien ca.
En fait,  au début j'avais d'autres message d'erreur du meme type que ceux que j'ai précisé ci dessus, comme celui-ci:
 

Citation :

error C2197: 'add_correspondance' : trop d'arguments pour un appel via le pointeur de fonction


 
Ici j'ai pu corrigé ca en créant effecivement un .h avec la déclaration de cette fonction, mais je n'ai aps réussi a faire de meme avec ces fonctions car je ne connais pas leur prototype.
 
 
[EDIT] je viens d'installé Visual C++ 2005 Beta et les errors se sont traduisent en Warning. Ca m'arrange qu'a moitié car au taf on a la version 2003  :cry:


Message édité par cervantes le 15-11-2005 à 21:50:07
n°1246438
cervantes
Posté le 15-11-2005 à 23:04:16  profilanswer
 

Trap D a écrit :

Salut
Tu peux peut-être trouver des choses intéressantes ici : http://www.motiwala.com/flex.htm


J'ai testé ce qui est indiqué a cette adresse, mais ensuie, une fois avoir flex.exe, flexlib.lib, qu'est ce que j'en fait et comment ce servir de ces fichiers?

n°1247140
Trap D
Posté le 16-11-2005 à 21:15:43  profilanswer
 

Ben, c'est en cherchant pour toi que j'ai trouvé ça, je ne sais absolument pas ce que ça peut donner, comme il y a avait une adresse où on pouvait écrire, je me suis dit que tu pourrais essayer, c'est tout. :o  
Tu as essayé de lancer le flex.exe ?

n°1247245
cervantes
Posté le 16-11-2005 à 23:04:54  profilanswer
 

Bon alors j'ai réussi a compiler flex/Bison avec vc++, j'ai modifié une option du projet et apres pu une seule erreur.
Pour le flex.exe, je ne l'ai pas essayé car sur la version de VC++ du boulot il ne compile pas a cause d'un probleme d'ouverture du fichier scan.l  :(  
Faudrait que je le lance sur mon pc, j'avais réussi à le compiler.
Je te dis quoi des que possible
 
++


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [Flex/Bison]Comment utiliser Flex/Bison avec Visual C++

 

Sujets relatifs
Visual Studio Express[Visual Basic 6] - Compter le nombre de fois qu'une lettre apparait
[c] recevoir un flux multicast sous WINDOWS (avec visual C++)[Visual Basic 6] Nombre aléatoire qui n'est pas vraiment aléatoire...
utiliser une vue (SQL)Utiliser position absolut vis à vis du body ?
utiliser des librairies dans dev c[Yacc/Bison] Probleme avec yylineno
indentation du code dans visual basicCombien de jours pour se former en visual basic??
Plus de sujets relatifs à : [Flex/Bison]Comment utiliser Flex/Bison avec Visual C++


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR