Skip to main content

Operator

This document organizes the operators currently usable based on the compiler.

Arithmetic

OperatorDescription
+Addition
-Subtraction
*Multiplication
/Division
%Remainder

Comparison

OperatorDescription
==Equal
!=Not Equal
<Less Than
<=Less Than or Equal To
>Greater Than
>=Greater Than or Equal To

Logical

OperatorDescription
&&Logical AND
`\Logical OR
!Logical NOT

Bitwise

OperatorDescription
&Bitwise AND
`\Bitwise OR
^Bitwise XOR
~Bitwise NOT
<<Left Shift
>>Right Shift

Assignment

OperatorDescription
=Basic Assignment
+=Addition Assignment
-=Subtraction Assignment
*=Multiplication Assignment
/=Division Assignment
%=Remainder Assignment

Unary / Pointer / Cast

Operators/KeywordsDescription
++, --Pre/Post Increment
&xAddress Acquisition
deref pPointer Dereferencing
expr as TExplicit Cast

Pointer Operations

ExpressionResult
ptr<T> + intptr<T> (GEP Move)
int + ptr<T>ptr<T> (GEP Move)
ptr<T> - intptr<T> (GEP Move)
ptr<T> - ptr<T>i64 (Byte Difference)
ptr == ptr, ptr != ptrPointer Comparison

Reserved or unimplemented items

There are grammar tokens that exist but are not currently supported by expression operations. For example: ??, ?:, in, is, !&, !|, ~^.