title: uncalled rule causes unhelpful error message
body: <p>With the following grammar</p>
  
  <pre><code>grammar Gram;
  
  exprEof
      : expr EOF
      ;
  
  expr
      : Uident
      | expr '(' Uident ')'
      ;
  
  Uident
      : [A-Z][a-z]*
      ;
  
  WS
      : [ \n\t]+ -&gt; skip
      ;
  </code></pre>
  
  <p>if I try to parse the input <code>Foo(A B)</code> from <code>exprEof</code> I get the expected error</p>
  
  <pre><code>line 1:6 extraneous input 'B' expecting ')'
  </code></pre>
  
  <p>But if I add an additional rule</p>
  
  <pre><code>expr2
      : expr '(' Uident ')'
      ;
  </code></pre>
  
  <p>then the error is</p>
  
  <pre><code>line 1:3 mismatched input '(' expecting &lt;EOF&gt;
  </code></pre>
  
  <p>This is surprising because <code>expr2</code> is not actually called from <code>exprEof</code>. In my full grammar it leads to very unhelpful error messages, where a syntax error deep in an expression is reported as <code>mismatched input '( expecting &lt;EOF&gt;</code> near the beginning of the expression.</p>
  
  <p>I'm using ANTLR 4.5.3.</p>