title: Why does Flex say this is an "unrecognized rule"?
body: <p>In the following:</p>
  
  <pre><code>space           ([ \t\f\r])+         
  opt_space       ([ \t\f\r])*         
  cpp             ^{opt_space}#{opt_space} 
  word            [A-Za-z_][A-Za-z_0-9]*
  arg_macro       {cpp}define{space}{word}
  /*arg_macro       ^{opt_space}#{opt_space}define{space}{word}*/
  
  %%
  {arg_macro}     ;
  %%
  </code></pre>
  
  <p>I get an error message</p>
  
  <pre>
  test.l:9: unrecognized rule
  </pre>
  
  <p>If I uncomment the second version of <code>arg_macro</code> and comment the first one, the error message goes away.</p>
  
  <p>Any ideas why?</p>