title: Xtext rule consisting of Terminals not working
body: <p>As part of a larger grammar I'm trying to define rules to describe "method calls". I ran into trouble and I think I reduced the problem to my lack of knowledge regarding Terminals.</p>
  
  <p>Here's a simple grammar describing my problem:</p>
  
  <pre><code>grammar org.xtext.example.mydsl.MyDsl with org.eclipse.xtext.common.Terminals
  generate myDsl "http://www.xtext.org/example/mydsl/MyDsl"
  
  Model: methodCalls+=MethodCall*;
  MethodCall: 'call' ID '.' ID;
  </code></pre>
  
  <p>With that grammar I can write something like </p>
  
  <pre><code>call variable.method
  call foo.bar
  </code></pre>
  
  <p>Now I would like to allow wildcard characters in the method name. I changed the MethodCall-rule to</p>
  
  <pre><code>MethodCall: 'call' ID '.' WildcardName;
  </code></pre>
  
  <p>and to the end of the grammar I added</p>
  
  <pre><code>terminal WildcardName       : ('a'..'z'|'A'..'Z'|'_'|'*'|'?') ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'*'|'?')*;
  </code></pre>
  
  <p>Trying     </p>
  
  <pre><code>call variable.method
  call foo.bar
  </code></pre>
  
  <p>again I got the error messages:</p>
  
  <pre><code>mismatched input 'foo' expecting RULE_ID
  mismatched input 'variable' expecting RULE_ID
  </code></pre>
  
  <p>Why are 'foo' and 'variable' not being matched by Terminal ID? And more importantly, why does even adding the new Terminal without actually using it cause this error message?</p>