Operator - force the evaluation order in a complex expression.
Parenthesis are used in ST and IL language for changing the default evaluation order of various operations within a complex expression. For instance, the default evaluation of "2 * 3 + 4" expression in ST language gives a result of 10 as "*" operator has highest priority. Changing the expression as "2 * ( 3 + 4 )" gives a result of 14. Parenthesis can be nested in a complex expression.
Below is the default evaluation order for ST language operations (1rst is highest priority):
operators: - NOT
Multiply/Divide: * /
Add/Subtract: + -
Comparisons: < > <= >= = <>
Boolean And: & AND
Boolean Or: OR
Exclusive OR: XOR
In IL language, the default order is the sequence of instructions. Each new instruction modifies the current result sequentially. In IL language, the opening parenthesis "(" is written between the instruction and its operand. The closing parenthesis ")" must be written alone as an instruction without operand.
Q := (IN1 + (IN2 / IN 3)) * IN4;
Op1: LD( IN1
ST Q (* Q is: (IN1 + (IN2 * IN3) - IN4) *)