[Next] [Previous] [Top]
"RTL Grammar"
These are the unary and binary operators currently defined. For many operators, versions exist for different operand types, such as +_int, +_unsigned_int, +_int8, +_unsigned_int8. Such families of operators are notated in the table using brace-delimited lists over the possible types, such as +_{int,unsigned_int,int8,unsigned_int8}.
unop name | description |
|---|---|
| {integer, 8-byte integer, float, double} negation |
| {integer, 8-byte integer} bitwise complement |
| extract the number of elements of an array, vector, or string object. |
| convert an untagged machine {integer, integer, float, double} into a tagged Cecil {integer, character, float, double} OOP |
| inverse of |
| returns the |
binop name | description |
|---|---|
| Add two {signed integers, unsigned integers, signed 8-byte integers, unsigned 8-byte-integers} |
| Subtract ... |
| Multiply ... |
| Divide ... |
| Modulus ... |
| Bitwise and two {signed integers, unsigned integers, 8-byte-integers, unsigned 8-byte integers} |
| ... or ... |
| ... xor ... |
| ... xnor ... |
| bitwise left shift one {signed integer, unsigned integer, 8-byte-integer, unsigned 8-byte integer} by another |
| ... arithmetic right shift ... |
| ... logical right shift ... |
| Add two values, one of which is assumed to be a pointer and the other an integer byte count, to produce a new pointer |
| Subtract an integer byte count from a pointer to produce a new pointer |
| Subtract two pointers to produce an integer difference, in bytes |
| Add two {floats, doubles} |
| Subtract ... |
| Multiply ... |
| Divide ... |
| Test whether two {signed integers, unsigned integers, 8-byte-integers, unsigned 8-byte integers} are equal |
| ... not equal |
| Test whether one {signed integer, unsigned integer, 8-byte-integer, unsigned 8-byte integer} is greater than another |
| ... greater than or equal to ... |
| ... less than ... |
| ... less than or equal to ... |
| Test whether two pointers are equal |
| ... not equal |
| Test whether one pointer is greater than another |
| ... greater than or equal to ... |
| ... less than ... |
| ... less than or equal to ... |
| Test whether two {floats, doubles} are equal |
| ... not equal |
| Test whether one {float, double} is greater than another |
| ... greater than or equal to ... |
| ... less than ... |
| ... less than or equal to ... |