anchor.diff:      }
   
     // loop-hoist directive
  -  | LOOPHOIST '(' ids_list[o] ')' reshape_optional[$l] interchange_optional[$l] EOF
  +  | LOOP_HOIST '(' ids_list[o] ')' reshape_optional[$l] interchange_optional[$l] EOF
       {
         $l.setHoistInductionVars(o);
         $l.setDirective(ClawDirective.LOOP_HOIST);
       }
  -  | END LOOPHOIST EOF
  +  | END LOOP_HOIST EOF
       {
         $l.setDirective(ClawDirective.LOOP_HOIST);
         $l.setEndPragma();
  
positive.code: CLAW         : 'claw';
  
  // CLAW Directives
  ARRAY_TRANS     : 'array-transform';
  ARRAY_TO_CALL   : 'call';
  DEFINE          : 'define';
  END             : 'end';
  KCACHE          : 'kcache';
  LOOPEXTRACT     : 'loop-extract';
  LOOPFUSION      : 'loop-fusion';
  LOOPHOIST       : 'loop-hoist';
  LOOPINTERCHANGE : 'loop-interchange';
  PARALLELIZE     : 'parallelize';
  REMOVE          : 'remove';
  IGNORE          : 'ignore';
  VERBATIM        : 'verbatim';
  
  
  // CLAW Clauses
  
negative.code:   :
  
    // loop-fusion directive
      LOOP_FUSION group_clause_optional[$l] collapse_clause_optional[$l] EOF
      { $l.setDirective(ClawDirective.LOOP_FUSION); }
  
    // loop-interchange directive
    | LOOP_INTERCHANGE indexes_option[$l] parallel_clause_optional[$l] acc_optional[$l] EOF
      { $l.setDirective(ClawDirective.LOOP_INTERCHANGE); }
  
    // loop-extract directive
    | LOOP_EXTRACT range_option mapping_option_list[m] fusion_clause_optional[$l] parallel_clause_optional[$l] acc_optional[$l] EOF
      {
        $l.setDirective(ClawDirective.LOOP_EXTRACT);
        $l.setRange($range_option.r);
  