anchor.diff:      : dateFromStringFunction
       ;
   
  -dateFromStringFunction : FUNC_D_F_S '(' componentRef ',' format=STRING_CONSTANT ')';
  +dateFromStringFunction : 'date_from_string' '(' componentRef ',' format=STRING_CONSTANT ')';
   
   
   // Left recursive
  
positive.code: /* Core functions */
  
  NATIVE_FUNCTIONS : (NUMERIC_FUNCTIONS | STRING_FUNCTIONS ) ;
  nativeFunctions : NUMERIC_FUNCTIONS
                  | STRING_FUNCTIONS ;
  FUNC_ISNULL : 'isnull' ;
  
  // Numeric
  
negative.code: 
  // 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_LENGTH  : 'length' ;
  