anchor.diff:  
   // String
   fragment STRING_FUNCTIONS : ( FUNC_LENGTH | FUNC_TRIM  | FUNC_LTRIM  | FUNC_RTRIM |
  -                     FUNC_UPPER  | FUNC_LOWER | FUNC_SUBSTR | FUNC_INSTR |
  -                     FUNC_D_F_S  | FUNC_REPLACE
  +                     FUNC_UPPER  | FUNC_LOWER | FUNC_SUBSTR | FUNC_INSTR
  +                     // | FUNC_D_F_S
  +                   | FUNC_REPLACE
                      ) ;
   
   FUNC_LENGTH  : 'length' ;
  
positive.code:     : dateFromStringFunction
      ;
  
  dateFromStringFunction : FUNC_D_F_S '(' componentRef ',' format=STRING_CONSTANT ')';
  
  
  // Left recursive
  
negative.code: FUNC_LOWER   : 'lower' ;
  FUNC_SUBSTR  : 'substr' ;
  FUNC_INSTR   : 'instr' ;
  // TODO: Fix conflict FUNC_D_F_S   : 'date_from_string' ;
  FUNC_REPLACE : 'replace' ;
  
  //WS : [ \r\t\u000C] -> skip ;
  