1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228
  
     | 
    
      ------------------------------------------------------------------------------
--                                                                          --
--                         GNAT RUN-TIME COMPONENTS                         --
--                                                                          --
--    A D A . W I D E _ W I D E _ C H A R A C T E R S . H A N D L I N G     --
--                                                                          --
--                                 B o d y                                  --
--                                                                          --
--          Copyright (C) 2010-2024, Free Software Foundation, Inc.         --
--                                                                          --
-- GNAT is free software;  you can  redistribute it  and/or modify it under --
-- terms of the  GNU General Public License as published  by the Free Soft- --
-- ware  Foundation;  either version 3,  or (at your option) any later ver- --
-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
-- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
--                                                                          --
-- As a special exception under Section 7 of GPL version 3, you are granted --
-- additional permissions described in the GCC Runtime Library Exception,   --
-- version 3.1, as published by the Free Software Foundation.               --
--                                                                          --
-- You should have received a copy of the GNU General Public License and    --
-- a copy of the GCC Runtime Library Exception along with this program;     --
-- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
-- <http://www.gnu.org/licenses/>.                                          --
--                                                                          --
-- GNAT was originally developed  by the GNAT team at  New York University. --
-- Extensive contributions were provided by Ada Core Technologies Inc.      --
--                                                                          --
------------------------------------------------------------------------------
with Ada.Wide_Wide_Characters.Unicode; use Ada.Wide_Wide_Characters.Unicode;
package body Ada.Wide_Wide_Characters.Handling is
   ---------------------------
   -- Character_Set_Version --
   ---------------------------
   function Character_Set_Version return String is
   begin
      return "Unicode 4.0";
   end Character_Set_Version;
   ---------------------
   -- Is_Alphanumeric --
   ---------------------
   function Is_Alphanumeric (Item : Wide_Wide_Character) return Boolean is
   begin
      return Is_Letter (Item) or else Is_Digit (Item);
   end Is_Alphanumeric;
   --------------
   -- Is_Basic --
   --------------
   function Is_Basic (Item : Wide_Wide_Character) return Boolean
     renames Ada.Wide_Wide_Characters.Unicode.Is_Basic;
   ----------------
   -- Is_Control --
   ----------------
   function Is_Control (Item : Wide_Wide_Character) return Boolean is
   begin
      return Get_Category (Item) = Cc;
   end Is_Control;
   --------------
   -- Is_Digit --
   --------------
   function Is_Digit (Item : Wide_Wide_Character) return Boolean
     renames Ada.Wide_Wide_Characters.Unicode.Is_Digit;
   ----------------
   -- Is_Graphic --
   ----------------
   function Is_Graphic (Item : Wide_Wide_Character) return Boolean is
   begin
      return not Is_Non_Graphic (Item);
   end Is_Graphic;
   --------------------------
   -- Is_Hexadecimal_Digit --
   --------------------------
   function Is_Hexadecimal_Digit (Item : Wide_Wide_Character) return Boolean is
   begin
      return Is_Digit (Item)
        or else Item in 'A' .. 'F'
        or else Item in 'a' .. 'f';
   end Is_Hexadecimal_Digit;
   ---------------
   -- Is_Letter --
   ---------------
   function Is_Letter (Item : Wide_Wide_Character) return Boolean
     renames Ada.Wide_Wide_Characters.Unicode.Is_Letter;
   ------------------------
   -- Is_Line_Terminator --
   ------------------------
   function Is_Line_Terminator (Item : Wide_Wide_Character) return Boolean
     renames Ada.Wide_Wide_Characters.Unicode.Is_Line_Terminator;
   --------------
   -- Is_Lower --
   --------------
   function Is_Lower (Item : Wide_Wide_Character) return Boolean is
   begin
      return Get_Category (Item) = Ll;
   end Is_Lower;
   -------------
   -- Is_Mark --
   -------------
   function Is_Mark (Item : Wide_Wide_Character) return Boolean
     renames Ada.Wide_Wide_Characters.Unicode.Is_Mark;
   -------------
   -- Is_NFKC --
   -------------
   function Is_NFKC (Item : Wide_Wide_Character) return Boolean
     renames Ada.Wide_Wide_Characters.Unicode.Is_NFKC;
   ---------------------
   -- Is_Other_Format --
   ---------------------
   function Is_Other_Format (Item : Wide_Wide_Character) return Boolean
     renames Ada.Wide_Wide_Characters.Unicode.Is_Other;
   ------------------------------
   -- Is_Punctuation_Connector --
   ------------------------------
   function Is_Punctuation_Connector
     (Item : Wide_Wide_Character) return Boolean
     renames Ada.Wide_Wide_Characters.Unicode.Is_Punctuation;
   --------------
   -- Is_Space --
   --------------
   function Is_Space (Item : Wide_Wide_Character) return Boolean
     renames Ada.Wide_Wide_Characters.Unicode.Is_Space;
   ----------------
   -- Is_Special --
   ----------------
   function Is_Special (Item : Wide_Wide_Character) return Boolean is
   begin
      return Is_Graphic (Item) and then not Is_Alphanumeric (Item);
   end Is_Special;
   --------------
   -- Is_Upper --
   --------------
   function Is_Upper (Item : Wide_Wide_Character) return Boolean is
   begin
      return Get_Category (Item) = Lu;
   end Is_Upper;
   --------------
   -- To_Lower --
   --------------
   function To_Lower (Item : Wide_Wide_Character) return Wide_Wide_Character
     renames Ada.Wide_Wide_Characters.Unicode.To_Lower_Case;
   function To_Lower (Item : Wide_Wide_String) return Wide_Wide_String is
      Result : Wide_Wide_String (Item'Range);
   begin
      for J in Result'Range loop
         Result (J) := To_Lower (Item (J));
      end loop;
      return Result;
   end To_Lower;
   --------------
   -- To_Upper --
   --------------
   function To_Upper (Item : Wide_Wide_Character) return Wide_Wide_Character
     renames Ada.Wide_Wide_Characters.Unicode.To_Upper_Case;
   function To_Upper (Item : Wide_Wide_String) return Wide_Wide_String is
      Result : Wide_Wide_String (Item'Range);
   begin
      for J in Result'Range loop
         Result (J) := To_Upper (Item (J));
      end loop;
      return Result;
   end To_Upper;
   --------------
   -- To_Basic --
   --------------
   function To_Basic (Item : Wide_Wide_Character) return Wide_Wide_Character
     renames Ada.Wide_Wide_Characters.Unicode.To_Basic;
   function To_Basic (Item : Wide_Wide_String) return Wide_Wide_String is
      Result : Wide_Wide_String (Item'Range);
   begin
      for J in Result'Range loop
         Result (J) := To_Basic (Item (J));
      end loop;
      return Result;
   end To_Basic;
end Ada.Wide_Wide_Characters.Handling;
 
     |