Новости
Программы
Turbo Pascal
Игры
Документация
Странности
FAQ
Ссылки
Форум
Гостевая
книга
Рассылка
Благодарности
Об авторе
| |
Синтаксис выражений
Правила, определяющие порядок выполнения операций, вытекают
из синтаксиса выражений, которые строятся из множителей, термов и
простых выражений.
Множитель имеет следующий синтаксис:
┌───────────────┐
множитель ───┬──────────────>│ ссылка на ├───────────>
│ │ переменную │ ^
│ └───────────────┘ │
│ ┌─────────┐ │
├────>│константа├──────────────────────┤
│ │без знака│ │
│ └─────────┘ │
│ ┌───┐ ┌─────────┐ ┌───┐ │
├────>│ ( ├────>│выражение│───>│ ) ├───┤
│ └───┘ └─────────┘ └───┘ │
│ ┌───┐ ┌─────────┐ │
├────>│not├────>│множитель├────────────┤
│ └───┘ └─────────┘ │
│ ┌────┐ ┌─────────┐ │
├────>│знак├───>│множитель├────────────┤
│ └────┘ └─────────┘ │
│ ┌─────────┐ │
├────>│ вызов ├──────────────────────┤
│ │ функции │ │
│ └─────────┘ │
│ ┌───────────┐ │
├────>│конструктор├────────────────────┤
│ │ множества │ │
│ └───────────┘ │
│ ┌───────────┐ │
├────>│ адресный ├────────────────────┤
│ │ множитель │ │
│ └───────────┘ │
│ ┌──────────────┐ │
└────>│ приведение ├─────────────────┘
│типа значения │
└──────────────┘
Вызов функции активизирует функцию и представляет собой зна-
чения, возвращаемые функцией (см. далее в этой главе раздел "Вы-
зовы функций"). Описатель множества представляет собой значение
множественного типа (см. раздел, озаглавленный, как "Описание
множеств"). Приведение типа изменяет тип значения (см. "Приведе-
ние типа").
Адресный множитель вычисляет адрес переменной, процедуры,
функции или метода. См. раздел "Операция @".
Беззнаковая константа имеет следующий синтаксис:
┌─────────┐
константа без знака ───┬────>│ число ├─────────────>
│ │без знака│ ^
│ └─────────┘ │
│ ┌──────────┐ │
├────>│символьная├────────┤
│ │ строка │ │
│ └──────────┘ │
│ ┌─────────────┐ │
├────>│идентификатор├─────┤
│ │ константы │ │
│ └─────────────┘ │
│ ┌───┐ │
└────>│nil├───────────────┘
└───┘
Некоторые примеры множителей могут включать в себя:
Х { ссылка на переменную }
@Х { указатель на переменную }
15 { константа без знака }
(Х+Y+Z) { подвыражение }
SIN(Х/2) { вызов функции }
['0..''9','А'..'Z'] { описатель множества }
not Done { отрицание булевской переменной }
сhar(Digit+48) { назначение типа }
Термы используются в операциях умножения на множитель:
┌─────────┐
терм ────────>│множитель├───┬──────>
^ └─────────┘ │
│ ┌───┐ │
├─────┤ * │<────────┤
│ └───┘ │
│ ┌───┐ │
├─────┤ / │<────────┤
│ └───┘ │
│ ┌───┐ │
├─────┤div│<────────│
│ └───┘ │
│ ┌───┐ │
├─────┤mod│<────────│
│ └───┘ │
│ ┌───┐ │
├─────┤and│<────────│
│ └───┘ │
│ ┌───┐ │
├─────┤shl│<────────│
│ └───┘ │
│ ┌───┐ │
└─────┤shr│<────────┘
└───┘
Приведем несколько примеров термов:
Х * Y
Z / (1 - Z)
Done or Error
(Х <= Y) and (Y < Z)
В простых выражениях к термам применяются операции сложения
и присваивания знака:
┌───────┐
простое выражение ────────>│ терм ├───┬────>
^ └───────┘ │
│ ┌───┐ │
├─────┤ + │<──────┤
│ └───┘ │
│ ┌───┐ │
├─────┤ - │<──────┤
│ └───┘ │
│ ┌───┐ │
├─────┤ or│<──────│
│ └───┘ │
│ ┌───┐ │
└─────┤xor│<──────┘
└───┘
Приведем несколько примеров простых выражений:
Х + Y
-Х
Hue1 + Hue2
I * J + 1
В выражениях к простым выражениям применяются операции отно-
шения.
┌─────────┐
выражение ────>│ простое ├──┬───────────────────────────────>
│выражение│ │ ^
└─────────┘ │ ┌───┐ ┌─────────┐ │
├─>│ < ├──────>│ простое ├──┘
│ └───┘ ^ │выражение│
│ ┌───┐ │ └─────────┘
├─>│<= ├──┤
│ └───┘ │
│ ┌───┐ │
├─>│ > ├──┤
│ └───┘ │
│ ┌───┐ │
├─>│>= ├──┤
│ └───┘ │
│ ┌───┐ │
├─>│ = ├──┤
│ └───┘ │
│ ┌───┐ │
├─>│<> ├──┤
│ └───┘ │
│ ┌───┐ │
└─>│in ├──┘
└───┘
Приведем некоторые примеры выражений:
Х = 1.5
Done <> Error
(I < J) = (J < К)
C in Huel
|