anchor.diff:  rowDef returns [Row row]
       : K_ROW '(' key=term ',' first=columnDef { $row = new Row($key.item, first); }
             (',' next=columnDef { $row.and(next); })* ')'
  +    ;
  +    
  +endStmnt
  +    : (EOF | ';')
       ;
   
   // Case-insensitive keywords
  
positive.code:       K_UPDATE IDENT
            (K_USING K_CONSISTENCY '.' K_LEVEL { cLevel = ConsistencyLevel.valueOf($K_LEVEL.text); })?
            K_WITH first=rowDef { $expr = new UpdateStatement($IDENT.text, first, cLevel); }
            (K_AND next=rowDef { $expr.and(next); })* ';'
      ;
  
  // TODO: date/time, utf8
  
negative.code:                       numColumns = count;
                }
            )*
            order=(K_ASC | K_DESC { reversed = true; })? endStmnt
        {
            return new SelectStatement($IDENT.text,
                                       cLevel,
  