| parrotcode: Parrot Interpreter | |
| Contents | PMCs | 

src/pmc/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)
|  |   |