anchor.diff:      | parameter
       ;
   
  -//fixed_or_parameter
  -//    : INT    -> INT<LiteralNode>[$INT, Integer.parseInt($INT.text)]
  -//	| parameter
  -//	;
   fixed_or_parameter
       : INT
   	| parameter
   	;
   
  -
   // INSERT
   
  -//insert_statement
  -//    : INSERT^ insert_source insert_values returning_spec?
  -//    ;
   insert_statement
       : INSERT insert_source insert_values returning_spec?
       ;
   
  -//insert_source
  -//    : INTO^ write_data_source
  -//    ;
   insert_source
       : INTO write_data_source
       ;
   
  -//write_data_source
  -//    :	namespaced_name -> ^(CALL_SOURCE namespaced_name)
  -//    ;
   write_data_source
       :	namespaced_name
       ;
   
  -//insert_values
  -//    : field_names_spec VALUES field_values_group_spec (COMMA field_values_group_spec)* -> ^(INSERT_VALUES field_names_spec field_values_group_spec+)
  -//    | query_statement -> ^(INSERT_QUERY query_statement)
  -//    ;
  -    
   insert_values
       : field_names_spec VALUES field_values_group_spec (COMMA field_values_group_spec)*
       | query_statement
       ;
   
  -//field_names_spec
  -//    : LPAREN field_def (COMMA field_def)* RPAREN -> field_def+
  -//    ;
   field_names_spec
       : LPAREN field_def (COMMA field_def)* RPAREN
       ;
   
  -//field_values_spec
  -//    : LPAREN expression[true] (COMMA expression[true])* RPAREN -> expression+
  -//    ;
   field_values_spec
       : LPAREN expression[true] (COMMA expression[true])* RPAREN
       ;
   
  -//field_values_group_spec
  -//    : LPAREN expression[true] (COMMA expression[true])* RPAREN -> ^(FIELD_VALUES_GROUP expression+)
  -//    ;
   field_values_group_spec
       : LPAREN expression[true] (COMMA expression[true])* RPAREN
       ;
  
positive.code: ESC_SEQ
      :   '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\'|'/')
      |   UNICODE_ESC
   //   |   OCTAL_ESC
      ;
  
  /*
  fragment
  OCTAL_ESC
      :   '\\' ('0'..'3') ('0'..'7') ('0'..'7')
      |   '\\' ('0'..'7') ('0'..'7')
      |   '\\' ('0'..'7')
      ;
  */
  
  fragment
  UNICODE_ESC
  
negative.code:     | OR arguments[in_select]
      ;
  
  primaryExpression
  @init {
      boolean in_select = expression_stack.peek().in_select;
  }
  	: callExpresion[in_select]
  	| parameter
  	| fieldref
  	| scalar_literal
  