title: Problems finding a csv grammar where cells have a special meaning
body: <p>I'm trying to find a grammar for the following example csv:</p>
  
  <pre><code>a; test;test ;
  ;a; test;test ;
  &lt;ignore&gt;; &lt;ignore&gt; ;test
  a; &lt;ignore&gt; test;test
  a; this is test ;test
  </code></pre>
  
  <p>The semicolon is used as the separator. Cells containing only the text <code>&lt;ignore&gt;</code> have a special meaning and should be represented by their own type in the EMF model. However <code>&lt;igonore&gt; test</code> is not such a special value. The whitespace around semicolons must be ignored. Cells may contain any characters except the semicolon.</p>
  
  <p>So far I have come up with this grammar:</p>
  
  <pre><code>grammar com.example.Csv
  
  import "http://www.eclipse.org/emf/2002/Ecore" as ecore
  generate impEx "http://www.example.com/Csv
  
  Model:
      valueLine=ValueLine
  
  ValueLine:
      ';'? WHITE_SPACE values+=Value WHITE_SPACE (';' WHITE_SPACE values+=Value WHITE_SPACE)* ';'*;
  
  Value:
      ( (=&gt;'&lt;ignore&gt;') {IGNORE_VALUE} IGNORE_VALUE) | text=TEXT_VALUE;
  
  terminal TEXT_VALUE:
      (!';')*;
  
  IGNORE_VALUE:
      '&lt;ignore&gt;';
  
  WHITE_SPACE:
      (' '|'\t')*;
  </code></pre>
  
  <p>But using my testcase </p>
  
  <pre><code>@InjectWith(CsvInjectorProvider.class)
  @RunWith(XtextRunner.class)
  public class ParserTest {
  
      @Inject
      private ParseHelper&lt;Model&gt; parser;
  
      @Test
      public void parseDomainmodel() throws Exception {
          Model parsed = parser.parse("abc;  &lt;ignore&gt;;  &lt;ignore&gt; \t;  &lt;ignore&gt; a;def");
          System.out.println(parsed.getValueLine().getValues());
      }
  }
  </code></pre>
  
  <p>I see that  the <code>IGNORE_VALUE</code> rule doesn't match <code>&lt;ignore&gt;</code>. The parser seems to use the <code>TEXT_VALUE</code> rule for the starting whitespace.</p>
  
  <p>What do I need to do in order to parse the <code>&lt;ignore&gt;</code> values correctly?</p>