Go to the first, previous, next, last section, table of contents.
Static Semantics
-
An enumeration type is said to be a character type if at least one of
its enumeration literals is a character_literal.
-
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.
-
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
-
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
-
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
-
(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.
-
(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
-
Example of a character type:
-
type Roman_Digit is ('I', 'V', 'X', 'L', 'C', 'D', 'M');
Go to the first, previous, next, last section, table of contents.