Выражения: Операции и их приоритет

В выражениях допускаются следующие операции (в порядке повышения приоритета):

, последовательное вычисление
:= присваивание
or логическое ИЛИ
and логическое И
not логическое НЕ
<= >= <> < > = операции сравнения
& конкатенация строк
+ - арифметическое сложение и вычитание
* / mod арифметическое умножение, деление и остаток
^ возведение в степень

Приоритет операций может быть изменён с помощью скобок.

Операции присваивания и последовательного вычисления используются для сокращения записи и повышения скорости вычислений. Смысл этих операций и их использование аналогичны языку C. Например, следующие два выражения выдают один и тот же результат, но второе короче и вычисляется эффективней:

sqrt(a*a+b*b) + 1/sqrt(a*a+b*b)
R:=sqrt(a*a+b*b), R+1/R
Результатом операции последовательного вычисления является последнее выражение в списке.

Результатом операции присваивания является значение выражения справа от знака :=. Переменные, стоящие слева от знака :=, являются локальными и не должны совпадать с именами столбцов данных.

Небольшое отличие от языков программирования типа C и Pascal имеется в операциях сравнения. Запись

0 < x < 1
корректна и имеет общепринятый математический смысл, то есть является сокращённой записью выражения
0 < x and x < 1
Допускаются цепочки сравнений произвольной длины, включающие любые из 6 операций сравнения, например
0 < x <= y1 = y2 > 1