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

A.3.2 Пакет Characters.Handling

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

Библиотечный пакет Characters.Handling имеет следующее объявление:
with Ada.Characters.Conversions;
package Ada.Characters.Handling
with Pure is
--Функции классификации символов
function Is_Control (Item : in Character) return Boolean;
function Is_Graphic (Item : in Character) return Boolean;
function Is_Letter (Item : in Character) return Boolean;
function Is_Lower (Item : in Character) return Boolean;
function Is_Upper (Item : in Character) return Boolean;
function Is_Basic (Item : in Character) return Boolean;
function Is_Digit (Item : in Character) return Boolean;
function Is_Decimal_Digit (Item : in Character) return Boolean
renames Is_Digit;
function Is_Hexadecimal_Digit (Item : in Character) return Boolean;
function Is_Alphanumeric (Item : in Character) return Boolean;
function Is_Special (Item : in Character) return Boolean;
function Is_Line_Terminator (Item : in Character) return Boolean;
function Is_Mark (Item : in Character) return Boolean;
function Is_Other_Format (Item : in Character) return Boolean;
function Is_Punctuation_Connector (Item : in Character) return Boolean;
function Is_Space (Item : in Character) return Boolean;
function Is_NFKC (Item : in Character) return Boolean;
--Функции преобразования для Character и String
function To_Lower (Item : in Character) return Character;
function To_Upper (Item : in Character) return Character;
function To_Basic (Item : in Character) return Character;
function To_Lower (Item : in String) return String;
function To_Upper (Item : in String) return String;
function To_Basic (Item : in String) return String;
--Классификации и преобразования между Character и ISO 646
subtype ISO_646 is
Character range Character'Val(0) .. Character'Val(127);
function Is_ISO_646 (Item : in Character) return Boolean;
function Is_ISO_646 (Item : in String) return Boolean;
function To_ISO_646 (Item : in Character;
Substitute : in ISO_646 := ' ')
return ISO_646;
function To_ISO_646 (Item : in String;
Substitute : in ISO_646 := ' ')
return String;
--Функции Is_Character, Is_String, To_Character, To_String, To_Wide_Character,
-- и To_Wide_String устарели; см. J.14.
Абзацы 14—18 были удалены.
end Ada.Characters.Handling;
Ниже для каждой функции, возвращающей значение Boolean, описание эффекта приведено в терминах условий, при которых возвращается значение True. Если эти условия не выполнены, то функция возвращает False.
Каждая из следующих функций классификации имеет параметр типа Character, Item, и возвращает значение Boolean.
Is_Control
True, если Item — управляющий символ. Управляющий символ — это символ, положение которого находится в одном из диапазонов 0..31 или 127..159.
Is_Graphic
True, если Item — графический символ. Графический символ — это символ, положение которого находится в одном из диапазонов 32..126 или 160..255.
Is_Letter
True, если Item — буква. Буква — это символ, который находится в одном из диапазонов 'A'..'Z' или 'a'..'z', или положение которого находится в одном из диапазонов 192..214, 216..246 или 248..255.
Is_Lower
True, если Item — строчная буква. Строчная буква — это символ, который находится в диапазоне 'a'..'z', или положение которого находится в одном из диапазонов 223..246 или 248..255.
Is_Upper
True, если Item — прописная буква. Прописная буква — это символ, который находится в диапазоне 'A'..'Z' или положение которого находится в одном из диапазонов 192..214 или 216..222.
Is_Basic
True, если Item — базовая буква. Базовая буква — это символ, который находится в одном из диапазонов 'A'..'Z' и 'a'..'z', или который является одним из следующих: 'Æ', 'æ', 'Ð', 'ð', 'Þ', 'þ' или 'ß'.
Is_Digit
True, если Item — десятичная цифра. Десятичная цифра — это символ в диапазоне '0'..'9'.
Is_Decimal_Digit

Переименованная функция Is_Digit.
Is_Hexadecimal_Digit

True, если Item — шестнадцатеричная цифра. Шестнадцатеричная цифра — это символ, который является либо десятичной цифрой, либо находится в одном из диапазонов 'A' .. 'F' или 'a' .. 'f'.
Is_Alphanumeric

True, если Item — буквенно-цифровой символ. Буквенно-цифровой символ — это символ, который является либо буквой, либо десятичной цифрой.
Is_Special
True, если Item — специальный графический символ. Специальный графический символ — это графический символ, который не является буквенно-цифровым.
Is_Line_Terminator

True, если Item — символ с кодом 10..13 (Line_Feed, Line_Tabulation, Form_Feed, Carriage_Return) или 133 (Next_Line).
Is_Mark
Всегда False (нет значений типа Character, относящихся к категориям Mark, Non-Spacing или Mark, Spacing Combining).
Is_Other_Format

True, если Item — символ с кодом 173 (Soft_Hyphen).
Is_Punctuation_Connector

True, если Item — символ с кодом 95 ('_', известный как Low_Line или Underscore).
Is_Space
True, если Item — символ с кодом 32 (' ') или 160 (No_Break_Space).
Is_NFKC
True, если Item может присутствовать в строке, нормализованной до Normalization Form KC (как определено в разделе 22 ISO/IEC 10646:2020); это включает все символы, кроме тех, у которых коды 160, 168, 170, 175, 178, 179, 180, 181, 184, 185, 186, 188, 189 и 190.
Каждое из имен To_Lower, To_Upper и To_Basic относится к двум функциям: одной, преобразующей из Character в Character, и другой, преобразующей из String в String. Результат каждой функции Character-to-Character описан ниже в терминах преобразования, применяемого к Item, ее формальному параметру типа Character. Результат каждого преобразования String-to-String получается путем применения соответствующего преобразования Character-to-Character к каждому элементу параметра функции String; результатом является пустая строка, если значение формального параметра — пустая строка. Нижний индекс результата String равен 1.
To_Lower
Возвращает соответствующее значение в нижнем регистре для Item, если Is_Upper(Item), в противном случае возвращает Item.
To_Upper
Возвращает соответствующее значение в верхнем регистре для Item, если Is_Lower(Item) и Item имеет форму в верхнем регистре, в противном случае возвращает Item. Строчные буквы 'ß' и 'ÿ' не имеют форм в верхнем регистре.
To_Basic
Возвращает букву, соответствующую Item, но без диакритических знаков, если Item — буква, но не базовая буква; в противном случае возвращает Item.
Следующий набор функций проверяет принадлежность к диапазону символов ISO 646 или преобразует между ISO 646 и Character.
Is_ISO_646
Функция, формальный параметр которой, Item, имеет тип Character, возвращает True, если Item находится в подтипе ISO_646.
Is_ISO_646
Функция, формальный параметр которой, Item, имеет тип String, возвращает True, если Is_ISO_646(Item(I)) равно True для каждого I в Item'Range.
To_ISO_646
Функция, первый формальный параметр которой, Item, имеет тип Character, возвращает Item, если Is_ISO_646(Item), в противном случае возвращает символ Substitute ISO_646.
To_ISO_646
Функция, первый формальный параметр которой, Item, имеет тип String, возвращает строку с диапазоном 1..Item'Length, каждый элемент которой задается To_ISO_646 соответствующего элемента в Item.
Абзацы 42—49 были удалены.
ПРИМЕЧАНИЕ 1 Базовая буква — это буква без диакритических знаков.
ПРИМЕЧАНИЕ 2 За исключением шестнадцатеричных цифр, базовых букв и символов ISO_646, категории, определенные в функциях классификации, образуют строгую иерархию:
— Управляющие символы
— Графические символы
— Буквенно-цифровые символы
— Буквы
— Прописные буквы
— Строчные буквы
— Десятичные цифры
— Специальные графические символы
END_OF_DOCUMENT_MARKER
ПРИМЕЧАНИЕ 3 Существуют определенные символы, которые согласно ISO 10646 определены как строчные буквы и поэтому разрешены в идентификаторах, но не считаются строчными буквами в Ada.Characters.Handling.


Spec-Zone.ru

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