Browse Source

rtl: add flat functions (duplicates of TCharacter methods) to character unit

git-svn-id: trunk@19190 -
paul 14 years ago
parent
commit
eb8a54d666
1 changed files with 253 additions and 0 deletions
  1. 253 0
      rtl/objpas/character.pas

+ 253 - 0
rtl/objpas/character.pas

@@ -114,6 +114,49 @@ type
     class function ToUpper(const AString : UnicodeString) : UnicodeString; overload; static;
   end;
 
+  // flat functions
+  function ConvertFromUtf32(AChar : UCS4Char) : UnicodeString;
+  function ConvertToUtf32(const AString : UnicodeString; AIndex : Integer) : UCS4Char; overload;
+  function ConvertToUtf32(const AString : UnicodeString; AIndex : Integer; out ACharLength : Integer) : UCS4Char; overload;
+  function ConvertToUtf32(const AHighSurrogate, ALowSurrogate : UnicodeChar) : UCS4Char; overload;
+  function GetNumericValue(AChar : UnicodeChar) : Double; overload;
+  function GetNumericValue(const AString : UnicodeString; AIndex : Integer) : Double; overload;
+  function GetUnicodeCategory(AChar : UnicodeChar) : TUnicodeCategory; overload;
+  function GetUnicodeCategory(const AString : UnicodeString; AIndex : Integer) : TUnicodeCategory; overload;
+  function IsControl(AChar : UnicodeChar) : Boolean; overload;
+  function IsControl(const AString : UnicodeString; AIndex : Integer) : Boolean; overload;
+  function IsDigit(AChar : UnicodeChar) : Boolean; overload;
+  function IsDigit(const AString : UnicodeString; AIndex : Integer) : Boolean; overload;
+  function IsSurrogate(AChar : UnicodeChar) : Boolean; overload;
+  function IsSurrogate(const AString : UnicodeString; AIndex : Integer) : Boolean; overload;
+  function IsHighSurrogate(AChar : UnicodeChar) : Boolean; overload;
+  function IsHighSurrogate(const AString : UnicodeString; AIndex : Integer) : Boolean; overload;
+  function IsLowSurrogate(AChar : UnicodeChar) : Boolean; overload;
+  function IsLowSurrogate(const AString : UnicodeString; AIndex : Integer) : Boolean; overload;
+  function IsSurrogatePair(const AHighSurrogate, ALowSurrogate : UnicodeChar) : Boolean; overload;
+  function IsSurrogatePair(const AString : UnicodeString; AIndex : Integer) : Boolean; overload;
+  function IsLetter(AChar : UnicodeChar) : Boolean; overload;
+  function IsLetter(const AString : UnicodeString; AIndex : Integer) : Boolean; overload;
+  function IsLetterOrDigit(AChar : UnicodeChar) : Boolean; overload;
+  function IsLetterOrDigit(const AString : UnicodeString; AIndex : Integer) : Boolean; overload;
+  function IsLower(AChar : UnicodeChar) : Boolean; overload;
+  function IsLower(const AString : UnicodeString; AIndex : Integer) : Boolean; overload;
+  function IsNumber(AChar : UnicodeChar) : Boolean; overload;
+  function IsNumber(const AString : UnicodeString; AIndex : Integer) : Boolean; overload;
+  function IsPunctuation(AChar : UnicodeChar) : Boolean; overload;
+  function IsPunctuation(const AString : UnicodeString; AIndex : Integer) : Boolean; overload;
+  function IsSeparator(AChar : UnicodeChar) : Boolean; overload;
+  function IsSeparator(const AString : UnicodeString; AIndex : Integer) : Boolean; overload;
+  function IsSymbol(AChar : UnicodeChar) : Boolean; overload;
+  function IsSymbol(const AString : UnicodeString; AIndex : Integer) : Boolean; overload;
+  function IsUpper(AChar : UnicodeChar) : Boolean; overload;
+  function IsUpper(const AString : UnicodeString; AIndex : Integer) : Boolean; overload;
+  function IsWhiteSpace(AChar : UnicodeChar) : Boolean; overload;
+  function IsWhiteSpace(const AString : UnicodeString; AIndex : Integer) : Boolean; overload;
+  function ToLower(AChar : UnicodeChar) : UnicodeChar; overload;
+  function ToLower(const AString : UnicodeString) : UnicodeString; overload;
+  function ToUpper(AChar : UnicodeChar) : UnicodeChar; overload;
+  function ToUpper(const AString : UnicodeString) : UnicodeString; overload;
 {$endif VER2_4}
 
 implementation
@@ -184,6 +227,216 @@ begin
      ];
 end;
 
+function ConvertFromUtf32(AChar: UCS4Char): UnicodeString;
+begin
+  Result := TCharacter.ConvertFromUtf32(AChar);
+end;
+
+function ConvertToUtf32(const AString: UnicodeString; AIndex: Integer): UCS4Char;
+begin
+  Result := TCharacter.ConvertToUtf32(AString, AIndex);
+end;
+
+function ConvertToUtf32(const AString: UnicodeString; AIndex: Integer; out ACharLength: Integer): UCS4Char;
+begin
+  Result := TCharacter.ConvertToUtf32(AString, AIndex, ACharLength);
+end;
+
+function ConvertToUtf32(const AHighSurrogate, ALowSurrogate: UnicodeChar): UCS4Char;
+begin
+  Result := TCharacter.ConvertToUtf32(AHighSurrogate, ALowSurrogate);
+end;
+
+function GetNumericValue(AChar: UnicodeChar): Double;
+begin
+  Result := TCharacter.GetNumericValue(AChar);
+end;
+
+function GetNumericValue(const AString: UnicodeString; AIndex: Integer): Double;
+begin
+  Result := TCharacter.GetNumericValue(AString, AIndex);
+end;
+
+function GetUnicodeCategory(AChar: UnicodeChar): TUnicodeCategory;
+begin
+  Result := TCharacter.GetUnicodeCategory(AChar);
+end;
+
+function GetUnicodeCategory(const AString: UnicodeString; AIndex: Integer): TUnicodeCategory;
+begin
+  Result := TCharacter.GetUnicodeCategory(AString, AIndex);
+end;
+
+function IsControl(AChar: UnicodeChar): Boolean;
+begin
+  Result := TCharacter.IsControl(AChar);
+end;
+
+function IsControl(const AString: UnicodeString; AIndex: Integer): Boolean;
+begin
+  Result := TCharacter.IsControl(AString, AIndex);
+end;
+
+function IsDigit(AChar: UnicodeChar): Boolean;
+begin
+  Result := TCharacter.IsDigit(AChar);
+end;
+
+function IsDigit(const AString: UnicodeString; AIndex: Integer): Boolean;
+begin
+  Result := TCharacter.IsDigit(AString, AIndex);
+end;
+
+function IsSurrogate(AChar: UnicodeChar): Boolean;
+begin
+  Result := TCharacter.IsSurrogate(AChar);
+end;
+
+function IsSurrogate(const AString: UnicodeString; AIndex: Integer): Boolean;
+begin
+  Result := TCharacter.IsSurrogate(AString, AIndex);
+end;
+
+function IsHighSurrogate(AChar: UnicodeChar): Boolean;
+begin
+  Result := TCharacter.IsHighSurrogate(AChar);
+end;
+
+function IsHighSurrogate(const AString: UnicodeString; AIndex: Integer): Boolean;
+begin
+  Result := TCharacter.IsHighSurrogate(AString, AIndex);
+end;
+
+function IsLowSurrogate(AChar: UnicodeChar): Boolean;
+begin
+  Result := TCharacter.IsLowSurrogate(AChar);
+end;
+
+function IsLowSurrogate(const AString: UnicodeString; AIndex: Integer): Boolean;
+begin
+  Result := TCharacter.IsLowSurrogate(AString, AIndex);
+end;
+
+function IsSurrogatePair(const AHighSurrogate, ALowSurrogate: UnicodeChar): Boolean;
+begin
+  Result := TCharacter.IsSurrogatePair(AHighSurrogate, ALowSurrogate);
+end;
+
+function IsSurrogatePair(const AString: UnicodeString; AIndex: Integer): Boolean;
+begin
+  Result := TCharacter.IsSurrogatePair(AString, AIndex);
+end;
+
+function IsLetter(AChar: UnicodeChar): Boolean;
+begin
+  Result := TCharacter.IsLetter(AChar);
+end;
+
+function IsLetter(const AString: UnicodeString; AIndex: Integer): Boolean;
+begin
+  Result := TCharacter.IsLetter(AString, AIndex);
+end;
+
+function IsLetterOrDigit(AChar: UnicodeChar): Boolean;
+begin
+  Result := TCharacter.IsLetterOrDigit(AChar);
+end;
+
+function IsLetterOrDigit(const AString: UnicodeString; AIndex: Integer): Boolean;
+begin
+  Result := TCharacter.IsLetterOrDigit(AString, AIndex);
+end;
+
+function IsLower(AChar: UnicodeChar): Boolean;
+begin
+  Result := TCharacter.IsLower(AChar);
+end;
+
+function IsLower(const AString: UnicodeString; AIndex: Integer): Boolean;
+begin
+  Result := TCharacter.IsLower(AString, AIndex);
+end;
+
+function IsNumber(AChar: UnicodeChar): Boolean;
+begin
+  Result := TCharacter.IsNumber(AChar);
+end;
+
+function IsNumber(const AString: UnicodeString; AIndex: Integer): Boolean;
+begin
+  Result := TCharacter.IsNumber(AString, AIndex);
+end;
+
+function IsPunctuation(AChar: UnicodeChar): Boolean;
+begin
+  Result := TCharacter.IsPunctuation(AChar);
+end;
+
+function IsPunctuation(const AString: UnicodeString; AIndex: Integer): Boolean;
+begin
+  Result := TCharacter.IsPunctuation(AString, AIndex);
+end;
+
+function IsSeparator(AChar: UnicodeChar): Boolean;
+begin
+  Result := TCharacter.IsSeparator(AChar);
+end;
+
+function IsSeparator(const AString: UnicodeString; AIndex: Integer): Boolean;
+begin
+  Result := TCharacter.IsSeparator(AString, AIndex);
+end;
+
+function IsSymbol(AChar: UnicodeChar): Boolean;
+begin
+  Result := TCharacter.IsSymbol(AChar);
+end;
+
+function IsSymbol(const AString: UnicodeString; AIndex: Integer): Boolean;
+begin
+  Result := TCharacter.IsSymbol(AString, AIndex);
+end;
+
+function IsUpper(AChar: UnicodeChar): Boolean;
+begin
+  Result := TCharacter.IsUpper(AChar);
+end;
+
+function IsUpper(const AString: UnicodeString; AIndex: Integer): Boolean;
+begin
+  Result := TCharacter.IsUpper(AString, AIndex);
+end;
+
+function IsWhiteSpace(AChar: UnicodeChar): Boolean;
+begin
+  Result := TCharacter.IsWhiteSpace(AChar);
+end;
+
+function IsWhiteSpace(const AString: UnicodeString; AIndex: Integer): Boolean;
+begin
+  Result := TCharacter.IsWhiteSpace(AString, AIndex);
+end;
+
+function ToLower(AChar: UnicodeChar): UnicodeChar;
+begin
+  Result := TCharacter.ToLower(AChar);
+end;
+
+function ToLower(const AString: UnicodeString): UnicodeString;
+begin
+  Result := TCharacter.ToLower(AString);
+end;
+
+function ToUpper(AChar: UnicodeChar): UnicodeChar;
+begin
+  Result := TCharacter.ToUpper(AChar);
+end;
+
+function ToUpper(const AString: UnicodeString): UnicodeString;
+begin
+  Result := TCharacter.ToUpper(AString);
+end;
+
 { TCharacter }
 
 constructor TCharacter.Create;