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 |