anchor.diff:        { !$l.hasFusionClause() }?      fusion_clause[$l]
       | { !$l.hasParallelClause() }?    parallel_clause[$l]
       | { !$l.hasAcceleratorClause() }? acc_clause[$l]
  +    | { !$l.hasTargetClause() }?      target_clause[$l]
     )*
   ;
   
  
positive.code:     }
  
    // remove directive
    | REMOVE EOF
      { $l.setDirective(ClawDirective.REMOVE); }
    | END REMOVE EOF
      {
  
negative.code: 
  loop_hoist_clauses[ClawLanguage l]:
    (
      { !$l.hasReshapeClause() }?     reshape_clause[$l]
    | { !$l.hasInterchangeClause() }? interchange_clause[$l]
    | { !$l.hasTargetClause() }?      target_clause[$l]
    )*
  ;
  
  