4.4. ВЫРАЖЕНИЯ

Выражение — это формула, которая определяет процесс вычисления значения.

выражение ::= отношение {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.3.2, атрибут 4.1.4, бинарная аддитивная операция 4.5, 4.5.3, вызов функции 6.4, генератор 4.8, диапазон 3.5, именованное число 3.2, имя 4.1, квалифицированное выражение 4.7, контекст для разрешения совмещения 8.7, литерал вещественного типа 2.4, мультипликативная операция 4.5, 4.5.5, обозначение типа 3.3.2, объект 3.2, операция 4.5, операция возведения в степень 4.5, 4.5.6, операция отношения 4.5, 4.5.2, отношение 4.5.1, переменная 3.2.1, преобразование типа 4.6, пустой литерал 3.8, совмещение 8.3, совмещение операций 6.7, строковый литерал 2.6, тип 3.2, тип результата 6.1, унарная аддитивная операция 4.5, 4.5.4, числовой литерал 2.4.