The table below shows the order of precedence of operators in OpenXION. In a complex expression containing more than one operator, the operations indicated by operators with lower-numbered precedence will be performed before those with higher-numbered precedence. Operators of equal precedence are evaluated left-to-right, except for exponentiation, which goes right-to-left. If you use parentheses, the innermost parenthetical expression is evaluated first.
Order | Operators | Type of Operator |
---|---|---|
1 - Unary & Conditional | a new | Construction of objects |
a ref to | Referencing | |
a reference to | Referencing | |
bitnot | Bitwise negation | |
if | Conditional expression | |
new | Construction of objects | |
not | Negation for boolean values | |
ref of | Dereferencing | |
ref to | Referencing | |
reference to | Referencing | |
referent of | Dereferencing | |
the ref of | Dereferencing | |
the referent of | Dereferencing | |
there is a | Boolean test for existence | |
there is an | Boolean test for existence | |
there is no | Boolean test for existence | |
there is not a | Boolean test for existence | |
there is not an | Boolean test for existence | |
there isn't a | Boolean test for existence | |
there isn't an | Boolean test for existence | |
there's a | Boolean test for existence | |
there's an | Boolean test for existence | |
there's no | Boolean test for existence | |
! | Negation for boolean values | |
− | Negation for numbers | |
2 - Exponentiation | ** | Exponentiation for numbers |
^ | Exponentiation for numbers | |
3 - Multiplication | div | Division for numbers |
mod | Modulus for numbers | |
quot | Division for numbers | |
rem | Modulus for numbers | |
% | Modulus for numbers | |
* | Multiplication for numbers | |
/ | Division for numbers | |
· | Multiplication for numbers | |
× | Multiplication for numbers | |
÷ | Division for numbers | |
4 - Addition | + | Addition for numbers |
- | Subtraction for numbers | |
5 - Bit Shift | << | Bitwise shift |
>> | Bitwise shift | |
>>> | Bitwise shift | |
6 - Bitwise AND | bitand | Bitwise AND |
7 - Bitwise XOR | bitxor | Bitwise XOR |
8 - Bitwise OR | bitor | Bitwise OR |
9 - String Concatenation | & | Concatenation for strings |
&& | Concatenation for strings | |
|| | Concatenation for strings | |
10 - List Concatenation | : | Construction of lists |
:: | Construction of lists | |
@ | Concatenation of lists | |
@@ | Concatenation of lists | |
11 - Relational | begins with | Comparison for strings |
between | Comparison for numbers or strings | |
comes after | Comparison for numbers or strings | |
comes before | Comparison for numbers or strings | |
contains | Comparison for strings | |
does not begin with | Comparison for strings | |
does not contain | Comparison for strings | |
does not end with | Comparison for strings | |
does not start with | Comparison for strings | |
doesn't begin with | Comparison for strings | |
doesn't contain | Comparison for strings | |
doesn't end with | Comparison for strings | |
doesn't start with | Comparison for strings | |
ends with | Comparison for strings | |
ge | Comparison for strings | |
gt | Comparison for strings | |
is after | Comparison for numbers or strings | |
is an element in | Comparison for lists | |
is an element of | Comparison for lists | |
is before | Comparison for numbers or strings | |
is between | Comparison for numbers or strings | |
is bigger than | Comparison for numbers or strings | |
is fewer than | Comparison for numbers or strings | |
is greater than | Comparison for numbers or strings | |
is in | Comparison for strings | |
is less than | Comparison for numbers or strings | |
is more than | Comparison for numbers or strings | |
is not after | Comparison for numbers or strings | |
is not an element in | Comparison for lists | |
is not an element of | Comparison for lists | |
is not before | Comparison for numbers or strings | |
is not between | Comparison for numbers or strings | |
is not bigger than | Comparison for numbers or strings | |
is not fewer than | Comparison for numbers or strings | |
is not greater than | Comparison for numbers or strings | |
is not in | Comparison for strings | |
is not less than | Comparison for numbers or strings | |
is not more than | Comparison for numbers or strings | |
is not of | Comparison for strings | |
is not precisely an element in | Comparison for lists | |
is not precisely an element of | Comparison for lists | |
is not smaller than | Comparison for numbers or strings | |
is not within | Boolean test for point within rectangle | |
is of | Comparison for strings | |
is precisely an element in | Comparison for lists | |
is precisely an element of | Comparison for lists | |
is smaller than | Comparison for numbers or strings | |
is within | Boolean test for point within rectangle | |
isn't after | Comparison for numbers or strings | |
isn't an element in | Comparison for lists | |
isn't an element of | Comparison for lists | |
isn't before | Comparison for numbers or strings | |
isn't between | Comparison for numbers or strings | |
isn't bigger than | Comparison for numbers or strings | |
isn't fewer than | Comparison for numbers or strings | |
isn't greater than | Comparison for numbers or strings | |
isn't in | Comparison for strings | |
isn't less than | Comparison for numbers or strings | |
isn't more than | Comparison for numbers or strings | |
isn't of | Comparison for strings | |
isn't precisely an element in | Comparison for lists | |
isn't precisely an element of | Comparison for lists | |
isn't smaller than | Comparison for numbers or strings | |
isn't within | Boolean test for point within rectangle | |
le | Comparison for strings | |
lt | Comparison for strings | |
not between | Comparison for numbers or strings | |
starts with | Comparison for strings | |
< | Comparison for numbers or strings | |
<= | Comparison for numbers or strings | |
=< | Comparison for numbers or strings | |
=> | Comparison for numbers or strings | |
> | Comparison for numbers or strings | |
>= | Comparison for numbers or strings | |
≤ | Comparison for numbers or strings | |
≥ | Comparison for numbers or strings | |
12 - Polymorphic | are | Comparison for types |
are not | Comparison for types | |
are not precisely | Comparison for types | |
are precisely | Comparison for types | |
aren't | Comparison for types | |
aren't precisely | Comparison for types | |
as | Conversion for types | |
as a | Conversion for types | |
as an | Conversion for types | |
instanceof | Comparison for types | |
is a | Comparison for types | |
is an | Comparison for types | |
is not a | Comparison for types | |
is not an | Comparison for types | |
is not precisely a | Comparison for types | |
is not precisely an | Comparison for types | |
is precisely a | Comparison for types | |
is precisely an | Comparison for types | |
isa | Comparison for types | |
isn't a | Comparison for types | |
isn't an | Comparison for types | |
isn't precisely a | Comparison for types | |
isn't precisely an | Comparison for types | |
13 - Equivalence | cmp | Comparison for strings |
compared to | Comparison for strings | |
does not equal | Comparison for numbers or strings | |
doesn't equal | Comparison for numbers or strings | |
eq | Comparison for strings | |
equals | Comparison for numbers or strings | |
is | Comparison for numbers or strings | |
is equal to | Comparison for numbers or strings | |
is exactly | Comparison for numbers or strings | |
is not | Comparison for numbers or strings | |
is not equal to | Comparison for numbers or strings | |
is not exactly | Comparison for numbers or strings | |
isn't | Comparison for numbers or strings | |
isn't equal to | Comparison for numbers or strings | |
isn't exactly | Comparison for numbers or strings | |
ne | Comparison for strings | |
!= | Comparison for numbers or strings | |
!== | Comparison for numbers or strings | |
<=> | Comparison for numbers or strings | |
<> | Comparison for numbers or strings | |
= | Comparison for numbers or strings | |
== | Comparison for numbers or strings | |
=== | Comparison for numbers or strings | |
≠ | Comparison for numbers or strings | |
≠≠ | Comparison for numbers or strings | |
≠≠≠ | Comparison for numbers or strings | |
14 - Boolean AND | and | Logical AND for boolean values |
&&& | Logical AND for boolean values | |
15 - Boolean XOR | xor | Logical XOR for boolean values |
^^^ | Logical XOR for boolean values | |
16 - Boolean OR | or | Logical OR for boolean values |
||| | Logical OR for boolean values | |
17 - List Construction | , | Construction of lists |