Справочник по Ada 2005
3.5.2 Типы символов
Статические семантика
Тип перечисления называется типом символов, если по крайней мере одна из его перечислительных констант является символьной_константой.
Предопределенный тип Character является типом символов, значения которого соответствуют 256 кодовым позициям Строки 00 (также известной как Latin-1) Базовой многоязычной плоскости (BMP) ISO/IEC 10646:2003. Каждый графический символ Строки 00 BMP имеет соответствующую символьной_константой в Character. Каждая из неграфических позиций Строки 00 (0000-001F и 007F-009F) имеет соответствующее определенное языком имя, которое нельзя использовать в качестве перечислительной константы, но которое можно использовать с атрибутами Image, Wide_Image, Wide_Wide_Image, Value, Wide_Value и Wide_Wide_Value; эти имена указаны в определении типа Character в A.1, «Пакет Standard», но набраны курсивом.
Предопределенный тип Wide_Character является типом символов, значения которого соответствуют 65536 кодовым позициям Базовой многоязычной плоскости (BMP) ISO/IEC 10646:2003. Каждый графический символ BMP имеет соответствующую символьной_константой в Wide_Character. Первые 256 значений Wide_Character имеют ту же символьной_константой или определенное языком имя, что и тип Character. Каждый graphic_character имеет соответствующую символьной_константой.
Предопределенный тип Wide_Wide_Character является типом символов, значения которого соответствуют 2147483648 кодовым позициям набора символов ISO/IEC 10646:2003. Каждый из graphic_characters имеет соответствующую символьной_константой в Wide_Wide_Character. Первые 65536 значений Wide_Wide_Character имеют ту же символьной_константой или определенное языком имя, что и тип Wide_Character.
Символы, чья кодовая позиция больше, чем 16#FF#, и которые не являются graphic_characters, имеют имена, определенные языком, которые образуются путём добавления к строке "Hex_" представления их кодовой позиции в шестнадцатеричном формате как восемь расширенных цифр. Как и другие имена, определенные языком, эти имена можно использовать только с атрибутами (Wide_)Wide_Image и (Wide_)Wide_Value; они не могут использоваться в качестве перечислительных констант.
Разрешения на реализацию
Этот абзац был удален.
Рекомендации по реализации
Этот абзац был удален.
ПРИМЕЧАНИЯ
25 Языковая библиотека пакета Characters.Latin_1 (см. A.3.3) содержит объявление констант, обозначающих управляющие символы, строчные символы и специальные символы предопределённого типа Character.
26 Набор символов, такой как EBCDIC, можно объявить как тип символов; внутренние коды символов могут быть указаны с помощью enumeration_representation_clause, как описано в разделе 13.4.
Примеры
Пример типа символов:
type Римская_цифра is ('I', 'V', 'X', 'L', 'C', 'D', 'M');