Contents Index Search Previous Next
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
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');
Contents Index Search Previous Next Legal