NAME ^

src/classes/scalar.pmc - Scalar Abstract Superclass

DESCRIPTION ^

These are the vtable functions for the scalar base PMC class

Methods ^

void morph(INTVAL type)

Morphs the scalar to the specified type.

void assign_pmc(PMC *value)

Sets the PMC *value, calling the appropriate set_* method according to the type of *value.

PMC *clone()

Creates and returns a clone of the scalar.

Mathematical Methods ^

/*

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)

Adds 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)

Adds value to SELF inplace.

PMC *subtract(PMC *value, PMC *dest)

PMC *subtract_int(INTVAL value, PMC *dest)

PMC *subtract_float(FLOATVAL value, PMC *dest)

Subtracts 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)

Subtracts value from SELF inplace.

PMC *multiply(PMC *value, PMC *dest)

PMC *multiply_int(INTVAL value, PMC *dest)

PMC *multiply_float(FLOATVAL value, PMC *dest)

Multiplies the number by 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)

Divides the number by value and returns the result in *dest.

void i_divide(PMC *value)

void i_divide_int(INTVAL value)

void i_divide_float(FLOATVAL value)

Divides 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)

Divides the number by 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)

Divides SELF by value inplace.

PMC *cmodulus(PMC *value, PMC *dest)

PMC *cmodulus(INTVAL value, PMC *dest)

PMC *cmodulus(FLOATVAL value, PMC *dest)

Calculates the value of the number C-style mod value and returns the result in dest.

void i_cmodulus(PMC *value)

void i_cmodulus(INTVAL value)

void i_cmodulus(FLOATVAL value)

Calculates the value of the number C-style mod value and returns the result in dest.

PMC *modulus(PMC *value, PMC *dest)

PMC *modulus(INTVAL value, PMC *dest)

PMC *modulus(FLOATVAL value, PMC *dest)

Calculates the value of corrected 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)

Calculates modulus inplace

PMC *pow(PMC *value, PMC *dest)

PMC *pow_int(INTVAL value, PMC *dest)

PMC *pow_float(FLOATVAL value, PMC *dest)

Calculates 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)

Calculates pow inplace

PMC *neg(PMC *dest)

void i_neg()

Set dest to the negated value of SELF.

Bitwise Methods ^

PMC *bitwise_or(PMC *value, PMC *dest)

PMC *bitwise_or_int(INTVAL value, PMC *dest)

Returns in *dest the bitwise OR of the scalar and value.

void i_bitwise_or(PMC *value)

void i_bitwise_or_int(INTVAL value)

Inplace bitwise or.

PMC *bitwise_and(PMC *value, PMC *dest)

PMC *bitwise_and_int(INTVAL value, PMC *dest)

Returns in *dest the bitwise AND of the scalar and value.

void i_bitwise_and(PMC *value)

void i_bitwise_and_int(INTVAL value)

Inplace bitwise and.

void bitwise_xor(PMC *value, PMC *dest)

void bitwise_xor_int(INTVAL value, PMC *dest)

Returns in *dest the bitwise XOR of the scalar and *value.

void i_bitwise_xor(PMC *value)

void i_bitwise_xor_int(INTVAL value)

Inplace bitwise and.

PMC *bitwise_not(PMC *dest)

void i_bitwise_not()

Returns in *dest the bitwise negation of the scalar and value.

PMC *bitwise_shr(PMC *value, PMC *dest)

PMC *bitwise_shr_int(INTVAL value, PMC *dest)

Returns in *dest the arithmetic shift right of the scalar by value.

void i_bitwise_shr(PMC *value)

void i_bitwise_shr_int(INTVAL value)

Inplace shift right.

PMC *bitwise_lsr(PMC *value, PMC *dest)

PMC *bitwise_lsr_int(INTVAL value, PMC *dest)

Returns in *dest the logical shift right of the scalar by *value.

void i_bitwise_lsr(PMC *value)

void i_bitwise_lsr_int(INTVAL value)

Inplace shift right.

PMC *bitwise_shl(PMC *value, PMC *dest)

PMC *bitwise_shl_int(INTVAL value, PMC *dest)

Returns in *dest the shift left of the scalar by *value.

void i_bitwise_shl(PMC *value)

void i_bitwise_shl_int(INTVAL value)

Inplace shift left.

String Methods ^

PMC *concatenate(PMC *value, PMC *dest)

PMC *concatenate_str(STRING *value, PMC *dest)

Returns in *dest the result of concatenating the scalar and *value.

void concatenate(PMC *value)

void concatenate_str(STRING *value)

Concatenate the string value in place.

PMC *repeat(PMC *value, PMC *dest)

PMC *repeat_int(INTVAL value, PMC *dest)

Returns in *dest the result of repeating the scalar value times.

void i_repeat(PMC *value)

void i_repeat_int(INTVAL value)

Repeat the string SELF in place value times.

Compare Methods ^

INTVAL cmp_num(PMC *value)

Returns the result of comparing the floating-point values of the scalar and *value.

INTVAL cmp_string(PMC *value)

Returns the result of comparing the string values of the scalar and *value.

Logical Methods ^

PMC *logical_or(PMC *value, PMC *dest)

Returns the result of the logical 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)

Returns the result of the logical 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)

Returns the result of the logical XOR of SELF and *value.

PMC *logical_not(PMC *dest)

void i_logical_not()

Returns in *dest the result of the logical negation of the scalar and *value.

INTVAL defined()

Always returns true.

STRING *substr_str(INTVAL offset, INTVAL length)

Returns the substring of length length of the scalar starting at offset.

POD ERRORS ^

Hey! The above document had some coding errors, which are explained below:

Around line 106:

You can't have =items (as at line 111) unless the first thing after the =over is an =item


parrot