parrotcode: Parrot Interpreter | |
Contents | PMCs |
src/classes/parrotinterpreter.pmc - Parrot Interpreter
These are the vtable functions for the ParrotInterpreter base class
getinterp P0
set P1, P0[.IGLOBALS_*] # access interpreter globals
set I0, P0[x] # interpinfo I0, x
set I0, P0[-1] # get interpreter flags
set P0[-1], x # set flags on interpreter
# NOTE: this doesn't restart
void clone_interpreter(PMC *dest, PMC *self)
static void create_interp(PMC *self, Parrot_Interp parent)
parent
.void class_init()
void init()
void init_pmc(PMC *parent)
*parent
.void set_pointer(void *value)
struct_val
to *value
.void *get_pointer()
struct_val
.INTVAL get_integer()
void *invoke(void *next)
PMC *get_pmc_keyed_int(INTVAL key)
key
.PMC *get_pmc_keyed(PMC *key)
key
can be: "sub" ... return Sub object of this subroutine
"continuation" ... return Continuation PMC
"lexpad" ... return lexpad PMC for this sub
"outer" ... return outer sub of this closure
"<item>"; level ... same for caller <level>
"outer"; "<item>" ... same for outer level 1
"outer"; "<item>"; level ... same for outer <level>
"globals" ... return global stash
INTVAL get_integer_keyed_int(INTVAL key)
key
.void set_integer_keyed_int(INTVAL key, INTVAL val)
key
to val
.PMC *clone()
Parrot_clone()
and use freeze/thaw.INTVAL is_equal(PMC *val)
*val
.void visit(visit_info *info)
*info
is the visit info, (see include/parrot/pmc_freeze.h).void freeze(visit_info *info)
void thaw(visit_info *info)
void thawfinish(visit_info *info)
|