Yacc : récupérer la chaine de caractere de $1

Fermé
Sara426 Messages postés 678 Date d'inscription mardi 6 octobre 2009 Statut Membre Dernière intervention 16 décembre 2015 - 19 oct. 2012 à 11:14
Sara426 Messages postés 678 Date d'inscription mardi 6 octobre 2009 Statut Membre Dernière intervention 16 décembre 2015 - 19 oct. 2012 à 11:51
Bonjour,

Je dois faire un compilateur avec Yacc mais j'ai un problème avec un type.

J'ai une fonction simple, par exemple:
void ecrire(char* idf);

Dans Yacc lorsque je lance {ecrire($1);}
Il me retourne un probleme de typage :
note: expected `char *' but argument is of type `YYSTYPE'

Or $1 dans le Lex correspond bien a une chaine de caractere.

Est-ce que quelqu'un aurait une idée ?

Cordialement,
Sara.

1 réponse

Freedomsoul Messages postés 509 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 17 avril 2013 97
19 oct. 2012 à 11:34
Es-tu sur de la définission de ta variable $1 ?

pourrais-tu données d'avantage d'informations ?

Merci
0
Sara426 Messages postés 678 Date d'inscription mardi 6 octobre 2009 Statut Membre Dernière intervention 16 décembre 2015 63
19 oct. 2012 à 11:51
Dans le lex on a [a-zA-Z]* {return (IDF);}

Et dans le yacc
truc : IDF {écrire($1);}
;

Donc IDF est obligatoirement une chaine de caractère.
0