NAME
src/pmc/default.pmc - default PMC
DESCRIPTION
These are the vtable functions for the default PMC class, the abstract root class.
All methods which are not defined here get a default implementation generated from src/vtable.tbl by tools/build/pmc2c.pl.
Functions
static STRING * caller(PARROT_INTERP, PMC *pmc)
Returns a C string for the name of static void cant_do_method(PARROT_INTERP, PMC *pmc, int index)
Throws an exception "$methname() not implemented in class '$class'",
used by all unimplemented messages.
static void cant_do_write_method(PARROT_INTERP, PMC *pmc, int index)
Throws an exception "$methname() on read-only instance of '$class'",
used by all updating messages on read-only instances.
*pmc
.
Methods
void init()
Does nothing.
void init_pmc(PMC *initializer)
With a null void init_int(INTVAL initvalue)
Calls void destroy()
Does nothing.
PMC *instantiate(PMC *init)
Default fallback.
Creates a new PMC of the type of the class SELF and calls init().
void mark()
Panics with a "no custom mark routine defined" error message.
INTVAL type()
Returns the PMC's type.
STRING *name()
Returns the name of the PMC.
void PMC *add_attribute(STRING *name, PMC *type)
Throws an exception,
as you can only add an attribute to something Class-y or Role-y.
PMC *get_namespace
Return the namespace for this PMC.
PMC *find_method(STRING *method_name)
Looks up the method for void add_method(STRING *method_name, PMC *sub)
Store the method as a global in the namespace of this class.
INTVAL get_integer_keyed_int(INTVAL key)
Converts FLOATVAL get_number_keyed_int(INTVAL key)
Converts STRING *get_string_keyed_int(INTVAL key)
Converts PMC *get_pmc_keyed_int(INTVAL key)
Converts INTVAL is_same(PMC *value)
Returns whether the PMC is the same PMC as void assign_pmc(PMC *value)
void assign_string_native(PMC *value)
Defaults fall back to void morph(PMC* type)
Changes the PMC to a PMC of a new type
void set_integer_keyed_int(INTVAL key, INTVAL value)
Converts void set_number_keyed_int(INTVAL key, FLOATVAL value)
Converts void set_string_keyed_int(INTVAL key, STRING *string)
Converts void set_pmc_keyed_int(INTVAL key, PMC *value)
Converts INTVAL hashvalue()
Calculate hashvalue for PMC.
Default behaviour stringify and use string.
INTVAL is_equal(PMC *value)
Default fallback.
Performs a multiple dispatch call for 'is_equal'.
INTVAL is_equal_num(PMC *value)
Default fallback.
Performs a multiple dispatch call for 'is_equal_num'.
INTVAL is_equal_string(PMC *value)
Default fallback.
Performs a multiple dispatch call for 'is_equal'.
INTVAL exists_keyed_int(INTVAL key)
Converts INTVAL defined()
Returns true.
INTVAL defined_keyed_int(INTVAL key)
Converts void delete_keyed_int(INTVAL key)
Converts INTVAL does(STRING *interface_name)
Reports whether the PMC "does" perform INTVAL does_pmc(PMC *role)
Reports whether the PMC "does" the INTVAL isa_pmc(PMC *_class)
Reports whether the PMC "isa" INTVAL isa(STRING *_class)
Reports whether the PMC "isa" PMC *inspect_str(STRING *what)
Provides introspection of a specific piece of information about the PMC.
PMC *inspect()
Returns a Hash describing the class,
with key/value pairs as described in inspect_str.
PMC *get_class()
Returns the class or PMCProxy of the type of the PMC.
PMC *get_attr_keyed(PMC *key, STRING *name)
Default version of keyed attribute lookups.
Discards the key and does a lookup by the string name passed in.
void set_attr_keyed(PMC *key, STRING *name, PMC *value)
Default version of keyed attribute set.
Discards the key and does a set by the string name passed in.
void add_parent(PMC *parent)
Add class void visit(PMC *info)
Used by GC to mark the PMC.
PMC* clone()
Clones this PMC.
By default,
this just does a freeze and thaw.
void freeze(PMC *info)
Does nothing.
void thaw(PMC *info)
Initializes the PMC during unarchiving.
void thawfinish(PMC *info)
Does nothing.
PMC *add(PMC *value, PMC *dest)
Default fallback.
Performs a multiple dispatch call for 'add'.
PMC *add_int(INTVAL value, PMC *dest)
Default fallback.
Performs a multiple dispatch call for 'add_int'.
PMC *add_float(FLOATVAL value, PMC *dest)
Default fallback.
Performs a multiple dispatch call for 'add_float'.
void i_add(PMC *value)
Default fallback.
Performs a multiple dispatch call for 'i_add'.
void i_add_int(INTVAL value)
Default fallback.
Performs a multiple dispatch call for 'i_add_int'.
void i_add_float(FLOATVAL value)
Default fallback.
Performs a multiple dispatch call for 'i_add_float'.
PMC *subtract(PMC *value, PMC *dest)
Default fallback.
Performs a multiple dispatch call for 'subtract'.
PMC *subtract_int(INTVAL value, PMC *dest)
Default fallback.
Performs a multiple dispatch call for 'subtract_int'.
PMC *subtract_float(FLOATVAL value, PMC *dest)
Default fallback.
Performs a multiple dispatch call for 'subtract_float'.
void i_subtract(PMC *value)
Default fallback.
Performs a multiple dispatch call for 'i_subtract'.
void i_subtract_int(INTVAL value)
Default fallback.
Performs a multiple dispatch call for 'i_subtract_int'.
void i_subtract_float(FLOATVAL value)
Default fallback.
Performs a multiple dispatch call for 'i_subtract_float'.
PMC *multiply(PMC *value, PMC *dest)
Default fallback.
Performs a multiple dispatch call for 'multiply'.
PMC *multiply_int(INTVAL value, PMC *dest)
Default fallback.
Performs a multiple dispatch call for 'multiply_int'.
PMC *multiply_float(FLOATVAL value, PMC *dest)
Default fallback.
Performs a multiple dispatch call for 'multiply_float'.
void i_multiply(PMC *value)
Default fallback.
Performs a multiple dispatch call for 'i_multiply'.
void i_multiply_int(INTVAL value)
Default fallback.
Performs a multiple dispatch call for 'i_multiply_int'.
void i_multiply_float(FLOATVAL value)
Default fallback.
Performs a multiple dispatch call for 'i_multiply_float'.
PMC *divide(PMC *value, PMC *dest)
Default fallback.
Performs a multiple dispatch call for 'divide'.
PMC *divide_int(INTVAL value, PMC *dest)
Default fallback.
Performs a multiple dispatch call for 'divide_int'.
PMC *divide_float(FLOATVAL value, PMC *dest)
Default fallback.
Performs a multiple dispatch call for 'divide_float'.
void i_divide(PMC *value)
Default fallback.
Performs a multiple dispatch call for 'i_divide'.
void i_divide_int(INTVAL value)
Default fallback.
Performs a multiple dispatch call for 'i_divide_int'.
void i_divide_float(FLOATVAL value)
Default fallback.
Performs a multiple dispatch call for 'i_divide_float'.
PMC *floor_divide(PMC *value, PMC *dest)
Default fallback.
Performs a multiple dispatch call for 'floor_divide'.
PMC *floor_divide_int(INTVAL value, PMC *dest)
Default fallback.
Performs a multiple dispatch call for 'floor_divide_int'.
PMC *floor_divide_float(FLOATVAL value, PMC *dest)
Default fallback.
Performs a multiple dispatch call for 'floor_divide_float'.
void i_floor_divide(PMC *value)
Default fallback.
Performs a multiple dispatch call for 'i_floor_divide'.
void i_floor_divide_int(INTVAL value)
Default fallback.
Performs a multiple dispatch call for 'i_floor_divide_int'.
void i_floor_divide_float(FLOATVAL value)
Default fallback.
Performs a multiple dispatch call for 'i_floor_divide_float'.
PMC *modulus(PMC *value, PMC *dest)
Default fallback.
Performs a multiple dispatch call for 'modulus'.
PMC *modulus_int(INTVAL value, PMC *dest)
Default fallback.
Performs a multiple dispatch call for 'modulus_int'.
PMC *modulus_float(FLOATVAL value, PMC *dest)
Default fallback.
Performs a multiple dispatch call for 'modulus_float'.
void i_modulus(PMC *value)
Default fallback.
Performs a multiple dispatch call for 'i_modulus'.
void i_modulus_int(INTVAL value)
Default fallback.
Performs a multiple dispatch call for 'i_modulus_int'.
void i_modulus_float(FLOATVAL value)
Default fallback.
Performs a multiple dispatch call for 'i_modulus_float'.
INTVAL cmp(PMC *value)
Default fallback.
Performs a multiple dispatch call for 'cmp'.
INTVAL cmp_num(PMC *value)
Default fallback.
Performs a multiple dispatch call for 'cmp_num'.
INTVAL cmp_string(PMC *value)
Default fallback.
Performs a multiple dispatch call for 'cmp_string'.
PMC *cmp_pmc(PMC *value)
Default fallback.
Performs a multiple dispatch call for 'cmp_pmc'.
PMC *concatenate(PMC *value, PMC *dest)
Default fallback.
Performs a multiple dispatch call for 'concatenate'.
PMC *concatenate_str(STRING *value, PMC *dest)
Default fallback.
Performs a multiple dispatch call for 'concatenate_str'.
void i_concatenate(PMC *value)
Default fallback.
Performs a multiple dispatch call for 'i_concatenate'.
void i_concatenate_str(STRING *value)
Default fallback.
Performs a multiple dispatch call for 'i_concatenate_str'.
PMC *repeat(PMC *value, PMC *dest)
Default fallback.
Performs a multiple dispatch call for 'repeat'.
PMC *repeat_int(INTVAL value, PMC *dest)
Default fallback.
Performs a multiple dispatch call for 'repeat_int'.
void i_repeat(PMC *value)
Default fallback.
Performs a multiple dispatch call for 'i_repeat'.
void i_repeat_int(INTVAL value)
Default fallback.
Performs a multiple dispatch call for 'i_repeat_int'.
initializer
,
calls init()
,
else throws an exception.
init()
and set_integer_native(initvalue)
.
Default implementation to allow more usages of init_int without having to implement it everywhere.
*method_name
and returns it.
If no method is found then NULL
is returned.
key
to a PMC key and returns the result of calling get_integer_keyed()
with it.
key
to a PMC key and returns the result of calling get_number_keyed()
with it.
key
to a PMC key and returns the result of calling get_string_keyed()
with it.
key
to a PMC key and returns the result of calling get_pmc_keyed()
with it.
value
(whether they're the same pointer).
set_pmc
and set_string_native
.
key
to a PMC key and calls set_integer_keyed()
with it and value
.
key
to a PMC key and calls set_number_keyed()
with it and value
.
key
to a PMC key and calls set_string_keyed()
with it and value
.
key
to a PMC key and calls set_pmc_keyed()
with it and value
.
key
to a PMC key and returns the result of calling exists_keyed()
with it.
key
to a PMC key and returns the result of calling defined_keyed()
with it.
key
to a PMC key and calls delete_keyed()
with it.
interface_name
.
If the interface interface_name
is found in the PMC's interface list,
true (1) is returned; otherwise,
false (0) is returned.
role
.
_class
.
If the class _class
is found in the PMC's class hierarchy,
true (1) is returned; otherwise,
false (0) is returned.
_class
.
If the class _class
is found in the PMC's class hierarchy,
true (1) is returned; otherwise,
false (0) is returned.
parent
to the list of our parents.