Operator Expressions

Syntax
OperatorExpression :
     ArithmeticOpExpression
     | BitwiseOpExpression
     | LogicalOpExpression
     | ComparisonExpression
     | AssignementExpression
     | StringOpExpression

Arithmetic Operations

Syntax
ArithmeticOpExpression :
     - Expression
     | Expression + Expression
     | Expression - Expression
     | Expression * Expression
     | Expression / Expression
     | Expression // Expression
     | Expression % Expression
     | Expression ** Expression

These operators are, in order, the negation, addition, substraction, multiplication, division, integer division, modulo and exponentiation operators.

Bitwise Operations

Syntax
BitwiseOpExpression :
     ~ Expression
     | Expression & Expression
     | Expression | Expression
     | Expression ^ Expression

These operators represent, in order, the bitwise NOT, AND, OR and XOR operators.

Logical Operations

Syntax
LogicalOpExpression :
     ! Expression
     | Expression && Expression
     | Expression || Expression

These operator represent, respectively, the logical NOT, AND and OR operators.

Comparisons

Syntax
ComparisonExpression :
     Expression > Expression
     | Expression >= Expression
     | Expression < Expression
     | Expression <= Expression
     | Expression == Expression
     | Expression != Expression

These operators represent, in order, the greater than, greater or equal, less than, less than or equal, equal and not equal operators.

Assignements

Syntax
AssignementExpression :
     Expression := Expression

The expression on the left side of the operator must be assignable to (a lvalue). It must also not have been declared as const.

String Operations

Syntax
StringOpExpression :
     Expression @ Expression

This operator represents the string concatenation.