An expression is a combination of operands and operators that produces a value as a result. An expression can be specified wherever a value is required. Expressions are evaluated in the order (precedence) as listed below.
Operators |
Meaning |
Operands and Result |
Examples |
Arithmetic: |
|
|
|
- |
(Unary) Minus |
Integer or Float |
-5 |
* |
Multiplication |
Integer or Float |
(Base * 100) |
/ |
Division |
Integer or Float |
(Total_FV / Units_FV) |
mod |
Module (remainder of integer division) |
Integer |
(C mod 12) |
+ |
Addition |
Integer or Float |
(A + 10) |
- |
Subtraction |
Integer or Float |
((Num2 * 300/A)-8) |
Relational: |
|
|
|
= |
Equal to |
Boolean |
(City_SV = Boston") |
!= |
Not equal to |
Boolean |
(Count_10 != 10) |
< |
Less than |
Boolean |
((B * 50) < C) |
<= |
Less than or equal to |
Boolean |
(Debts <= Assets) |
> |
Greater than |
Boolean |
(5000 > Curve) |
>= |
Greater than or equal to |
Boolean |
(A >= B) |
Boolean: |
|
|
|
not |
Result is true if operand is false |
Boolean |
(not (A > B)) |
and |
Result is true if both operands are true |
Boolean |
((V1=5) and (V2!=10)) |
or |
Result is true if either or both operand(s) are true |
Boolean |
((Slope<Arc) or (A<=B)) |
An expression must be enclosed in parentheses.
You can use arithmetic, relational, and boolean operators in a single expression. All operands must match the type of operator used.
When operators have equal precedence, the expression is evaluated from left to right.
You can use nested parentheses to clarify expressions and to override the precedence of operators. If an expression contains nested parentheses, ESL always begins with the operation within the innermost set.
Errors
Within an expression, if a specified operand type does not match the type of operators, ESL attempts to convert the value to the correct type (see Type Conversions). If it cannot, ESL generates an error message and does not convert the value.
See Also