Skip to content

Script Operators

Following operators can be used in expressions.

OperatorDescription
() Parenthesis.
These are used to group operations, so they will be executed in the right order.
"a = b * (c + d)" will first add c and d, then multiply with b and then assign a with the result. Without the parenthesis, since * has a higher precedence than +, b and c had first been multiplied and then added with d.
[] Brackets.These are used at the end of a variable to indicate an indexing of the object variable. An index can be a constant, or a local variable. The start index in an array is always 0.
SENSORA[4] means fifth object of SENSORA. In this example, it means sensors number 4.
SENSORA[st] means the object in array that the local variable st contains. If st contains 3, this means the fourth object.
. Dot.This is used to separate fields.
SENSORA[5].FLAG means a flag in sensor 5.
! + - Unary operators.These unary operators can be used before an operand to change the return value.
!SENSORA[5].FLAG returns 0 if sensor 5 flag is on and returns 1 if sensor 5 is not on.
!var returns 0 if local variable var is non-zero and returns 1 if var is zero.
"a = -b" assign the inverted (opposite sign) value of b to a.
"a = -5" assign the constant -5 to a.
"a = +b" assign b to a. The unary + has the same meaning as unary - but is also default.
* / % Multiplicative operators.* is multiplication, / is division and % is the reminder of a division.
"a = 3 * b" assign 3 multiplied by b to a.
"hour = seccnt / 3600;" assign the integer from the result of seccnt divided by 3600 (1 hour in seconds) to hour. "min = (seccnt % 3600) / 60;" assign the reminder of the previous operation (the number of seconds that was not covered in the hour, divided by 60 (1 minute in seconds) to min. "sec = (seccnt % 3600) % 60;" assign the rest to sec.
+ - Additive operators+ is addition and - is subtraction.
"a = b + c - 3;" assign b plus c minus 3 to a.
< <= > >= Comparison.< means less than, <= means less or equal to, > means greater than and >= means greater or equal to.
"a = b <= c;" assign the result of the Comparison b less or equal to c to a. If b is less or equal to c, then a get the value 1, else a get the value 0.
== != Comparison (equal).== means equal to and != means not equal to.
"a = b != c;" assign the result of the Comparison b not equal to c to a. If b is not equal to c, then a get the value 1, else a get the value 0.
& ^ | Bitwise operators.& is logical and between all bits in two operators, | is logical or between all bits in two operators and ^ is logical exclusive or between all bits in two operators
"a = b & 0xff" assigns the lower byte in b to a.
&& || Logical test.&& is a logical and between two operators and || is a logical or between two operators |&#124 "a = b && c || d;" assign the result of the logical test if b and c is true or if d is true. If both b and c are true (non-zero) or if d is true (non-zero), then a get the value 1, else a get the value 0.
= Assign.This operator assigns the result of the expression to the right to the variable to the left.

Below follows a precedence list of the operators. The top row has highest precedence (priority). Operators at the same level are executed according to the associativity order.

OperatorDescription
() [] .Left to right.
! + -Right to left
* / %Left to right
+ -Left to right
< <= > >= == !=Left to right
& ^ |Left to right
& &Left to right
||Left to right
=Right to left