operator class

Operator class determines certain aspects of how operators behave.

class 1

Class 1 operators include binary logical operators && , ^^ , ||.

The operands must be integer or floating point variables or expressions. The result is
always XLONG $$TRUE or $$FALSE.

class 2

Class 2 operators include the binary relational operators = , <> , < , <= ,
>= , > and their equivalents == , != , !>= , !> , !< , !<= .

The operands must be integer, floating point, or string. If one operand is a string, so
must the other. String characters are compared until a byte differs or the end of one
string is reached, so the effect is alphabetic comparison. The result is always XLONG
$$TRUE or $$FALSE.

class 3

Class 3 operators include binary bitwise operators AND , XOR , OR , and symbolic
equivalents & , ^ , | .

The operands must be integer variables or expressions. The result is the operand data
type.

class 4

Class 4 operators include binary arithmetic operators - , * , / , ** .

The operands must be integer or floating point variables or expressions. The result is the
data type of the highest type operand.

class 5

Class 5 operators include the binary arithmetic operator + and the string concatenate
operator + .

The operands must both be integer or floating point variables or expressions, or both be
string variables or expressions. The result is the operand data type.

class 6

Class 6 operators include the binary arithmetic operators MOD
and \.

The operands must be integer or floating point variables or expressions. If either
operand is GIANT, the other operand is converted to GIANT and the result is GIANT.
Otherwise, if either operand is XLONG, the other operand is converted to XLONG and the
result is XLONG. Otherwise, if either operand is ULONG, the other operand is
converted to ULONG and the result is ULONG. Otherwise, both operands are converted
to SLONG and the result is SLONG. Note that this means that SINGLE and DOUBLE
operands are converted to one integer type or another before the operation takes place.
Class 6 operators are integer operators.

class 7

Class 7 operators include the binary arithmetic and bitwise shift operators <<,
>>, <<<, >>>.

The operands must be integer variables or expressions. The result is the data type
of the left operand.