Выражение состоит из операндов и операций. Операндами могут быть константы
(например, числа), переменные, обращения к функциям (например, к стандартным
функциям типа abc и odd), а также сами выражения, заключенные в скобки.
Из них с помощью операций строятся выражения разной сложности: множители,
слагаемые, простые выражения и выражения -- рис.2.3. При записи выражения
знак унарной операции предшествует своему операнду (так называемая префиксная
запись), а знак бинарной операции располагается между операндами ( инфиксная
запись). Синтаксические правила определяют разбиение любого выражения на
подвыражения, выявляют его синтаксическую структуру. Например, выражение
3.14 + ХY
mod
3 - 12 состоит из трех слагаемых: 3.14, X
Y
mod3,
12, второе из которых в свою очередь состоит из трех множителей: X, Y,
3.
Expression = SimpleExpression
[ ( "=" | "#" | "<" |
"<=" | ">" | ">=" | in ) SimpleExpression ]
SimpleExpression = [ "+"|"-" ] Term { ( "+" | "-" | or ) Term }.
Term = Factor { ( "*" | "/" | div | mod | "&" ) Factor }.
Factor = number
| CharConstant
| string
| Designator // Обозначение
переменной или константы
| Designator "(" [
ActualParameters ] ")" // Обращение к функции
| "(" Expression ")"
| "~" Factor.
Рис. 2.3. Выражение
В соответствии с синтаксической структурой все операции разбиваются
на группы, между которыми задан порядок старшинства (первый: ~; второй: ,
,
div,
mod,
&; третий: +, -, or; четвертый: =, #, <, <=, >,
>=). Предполагается, что операции в пределах одного выражения выполняются
в обычном порядке слева направо, но с учетом скобок (значение выражения
в скобках вычисляется самостоятельно и используется в дальнейших вычислениях)
и указанного порядка старшинства операций. Например, операции выражения
2 + 2
3 div 4 - 1 выполняются в следующей последовательности:
,
div,
+, - .
Каждое выражение имеет определенный тип -- тип результата этого выражения. Например, 15 div 4 + 2 -- выражение целого типа, 3.01 + 2.35, 17 + 3.14 и 3/2 -- выражения вещественного типа, odd(X) & (X<3) -- выражение логического типа, а 'A' и chr(X + 5) -- выражения литерного типа.
Next:2.2.2
Операторы
Up:2.2
Выражения, операторы и функции
Previous:2.2
Выражения, операторы и функции