anchor.diff:  context_sensitive_keyword :
    'associativity' | 'didSet' | 'get' | 'infix' | 'inout' | 'left' | 'mutating' | 'none' | 'nonmutating' | 'operator' | 'override' | 'postfix' | 'precedence' | 'prefix' | 'right' | 'set' | 'unowned' | 'unowned(safe)' | 'unowned(unsafe)' | 'weak' | 'willSet'
    ;
  +
  +Operator
  +  : Operator_head Operator_character*
  +  | '..' ('.'|Operator_character)*
  +  ;
  +
  +Operator_head
  +  : '/' | '=' | '\\' | '-' | '+' | '!' | '*' | '%' | '<' | '>' | '&' | '|' | '^' | '!' | '.'
  +  | [\u00A1-\u00A7]
  +  | [\u00A9\u00AB\u00AC\u00AE]
  +  | [\u00B0-\u00B1\u00B6\u00BB\u00BF\u00D7\u00F7]
  +  | [\u2016-\u2017\u2020-\u2027]
  +  | [\u2030-\u203E]
  +  | [\u2041-\u2053]
  +  | [\u2055-\u205E]
  +  | [\u2190-\u23FF]
  +  | [\u2500-\u2775]
  +  | [\u2794-\u2BFF]
  +  | [\u2E00-\u2E7F]
  +  | [\u3001-\u3003]
  +  | [\u3008-\u3030]
  +  ;
  +
  +Operator_character
  +  : Operator_head
  +  | [\u0300–\u036F]
  +  | [\u1DC0–\u1DFF]
  +  | [\u20D0–\u20FF]
  +  | [\uFE00–\uFE0F]
  +  | [\uFE20–\uFE2F]
  +  //| [\uE0100–\uE01EF]  ANTLR can't do >16bit char
  +  ;
  +
  +Dot_operator_head
  +  : '..'
  +  ;
   
   Identifier : Identifier_head Identifier_characters?
    | '`' Identifier_head Identifier_characters? '`'
  
positive.code: 	|	expression '!'
  	|	expression '?'
  	;
  
  // GRAMMAR OF A PREFIX EXPRESSION
  
  in_out_expression : '&' identifier ;
  
  // GRAMMAR OF AN ASSIGNMENT OPERATOR
  
  assignment_operator : '='  ;
  
negative.code:  : Decimal_literal Decimal_fraction? Decimal_exponent?
   | Hexadecimal_literal Hexadecimal_fraction? Hexadecimal_exponent
   ;
  fragment Decimal_fraction : '.' Decimal_literal ;
  fragment Decimal_exponent : Floating_point_e Sign? Decimal_literal ;
  fragment Hexadecimal_fraction : '.' Hexadecimal_literal? ;
  fragment Hexadecimal_exponent : Floating_point_p Sign? Hexadecimal_literal ;
  fragment Floating_point_e : [eE] ;
  fragment Floating_point_p : [pP] ;
  fragment Sign : [+\-] ;
  