#ifndef __Machine_h #define __Machine_h #include "Symbol.h" #include "CompiledCode.h" #include "Frame.h" #include "Continuation.h" #include "hash.h" #include "state.h" @interface Machine: SchemeObject { state_t state; SchemeObject *value; hashtab_t globals; SchemeObject *all_globals; } - (void) loadCode: (CompiledCode *) code; - (SchemeObject *) run; - (void) addGlobal: (Symbol *) sym value: (SchemeObject *) val; - (void) environment: (Frame *) e; - (void) continuation: (Continuation *) c; - (Continuation *) continuation; - (void) value: (SchemeObject *) o; - (SchemeObject *) stack; - (void) stack: (SchemeObject *) o; - (state_t *) state; - (void) state: (state_t *) st; - (void) reset; - (void) procedure: (Procedure *) pr; @end #endif //__Machine_h