Справочное руководство по языку Ада-83


Скалярные типы - часть 6


3.5.5. ОПЕРАЦИИ НАД ДИСКРЕТНЫМИ ТИПАМИ

Базовые операции над дискретными типами включают присваивание, проверку на принадлежность и квалификацию; для логических типов — управление с промежуточной проверкой;

для целого типа — явное преобразование значений других числовых типов к целому типу и неявное преобразование значения типа

универсальный-целый

к значению заданного типа.

Для каждого дискретного типа или подтипа Т базовые операции включают перечисленные ниже атрибуты. В этом перечислении Т ссылается на подтип (подтип Т) для любого свойства, зависящего от ограничений для Т; другие свойства установлены в терминах базового типа Т.

Первая группа атрибутов вырабатывает характеристики подтипа Т. Эта группа включает атрибут ВАЗЕ (см. 3.3.3), атрибуты FIRST и LAST (см. 3.5), атрибут представления SIZE (см. 13.7.2) и атрибут WIDTH, определенный следующим образом:

T'WIDTH

Вырабатывает максимальную длину образа по всем значениям подтипа Т

{образ —

это последовательность символов, вырабатываемая атрибутом IMAGE, см. ниже). Вырабатывает нуль для пустого диапазона. Значения этого атрибута имеют тип

универсальный-целый.

Все атрибуты второй группы — это функции с одним параметром. Соответствующий фактический параметр обозначен ниже идентификатором X.

Т'РОS

Параметр Х должен быть значением базового типа Т. Тип результата —

универсальный-целый.

Результат — номер позиции для значения параметра.

T'VAL

Параметр Х может быть любого целого типа. Тип результата — базовый тип Т. По заданному значению Х — номеру позиции — функция вырабатывает значение в этой позиции. Если соответствующее Х —

универсальное-целое

значение — не принадлежит диапазону T'POS(T'BASE'FIRST). .T'POS(T'BASE'LAST), то возбуждается исключение CONSTRAINT_ERROR.

T'SUCC

Параметр X должен быть значением базового типа Т. Тип результата — базовый тип Т. Результат — значение с номером позиции, на единицу большим номера позиции для значения X. Если Х равен T'BASE'LAST, то возбуждается исключениеCONSTRAINT_ERROR.

T'PRED

Параметр Х должен быть значением базового типа Т. Тип результата — базовый тип Т. Результат — значение с номером позиции, на единицу меньшим номера позиции для значения X. Если Х равно T'BASE'FIRST, то возбуждается исключение CONSTRAINT - ERROR.

T'IMAGE

Параметр Х должен быть значением базового типа Т. Тип результата — предопределенный тип STRING. Результат —

образ

значения X, т.е. последовательность символов, представляющих изображение значения. Образу целого значения соответствует десятичный литерал без подчеркиваний, предшествующих нулей, порядка и пробелов справа, но с одним символом минус или пробелом слева. Нижняя граница образа есть единица. Образ литерала перечисления — это либо соответствующий идентификатор из прописных букв, либо соответствующий символьный литерал (включая два апострофа); пробелы не включаются ни слева, ни справа. Образ символа С, отличного от графического символа, зависит от реализации; должно выполняться равенство СНАRАСТЕR'VАLUЕ(СНАRАСТЕR'IМАGЕ(С))=С.

T'VALUE

Параметр Х должен быть значением предопределенного типа STRING. Тип результата — базовый тип Т. Игнорируются любые пробелы слева и справа от последовательности символов, соответствующих параметру. Если для перечислимого типа последовательность символов имеет синтаксис литерала перечисления и если этот литерал существует для базового типа Т, то результат — соответствующее значение перечислимого типа. Если для целого типа последовательность символов имеет синтаксис целого литерала с возможным знаком минус или плюс слева и если существует соответствующее значение базового типа Т, то результат есть это значение. Во всех остальных случаях возбуждается исключение CONSTRAINT_ERROR.

<




Начало  Назад  Вперед