| ------------------------------------------------------------------------------ |
| -- -- |
| -- GNAT RUN-TIME COMPONENTS -- |
| -- -- |
| -- A D A . S T R I N G S . W I D E _ M A P S . W I D E _ C O N S T A N T S -- |
| -- -- |
| -- S p e c -- |
| -- -- |
| -- Copyright (C) 1992-2022, Free Software Foundation, Inc. -- |
| -- -- |
| -- This specification is derived from the Ada Reference Manual for use with -- |
| -- GNAT. The copyright notice above, and the license provisions that follow -- |
| -- apply solely to the contents of the part following the private keyword. -- |
| -- -- |
| -- 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.Characters.Wide_Latin_1; |
| |
| package Ada.Strings.Wide_Maps.Wide_Constants is |
| pragma Preelaborate; |
| |
| Control_Set : constant Wide_Maps.Wide_Character_Set; |
| Graphic_Set : constant Wide_Maps.Wide_Character_Set; |
| Letter_Set : constant Wide_Maps.Wide_Character_Set; |
| Lower_Set : constant Wide_Maps.Wide_Character_Set; |
| Upper_Set : constant Wide_Maps.Wide_Character_Set; |
| Basic_Set : constant Wide_Maps.Wide_Character_Set; |
| Decimal_Digit_Set : constant Wide_Maps.Wide_Character_Set; |
| Hexadecimal_Digit_Set : constant Wide_Maps.Wide_Character_Set; |
| Alphanumeric_Set : constant Wide_Maps.Wide_Character_Set; |
| Special_Graphic_Set : constant Wide_Maps.Wide_Character_Set; |
| ISO_646_Set : constant Wide_Maps.Wide_Character_Set; |
| Character_Set : constant Wide_Maps.Wide_Character_Set; |
| |
| Lower_Case_Map : constant Wide_Maps.Wide_Character_Mapping; |
| -- Maps to lower case for letters, else identity |
| |
| Upper_Case_Map : constant Wide_Maps.Wide_Character_Mapping; |
| -- Maps to upper case for letters, else identity |
| |
| Basic_Map : constant Wide_Maps.Wide_Character_Mapping; |
| -- Maps to basic letter for letters, else identity |
| |
| private |
| package W renames Ada.Characters.Wide_Latin_1; |
| |
| subtype WC is Wide_Character; |
| |
| Control_Ranges : aliased constant Wide_Character_Ranges := |
| [ (W.NUL, W.US), |
| (W.DEL, W.APC)]; |
| |
| Control_Set : constant Wide_Character_Set := |
| (AF.Controlled with |
| Control_Ranges'Unrestricted_Access); |
| |
| Graphic_Ranges : aliased constant Wide_Character_Ranges := |
| [ (W.Space, W.Tilde), |
| (WC'Val (256), WC'Last)]; |
| |
| Graphic_Set : constant Wide_Character_Set := |
| (AF.Controlled with |
| Graphic_Ranges'Unrestricted_Access); |
| |
| Letter_Ranges : aliased constant Wide_Character_Ranges := |
| [ ('A', 'Z'), |
| (W.LC_A, W.LC_Z), |
| (W.UC_A_Grave, W.UC_O_Diaeresis), |
| (W.UC_O_Oblique_Stroke, W.LC_O_Diaeresis), |
| (W.LC_O_Oblique_Stroke, W.LC_Y_Diaeresis)]; |
| |
| Letter_Set : constant Wide_Character_Set := |
| (AF.Controlled with |
| Letter_Ranges'Unrestricted_Access); |
| |
| Lower_Ranges : aliased constant Wide_Character_Ranges := |
| [1 => (W.LC_A, W.LC_Z), |
| 2 => (W.LC_German_Sharp_S, W.LC_O_Diaeresis), |
| 3 => (W.LC_O_Oblique_Stroke, W.LC_Y_Diaeresis)]; |
| |
| Lower_Set : constant Wide_Character_Set := |
| (AF.Controlled with |
| Lower_Ranges'Unrestricted_Access); |
| |
| Upper_Ranges : aliased constant Wide_Character_Ranges := |
| [1 => ('A', 'Z'), |
| 2 => (W.UC_A_Grave, W.UC_O_Diaeresis), |
| 3 => (W.UC_O_Oblique_Stroke, W.UC_Icelandic_Thorn)]; |
| |
| Upper_Set : constant Wide_Character_Set := |
| (AF.Controlled with |
| Upper_Ranges'Unrestricted_Access); |
| |
| Basic_Ranges : aliased constant Wide_Character_Ranges := |
| [1 => ('A', 'Z'), |
| 2 => (W.LC_A, W.LC_Z), |
| 3 => (W.UC_AE_Diphthong, W.UC_AE_Diphthong), |
| 4 => (W.LC_AE_Diphthong, W.LC_AE_Diphthong), |
| 5 => (W.LC_German_Sharp_S, W.LC_German_Sharp_S), |
| 6 => (W.UC_Icelandic_Thorn, W.UC_Icelandic_Thorn), |
| 7 => (W.LC_Icelandic_Thorn, W.LC_Icelandic_Thorn), |
| 8 => (W.UC_Icelandic_Eth, W.UC_Icelandic_Eth), |
| 9 => (W.LC_Icelandic_Eth, W.LC_Icelandic_Eth)]; |
| |
| Basic_Set : constant Wide_Character_Set := |
| (AF.Controlled with |
| Basic_Ranges'Unrestricted_Access); |
| |
| Decimal_Digit_Ranges : aliased constant Wide_Character_Ranges := |
| [ ('0', '9')]; |
| |
| Decimal_Digit_Set : constant Wide_Character_Set := |
| (AF.Controlled with |
| Decimal_Digit_Ranges'Unrestricted_Access); |
| |
| Hexadecimal_Digit_Ranges : aliased constant Wide_Character_Ranges := |
| [1 => ('0', '9'), |
| 2 => ('A', 'F'), |
| 3 => (W.LC_A, W.LC_F)]; |
| |
| Hexadecimal_Digit_Set : constant Wide_Character_Set := |
| (AF.Controlled with |
| Hexadecimal_Digit_Ranges'Unrestricted_Access); |
| |
| Alphanumeric_Ranges : aliased constant Wide_Character_Ranges := |
| [1 => ('0', '9'), |
| 2 => ('A', 'Z'), |
| 3 => (W.LC_A, W.LC_Z), |
| 4 => (W.UC_A_Grave, W.UC_O_Diaeresis), |
| 5 => (W.UC_O_Oblique_Stroke, W.LC_O_Diaeresis), |
| 6 => (W.LC_O_Oblique_Stroke, W.LC_Y_Diaeresis)]; |
| |
| Alphanumeric_Set : constant Wide_Character_Set := |
| (AF.Controlled with |
| Alphanumeric_Ranges'Unrestricted_Access); |
| |
| Special_Graphic_Ranges : aliased constant Wide_Character_Ranges := |
| [1 => (Wide_Space, W.Solidus), |
| 2 => (W.Colon, W.Commercial_At), |
| 3 => (W.Left_Square_Bracket, W.Grave), |
| 4 => (W.Left_Curly_Bracket, W.Tilde), |
| 5 => (W.No_Break_Space, W.Inverted_Question), |
| 6 => (W.Multiplication_Sign, W.Multiplication_Sign), |
| 7 => (W.Division_Sign, W.Division_Sign)]; |
| |
| Special_Graphic_Set : constant Wide_Character_Set := |
| (AF.Controlled with |
| Special_Graphic_Ranges'Unrestricted_Access); |
| |
| ISO_646_Ranges : aliased constant Wide_Character_Ranges := |
| [ (W.NUL, W.DEL)]; |
| |
| ISO_646_Set : constant Wide_Character_Set := |
| (AF.Controlled with |
| ISO_646_Ranges'Unrestricted_Access); |
| |
| Character_Ranges : aliased constant Wide_Character_Ranges := |
| [ (W.NUL, WC'Val (255))]; |
| |
| Character_Set : constant Wide_Character_Set := |
| (AF.Controlled with |
| Character_Ranges'Unrestricted_Access); |
| |
| Lower_Case_Mapping : aliased constant Wide_Character_Mapping_Values := |
| [Length => 56, |
| |
| Domain => |
| "ABCDEFGHIJKLMNOPQRSTUVWXYZ" & |
| W.UC_A_Grave & |
| W.UC_A_Acute & |
| W.UC_A_Circumflex & |
| W.UC_A_Tilde & |
| W.UC_A_Diaeresis & |
| W.UC_A_Ring & |
| W.UC_AE_Diphthong & |
| W.UC_C_Cedilla & |
| W.UC_E_Grave & |
| W.UC_E_Acute & |
| W.UC_E_Circumflex & |
| W.UC_E_Diaeresis & |
| W.UC_I_Grave & |
| W.UC_I_Acute & |
| W.UC_I_Circumflex & |
| W.UC_I_Diaeresis & |
| W.UC_Icelandic_Eth & |
| W.UC_N_Tilde & |
| W.UC_O_Grave & |
| W.UC_O_Acute & |
| W.UC_O_Circumflex & |
| W.UC_O_Tilde & |
| W.UC_O_Diaeresis & |
| W.UC_O_Oblique_Stroke & |
| W.UC_U_Grave & |
| W.UC_U_Acute & |
| W.UC_U_Circumflex & |
| W.UC_U_Diaeresis & |
| W.UC_Y_Acute & |
| W.UC_Icelandic_Thorn, |
| |
| Rangev => |
| "abcdefghijklmnopqrstuvwxyz" & |
| W.LC_A_Grave & |
| W.LC_A_Acute & |
| W.LC_A_Circumflex & |
| W.LC_A_Tilde & |
| W.LC_A_Diaeresis & |
| W.LC_A_Ring & |
| W.LC_AE_Diphthong & |
| W.LC_C_Cedilla & |
| W.LC_E_Grave & |
| W.LC_E_Acute & |
| W.LC_E_Circumflex & |
| W.LC_E_Diaeresis & |
| W.LC_I_Grave & |
| W.LC_I_Acute & |
| W.LC_I_Circumflex & |
| W.LC_I_Diaeresis & |
| W.LC_Icelandic_Eth & |
| W.LC_N_Tilde & |
| W.LC_O_Grave & |
| W.LC_O_Acute & |
| W.LC_O_Circumflex & |
| W.LC_O_Tilde & |
| W.LC_O_Diaeresis & |
| W.LC_O_Oblique_Stroke & |
| W.LC_U_Grave & |
| W.LC_U_Acute & |
| W.LC_U_Circumflex & |
| W.LC_U_Diaeresis & |
| W.LC_Y_Acute & |
| W.LC_Icelandic_Thorn]; |
| |
| Lower_Case_Map : constant Wide_Character_Mapping := |
| (AF.Controlled with |
| Map => Lower_Case_Mapping'Unrestricted_Access); |
| |
| Upper_Case_Mapping : aliased constant Wide_Character_Mapping_Values := |
| [Length => 56, |
| |
| Domain => |
| "abcdefghijklmnopqrstuvwxyz" & |
| W.LC_A_Grave & |
| W.LC_A_Acute & |
| W.LC_A_Circumflex & |
| W.LC_A_Tilde & |
| W.LC_A_Diaeresis & |
| W.LC_A_Ring & |
| W.LC_AE_Diphthong & |
| W.LC_C_Cedilla & |
| W.LC_E_Grave & |
| W.LC_E_Acute & |
| W.LC_E_Circumflex & |
| W.LC_E_Diaeresis & |
| W.LC_I_Grave & |
| W.LC_I_Acute & |
| W.LC_I_Circumflex & |
| W.LC_I_Diaeresis & |
| W.LC_Icelandic_Eth & |
| W.LC_N_Tilde & |
| W.LC_O_Grave & |
| W.LC_O_Acute & |
| W.LC_O_Circumflex & |
| W.LC_O_Tilde & |
| W.LC_O_Diaeresis & |
| W.LC_O_Oblique_Stroke & |
| W.LC_U_Grave & |
| W.LC_U_Acute & |
| W.LC_U_Circumflex & |
| W.LC_U_Diaeresis & |
| W.LC_Y_Acute & |
| W.LC_Icelandic_Thorn, |
| |
| Rangev => |
| "ABCDEFGHIJKLMNOPQRSTUVWXYZ" & |
| W.UC_A_Grave & |
| W.UC_A_Acute & |
| W.UC_A_Circumflex & |
| W.UC_A_Tilde & |
| W.UC_A_Diaeresis & |
| W.UC_A_Ring & |
| W.UC_AE_Diphthong & |
| W.UC_C_Cedilla & |
| W.UC_E_Grave & |
| W.UC_E_Acute & |
| W.UC_E_Circumflex & |
| W.UC_E_Diaeresis & |
| W.UC_I_Grave & |
| W.UC_I_Acute & |
| W.UC_I_Circumflex & |
| W.UC_I_Diaeresis & |
| W.UC_Icelandic_Eth & |
| W.UC_N_Tilde & |
| W.UC_O_Grave & |
| W.UC_O_Acute & |
| W.UC_O_Circumflex & |
| W.UC_O_Tilde & |
| W.UC_O_Diaeresis & |
| W.UC_O_Oblique_Stroke & |
| W.UC_U_Grave & |
| W.UC_U_Acute & |
| W.UC_U_Circumflex & |
| W.UC_U_Diaeresis & |
| W.UC_Y_Acute & |
| W.UC_Icelandic_Thorn]; |
| |
| Upper_Case_Map : constant Wide_Character_Mapping := |
| (AF.Controlled with |
| Upper_Case_Mapping'Unrestricted_Access); |
| |
| Basic_Mapping : aliased constant Wide_Character_Mapping_Values := |
| [Length => 55, |
| |
| Domain => |
| W.UC_A_Grave & |
| W.UC_A_Acute & |
| W.UC_A_Circumflex & |
| W.UC_A_Tilde & |
| W.UC_A_Diaeresis & |
| W.UC_A_Ring & |
| W.UC_C_Cedilla & |
| W.UC_E_Grave & |
| W.UC_E_Acute & |
| W.UC_E_Circumflex & |
| W.UC_E_Diaeresis & |
| W.UC_I_Grave & |
| W.UC_I_Acute & |
| W.UC_I_Circumflex & |
| W.UC_I_Diaeresis & |
| W.UC_N_Tilde & |
| W.UC_O_Grave & |
| W.UC_O_Acute & |
| W.UC_O_Circumflex & |
| W.UC_O_Tilde & |
| W.UC_O_Diaeresis & |
| W.UC_O_Oblique_Stroke & |
| W.UC_U_Grave & |
| W.UC_U_Acute & |
| W.UC_U_Circumflex & |
| W.UC_U_Diaeresis & |
| W.UC_Y_Acute & |
| W.LC_A_Grave & |
| W.LC_A_Acute & |
| W.LC_A_Circumflex & |
| W.LC_A_Tilde & |
| W.LC_A_Diaeresis & |
| W.LC_A_Ring & |
| W.LC_C_Cedilla & |
| W.LC_E_Grave & |
| W.LC_E_Acute & |
| W.LC_E_Circumflex & |
| W.LC_E_Diaeresis & |
| W.LC_I_Grave & |
| W.LC_I_Acute & |
| W.LC_I_Circumflex & |
| W.LC_I_Diaeresis & |
| W.LC_N_Tilde & |
| W.LC_O_Grave & |
| W.LC_O_Acute & |
| W.LC_O_Circumflex & |
| W.LC_O_Tilde & |
| W.LC_O_Diaeresis & |
| W.LC_O_Oblique_Stroke & |
| W.LC_U_Grave & |
| W.LC_U_Acute & |
| W.LC_U_Circumflex & |
| W.LC_U_Diaeresis & |
| W.LC_Y_Acute & |
| W.LC_Y_Diaeresis, |
| |
| Rangev => |
| 'A' & -- UC_A_Grave |
| 'A' & -- UC_A_Acute |
| 'A' & -- UC_A_Circumflex |
| 'A' & -- UC_A_Tilde |
| 'A' & -- UC_A_Diaeresis |
| 'A' & -- UC_A_Ring |
| 'C' & -- UC_C_Cedilla |
| 'E' & -- UC_E_Grave |
| 'E' & -- UC_E_Acute |
| 'E' & -- UC_E_Circumflex |
| 'E' & -- UC_E_Diaeresis |
| 'I' & -- UC_I_Grave |
| 'I' & -- UC_I_Acute |
| 'I' & -- UC_I_Circumflex |
| 'I' & -- UC_I_Diaeresis |
| 'N' & -- UC_N_Tilde |
| 'O' & -- UC_O_Grave |
| 'O' & -- UC_O_Acute |
| 'O' & -- UC_O_Circumflex |
| 'O' & -- UC_O_Tilde |
| 'O' & -- UC_O_Diaeresis |
| 'O' & -- UC_O_Oblique_Stroke |
| 'U' & -- UC_U_Grave |
| 'U' & -- UC_U_Acute |
| 'U' & -- UC_U_Circumflex |
| 'U' & -- UC_U_Diaeresis |
| 'Y' & -- UC_Y_Acute |
| 'a' & -- LC_A_Grave |
| 'a' & -- LC_A_Acute |
| 'a' & -- LC_A_Circumflex |
| 'a' & -- LC_A_Tilde |
| 'a' & -- LC_A_Diaeresis |
| 'a' & -- LC_A_Ring |
| 'c' & -- LC_C_Cedilla |
| 'e' & -- LC_E_Grave |
| 'e' & -- LC_E_Acute |
| 'e' & -- LC_E_Circumflex |
| 'e' & -- LC_E_Diaeresis |
| 'i' & -- LC_I_Grave |
| 'i' & -- LC_I_Acute |
| 'i' & -- LC_I_Circumflex |
| 'i' & -- LC_I_Diaeresis |
| 'n' & -- LC_N_Tilde |
| 'o' & -- LC_O_Grave |
| 'o' & -- LC_O_Acute |
| 'o' & -- LC_O_Circumflex |
| 'o' & -- LC_O_Tilde |
| 'o' & -- LC_O_Diaeresis |
| 'o' & -- LC_O_Oblique_Stroke |
| 'u' & -- LC_U_Grave |
| 'u' & -- LC_U_Acute |
| 'u' & -- LC_U_Circumflex |
| 'u' & -- LC_U_Diaeresis |
| 'y' & -- LC_Y_Acute |
| 'y']; -- LC_Y_Diaeresis |
| |
| Basic_Map : constant Wide_Character_Mapping := |
| (AF.Controlled with |
| Basic_Mapping'Unrestricted_Access); |
| |
| end Ada.Strings.Wide_Maps.Wide_Constants; |