Выражение состоит из операндов и операций. Операндами могут быть константы (например, числа), переменные, обращения к функциям (например, к стандартным функциям типа abc и odd), а также сами выражения, заключенные в скобки. Из них с помощью операций строятся выражения разной сложности: множители, слагаемые, простые выражения и выражения -- рис.2.3. При записи выражения знак унарной операции предшествует своему операнду (так называемая префиксная запись), а знак бинарной операции располагается между операндами ( инфиксная запись). Синтаксические правила определяют разбиение любого выражения на подвыражения, выявляют его синтаксическую структуру. Например, выражение 3.14 + ХY mod 3 - 12 состоит из трех слагаемых: 3.14, XY 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
Выражения, операторы и функции