451 lines
18 KiB
Ada
451 lines
18 KiB
Ada
------------------------------------------------------------------------------
|
|
-- --
|
|
-- 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-2009, 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 :=
|
|
(1 => ('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 :=
|
|
(1 => (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 :=
|
|
(1 => (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;
|