RTL Grammar
| unop_op name | description |
|---|---|
| unary_-_int | integer negation |
| unary_-_float | float negation |
| unary_-_double | double negation |
| ~_int | bitwise complement |
| num_elems_int | extract the number of elements of an array, vector, or string object. |
| box_int | convert an untagged machine integer into a tagged Cecil integer OOP |
| box_float | convert an untagged machine float into a boxed, heap-allocated Cecil float OOP |
| box_double | convert an untagged machine double into a boxed, heap-allocated Cecil double OOP |
| box_char | convert an untagged machine integer into a boxed, heap-allocated Cecil char OOP |
| unbox_int | inverse of box_int |
| unbox_float | inverse of box_float |
| unbox_double | inverse of box_double |
| unbox_char | inverse of box_char |
| map_of | returns the CecilMap* pointer representing the run-time class of the argument;used as the argument to inherits_from |
| binop_op name | description |
|---|---|
| +_int | Add two signed integers |
| -_int | Subtract ... |
| *_int | Multiply ... |
| /_int | Divide ... |
| %_int | Modulus ... |
| &_int | Bitwise and two integers |
| |_int | ... or ... |
| ^_int | ... xor ... |
| xnor_int | ... xnor ... |
| <<_int | bitwise left shift one integer by another |
| >>_int | ... arithmetic right shift ... |
| >>_logical_int | ... logical right shift ... |
| +_unsigned_int | Add two unsigned integers |
| -_unsigned_int | Subtract ... |
| *_unsigned_int | Multiply ... |
| /_unsigned_int | Divide ... |
| %_unsigned_int | Modulus ... |
| &_unsigned_int | Bitwise and two unsigned integers |
| |_unsigned_int | ... or ... |
| ^_unsigned_int | ... xor ... |
| xnor_unsigned_int | ... xnor ... |
| <<_unsigned_int | bitwise left shift one unsigned integer by another |
| >>_unsigned_int | ... (logical) right shift ... |
| +_ptr | Add two values, one of which is assumed to be a pointer and the other an integer byte count, to produce a new pointer |
| -_ptr | Subtract an integer byte count from a pointer to produce a new pointer |
| -_ptrdiff | Subtract two pointers to produce an integer difference, in bytes |
| +_float | Add two floats |
| -_float | Subtract ... |
| *_float | Multiply ... |
| /_float | Divide ... |
| +_double | Add two doubles |
| -_double | Subtract ... |
| *_double | Multiply ... |
| /_double | Divide ... |
| =_int_log | Test whether two integers are equal |
| !=_int_log | ... not equal |
| >_int_log | Test whether one signed integer is greater than another |
| >=_int_log | ... greater than or equal to ... |
| <_int_log | ... less than ... |
| <=_int_log | ... less than or equal to ... |
| >_unsigned_log | Test whether one unsigned integer is greater than another |
| >=_unsigned_log | ... greater than or equal to ... |
| <_unsigned_log | ... less than ... |
| <=_unsigned_log | ... less than or equal to ... |
| =_ptr_log | Test whether two pointers are equal |
| !=_ptr_log | ... not equal |
| >_ptr_log | Test whether one pointer is greater than another |
| >=_ptr_log | ... greater than or equal to ... |
| <_ptr_log | ... less than ... |
| <=_ptr_log | ... less than or equal to ... |
| =_float_log | Test whether two floats are equal |
| !=_float_log | ... not equal |
| >_float_log | Test whether one float is greater than another |
| >=_float_log | ... greater than or equal to ... |
| <_float_log | ... less than ... |
| <=_float_log | ... less than or equal to ... |
| =_double_log | Test whether two doubles are equal |
| !=_double_log | ... not equal |
| >_double_log | Test whether one double is greater than another |
| >=_double_log | ... greater than or equal to ... |
| <_double_log | ... less than ... |
| <=_double_log | ... less than or equal to ... |
Generated with Harlequin WebMaker