В выражениях допускаются следующие операции (в порядке повышения приоритета):
, | последовательное вычисление |
:= | присваивание |
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