title: Rascal error when specifying grammar
body: <p>I have a simple file in rascal for specifying a toy grammar</p>
  
  <pre><code>module temp
  
  import IO;
  
  import ParseTree;
  
  layout LAYOUT = [\t-\n\r\ ]*;
  
  start syntax Simple 
    =  A B ;
  
  syntax A = "Hello"+ ("joe" "pok")* ;
  syntax A= "Hi";
  syntax B = "world"*|"wembly";
  syntax B =    C | C C*   ;
  
  
  public void main () {
  println("hello");
  iprint(parse(#start[Simple], "Hello Hello world world world"));
  }
  </code></pre>
  
  <p>This works fine,  however, the problem is that I didn't want to write </p>
  
  <pre><code>syntax B =    C | C C*   ;
  </code></pre>
  
  <p>I wanted to write </p>
  
  <pre><code>syntax B =  (  C | C C*  )? 
  </code></pre>
  
  <p>but it was rejected as a parse error by rascal -even though all of </p>
  
  <pre><code>syntax B =  (  C  C C*  )? ;
  
  syntax B =  (  C |  C*  )? ;
  
  syntax B =    C | C C*   ;
  </code></pre>
  
  <p>are accepted fine.  Can anyone explain to me what I'm doing wrong? </p>