Руководство по языку B.Pascal 7

       

Синтаксис выражений


Правила, определяющие порядок выполнения операций, вытекают из синтаксиса выражений, которые строятся из множителей, термов и простых выражений.

Множитель имеет следующий синтаксис:

---------------- множитель ---T-------------->¦ ссылка на +-----------> ¦ ¦ переменную ¦ ^ ¦ L---------------- ¦ ¦ ---------- ¦ +---->¦константа+----------------------+ ¦ ¦без знака¦ ¦ ¦ L---------- ¦ ¦ ---- ---------- ---- ¦ +---->¦ ( +---->¦выражение¦--->¦ ) +---+ ¦ L---- L---------- L---- ¦ ¦ ---- ---------- ¦ +---->¦not+---->¦множитель+------------+ ¦ L---- L---------- ¦ ¦ ----- ---------- ¦ +---->¦знак+--->¦множитель+------------+ ¦ L----- L---------- ¦ ¦ ---------- ¦ +---->¦ вызов +----------------------+ ¦ ¦ функции ¦ ¦ ¦ L---------- ¦ ¦ ------------ ¦ +---->¦конструктор+--------------------+ ¦ ¦ множества ¦ ¦ ¦ L------------ ¦ ¦ ------------ ¦ +---->¦ адресный +--------------------+ ¦ ¦ множитель ¦ ¦ ¦ L------------ ¦ ¦ --------------- ¦ L---->¦ приведение +------------------ ¦типа значения ¦ L---------------

Вызов функции активизирует функцию и представляет собой зна- чения, возвращаемые функцией (см. далее в этой главе раздел "Вы- зовы функций"). Описатель множества представляет собой значение множественного типа (см. раздел, озаглавленный, как "Описание множеств"). Приведение типа изменяет тип значения (см. "Приведе- ние типа").

Адресный множитель вычисляет адрес переменной, процедуры, функции или метода. См. раздел "Операция @".

Беззнаковая константа имеет следующий синтаксис:

---------- константа без знака ---T---->¦ число +-------------> ¦ ¦без знака¦ ^ ¦ L---------- ¦ ¦ ----------- ¦ +---->¦символьная+--------+ ¦ ¦ строка ¦ ¦ ¦ L----------- ¦ ¦ -------------- ¦ +---->¦идентификатор+-----+ ¦ ¦ константы ¦ ¦ ¦ L-------------- ¦ ¦ ---- ¦ L---->¦nil+---------------- L----

Некоторые примеры множителей могут включать в себя:

Х { ссылка на переменную } @Х { указатель на переменную } 15 { константа без знака } (Х+Y+Z) { подвыражение } SIN(Х/2) { вызов функции } ['0..''9','А'..'Z'] { описатель множества } not Done { отрицание булевской переменной } сhar(Digit+48) { назначение типа }


Термы используются в операциях умножения на множитель:
---------- терм -------->¦множитель+---T------> ^ L---------- ¦ ¦ ---- ¦ +-----+ * ¦<--------+ ¦ L---- ¦ ¦ ---- ¦ +-----+ / ¦<--------+ ¦ L---- ¦ ¦ ---- ¦ +-----+div¦<--------¦ ¦ L---- ¦ ¦ ---- ¦ +-----+mod¦<--------¦ ¦ L---- ¦ ¦ ---- ¦ +-----+and¦<--------¦ ¦ L---- ¦ ¦ ---- ¦ +-----+shl¦<--------¦ ¦ L---- ¦ ¦ ---- ¦ L-----+shr¦<--------- L----
Приведем несколько примеров термов:
Х * Y Z / (1 - Z) Done or Error (Х <= Y) and (Y < Z)
В простых выражениях к термам применяются операции сложения и присваивания знака:
-------- простое выражение -------->¦ терм +---T----> ^ L-------- ¦ ¦ ---- ¦ +-----+ + ¦<------+ ¦ L---- ¦ ¦ ---- ¦ +-----+ - ¦<------+ ¦ L---- ¦ ¦ ---- ¦ +-----+ or¦<------¦ ¦ L---- ¦ ¦ ---- ¦ L-----+xor¦<------- L----
Приведем несколько примеров простых выражений:
Х + Y -Х Hue1 + Hue2 I * J + 1
В выражениях к простым выражениям применяются операции отно- шения.
---------- выражение ---->¦ простое +--T-------------------------------> ¦выражение¦ ¦ ^ L---------- ¦ ---- ---------- ¦ +->¦ < +------>¦ простое +--- ¦ L---- ^ ¦выражение¦ ¦ ---- ¦ L---------- +->¦<= +--+ ¦ L---- ¦ ¦ ---- ¦ +->¦ > +--+ ¦ L---- ¦ ¦ ---- ¦ +->¦>= +--+ ¦ L---- ¦ ¦ ---- ¦ +->¦ = +--+ ¦ L---- ¦ ¦ ---- ¦ +->¦<> +--+ ¦ L---- ¦ ¦ ---- ¦ L->¦in +--- L----
Приведем некоторые примеры выражений:
Х = 1.5 Done <> Error (I < J) = (J < К) C in Huel

Содержание раздела