class 8
Class 8 operators include the unary arithmetic operators + and -.
The operand must be an integer or floating point expression. The result is the data type of the operand.
class 9
Class 9 operators include the unary logical operators ! and !!.
The operand must be an integer or floating point expression. The result is always $$TRUE or $$FALSE .
class 10
Class 10 operators include the unary bitwise operators ~ and NOT .
The operand must be an integer variable or expression, or a function name. When applied to GIANT operands, the result data type is GIANT. Otherwise the result data type is XLONG.
class 11
Class 11 operators include the unary address operators & and &&.
The operand of & must be a variable, string, composite, whole array, array node, or array data element. The operand of && must be a string, whole array, or string in a string array. The result data type is always XLONG.
operator summary
The following table is a summary of the characteristics of all operators recognized by the
language:
op | op | kind | class | operands | returns | prec | comments |
& | unary | 11 | any type | address | 12 | address of data | |
&& | unary | 11 | any type | address | 12 | address of handle | |
NOT | ~ | unary | 10 | integer | same type | 12 | bitwise NOT |
! | unary | 9 | numeric | T/F | 12 | logical not (TRUE if 0, else FALSE) | |
!! | unary | 9 | numeric | T/F | 12 | logical test (FALSE if 0, else TRUE) | |
+ | unary | 8 | numeric | same type | 12 | plus | |
- | unary | 8 | numeric | same type | 12 | minus | |
>>> | binary | 7 | integer | left type | 11 | arithmetic up shift | |
<<< | binary | 7 | integer | left type | 11 | arithmetic down shift | |
<< | binary | 7 | integer | left type | 11 | bitwise left shift | |
>> | binary | 7 | integer | left type | 11 | bitwise right shift | |
** | binary | 4 | numeric | high type | 10 | power | |
/ | binary | 4 | numeric | high type | 9 | divide | |
* | binary | 4 | numeric | high type | 9 | multiply | |
\ | binary | 6 | numeric | integer | 9 | integer divide | |
MOD | binary | 6 | numeric | integer | 9 | modulus (integer remainder) | |
+ | binary | 5 | numeric | high type | 8 | add | |
+ | binary | 5 | string | string | 8 | concatenate | |
- | binary | 4 | numeric | high type | 8 | subtract | |
AND | & | binary | 3 | integer | high type | 7 | bitwise AND |
XOR | ^ | binary | 3 | integer | high type | 6 | bitwise XOR |
OR | | | binary | 3 | integer | high type | 6 | bitwise OR |
> | !<= | binary | 2 | num str | T/F | 5 | greater-than |
>= | !< | binary | 2 | num str | T/F | 5 | greater-or-equal |
<= | !> | binary | 2 | num str | T/F | 5 | less-or-equal |
< | !>= | binary | 2 | num str | T/F | 5 | less-than |
<> | != | binary | 2 | num str | T/F | 4 | not-equal |
= | == | binary | 2 | num str | T/F | 4 | equal (also "!<>") |
&& | binary | 1 | integer | T/F | 3 | logical AND | |
^^ | binary | 1 | integer | T/F | 2 | logical XOR | |
|| | binary | 1 | integer | T/F | 2 | logical OR | |
= | binary | num str | right type | 1 | assignment | ||
T/F | T/F always returned as XLONG |