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

  FORUM HardWare.fr
  Programmation
  C++

  Lex et Yacc sous windows avec VC++ 6.0 ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Lex et Yacc sous windows avec VC++ 6.0 ?

n°1078035
kiroukou
Posté le 10-05-2005 à 16:09:27  profilanswer
 

Bonjour à tous,
Voila je suis à la recherche de logiciels ou d'une methode me permettant d'utiliser lex et yacc sous environnement windows.
J'ai trouvé ceci : http://www.monmouth.com/~wstreett/ [...] -yacc.html
 
CEla semble fonctionner, mais seulement je suis obligé de bosser sous windows donc, et avec Visual C++ 6.0. Et les 2 fichiers C générés ne semblent pas reellement compatibles avec ce compilateur.
 
Est ce que des gens y sont arrivés (et si oui comment bien sur :) )?
Ou existe t'il d'autres outils qui me permettront de realiser ceci ?
 
Merci d'avance  :D

mood
Publicité
Posté le 10-05-2005 à 16:09:27  profilanswer
 

n°1078041
chrisbk
-
Posté le 10-05-2005 à 16:12:20  profilanswer
 

oué j'y suis arrivé, et en fait je vois pas trop ton pb ? [:god]


---------------
NP: HTTP Error 764 Stupid coder found
n°1078042
chrisbk
-
Posté le 10-05-2005 à 16:12:36  profilanswer
 

ah jme rapelle y'avait un gag avec alloca ?
 
balance les erreurs :o


---------------
NP: HTTP Error 764 Stupid coder found
n°1078106
kiroukou
Posté le 10-05-2005 à 16:43:11  profilanswer
 

salut,
oui il y a alloca et d'autres choses chez moi :  
 
--------------------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)
 
 
 
 
Si tu y es arrivé, tu peux me donner la demarche que tu as suivie stp? Que je vois si je fais les bonnes choses (si j'oublie rien) .  MErci :)

n°1078387
chrisbk
-
Posté le 10-05-2005 à 20:13:50  profilanswer
 

alloca, tu peux feinter avec un #define alloca malloc (c'est pas joli mais bon)
yylex est une fonction attendue par yacc. Fous son prototype (cf doc yacc) en haut du .y, apres les includes que tu as pu y mettre
 
yyerror est une fonction attendue par yacc pour le traitement d'erreur. Regarde son proto dans la doc et fait une implementation (genre qui fait printf("syntax error" ); en bas du .y  (dans la section idoine)
 


---------------
NP: HTTP Error 764 Stupid coder found
n°1079377
kiroukou
Posté le 11-05-2005 à 14:06:31  profilanswer
 

re,
J'ai finalement reussi a integrer flex et bison a visual :) Cela marche bien.
Mais depuis que j'essaie de faire fonctionner flex pour c++ et non c, j'ai une erreur avec yylex. J'imagine qu'il faut que j'instancie FlexLexer mais je ne dois pas bien m'y prendre car je n'y arrive pas.
Vous avez des idées ?
 
Merci :)

n°1079383
chrisbk
-
Posté le 11-05-2005 à 14:07:34  profilanswer
 

bin poste ton erreur


---------------
NP: HTTP Error 764 Stupid coder found
n°1079396
kiroukou
Posté le 11-05-2005 à 14:11:38  profilanswer
 

je peux pas exactement car le pc sur lequel je bosse n'a pas acces au net et ce poste n'a pas de lecteurs externe pour des raisons de securité j'imagine...
 
Mais c'est vraiment qq chose avec int yylex(void) ....  une erreur de liens.
Voila

n°1079415
chrisbk
-
Posté le 11-05-2005 à 14:18:16  profilanswer
 

ah je crois que je vois [:god] ou pas [:god] j'attends le msg d'erreur pour etre sur
 
tu melanges .c et .cpp dans ton exe ?


---------------
NP: HTTP Error 764 Stupid coder found
n°1079497
kiroukou
Posté le 11-05-2005 à 14:47:22  profilanswer
 

héhé en fait j'avais oublié que j'ai accés aux mails (mais pas au web en fait)
Donc voila l'erreur :  
 
 
Performing Custom Build Step on .\calc2.l
 
Compiling...
 
calc2.lex.cpp
 
calc2.y.cpp
 
Linking...
 
calc2.y.obj : error LNK2001: unresolved external symbol "int __cdecl yylex(void)" (?yylex@@YAHXZ)
 
Debug/bisonflex.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
 
bisonflex.exe - 2 error(s), 0 warning(s)
 
J'ai trouvé qq trucs sur le net, mais je n'arrive pas a reproduire leur methode chez moi (enfin ca marche pas donc .... lol)
 
++ et merci

mood
Publicité
Posté le 11-05-2005 à 14:47:22  profilanswer
 

n°1079511
chrisbk
-
Posté le 11-05-2005 à 14:52:51  profilanswer
 

grml
possibilité de gag. Ptet ton yylex de flex est défini en extern "C" ? (fo aller voir le code generé (calc2.lex.cpp), cherche la fonction yylex)


---------------
NP: HTTP Error 764 Stupid coder found
n°1079691
kiroukou
Posté le 11-05-2005 à 16:08:27  profilanswer
 

NOn je ne pense pas... Je dis ca car apres avoir bien regardé sur internet, il semblerai que ce genre de problem soit habituel.
Des solutions de ce genre sont proposées (enfin juste l'idée, pas de code, le code là est de moi et peut donc etre faux..)
 
%{
            #include <iostream>
            #include "FlexLexer.h"
            void yyerror(char *);
            int yylex(void);
    int sym[26];
yyFlexLexer Lexer(reinterpret_cast<istream*>(&std::cin) , reinterpret_cast<ostream*>(&std::cout));
%}  
 
int yylex(void)
{
            std::cout << "on entre dans yylex" << std::endl;
            Lexer.yylex();
            std::cout << "on sort de yylex" << std::endl;
            return 0;
}
 
Un autre idée ?

n°1079885
chrisbk
-
Posté le 11-05-2005 à 17:57:12  profilanswer
 

ah bin non, si, c'est ptet bin ca tiens, meme si ca sent grave la colle. Enfin essaye et tu verras [:god] (sauf que je ferais plutot return Lexer.yylex())


---------------
NP: HTTP Error 764 Stupid coder found
n°1080547
kiroukou
Posté le 12-05-2005 à 09:57:21  profilanswer
 

Oui il semble que c'etait bien ça :)
En fait j'aurai du essayer de mieux interpreter mes erreurs quand j'essaiyais ça.  J'obtenais une parseur error. Je pensais que c'etait le parseur qui etait mal initialisé avec ma méthode. Mais en fait non, cela venait de mes regles de grammaire qui etaient mauvaise semble t'il. Je veins de repartir d'une grammaire vérifiée avant, et maintenant cela marche bien :)
 
Merci de ton aide dans tout les cas, et j'espere que cela servira à d'autres personnes.
++

n°1840630
mina86
Posté le 20-01-2009 à 17:11:32  profilanswer
 

salut
 
je débute en ce moment avec lex et yacc, j'utilise Parser generator pour créer les fichier .l et .y, pour l'instant tous se passe bien mais je voudrais les tester là est le problème. comment je fais pour tester les fichiers .c généré
j'ai essayé visual studio 2008 mais j'ai pas su le configurer (meme avec flex et bison).
je crois que kiroukou l'a fais, pouvez vous me donner des indications pour cela?
je travaille sous windows.
des tuto pour lex et yacc sous win sont les bienvenues

n°1840644
Joel F
Real men use unique_ptr
Posté le 20-01-2009 à 17:51:27  profilanswer
 

EN remplacemnt à lexx/yacc, y a Boos::spirit qui permet de faire du lexx/yacc diretc dnas un source C++

n°1840943
mina86
Posté le 21-01-2009 à 08:59:42  profilanswer
 

salut,
jai vraiment pas compris la réponse
désolé

n°1841066
frenchtouc​co
Posté le 21-01-2009 à 13:12:11  profilanswer
 

wow, quand même !
 
Joel t'as dit qu'au lieu d'utiliser lexx/yacc utilise Boost::spirit


---------------
je connais tout, je ne sais rien, seule certitude, à vouloir trop on finit par tout perdre.
n°1841122
mina86
Posté le 21-01-2009 à 14:30:20  profilanswer
 

salut
 
ok merci!!
c juste que les outils que j'utilise sont imposés mais merci comeme!!
cordialement

n°1841271
Joel F
Real men use unique_ptr
Posté le 21-01-2009 à 18:49:31  profilanswer
 

ouais, alors je comprends mieux.
En français on dit "quand même" pas comeme ...

n°1841408
mina86
Posté le 22-01-2009 à 08:44:16  profilanswer
 

wé mé vous savez , c les habitudes du langage sms!!
on a tendance à tout abréger!!
 
je prends pas ça mal mais attention, ça peut vexer!
 

n°1841427
kyntriad
Posté le 22-01-2009 à 09:58:17  profilanswer
 

mina86 a écrit :

wé mé vous savez , c les habitudes du langage sms!!
on a tendance à tout abréger!!

 

je prends pas ça mal mais attention, ça peut vexer!

 


 

wé mé vous savé, le sms C mal !!! (et ça coute pas plus cher de bien manger)


Message édité par kyntriad le 22-01-2009 à 09:58:59

---------------
You can't start a fire with moonlight
mood
Publicité
Posté le   profilanswer
 


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

  Lex et Yacc sous windows avec VC++ 6.0 ?

 

Sujets relatifs
Ftp_*list sur serveur windows en PHP 5[RESOLU][C# .NET] Créer des objets Windows Form par le code source
Ouverture de fichier en interface graphique sous windows et linux[Api windows (win32) / C] Edition d'un subitem dans une listview
C++ / Qt : prog marche sous linux et quand il veut sous windows![C++] compile sous windows mais pas sous linux
comment récupérer la couleur d´un pixel sous windows XPModifier l'heure automatiquement sous windows
crée un net view (windows)Application windows et gestion bdd
Plus de sujets relatifs à : Lex et Yacc sous windows avec VC++ 6.0 ?


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