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




Примечание





type DAY is (MON, TUE, WED, THU, FRI, SAT, SUN); type SUIT is (CLUBS, DIAMONDS, HEARTS, SPADES); type GENDER is (M, F); type LEVEL is (LOW, MEDIUM, URGENT); type COLOR is (WHITE, RED, YELLOW, GREEN, BLUE, BROWN, BLACK); type LIGHT is (RED, AMBER, GREEN); -- RED И GREEN совмещеныtype HEXA is ('A', 'B', 'C', '0', 'E', 'F'); type MIXED is ('A', 'B', '*', B, NONE, '?', '%');subtype WEEKDAY is DAY range MON .. FRI; subtype MAJOR is SUIT range HEARTS .. SPADES: subtype RAINBOW is COLOR range RED .. BLUE; -- цвет, НО не свет

. Если литерал перечисления встречается в контексте, недостаточном для определения типа литерала, то один из путей разрешения неоднозначности — это применение квалифицированного выражения с именем перечислимого типа (см. 4.7).

Ссылки: идентификатор 2.3, имя 4.1, квалифицированное выражение 4.7, номер позиции 3.5, обозначение 6.1, операция отношения 4.5, 2, описание 3.1, определение типа 1, пред-выполнение 3.9, 6.1, символьный литерал 2.5, совмещение 6.6, 8.7, тип 3.3, функция

2. СИМВОЛЬНЫЕ ТИПЫ

Перечислимый тип называется символьным, если хотя бы один из его Питералов перечисления является символьным литералом. Предопределенный тип CHARACTER — символьный тип, значения которого представляют собой 128 символов стандартного набора ASCII. Каждый из 95 графических символов этого символьного набора обозначен соответствующим символьным литералом.

Пример:

type ROMAN_DIGIT is (Т, 'V. 'X', 'L', 'С', 'D', 'М');

. Предопределенный пакет ASCII включает описания констант, обозначающих управляющие символы, а также констант, обозначающих графические символы, не входящие в основной набор символов.

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

Ссыпки: графический символ 2.1, идентификатор 2.8, константа 1, литерал 4.2, описание 3.1, основной символ 2.1, перечислимый тип 1, предопределенный пакет С, предопределенный тип С, символьный литерал 2.5, тип

3. ЛОГИЧЕСКИЕ ТИПЫ

Существует предопределенный перечислимый тип, именуемый BOOLEAN. Он содержит два литерала FALSE и TRUE, упорядоченные соотношением FALSE < TRUE. Логический тип — это тип BOOLEAN или производный непосредственно или косвенно от логического типа.

Ссылки: литерал перечисления 1, операция отношения 4.5, 2, перечислимый тип 1, производный тип 3.4, тип

4. ЦЕЛЫЕ ТИПЫ

Определение целого типа задает целый тип, набор значений которого включает значения заданного диапазона.

определение-целого-типа ::= ограничение-диапазона

Границы диапазона должны определяться статическими выражениями некоторого, не обязательно одного и того же, целого типа. (Допускаются отрицательные границы.) Описание типа в форме

type Т is range L .. R ;

по определению эквивалентно следующим описаниям:

type целый- тип is new предопределенный-целый-тип;

subtype Т is целый-тип range целый- тип (L) .. целый-тип (R);

где целый-тип — это анонимный тип, а предопределенный целый тип выбран реализацией и содержит значения от L до R включительно. Описание целого типа неправильно, если ни один из предопределенных целых типов не удовлетворяет этому требованию, за исключением типа универсальный-целый. Предвыполнение описания целого типа состоит из предвыполне-ния эквивалентных описаний типа и подтипа.

Предопределенные целые типы включают тип INTEGER. Реализация может также иметь предопределенные типы SHORT-INTEGER и LONG-INTEGER, диапазоны которых соответственно (существенно) уже и шире, чем у типа INTEGER. Диапазон этих типов должен быть симметричным относительно нуля, кроме наименьшего из отрицательных значений, которое может существовать в некоторых реализациях. Базовым для каждого из этих типов является он сам.

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

Номер позиции целого значения — это соответствующее значение типа универсальный-цепый.

Для всех целых типов предопределены одни и те же арифметические операции (см. 4.5). Исключение NUMERIC-ERROR возбуждается при выполнении операции (в частности, неявного преобразования), которая не может передать корректный результат (т.е. значение, соответствующее математическому результату, не является значением целого типа). Однако от реализации не требуется возбуждения исключения NUMERIC_ERROR, если операция является частью большего выражения, результат которого может быть вычислен корректно, как пояснено в разд.









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



Книжный магазин