title: Why does this simple grammar have a shift/reduce conflict?
body: <pre><code>%token &lt;token&gt; PLUS MINUS INT
  %left PLUS MINUS
  </code></pre>
  
  <p><strong>THIS WORKS:</strong></p>
  
  <pre><code>exp : exp PLUS exp;
  exp : exp MINUS exp;
  exp : INT;
  </code></pre>
  
  <p><strong>THIS HAS 2 SHIFT/REDUCE CONFLICTS:</strong></p>
  
  <pre><code>exp : exp binaryop exp;
  exp : INT;
  binaryop: PLUS | MINUS ;
  </code></pre>
  
  <p><strong>WHY?</strong></p>