我有以下的野牛文件 -或野牛聲明結構條件
%union
{
int integer_value;
double double_value;
char* string_value;
}
%token <integer_value> INTEGER
%token <string_value> VAR
%token <string_value> INTEGER_DECLARATION
%token <double_value> DOUBLE
%token <string_value> DOUBLE_DECLARATION
%%
program:
program statement '\n'
|
;
statement:
| INTEGER_DECLARATION VAR '=' INTEGER {//implementation}
| INTEGER_DECLARATION VAR '=' DOUBLE {//implementation as above}
%%
因爲在這兩種INTEGER_DECLARATION VAR '=' INTEGER
和INTEGER_DECLARATION VAR '=' DOUBLE
實現是一樣的,是有可能使OR
條件BW INTEGER
和DOUBLE
在聲明結構?
我試過INTEGER_DECLARATION VAR '=' INTEGER|DOUBLE
,但它提示warning: rule useless in parser due to conflicts: statement: DOUBLE
,實際上DOUBLE
的提及被忽略。