A.4.6 String-Handling Sets and Mappings
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).
Static Semantics
2
The library package
Strings.Maps.Constants has the following declaration:
3/2
{
AI95-00362-01}
package Ada.Strings.Maps.Constants
is
pragma Pure Preelaborate(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).
Extensions to Ada 95
7.a/2
{
AI95-00362-01}
{extensions to Ada 95} Strings.Maps.Constants
is now Pure, so it can be used in pure units.