Spec-Zone.ru › Ada 2022
Руководство по Ada (Ada 2022)

2.1 Набор символов

Набор символов для текста программы Ada состоит из всего кодировочного пространства, описанного в ISO/IEC 10646:2020 Universal Coded Character Set. Это кодировочное пространство организовано в плоскости, каждая плоскость содержит 65536 символов.

Синтаксис

Абзацы 2 и 3 были удалены.
Символ определяется в этом Руководстве для каждой ячейки в кодировочном пространстве, описанном в ISO/IEC 10646:2020, независимо от того, выделяет ли ISO/IEC 10646:2020 символ для этой ячейки.

Статическая семантика

Кодированное представление символов определяется реализацией (это может быть представление, не определенное в ISO/IEC 10646:2020). Символ, у которого относительный код в его плоскости равен 16#FFFE# или 16#FFFF#, не допускается в тексте программы. Единственными разрешёнными символами за пределами комментариев являются символы категорий other_format, format_effector и graphic_character.
Семантика программы Ada, текст которой не находится в Нормализованной форме C (как определено в разделе 22 ISO/IEC 10646:2020), определяется реализацией.
Описание определения языка в данном документе использует свойства символов «Общая категория», «Простое отображение прописных букв», «Отображение прописных букв» и «Особое условие» из документов, на которые ссылается пункт 2 ISO/IEC 10646:2020. Фактический набор графических символов, используемых реализацией для визуального представления текста программы Ada, не определен.
Символы классифицируются следующим образом:
Этот абзац был удален.
letter_uppercase

Любой символ, у которого общая категория определена как «Буква, прописная».
letter_lowercase

Любой символ, у которого общая категория определена как «Буква, строчная».
letter_titlecase

Любой символ, у которого общая категория определена как «Буква, заглавная».
letter_modifier

Любой символ, у которого общая категория определена как «Буква, модификатор».
letter_other
Любой символ, у которого общая категория определена как «Буква, другая».
mark_non_spacing

Любой символ, у которого общая категория определена как «Знак, без пробела».
mark_spacing_combining

Любой символ, у которого общая категория определена как «Знак, пробельный».
number_decimal

Любой символ, у которого общая категория определена как «Число, десятичное».
number_letter

Любой символ, у которого общая категория определена как «Число, буквенное».
punctuation_connector

Любой символ, у которого общая категория определена как «Пунктуация, соединительная».
other_format
Любой символ, у которого общая категория определена как «Другое, формат».
separator_space

Любой символ, у которого общая категория определена как «Разделитель, пробел».
separator_line
Любой символ, у которого общая категория определена как «Разделитель, строка».
separator_paragraph

Любой символ, у которого общая категория определена как «Разделитель, абзац».
format_effector

Символы с кодами 16#09# (ТАБУЛЯЦИЯ), 16#0A# (ПЕРЕВОД СТРОКИ), 16#0B# (ТАБУЛЯЦИЯ СТРОКИ), 16#0C# (ФОРМАТ), 16#0D# (ВОЗВРАТ КАРЕТКИ), 16#85# (СЛЕДУЮЩАЯ СТРОКА), а также символы категорий separator_line и separator_paragraph.
other_control

Любой символ, у которого общая категория определена как «Другое, управляющее», и который не определён как format_effector.
other_private_use

Любой символ, у которого общая категория определена как «Другое, частное использование».
other_surrogate

Любой символ, у которого общая категория определена как «Другое, суррогатное».
graphic_character

Любой символ, который не принадлежит к категориям other_control, other_private_use, other_surrogate, format_effector и у которого относительный код в его плоскости не равен 16#FFFE# и не равен 16#FFFF#.
Следующие имена используются при ссылке на определенные символы (первое имя взято из ISO/IEC 10646:2020):
графический символ название графический символ название
" кавычка : двоеточие
# знак номера ; точка с запятой
& амперсанд < знак меньше
' апостроф, тика = знак равенства
( левая круглая скобка > знак больше
) правая круглая скобка _ нижнее подчеркивание
* звездочка, умножить | вертикальная черта
+ знак плюс / слеш, разделить
, запятая ! восклицательный знак
– дефис, минус % знак процента
. точка [ левая квадратная скобка
@ собачий символ ] правая квадратная скобка

Требования к реализации

Реализация Ada должна принимать исходный код Ada в кодировке UTF-8, с или без BOM (см. A.4.11), где каждый символ представлен своим кодом. Пара символов ВОЗВРАТ КАРЕТКИ/ПЕРЕВОД СТРОКИ (коды 16#0D# 16#0A#) обозначает один символ конца строки (см. 2.2); любое другое вхождение format_effector, кроме символа с кодом 16#09# (ТАБУЛЯЦИЯ), также обозначает один символ конца строки.

Разрешения реализации

Вышеперечисленные категории, а также отображение и слияние регистров могут основываться на определенной реализацией версии ISO/IEC 10646 (издание 2003 года или более поздние).
ПРИМЕЧАНИЕ Символы категорий other_control, other_private_use и other_surrogate допускаются только в комментариях.


Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API