File : a-zchhan.ads


   1 ------------------------------------------------------------------------------
   2 --                                                                          --
   3 --                         GNAT RUN-TIME COMPONENTS                         --
   4 --                                                                          --
   5 --    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     --
   6 --                                                                          --
   7 --                                 S p e c                                  --
   8 --                                                                          --
   9 -- This specification is derived from the Ada Reference Manual for use with --
  10 -- GNAT.  In accordance with the copyright of that document, you can freely --
  11 -- copy and modify this specification,  provided that if you redistribute a --
  12 -- modified version,  any changes that you have made are clearly indicated. --
  13 --                                                                          --
  14 ------------------------------------------------------------------------------
  15 
  16 package Ada.Wide_Wide_Characters.Handling is
  17    pragma Pure;
  18    --  This package is clearly intended to be Pure, by analogy with the
  19    --  base Ada.Characters.Handling package. The version in the RM does
  20    --  not yet have this pragma, but that is a clear omission. This will
  21    --  be fixed in a future version of AI05-0266-1.
  22 
  23    function Is_Control (Item : Wide_Wide_Character) return Boolean;
  24    pragma Inline (Is_Control);
  25    --  Returns True if the Wide_Wide_Character designated by Item is
  26    --  categorized as other_control, otherwise returns false.
  27 
  28    function Is_Letter (Item : Wide_Wide_Character) return Boolean;
  29    pragma Inline (Is_Letter);
  30    --  Returns True if the Wide_Wide_Character designated by Item is
  31    --  categorized as letter_uppercase, letter_lowercase, letter_titlecase,
  32    --  letter_modifier, letter_other, or number_letter. Otherwise returns
  33    --  false.
  34 
  35    function Is_Lower (Item : Wide_Wide_Character) return Boolean;
  36    pragma Inline (Is_Lower);
  37    --  Returns True if the Wide_Wide_Character designated by Item is
  38    --  categorized as letter_lowercase, otherwise returns false.
  39 
  40    function Is_Upper (Item : Wide_Wide_Character) return Boolean;
  41    pragma Inline (Is_Upper);
  42    --  Returns True if the Wide_Wide_Character designated by Item is
  43    --  categorized as letter_uppercase, otherwise returns false.
  44 
  45    function Is_Digit (Item : Wide_Wide_Character) return Boolean;
  46    pragma Inline (Is_Digit);
  47    --  Returns True if the Wide_Wide_Character designated by Item is
  48    --  categorized as number_decimal, otherwise returns false.
  49 
  50    function Is_Decimal_Digit (Item : Wide_Wide_Character) return Boolean
  51      renames Is_Digit;
  52 
  53    function Is_Hexadecimal_Digit (Item : Wide_Wide_Character) return Boolean;
  54    --  Returns True if the Wide_Wide_Character designated by Item is
  55    --  categorized as number_decimal, or is in the range 'A' .. 'F' or
  56    --  'a' .. 'f', otherwise returns false.
  57 
  58    function Is_Alphanumeric (Item : Wide_Wide_Character) return Boolean;
  59    pragma Inline (Is_Alphanumeric);
  60    --  Returns True if the Wide_Wide_Character designated by Item is
  61    --  categorized as letter_uppercase, letter_lowercase, letter_titlecase,
  62    --  letter_modifier, letter_other, number_letter, or number_decimal.
  63    --  Otherwise returns false.
  64 
  65    function Is_Special (Item : Wide_Wide_Character) return Boolean;
  66    pragma Inline (Is_Special);
  67    --  Returns True if the Wide_Wide_Character designated by Item
  68    --  is categorized as graphic_character, but not categorized as
  69    --  letter_uppercase, letter_lowercase, letter_titlecase, letter_modifier,
  70    --  letter_other, number_letter, or number_decimal. Otherwise returns false.
  71 
  72    function Is_Line_Terminator (Item : Wide_Wide_Character) return Boolean;
  73    pragma Inline (Is_Line_Terminator);
  74    --  Returns True if the Wide_Wide_Character designated by Item is
  75    --  categorized as separator_line or separator_paragraph, or if Item is a
  76    --  conventional line terminator character (CR, LF, VT, or FF). Otherwise
  77    --  returns false.
  78 
  79    function Is_Mark (Item : Wide_Wide_Character) return Boolean;
  80    pragma Inline (Is_Mark);
  81    --  Returns True if the Wide_Wide_Character designated by Item is
  82    --  categorized as mark_non_spacing or mark_spacing_combining, otherwise
  83    --  returns false.
  84 
  85    function Is_Other_Format (Item : Wide_Wide_Character) return Boolean;
  86    pragma Inline (Is_Other_Format);
  87    --  Returns True if the Wide_Wide_Character designated by Item is
  88    --  categorized as other_format, otherwise returns false.
  89 
  90    function Is_Punctuation_Connector
  91      (Item : Wide_Wide_Character) return Boolean;
  92    pragma Inline (Is_Punctuation_Connector);
  93    --  Returns True if the Wide_Wide_Character designated by Item is
  94    --  categorized as punctuation_connector, otherwise returns false.
  95 
  96    function Is_Space (Item : Wide_Wide_Character) return Boolean;
  97    pragma Inline (Is_Space);
  98    --  Returns True if the Wide_Wide_Character designated by Item is
  99    --  categorized as separator_space, otherwise returns false.
 100 
 101    function Is_Graphic (Item : Wide_Wide_Character) return Boolean;
 102    pragma Inline (Is_Graphic);
 103    --  Returns True if the Wide_Wide_Character designated by Item is
 104    --  categorized as graphic_character, otherwise returns false.
 105 
 106    function To_Lower (Item : Wide_Wide_Character) return Wide_Wide_Character;
 107    pragma Inline (To_Lower);
 108    --  Returns the Simple Lowercase Mapping of the Wide_Wide_Character
 109    --  designated by Item. If the Simple Lowercase Mapping does not exist for
 110    --  the Wide_Wide_Character designated by Item, then the value of Item is
 111    --  returned.
 112 
 113    function To_Lower (Item : Wide_Wide_String) return Wide_Wide_String;
 114    --  Returns the result of applying the To_Lower Wide_Wide_Character to
 115    --  Wide_Wide_Character conversion to each element of the Wide_Wide_String
 116    --  designated by Item. The result is the null Wide_Wide_String if the value
 117    --  of the formal parameter is the null Wide_Wide_String.
 118 
 119    function To_Upper (Item : Wide_Wide_Character) return Wide_Wide_Character;
 120    pragma Inline (To_Upper);
 121    --  Returns the Simple Uppercase Mapping of the Wide_Wide_Character
 122    --  designated by Item. If the Simple Uppercase Mapping does not exist for
 123    --  the Wide_Wide_Character designated by Item, then the value of Item is
 124    --  returned.
 125 
 126    function To_Upper (Item : Wide_Wide_String) return Wide_Wide_String;
 127    --  Returns the result of applying the To_Upper Wide_Wide_Character to
 128    --  Wide_Wide_Character conversion to each element of the Wide_Wide_String
 129    --  designated by Item. The result is the null Wide_Wide_String if the value
 130    --  of the formal parameter is the null Wide_Wide_String.
 131 
 132 end Ada.Wide_Wide_Characters.Handling;