anchor.diff:      ;
   DoubleLiteral
       :    [+-]? ([1-9]+ 0*)* [0-9] '.' [0-9]+ 'd'
  +    ;
  +fragment SingalCharacter
  +    :    ~['\\]
  +    ;
  +fragment EscapeSequence
  +    :    '\\' [btnfr"'\\]
  +    |    '\\' OctalDigit                              // Octal Escape
  +    |    '\\' OctalDigit OctalDigit                   // Octal Escape
  +    |    '\\' [0-3] OctalDigit OctalDigit             // Octal Escape
  +    |    '\\' 'u' HexDigit HexDigit HexDigit HexDigit // Unicode Escape
  +    ;
  +fragment OctalDigit
  +    :    [0-7]
  +    ;
  +fragment HexDigit
  +    :    [0-9a-fA-F]
       ;
   
   /**
  
positive.code:     | DoubleLiteral
      ;
  StringLiteral //? support unicode should check
      :    '"' (~["\\\r\n] | '\\' (. | EOF))* '"'
      ;
  BooleanLiteral
      :    TRUE | FALSE
  
negative.code:     :    Identifier | Identifier '<' JavaClassType '>'
      ;
  
  /**
   * Literals, a much more simple version than Java literals.
   * For numeric literals, only support decimal.
  