Spec-Zone.ru › Ada 95
Справочник по Ada 95

A.3.2 Пакет Characters.Handling

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

Библиотечный пакет Characters.Handling имеет следующее объявление:
package Ada.Characters.Handling is
pragma Preelaborate(Handling);
--Функции классификации символов
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;
--Функции преобразования для 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;
--Классификация и преобразования между Wide_Character и Character.
function Is_Character (Item : in Wide_Character) return Boolean;
function Is_String (Item : in Wide_String) return Boolean;
function To_Character (Item : in Wide_Character;
Substitute : in Character := ' ')
return Character;
function To_String (Item : in Wide_String;
Substitute : in Character := ' ')
return String;
function To_Wide_Character (Item : in Character) return Wide_Character;
function To_Wide_String (Item : in String) return Wide_String;
end Ada.Characters.Handling;
В описании ниже для каждой функции, возвращающей значение Boolean, эффект описывается в терминах условий, при которых возвращается значение True. Если эти условия не выполняются, функция возвращает False.
Каждая из следующих функций классификации имеет формальный параметр Character, Item, и возвращает логическое значение.
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 — специальный графический символ. Специальный графический символ — это графический символ, который не является буквенно-цифровым.
Каждое из имен To_Lower, To_Upper и To_Basic относится к двум функциям: одной, которая преобразует Character в Character, и другой, которая преобразует String в String. Результат каждой функции Character-to-Character описан ниже в терминах преобразования, применяемого к Item, ее формальному параметру Character. Результат каждого преобразования String-to-String получается путем применения соответствующего преобразования Character-to-Character к каждому элементу параметра 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.
Следующий набор функций проверяет значения Wide_Character на принадлежность к Character или преобразует между соответствующими символами Wide_Character и Character.
Is_Character
Возвращает True, если Wide_Character'Pos(Item) <= Character'Pos(Character'Last).
Is_String
Возвращает True, если Is_Character(Item(I)) равно True для каждого I в Item'Range.
To_Character
Возвращает Character, соответствующий Item, если Is_Character(Item), и возвращает символ Substitute Character в противном случае.
To_String
Возвращает строку, диапазон которой 1..Item'Length, и каждый элемент которой задается To_Character соответствующего элемента в Item.
To_Wide_Character
Возвращает Wide_Character X такой, что Character'Pos(Item) = Wide_Character'Pos(X).
To_Wide_String
Возвращает Wide_String, диапазон которой 1..Item'Length, и каждый элемент которой задается To_Wide_Character соответствующего элемента в Item.

Рекомендации по реализации

Если реализация предоставляет локальное определение Character или Wide_Character, то эффекты подпрограмм в Characters.Handling должны отражать эти локализации. См. также 3.5.2.
ПРИМЕЧАНИЯ
5 Базовая буква — это буква без диакритического знака.
6 За исключением шестнадцатеричных цифр, базовых букв и символов ISO_646, категории, определенные в функциях классификации, образуют строгую иерархию:
-- Управляющие символы
-- Графические символы
-- Буквенно-цифровые символы
-- Буквы
-- Прописные буквы
-- Строчные буквы
END_OF_DOCUMENT_MARKER
-- Десятичные цифры
-- Специальные графические символы


Spec-Zone.ru

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