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 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 A.3) 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.
-
- (6)
(23) The language-defined library package Characters.Latin_1 (see A.3.3)
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 13.4.
Examples
- (8)
- Example of a character type:
(9)
type Roman_Digit is ('I', 'V', 'X', 'L', 'C', 'D', 'M');
-- Email comments, additions, corrections, gripes, kudos, etc. to:
Magnus Kempe
-- Magnus.Kempe@di.epfl.ch
Copyright statement
Page last generated: 95-03-12