Esempio n. 1
0
void TrKernel_init(VM) {
  OBJ m = tr_defmodule("Kernel");
  TrModule_include(vm, TR_CORE_CLASS(Object), m);
  tr_def(m, "puts", TrKernel_puts, -1);
  tr_def(m, "eval", TrKernel_eval, -1);
  tr_def(m, "load", TrKernel_load, 1);
  tr_def(m, "binding", TrKernel_binding, 0);
  tr_def(m, "raise", TrKernel_raise, -1);
}
Esempio n. 2
0
OBJ TrVM::defclass(OBJ name, TrBlock *b, OBJ super)
{
   TrVM *vm = this;
   
   OBJ mod = TrObject_const_get(this, frame->klass, name);
   
   if (!mod) /* new module/class */
   {
      mod = (OBJ)new TrClass(this, name, super ? super : TR_CORE_CLASS(Object));
      TrObject_const_set(this, frame->klass, name, mod);
   }
   OBJ ret = TR_NIL;
   TR_WITH_FRAME(mod, mod, 0,
   {
      ret = vm->interpret(frame, b, 0, 0, 0, 0);
   });