1
The language−defined package Strings.Maps.Constants declares Character_Set and Character_Mapping constants corresponding to classification and conversion functions in package Characters.Handling.
1.a
Discussion: The Constants package is a child of Strings.Maps since it needs visibility of the private part of Strings.Maps in order to initialize the constants in a preelaborable way (i.e. via aggregates versus function calls).
2
The library package Strings.Maps.Constants has the following declaration:
3/2
{00362AI95−00362−01} package Ada.Strings.Maps.Constants is pragma Pure(Constants);
4
Control_Set : constant Character_Set; Graphic_Set : constant Character_Set; Letter_Set : constant Character_Set; Lower_Set : constant Character_Set; Upper_Set : constant Character_Set; Basic_Set : constant Character_Set; Decimal_Digit_Set : constant Character_Set; Hexadecimal_Digit_Set : constant Character_Set; Alphanumeric_Set : constant Character_Set; Special_Set : constant Character_Set; ISO_646_Set : constant Character_Set;
5
Lower_Case_Map : constant Character_Mapping; −−Maps to lower case for letters, else identity Upper_Case_Map : constant Character_Mapping; −−Maps to upper case for letters, else identity Basic_Map : constant Character_Mapping; −−Maps to basic letter for letters, else identity
6
private ... −− not specified by the language end Ada.Strings.Maps.Constants;
7
Each of these constants represents a correspondingly named set of characters or character mapping in Characters.Handling (see A.3.2).
7.a/2
{00362AI95−00362−01} {extensions to Ada 95} Strings.Maps.Constants is now Pure, so it can be used in pure units.