anchor.diff:  
      // SCA (parallelize deprecated) directive
      | define_option[$l]+ PARALLELIZE data_over_clause[$l]*
  -     parallelize_clauses[$l] EOF
  +     sca_clauses[$l] EOF
        {
          // TODO to be removed
          System.err.
  
positive.code:        $l.setClause(ClawClause.ROUTINE);
       }
     // SCA directive with define dimension
     | define_option[$l]+ SCA data_over_clause[$l]* parallelize_clauses[$l] EOF
       {
         $l.setDirective(ClawDirective.SCA);
         $l.getLocalModelConfig().generateDefaultLayout();
       }
     | SCA FORWARD parallelize_clauses[$l] EOF
       {
         $l.setDirective(ClawDirective.SCA);
         $l.setClause(ClawClause.FORWARD);
  
negative.code: ;
  
  // Allow to switch order
  sca_clauses[ClawPragma l]:
    (
      { !$l.hasClause(ClawClause.COPY) }?   copy_clause[$l]
    | { !$l.hasClause(ClawClause.UPDATE) }? update_clause[$l]
    | { !$l.hasClause(ClawClause.CREATE) }? create_clause[$l]
    )*
  ;
  
  // Allow to switch order
  foward_clauses[ClawPragma l]:
    (
      { !$l.hasClause(ClawClause.COPY) }?   copy_clause[$l]
    | { !$l.hasClause(ClawClause.UPDATE) }? update_clause[$l]
    | { !$l.hasClause(ClawClause.CREATE) }? create_clause[$l]
    | { !$l.hasClause(ClawClause.PARALLEL) }? parallel_clause[$l]
    )*
  ;
  
  