title: What is the conflict in this yacc parser?
body: <p>I used the -v option in yacc to produce a y.output file.  At the top of the file it says</p>
  
  <p>State 98 conflicts: 1 shift/reduce</p>
  
  <p>Further down in the file is the following:</p>
  
  <pre><code>state 98
  
     30 selection_stmt: IF '(' expression ')' statement .
     31               | IF '(' expression ')' statement . ELSE statement
  
      ELSE  shift, and go to state 101
  
      ELSE      [reduce using rule 30 (selection_stmt)]
      $default  reduce using rule 30 (selection_stmt)
  </code></pre>
  
  <p>What is the conflict, and how can it be fixed?</p>