parrotcode: Python Class | |
Contents | Dynamic PMCs |
classes/pyclass.pmc - Python Class
These are the vtable functions for the Python Class base class (i.e., methods you would expect to see on python objects).
void destroy()
PMC *find_method(STRING *method_name)
*method_name
and returns it.PMC *get_attr_str(STRING *name)
name
.PMC *get_class()
INTVAL cmp(PMC *value)
*value
.INTVAL get_integer()
PMC *get_iter()
STRING *get_repr()
STRING *get_string()
INTVAL hash()
void *invoke(void *next)
STRING *name()
STRING* name() {
return VTABLE_name(INTERP, VTABLE_get_class(INTERP, SELF));
}
STRING *"__repr__"(PMC *self)
METHOD PMC* __repr__(PMC *self) {
PMC *res = pmc_new(INTERP, PyBuiltin_PyString);
STRING *repr;
repr = string_from_cstring(INTERP, "<", 0);
repr = string_append(INTERP, repr,
VTABLE_name(INTERP, VTABLE_get_class(INTERP, SELF)), 0);
repr = string_append(INTERP, repr,
const_string(INTERP, " instance at "), 0);
repr = string_append(INTERP, repr,
Parrot_sprintf_c(INTERP, "%#x", (INTVAL) SELF), 0);
repr = string_append(INTERP, repr,
const_string(INTERP, ">"), 0);
VTABLE_set_string_native(INTERP, res, repr);
return res;
}
|