Function Definition Language Operators#
Operator Order of Precedence#
||
boolean operator (left associative)&&
boolean operator (left associative)!
boolean operator (non-associative)<
,<=
,>
,>=
,==
,!=
relational operators (left associative)=
assignment operator (right associative)+
and-
operators (left associative)*
,/
and%
operators (left associative)^
operator (right associative)- unary
-
operator (non-associative) ++
and--
operators (non-associative)
Mathematical Operators#
-
expr- The result is the negation of the expression.
- expr
+
expr - The result of the expression is the sum of the two expressions.
- expr
โ
expr - The result of the expression is the difference between the two expressions.
- expr
*
expr - The result of the expression is the product of the two expressions.
- expr
/
expr - The result of the expression is the quotient of the two expressions.
- expr
%
expr - The result of the expression is the remainder of the division.
^
expr- The result of the expression is the value of the first expression raised to the second expression.
The second expression must be an integer. (
expr)
- Alters the standard precedence to force the evaluation of the expression, e.g. a + b / c is not the same as (a + b) / c.
Variable Operators#
var
refers to either a simple or an array variable.
A simple variable is just a name; an array variable is specified as name[expr]
(array subscript may be an expression).
++
var- The variable is incremented by one and the new value is the result of the expression.
--
var- The variable is decremented by one and the new value is the result of the expression.
- var
++
- The result of the expression is the value of the variable and the variable is then incremented by one.
- var
--
- The result of the expression is the value of the variable and the variable is then decremented by one.
- var
=
expr - The variable is assigned the value of the expression.
- var op
=
expr - This is equivalent to var
=
var op expr with the exception that the var part is evaluated only once.
This can make a difference if var is an array.
op is one of the mathematical operators+
,-
,*
,/
,%
or^
.
Relational Operators#
Relational expressions evaluate to either 0
(if the relation is false) or 1
(if the relation is true).
These may appear in any legal expression.
- expr1
<
expr2 - The result is
1
if expr1 is strictly less than expr2. - expr1
<=
expr2 - The result is
1
if expr1 is less than or equal to expr2. - expr1
>
expr2 - The result is
1
if expr1 is strictly greater than expr2. - expr1
>=
expr2 - The result is
1
if expr1 is greater than or equal to expr2. - expr1
==
expr2 - The result is
1
if expr1 is equal to expr2. - expr1
!=
expr2 - The result is
1
if expr1 is not equal to expr2.
Boolean Operators#
The result of all boolean operators is either 0
or 1
(for false
and true
), as in Relational expressions.
Any non-zero value is treated as 1
.
!
expr- The result is
1
if expr is0
, otherwise0
. (NOT
) - expr
&&
expr - The result is
1
if both expressions are nonโzero, otherwise0
. (AND
) - expr
||
expr - The result is
1
if either expression is nonโzero otherwise0
. (OR
)
Bitwise Operators#
~
expr- Bitwise
NOT
- expr
&
expr - Bitwise
AND
- expr
|
expr - Bitwise
OR
- expr
>>
expr - Shift right
- expr
<<
expr - Shift left