anchor.diff:  
   fragment
   HexSignificand
  -    :   HexNumeral '.'?
  -    |   '0' [xX] HexDigits? '.' HexDigits
  +    :   HexNumeral Dot?
  +    |   Zero [xX] HexDigits? Dot HexDigits
       ;
   
   fragment
  
positive.code: 
  // Groovy gstring
  GStringBegin
      :   '"' DqStringCharacter*? DOLLAR -> pushMode(DQ_GSTRING_MODE), pushMode(GSTRING_TYPE_SELECTOR_MODE)
      ;
  TdqGStringBegin
      :   '"""'   TdqStringCharacter*? DOLLAR -> type(GStringBegin), pushMode(TDQ_GSTRING_MODE), pushMode(GSTRING_TYPE_SELECTOR_MODE)
      ;
  SlashyGStringBegin
      :   '/' { this.isRegexAllowed() && _input.LA(1) != '*' }? SlashyStringCharacter*? DOLLAR { isFollowedByJavaLetterInGString(_input) }? -> type(GStringBegin), pushMode(SLASHY_GSTRING_MODE), pushMode(GSTRING_TYPE_SELECTOR_MODE)
      ;
  DollarSlashyGStringBegin
      :   '$/' DollarSlashyStringCharacter*? DOLLAR { isFollowedByJavaLetterInGString(_input) }? -> type(GStringBegin), pushMode(DOLLAR_SLASHY_GSTRING_MODE), pushMode(GSTRING_TYPE_SELECTOR_MODE)
      ;
  
  mode DQ_GSTRING_MODE;
  
negative.code: NOT_INSTANCEOF      : '!instanceof' { isFollowedBy(_input, ' ', '\t', '\r', '\n') }?;
  NOT_IN              : '!in'         { isFollowedBy(_input, ' ', '\t', '\r', '\n', '[', '(', '{') }?;
  
  
  // §3.11 Separators
  
  