Bonjour,
Je construis un parseur avec flex et bison en C++.
Mon problème est le suivant : une des valeurs de "retour" de flex est
long* yylval_param;
C'est la valeur qui est ensuite passée à bison pour les paramètres $1,
$2 d'une expression régulière...
L'exemple que j'ai sous les yeux se sert de *yylval_param comme d'un
index sur un vector "nodes".
Dans l'expression "SEND ' ' IDENTIFIER ';'", on accède à
l'identificateur par exemple par "nodes[ $3 ]". Et ca ne me plait pas !
Je voudrais faire
new SendNode( $3 );
avec $3 un Identificateur (ou un ProgrammeNode)
Est ce que ces conversions sont assurées ? :
*yylval_param = (long) new Identificateur( "..." ); //dans flex
puis
new SendNode( (ProgrammeNode*) $3 ); //dans bison
Est ce que ce comportement est ~ ok ?
--------------------------------------------
Benoît Rousseau : roussebe at spray dot se
Jouez en programmant : http://realtimebattle.sourceforge.net/
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Marc Bourguet
Benoit Rousseau writes:
Bonjour, Je construis un parseur avec flex et bison en C++. Mon problème est le suivant : une des valeurs de "retour" de flex est long* yylval_param;
C'est la valeur qui est ensuite passée à bison pour les paramètres $1, $2 d'une expression régulière...
Regarde un peu %union.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Benoit Rousseau <not.provided@no.spam> writes:
Bonjour,
Je construis un parseur avec flex et bison en C++.
Mon problème est le suivant : une des valeurs de "retour" de flex est
long* yylval_param;
C'est la valeur qui est ensuite passée à bison pour les paramètres
$1, $2 d'une expression régulière...
Regarde un peu %union.
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Bonjour, Je construis un parseur avec flex et bison en C++. Mon problème est le suivant : une des valeurs de "retour" de flex est long* yylval_param;
C'est la valeur qui est ensuite passée à bison pour les paramètres $1, $2 d'une expression régulière...
Regarde un peu %union.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org