Справочник по Ada (Ada 2022)
A.3.5 Пакет Wide_Characters.Handling
Пакет Wide_Characters.Handling предоставляет операции для классификации Wide_Characters и преобразования регистра Wide_Characters.
Статическая семантика
Библиотечный пакет Wide_Characters.Handling имеет следующее объявление:
package Ada.Wide_Characters.Handling
with Pure is
with Pure is
function Character_Set_Version return String;
function Is_Control (Item : Wide_Character) return Boolean;
function Is_Letter (Item : Wide_Character) return Boolean;
function Is_Lower (Item : Wide_Character) return Boolean;
function Is_Upper (Item : Wide_Character) return Boolean;
function Is_Basic (Item : Wide_Character) return Boolean;
function Is_Digit (Item : Wide_Character) return Boolean;
function Is_Decimal_Digit (Item : Wide_Character) return Boolean
renames Is_Digit;
renames Is_Digit;
function Is_Hexadecimal_Digit (Item : Wide_Character) return Boolean;
function Is_Alphanumeric (Item : Wide_Character) return Boolean;
function Is_Special (Item : Wide_Character) return Boolean;
function Is_Line_Terminator (Item : Wide_Character) return Boolean;
function Is_Mark (Item : Wide_Character) return Boolean;
function Is_Other_Format (Item : Wide_Character) return Boolean;
function Is_Punctuation_Connector (Item : Wide_Character) return Boolean;
function Is_Space (Item : Wide_Character) return Boolean;
function Is_NFKC (Item : Wide_Character) return Boolean;
function Is_Graphic (Item : Wide_Character) return Boolean;
function To_Lower (Item : Wide_Character) return Wide_Character;
function To_Upper (Item : Wide_Character) return Wide_Character;
function To_Upper (Item : Wide_Character) return Wide_Character;
function To_Basic (Item : Wide_Character) return Wide_Character;
function To_Lower (Item : Wide_String) return Wide_String;
function To_Upper (Item : Wide_String) return Wide_String;
function To_Upper (Item : Wide_String) return Wide_String;
function To_Basic (Item : Wide_String) return Wide_String;
end Ada.Wide_Characters.Handling;
Подпрограммы, определённые в Wide_Characters.Handling, не зависят от локали.
function Character_Set_Version return String;
Возвращает определяемый реализацией идентификатор, который определяет версию стандарта набора символов, используемую реализацией для категоризации символов.
function Is_Control (Item : Wide_Character) return Boolean;
Возвращает True, если Wide_Character, обозначенный Item, классифицируется как other_control; в противном случае возвращает False.
function Is_Letter (Item : Wide_Character) return Boolean;
Возвращает True, если Wide_Character, обозначенный Item, классифицируется как letter_uppercase, letter_lowercase, letter_titlecase, letter_modifier, letter_other или number_letter; в противном случае возвращает False.
function Is_Lower (Item : Wide_Character) return Boolean;
Возвращает True, если Wide_Character, обозначенный Item, классифицируется как letter_lowercase; в противном случае возвращает False.
function Is_Upper (Item : Wide_Character) return Boolean;
Возвращает True, если Wide_Character, обозначенный Item, классифицируется как letter_uppercase; в противном случае возвращает False.
function Is_Basic (Item : Wide_Character) return Boolean;
Возвращает True, если Wide_Character, обозначенный Item, не имеет сопоставления Разложения в таблицах кодов ISO/IEC 10646:2020; в противном случае возвращает False.
function Is_Digit (Item : Wide_Character) return Boolean;
Возвращает True, если Wide_Character, обозначенный Item, классифицируется как number_decimal; в противном случае возвращает False.
function Is_Hexadecimal_Digit (Item : Wide_Character) return Boolean;
Возвращает True, если Wide_Character, обозначенный Item, классифицируется как number_decimal или находится в диапазоне 'A' .. 'F' или 'a' .. 'f'; в противном случае возвращает False.
function Is_Alphanumeric (Item : Wide_Character) return Boolean;
Возвращает True, если Wide_Character, обозначенный Item, классифицируется как letter_uppercase, letter_lowercase, letter_titlecase, letter_modifier, letter_other, number_letter или number_decimal; в противном случае возвращает False.
function Is_Special (Item : Wide_Character) return Boolean;
Возвращает True, если Wide_Character, обозначенный Item, классифицируется как graphic_character, но не классифицируется как letter_uppercase, letter_lowercase, letter_titlecase, letter_modifier, letter_other, number_letter или number_decimal; в противном случае возвращает False.
function Is_Line_Terminator (Item : Wide_Character) return Boolean;
Возвращает True, если Wide_Character, обозначенный Item, классифицируется как separator_line или separator_paragraph, или если Item — это обычный символ конца строки (Line_Feed, Line_Tabulation, Form_Feed, Carriage_Return, Next_Line); в противном случае возвращает False.
function Is_Mark (Item : Wide_Character) return Boolean;
Возвращает True, если Wide_Character, обозначенный Item, классифицируется как mark_non_spacing или mark_spacing_combining; в противном случае возвращает False.
function Is_Other_Format (Item : Wide_Character) return Boolean;
Возвращает True, если Wide_Character, обозначенный Item, классифицируется как other_format; в противном случае возвращает False.
function Is_Punctuation_Connector (Item : Wide_Character) return Boolean;
Возвращает True, если Wide_Character, обозначенный Item, классифицируется как punctuation_connector; в противном случае возвращает False.
function Is_Space (Item : Wide_Character) return Boolean;
Возвращает True, если Wide_Character, обозначенный Item, классифицируется как separator_space; в противном случае возвращает False.
function Is_NFKC (Item : Wide_Character) return Boolean;
Возвращает True, если Wide_Character, обозначенный Item, может присутствовать в строке, нормализованной до Normalization Form KC (как определено в разделе 22 ISO/IEC 10646:2020), в противном случае возвращает False.
function Is_Graphic (Item : Wide_Character) return Boolean;
Возвращает True, если Wide_Character, обозначенный Item, классифицируется как graphic_character; в противном случае возвращает False.
function To_Lower (Item : Wide_Character) return Wide_Character;
Возвращает простое сопоставление строчных символов, как определено документами, на которые ссылается раздел 2 ISO/IEC 10646:2020 для Wide_Character, обозначенного Item. Если простое сопоставление строчных символов не существует для Wide_Character, обозначенного Item, то возвращается значение Item.
function To_Lower (Item : Wide_String) return Wide_String;
Возвращает результат применения преобразования To_Lower к каждому элементу Wide_Character Wide_String, обозначенного Item. Результатом является нулевая Wide_String, если значение формального параметра равно нулевой Wide_String. Нижний индекс результирующей Wide_String равен 1.
function To_Upper (Item : Wide_Character) return Wide_Character;
Возвращает простое сопоставление прописных символов, как определено документами, на которые ссылается раздел 2 ISO/IEC 10646:2020, для Wide_Character, обозначенного Item. Если простое сопоставление прописных символов не существует для Wide_Character, обозначенного Item, то возвращается значение Item.
function To_Upper (Item : Wide_String) return Wide_String;
Возвращает результат применения преобразования To_Upper к каждому элементу Wide_Character Wide_String, обозначенного Item. Результатом является нулевая Wide_String, если значение формального параметра равно нулевой Wide_String. Нижний индекс результирующей Wide_String равен 1.
function To_Basic (Item : Wide_Character) return Wide_Character;
Возвращает Wide_Character, код которого задаётся первым значением его сопоставления Разложения в таблицах кодов ISO/IEC 10646:2020, если таковое имеется; в противном случае возвращает Item.
function To_Basic (Item : Wide_String) return Wide_String;
Возвращает результат применения преобразования To_Basic к каждому элементу Wide_Character широкой строки, обозначенной Item. Результатом является нулевая широкая строка, если значение формального параметра равно нулевой широкой строке. Нижняя граница результирующей широкой строки равна 1.
Рекомендации по реализации
Строка, возвращаемая Character_Set_Version, должна содержать либо «10646:», либо «Unicode».
ПРИМЕЧАНИЕ 1 Результаты, возвращаемые этими функциями, могут зависеть от конкретной версии ISO/IEC 10646, поддерживаемой реализацией (см. 2.1).
ПРИМЕЧАНИЕ 2 Ряды сравнения строк на равенство без учёта регистра, предоставленные в A.4.10, также доступны для широких строк (см. A.4.7).