| parrotcode: Scalar Abstract Superclass | |
| Contents | PMCs |

src/pmc/scalar.pmc - Scalar Abstract Superclass

These are the vtable functions for the scalar base PMC class

void morph(INTVAL type)void assign_pmc(PMC *value)*value,
calling the appropriate set_* method according to the type of *value.PMC *clone()
PMC *subtract(PMC *value, PMC *dest)void add(PMC *value, PMC *dest)void add_int(INTVAL value, PMC *dest)void add_float(FLOATVAL value, PMC *dest)value to the number and returns the result in *dest.
If dest is NULL it's created.void i_add(PMC *value)void i_add(INTVAL value)void i_add(FLOATVAL value)value to SELF inplace.PMC *subtract(PMC *value, PMC *dest)PMC *subtract_int(INTVAL value, PMC *dest)PMC *subtract_float(FLOATVAL value, PMC *dest)value from the number and returns the result in *dest.
If dest doesn't exist a new Float is created.void i_subtract(PMC *value)void i_subtract_int(INTVAL value)void i_subtract_float(FLOATVAL value)value from SELF inplace.PMC *multiply(PMC *value, PMC *dest)PMC *multiply_int(INTVAL value, PMC *dest)PMC *multiply_float(FLOATVAL value, PMC *dest)value and returns the result in *dest.PMC *divide(PMC *value, PMC *dest)PMC *divide_int(INTVAL value, PMC *dest)PMC *divide_float(FLOATVAL value, PMC *dest)value and returns the result in *dest.void i_divide(PMC *value)void i_divide_int(INTVAL value)void i_divide_float(FLOATVAL value)SELF by value inplace.PMC *floor_divide(PMC *value, PMC *dest)PMC *floor_divide_int(INTVAL value, PMC *dest)PMC *floor_divide_float(FLOATVAL value, PMC *dest)value and returns the result in *dest.void i_floor_divide(PMC *value)void i_floor_divide_int(INTVAL value)void i_floor_divide_float(FLOATVAL value)SELF by value inplace.PMC *modulus(PMC *value, PMC *dest)PMC *modulus(INTVAL value, PMC *dest)PMC *modulus(FLOATVAL value, PMC *dest)mod value and returns the result in dest.
See also ops/math.ops.void i_modulus(PMC *value)void i_modulus(INTVAL value)void i_modulus(FLOATVAL value)PMC *pow(PMC *value, PMC *dest)PMC *pow_int(INTVAL value, PMC *dest)PMC *pow_float(FLOATVAL value, PMC *dest)SELF pow value and returns the result in dest.
See also ops/math.ops.void i_pow(PMC *value)void i_pow_int(INTVAL value)void i_pow_float(FLOATVAL value)PMC *neg(PMC *dest)void i_neg()dest to the negated value of SELF.
PMC *bitwise_or(PMC *value, PMC *dest)PMC *bitwise_or_int(INTVAL value, PMC *dest)*dest the bitwise OR of the scalar and value.void i_bitwise_or(PMC *value)void i_bitwise_or_int(INTVAL value)PMC *bitwise_and(PMC *value, PMC *dest)PMC *bitwise_and_int(INTVAL value, PMC *dest)*dest the bitwise AND of the scalar and value.void i_bitwise_and(PMC *value)void i_bitwise_and_int(INTVAL value)void bitwise_xor(PMC *value, PMC *dest)void bitwise_xor_int(INTVAL value, PMC *dest)*dest the bitwise XOR of the scalar and *value.void i_bitwise_xor(PMC *value)void i_bitwise_xor_int(INTVAL value)PMC *bitwise_not(PMC *dest)void i_bitwise_not()*dest the bitwise negation of the scalar and value.PMC *bitwise_shr(PMC *value, PMC *dest)PMC *bitwise_shr_int(INTVAL value, PMC *dest)*dest the arithmetic shift right of the scalar by value.
A negative value shifts left.
The destination may become a BigInt as a result (but only if the shift amount is less than zero).void i_bitwise_shr(PMC *value)void i_bitwise_shr_int(INTVAL value)value shifts left.
SELF may become a BigInt as a result (but only if the shift amount is less than zero).PMC *bitwise_lsr(PMC *value, PMC *dest)PMC *bitwise_lsr_int(INTVAL value, PMC *dest)*dest the logical shift right of the scalar by *value.void i_bitwise_lsr(PMC *value)void i_bitwise_lsr_int(INTVAL value)PMC *bitwise_shl(PMC *value, PMC *dest)PMC *bitwise_shl_int(INTVAL value, PMC *dest)*dest the shift left of the scalar by *value.
A negative value shifts right.
The destination may become a BigInt as a result.void i_bitwise_shl(PMC *value)void i_bitwise_shl_int(INTVAL value)value shifts right.
SELF may become a BigInt as a result.
PMC *concatenate(PMC *value, PMC *dest)PMC *concatenate_str(STRING *value, PMC *dest)*dest the result of concatenating the scalar and *value.void concatenate(PMC *value)void concatenate_str(STRING *value)value in place.PMC *repeat(PMC *value, PMC *dest)PMC *repeat_int(INTVAL value, PMC *dest)*dest the result of repeating the scalar value times.void i_repeat(PMC *value)void i_repeat_int(INTVAL value)SELF in place value times.
INTVAL cmp_num(PMC *value)*value.INTVAL cmp_string(PMC *value)*value.INTVAL is_equal(PMC *value)*value.INTVAL is_equal_num(PMC *value)*value.INTVAL is_equal_string(PMC *value)*value.
PMC *logical_or(PMC *value, PMC *dest)OR of SELF and value,
i.e.
returns SELF it is true or value: dest is alway ignored. PMC *logical_and(PMC *value, PMC *dest)AND of SELF and value,
i.e.
returns value if SELF is true else SELF.
dest is always ignored.PMC *logical_xor(PMC *value, PMC *dest)XOR of SELF and *value.PMC *logical_not(PMC *dest)void i_logical_not()*dest the result of the logical negation of the scalar and *value.INTVAL defined()STRING *substr_str(INTVAL offset, INTVAL length)length of the scalar starting at offset.void share_ro()
|
|
|