Выражение — это формула, которая определяет процесс вычисления значения.
выражение ::= отношение {and отношение} | отношение {and then отношение} | отношение {ог отношение} | отношение {or else отношение} | отношение {хог отношение}
отношение ::= простое-выражение [операция-отношения простое - выражение] | простое-выражение [not] in диапазон | простое-выражение [not] in обозначение-типа
простое - выражение :: = [унарная-аддитивная-операция] слагаемое {бинарная-аддитивная-операция слагаемое}
слагаемое ::= множитель {мультипликативная-операция множитель}
множитель ::= первичное [** первичное] | abs первичное | not первичное
первичное ::= числовой-литерал | null | агрегат | строковый-литерал | имя |генератор | вызов-функции | преобразование-типа | квалифицированное-выражение | (выражение)
Каждое первичное имеет значение и тип. Использование имен в качестве первичного допускается только для именованных чисел, атрибутов, которые вырабатывают значения, а также имен, обозначающих объекты (значением такого первичного является значение объекта) или обозначающих значения. Не допускается в качестве первичных использование имен формальных параметров вида
out,
а использование имен их подкомпонент допускается только в случае дискриминантов.
Тип выражения зависит только от типа его составных частей и применяемых операций; для совмещенных операндов или операций определение типа операнда или идентификация операции зависят от контекста. Для каждой предопределенной операции типы операндов и результата приведены в разд. 4.5.
Примеры первичных:
4.0 -- литерал вещественного типа PI -- именованное число (1..10 => 0) -- агрегат массива SUM -- переменная INTEGER'LAST -- атрибут SINE(X) -- вызов функции COLOR'(BLUE) -- квалифицированное выражение РЕАL(М*N) -- преобразование типа (LINE_COUNT+10) -- выражение в скобках
Примеры выражений:
VOLUME -- первичное not DISTROYED -- множитель 2 * LINE_COUNT -- слагаемое -4.0 -- простое выражение -4.0 + А -- простое выражение В ** 2-4.0 * А * С -- простое выражение PASSWORD(1..3) = "BWV" -- отношение COUNT in SMALL_INT -- отношение COUNT not in SMALL_INT -- отношение INDЕХ=0 ог IТЕМ_НIТ -- выражение (COLD and SUNNY) or WARM -- выражение (скобки обязательны) А ** (В ** С) -- выражение (скобки обязательны)
| Пред. | Уровень выше | След. |
|
4.3. АГРЕГАТЫ |
Содержание | 4.5. ОПЕРАЦИИ И ВЫЧИСЛЕНИЕ ВЫРАЖЕНИЯ |