У меня грамматический:bison: почему результат неверен при печати константы в действии?
%token T_SHARE
%token T_COMMENT T_PUBLIC T_WRITEABLE T_PATH T_GUESTOK T_VALID_USERS
T_WRITE_LIST T_CREATE_MODE T_DIRECTORY_MODE
%union
{
int number;
char *string;
}
%token <string> T_STRING
%token <number> T_NUMBER T_STATE
%%
parameters:
|parameters parameter
;
parameter:
section_share
|comment
....
section_share:
'[' T_SHARE ']' {section_print(T_SHARE);}
;
comment:
T_COMMENT '=' T_STRING {print(2);parameter_print(T_COMMENT);}
;
функция печати: недействительным печати (интермедиат Arg) { Е ("% d \ п", Arg); }
но он печатает аргумент `2 'печати другим значениям, например« 8508438 », без правила. Зачем?
Ваша проблема не достаточно ясна для того, чтобы кто-нибудь предоставил вам соответствующий ответ. Вам нужно предоставить более подробную информацию. Кроме того, взгляните на режим отладки Bison. – akim