anchor.diff:     ;
   
   cast_expression
  -   : data_type_sub LPAREN expression (COMMA expression)* RPAREN
  -   ;
  -
  -data_type_sub
  +   : DATA_TYPE_SUB LPAREN expression (COMMA expression)* RPAREN
  +   ;
  +
  +data_type_name
      : DATA_TYPE_SUB
  -   ;
  -
  -data_type_name
  -   : data_type_sub
      | identifier_name
      ;
  
positive.code:    ;
  
  if_statement
     : IF boolean_expression THEN statement* (ELSEIF boolean_expression THEN statement*)* (ELSE statement*)? END IF (SEMI |)
     ;
  
  if_simple_statement
     : IF boolean_expression THEN statement
     ;
  
  continue_sub
     : CONTINUE
     ;
  
  continue_statement
     : continue_sub
     ;
  
  post_event_sub
     : (atom_sub_member1 DOT)? (POST | TRIGGER) (EVENT)? identifier_name_ex LPAREN expression_list? RPAREN
     ;
  
  post_event
     : post_event_sub
     ;
  
  exit_statement_sub
     : EXIT
     ;
  
  exit_statement
     : exit_statement_sub
     ;
  
  choose_statement
     : CHOOSE CASE expression ((choose_case_range_sub) | (choose_case_cond_sub) | (choose_case_else_sub) | choose_case_value_sub) + END CHOOSE
     ;
  
  choose_case_value_sub
  
negative.code:    | REF
     | NULL
     | OPEN
     | LPAREN LPAREN (expression | DATA_TYPE_SUB) (COMMA (expression | DATA_TYPE_SUB))? RPAREN (COMMA LPAREN (expression | DATA_TYPE_SUB) (COMMA (expression | DATA_TYPE_SUB))? RPAREN)* RPAREN
     | DATA_TYPE_SUB (LPAREN NUMBER RPAREN)?
     ;
  
  forward_decl
     : FORWARD (datatype_decl | variable_decl)+ END FORWARD
     ;
  
  datatype_decl
     : scope_modif? TYPE identifier_name FROM (identifier_name TICK)? data_type_name (WITHIN identifier_name)? AUTOINSTANTIATE? (DESCRIPTOR DQUOTED_STRING EQ DQUOTED_STRING)?
       (variable_decl | event_forward_decl)*
       END TYPE
     ;
  
  type_variables_decl
  