Go to the first, previous, next, last section, table of contents.


3.5.2 Character Types

Static Semantics

  1. An enumeration type is said to be a character type if at least one of its enumeration literals is a character_literal.
  2. The predefined type Character is a character type whose values correspond to the 256 code positions of Row 00 (also known as Latin-1) of the ISO 10646 Basic Multilingual Plane (BMP). Each of the graphic characters of Row 00 of the BMP has a corresponding character_literal in Character. Each of the nongraphic positions of Row 00 (0000-001F and 007F-009F) has a corresponding language-defined name, which is not usable as an enumeration literal, but which is usable with the attributes (Wide_)Image and (Wide_)Value; these names are given in the definition of type Character in See section A.1 The Package Standard, but are set in italics.
  3. The predefined type Wide_Character is a character type whose values correspond to the 65536 code positions of the ISO 10646 Basic Multilingual Plane (BMP). Each of the graphic characters of the BMP has a corresponding character_literal in Wide_Character. The first 256 values of Wide_Character have the same character_literal or language-defined name as defined for Character. The last 2 values of Wide_Character correspond to the nongraphic positions FFFE and FFFF of the BMP, and are assigned the language-defined names FFFE and FFFF. As with the other language-defined names for nongraphic characters, the names FFFE and FFFF are usable only with the attributes (Wide_)Image and (Wide_)Value; they are not usable as enumeration literals. All other values of Wide_Character are considered graphic characters, and have a corresponding character_literal.

    Implementation Permissions

  4. In a nonstandard mode, an implementation may provide other interpretations for the predefined types Character and Wide_Character, to conform to local conventions.

    Implementation Advice

  5. If an implementation supports a mode with alternative interpretations for Character and Wide_Character, the set of graphic characters of Character should nevertheless remain a proper subset of the set of graphic characters of Wide_Character. Any character set "localizations" should be reflected in the results of the subprograms defined in the language-defined package Characters.Handling, See section A.3 Character Handling, available in such a mode. In a mode with an alternative interpretation of Character, the implementation should also support a corresponding change in what is a legal identifier_letter.

    NOTES

  6. (23) The language-defined library package Characters.Latin_1, See section A.3.3 The Package Characters.Latin_1, includes the declaration of constants denoting control characters, lower case characters, and special characters of the predefined type Character.
  7. (24) A conventional character set such as EBCDIC can be declared as a character type; the internal codes of the characters can be specified by an enumeration_representation_clause as explained in clause See section 13.4 Enumeration Representation Clauses.

    Examples

  8. Example of a character type:
  9. type Roman_Digit is ('I', 'V', 'X', 'L', 'C', 'D', 'M');
    


Go to the first, previous, next, last section, table of contents.