Exemple #1
0
void TrArray_init(VM) {
  OBJ c = TR_INIT_CORE_CLASS(Array, Object);
  tr_def(c, "length", TrArray_length, 0);
  tr_def(c, "size", TrArray_length, 0);
  tr_def(c, "<<", TrArray_push, 1);
  tr_def(c, "[]", TrArray_at, 1);
  tr_def(c, "[]=", TrArray_set, 2);
}
Exemple #2
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);
}
Exemple #3
0
void TrPrimitive_init(VM) {
  OBJ nilc = TR_INIT_CLASS(NilClass, Object);
  OBJ truec = TR_INIT_CLASS(TrueClass, Object);
  OBJ falsec = TR_INIT_CLASS(FalseClass, Object);
  
  vm->primitives[TR_NIL] = TrClass_allocate(vm, nilc);
  vm->primitives[TR_TRUE] = TrClass_allocate(vm, truec);
  vm->primitives[TR_FALSE] = TrClass_allocate(vm, falsec);
  
  tr_def(nilc, "to_s", TrNil_to_s, 0);
  tr_def(truec, "to_s", TrTrue_to_s, 0);
  tr_def(falsec, "to_s", TrFalse_to_s, 0);
}
Exemple #4
0
void TrRange_init(VM) {
  OBJ c = TR_INIT_CORE_CLASS(Range, Object);
  tr_def(c, "first", TrRange_first, 0);
  tr_def(c, "last", TrRange_last, 0);
  tr_def(c, "exclude_end?", TrRange_exclude_end, 0);
}