Next: , Previous: A.4.5, Up: A.4


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

     {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).

Extensions to Ada 95

7.a/2

{00362AI95−00362−01} {extensions to Ada 95} Strings.Maps.Constants is now Pure, so it can be used in pure units.