title: How to remove shift/reduse warning?
body: <p>I am trying to make a compiler and I am now trying to make the parser.
  I get a warning on this state : 
      State 89</p>
  
  <pre><code>   62 expr: '(' expr . ')'
     66     | expr . '+' expr
     67     | expr . '-' expr
     68     | expr . '*' expr
     69     | expr . '/' expr
     70     | expr . '%' expr
     74     | expr . '&amp;' expr
     75     | expr . '|' expr
     77 cond: expr .
     78     | '(' expr . ')'
     82     | expr . '=' expr
     83     | expr . "&lt;&gt;" expr
     84     | expr . '&lt;' expr
     85     | expr . '&gt;' expr
     86     | expr . "&gt;=" expr
     87     | expr . "&lt;=" expr
  
      "&lt;&gt;"  shift, and go to state 91
      "&gt;="  shift, and go to state 92
      "&lt;="  shift, and go to state 93
      '+'   shift, and go to state 94
      '-'   shift, and go to state 95
      '|'   shift, and go to state 96
      '*'   shift, and go to state 97
      '/'   shift, and go to state 98
      '%'   shift, and go to state 99
      '&amp;'   shift, and go to state 100
      '='   shift, and go to state 101
      '&lt;'   shift, and go to state 102
      '&gt;'   shift, and go to state 103
      ')'   shift, and go to state 119
  
  
  $default  reduce using rule 77 (cond)
  
  
  State 119
  
     62 expr: '(' expr ')' .
     78 cond: '(' expr ')' .
  
      "and"     reduce using rule 62 (expr)
      "and"     [reduce using rule 78 (cond)]
      "or"      reduce using rule 62 (expr)
      "or"      [reduce using rule 78 (cond)]
      ':'       reduce using rule 62 (expr)
      ':'       [reduce using rule 78 (cond)]
      ')'       reduce using rule 62 (expr)
      ')'       [reduce using rule 78 (cond)]
      $default  reduce using rule 62 (expr)
  </code></pre>
  
  <p>My grammar for this part is :</p>
  
  <pre><code>expr:
      T_const |
      T_char_const | 
      l_value | 
      '(' expr ')' | 
      func_call |
      '+' expr | 
      '-' expr | 
      expr '+' expr |
      expr '-' expr | 
      expr '*' expr | 
      expr '/' expr | 
      expr '%' expr |
      T_true | T_false |
      '!' expr | 
       expr '&amp;' expr |
      expr '|' expr
  ;
  
  cond:
      '(' cond ')' |
       expr |
       T_not cond |
       cond T_and cond |
       cond T_or  cond |
       expr '=' expr |
       expr T_not_equal expr |
       expr '&lt;' expr |
       expr '&gt;' expr |
       expr T_greater_equal expr |
       expr T_less_equal expr
   ;
  </code></pre>
  
  <p>What is the problem here and how could i probably fix it?I have already fixed some shift/reduce problems, but generally i haven't understand what this problem is.
  Thank you very much</p>