如何摆脱减少减少的野牛

时间:2014-05-09 20:45:27

标签: bison yacc reduce-reduce-conflict

我的代码如下:

%%
%token blablabla
%%

expresion:  operand
            operand '-' expresion
           |operand '+' expresion
           | '(' expresion ')'  /*Conflict line*/
;

/*terminal symbols */operand: IDENTIFIER                { printf (" %s ", $1) ; } 
                             | NUMBER                   { printf (" %s ", $1) ; }
       ;

编译时我得到3个减少/减少警告(即使代码正确运行)。我怎样才能摆脱这些警告?

1 个答案:

答案 0 :(得分:1)

你想要的方法

     %left '-' '+'


     expression : operand
                 | expression '-' expression
                 | expression '+' expression
                 | '(' expression ')'