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