salut im confus sur la façon d'obtenir un char * quand je lis un jeton spécifique ... je regarde dans différents sites et ils fournissent des suggestions, mais pas complète, je veux dire, par exemple yylval et la déclaration yytext est manquant ou comment transformer les types, etcutilisation yylval dans le bison pour récupérer une chaîne
Qu'est-ce que le besoin dans le fichier. De quoi a besoin le fichier .y?
Ce que je
dans le fichier .L:
{WORD} { yylval = strdup(yytext);return T_ValidWord;}
dans le fichier .y:
%union{
char *str;
}
%token<str> T_ValidWord
%%
element:
T_OpenTag T_ValidWord ele1 {printf("%s", $2);}
;
L'erreur:
xml.lex: In function ‘yylex’:
xml.lex:34: error: incompatible types when assigning to type ‘YYSTYPE’ from type ‘char *’
Autre chose plus cela m'a troublé: Dans certains endroits que je vois dans le manuel du bison
yylval->something = yytext
yylval.something = yytext
yylval = yytext
dire que yylval est une macro, je comprends qu'une macro est un texte remplacé par un autre texte, mais dans cette situation, je ne comprends vraiment pas.
ouyea, merci beaucoup, quelle bonne réponse :) – mjsr