Привет, я не понимаю, как получить символ *, когда я читаю определенный токен ...
Я смотрю на разных сайтах, и они предоставляют предложения, но не полные, я имею в виду, например, отсутствует объявление yylval и yytext или как преобразовать типы и т. Д.
Что нужно в .l файле?
Что нужно в .y файле?
Что у меня есть
в .l файле:
{WORD} { yylval = strdup(yytext);return T_ValidWord;}
в .y файле:
%union{
char *str;
}
%token<str> T_ValidWord
%%
element:
T_OpenTag T_ValidWord ele1 {printf("%s", $2);}
;
Ошибка:
xml.lex: In function ‘yylex’:
xml.lex:34: error: incompatible types when assigning to type ‘YYSTYPE’ from type ‘char *’
Еще одна вещь, которая смутила меня:
В некоторых местах я вижу
yylval->something = yytext
yylval.something = yytext
yylval = yytext
В руководстве по бизону скажите, что yylval - это макрос, я понимаю, что макрос - это текст, замененный другим текстом, но в этой ситуации я действительно не понимаю.