Operators and Precedence

The Reflex language shares many of its operators with other C-like languages. The following table presents the different operators, and organizes them by precedence. Operators higher in the table take precedence over operators at lower rows in the table.

Level

Operator

Description

Associativity

1

++
--
()
[]
.
Pre Increment
Pre Decrement
Function call
Index Subscript
command selection

Left-to-right

2

++
--
+
-
!
~
( T )
Post Increment
Post Decrement
Unary plus
Unary minus
Logical NOT
Bitwise NOT
Type cast

Right-to-left

3

*
/
%
Multiplication
Divide
Modulo

Left-to-right

4

+
-
Addition
Subtraction

Left-to-right

5

<<
>>
Bitwise Left Shift
Bitwise Right Shift

Left-to-right

6

<
<=
>
>=
Less than
Less than or equal
Greater than
Greater than or equal

Left-to-right

7

==
!=
Equal to
NOT Equal to

Left-to-right

8

&

Bitwise AND

Left-to-right

9

^

Bitwise XOR

Left-to-right

10

|

Bitwise OR

Left-to-right

11

&&

Logical AND

Left-to-right

12

||

Logical OR

Left-to-right

13

?:

Ternary Operator

Right-to-left

14

=
+=
-=
*=
/=
%=
<<=
>>=
Assignment
Assignment by sum
Assignment by difference
Assignment by product
Assignment by quotient
Assignment by modulo
Assignment by left shift
Assignment by right shift

Right-to-left