Выражение - это формула, которая определяет способ вычисления значения.
выражение : = отношение {and отношение}
отношение {and then отношение}отношение{or отношение}
отношение {or else отношение}отношение {xor отношение}
отношение : : =
простое_выражение [операция_отношения простое_выражение]
простое_выражение [not] in диапазон
простое_выражение [not] in обозначение_типа
простое_выражение : : =
[унарная_аддитивная_операция] слагаемое
{бинарная_аддитивная_операция слагаемое}
слагаемое : : =
множитель {мультипликативная_операция множитель}
множитель : : = первичное [* * первичное]
abs первичное not первичное
первичное : : = числовой_литерал null агрегат
строковый_литерал имя генератор
вызов_функции преобразование_типа
квалифицированное_выражение (выражение)
Каждое первичное имеет значение и тип. Использование имен в качестве первичного допускается только для именованных чисел, атрибутов, которые вырабатывают значения, а также имен, обозначающих объекты (значением такого первичного является значение объекта) или обозначающих значения. Не допускается в качестве первичных использование имен формальных параметров вида out, а использование имен их подкомпонентов допускается только в случае дискриминантов.
Тип выражения зависит только от типа его составных частей и применяемых операций; для совмещенных операндов или операций определение типа операнда или идентификация операции зависит от контекста. Для каждой предопределенной операции типы операндов и результата приведены в разд.4.5.
Примеры первичных:
4.0 | - - литерал вещественного типа | |||
ПИ | - - именованное число | |||
(1..10 => 0) | - - агрегат индексируемого типа | |||
СУММА | - - переменная | |||
INTEGER'LAST | - - атрибут | |||
СИНУС (X) | - - вызов функции | |||
ЦВЕТ' (СИНИЙ) | - - квалифицированное выражение | |||
ВЕЩЕСТВ (М*К) | - - преобразование типа | |||
(СЧЕТ_СТРОЧЕК +10) | - - выражение в скобках |
Примеры выражений:
ТОМ | - - первичное | |||
not ИСПОРЧЕН | - - множитель | |||
2 * СЧЕТ_СТРОЧЕК | - - слагаемое | |||
-4.0 | - - простое выражение | |||
-4.0 + А | - - простое выражение | |||
В ** 2-4.0 * А * С | - - простое выражение | |||
ПАРОЛЬ (1..3) = "АБВ" | - - отношение | |||
СЧЕТ in МАЛОЕ_ЦЕЛ | - - отношение | |||
СЧЕТ not in МАЛОЕ_ЦЕЛ | - - отношение | |||
ИНДЕКС = 0 or ЭЛЕМЕНТ_ГР | - - выражение | |||
(ХОЛОД and СОЛНЦЕ) or ТЕПЛО | - - выражение (скобки обязательны) | |||
А ** (В ** С) | - - выражение (скобки обязательны) |