root/src/moplib.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. call_fallback_proc
  2. moplib__25ensure_generic_function
  3. moplib__25make_next_method
  4. moplib__25method_code
  5. moplib__25start_class_redefinitionX
  6. moplib__25commit_class_redefinitionX
  7. moplib__25check_class_binding
  8. moplib__25replace_class_bindingX
  9. moplib__25add_direct_subclassX
  10. moplib__25delete_direct_subclassX
  11. moplib__25add_direct_methodX
  12. moplib__25delete_direct_methodX
  13. moplib__25transplant_instanceX
  14. moplib_class_of
  15. moplib_current_class_of
  16. moplib_is_aP
  17. moplib_slot_ref
  18. moplib_slot_setX
  19. moplib_slot_boundP
  20. moplib_slot_ref_using_accessor
  21. moplib_slot_bound_using_accessorP
  22. moplib_slot_set_using_accessorX
  23. moplib_slot_initialize_using_accessorX
  24. moplib_instance_slot_ref
  25. moplib_instance_slot_set
  26. moplib_touch_instanceX
  27. Scm_Init_moplib

   1 /* Generated by genstub.  Do not edit. */
   2 #define LIBGAUCHE_BODY
   3 #include <gauche.h>
   4 #if defined(__CYGWIN__) || defined(__MINGW32__)
   5 #define SCM_CGEN_CONST /*empty*/
   6 #else
   7 #define SCM_CGEN_CONST const
   8 #endif
   9 
  10 #include <gauche/class.h>
  11 #include <gauche/vminsn.h>
  12 
  13 static ScmObj call_fallback_proc(ScmObj *args, int nargs, ScmGeneric *gf)
  14  {
  15   ScmObj proc = SCM_OBJ(gf->data);
  16   ScmObj arglist = Scm_ArrayToList(args, nargs);
  17   SCM_RETURN(Scm_VMApply(proc, arglist));
  18  }
  19 
  20 static ScmObj moplib__25ensure_generic_function(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
  21 {
  22   ScmObj name_scm;
  23   ScmSymbol* name;
  24   ScmObj module_scm;
  25   ScmModule* module;
  26   SCM_ENTER_SUBR("%ensure-generic-function");
  27   name_scm = SCM_ARGREF(0);
  28   if (!SCM_SYMBOLP(name_scm)) Scm_Error("symbol required, but got %S", name_scm);
  29   name = SCM_SYMBOL(name_scm);
  30   module_scm = SCM_ARGREF(1);
  31   if (!SCM_MODULEP(module_scm)) Scm_Error("module required, but got %S", module_scm);
  32   module = SCM_MODULE(module_scm);
  33   {
  34   ScmObj val = Scm_SymbolValue(module, name);
  35   if (!Scm_TypeP(val, SCM_CLASS_GENERIC)) {
  36     if (SCM_SUBRP(val) || SCM_CLOSUREP(val)) {
  37       val = Scm_MakeBaseGeneric(SCM_OBJ(name), call_fallback_proc, val);
  38     } else {
  39       val = Scm_MakeBaseGeneric(SCM_OBJ(name), NULL, NULL);
  40     }
  41   }
  42   Scm_Define(module, name, val);
  43   SCM_RETURN(val);
  44   }
  45 }
  46 
  47 static SCM_DEFINE_STRING_CONST(moplib__25ensure_generic_function__NAME, "%ensure-generic-function", 24, 24);
  48 static SCM_DEFINE_SUBR(moplib__25ensure_generic_function__STUB, 2, 0, SCM_OBJ(&moplib__25ensure_generic_function__NAME), moplib__25ensure_generic_function, NULL, NULL);
  49 
  50 static ScmObj moplib__25make_next_method(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
  51 {
  52   ScmObj gf_scm;
  53   ScmObj gf;
  54   ScmObj methods_scm;
  55   ScmObj methods;
  56   ScmObj args_scm;
  57   ScmObj args;
  58   SCM_ENTER_SUBR("%make-next-method");
  59   gf_scm = SCM_ARGREF(0);
  60   gf = (gf_scm);
  61   methods_scm = SCM_ARGREF(1);
  62   if (!SCM_LISTP(methods_scm)) Scm_Error("list required, but got %S", methods_scm);
  63   methods = (methods_scm);
  64   args_scm = SCM_ARGREF(2);
  65   if (!SCM_LISTP(args_scm)) Scm_Error("list required, but got %S", args_scm);
  66   args = (args_scm);
  67   {
  68   ScmObj mp, *argv; int nargs = Scm_Length(args);
  69   if (!Scm_TypeP(gf, SCM_CLASS_GENERIC)) 
  70     Scm_Error("generic function requied, but got %S", gf);
  71   SCM_FOR_EACH(mp, methods) {
  72     if (!Scm_TypeP(SCM_CAR(mp), SCM_CLASS_METHOD))
  73       Scm_Error("method required, but got %S", SCM_CAR(mp));
  74   }
  75   argv = Scm_ListToArray(args, &nargs, NULL, TRUE);
  76   SCM_RETURN(Scm_MakeNextMethod(SCM_GENERIC(gf), methods, argv, nargs, FALSE));
  77   }
  78 }
  79 
  80 static SCM_DEFINE_STRING_CONST(moplib__25make_next_method__NAME, "%make-next-method", 17, 17);
  81 static SCM_DEFINE_SUBR(moplib__25make_next_method__STUB, 3, 0, SCM_OBJ(&moplib__25make_next_method__NAME), moplib__25make_next_method, NULL, NULL);
  82 
  83 static ScmObj moplib__25method_code(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
  84 {
  85   ScmObj method_scm;
  86   ScmObj method;
  87   SCM_ENTER_SUBR("%method-code");
  88   method_scm = SCM_ARGREF(0);
  89   method = (method_scm);
  90   {
  91   ScmMethod *m;
  92   if (!Scm_TypeP(method, SCM_CLASS_METHOD))
  93     Scm_Error("method required, but got %S", method);
  94   m = SCM_METHOD(method);
  95   if (m->func) SCM_RETURN(SCM_FALSE);
  96   else SCM_RETURN(SCM_OBJ(m->data));
  97   }
  98 }
  99 
 100 static SCM_DEFINE_STRING_CONST(moplib__25method_code__NAME, "%method-code", 12, 12);
 101 static SCM_DEFINE_SUBR(moplib__25method_code__STUB, 1, 0, SCM_OBJ(&moplib__25method_code__NAME), moplib__25method_code, NULL, NULL);
 102 
 103 static ScmObj moplib__25start_class_redefinitionX(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 104 {
 105   ScmObj k_scm;
 106   ScmClass* k;
 107   SCM_ENTER_SUBR("%start-class-redefinition!");
 108   k_scm = SCM_ARGREF(0);
 109   if (!SCM_CLASSP(k_scm)) Scm_Error("class required, but got %S", k_scm);
 110   k = SCM_CLASS(k_scm);
 111   {
 112 Scm_StartClassRedefinition(k);
 113 SCM_RETURN(SCM_UNDEFINED);
 114   }
 115 }
 116 
 117 static SCM_DEFINE_STRING_CONST(moplib__25start_class_redefinitionX__NAME, "%start-class-redefinition!", 26, 26);
 118 static SCM_DEFINE_SUBR(moplib__25start_class_redefinitionX__STUB, 1, 0, SCM_OBJ(&moplib__25start_class_redefinitionX__NAME), moplib__25start_class_redefinitionX, NULL, NULL);
 119 
 120 static ScmObj moplib__25commit_class_redefinitionX(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 121 {
 122   ScmObj k_scm;
 123   ScmClass* k;
 124   ScmObj newk_scm;
 125   ScmObj newk;
 126   SCM_ENTER_SUBR("%commit-class-redefinition!");
 127   k_scm = SCM_ARGREF(0);
 128   if (!SCM_CLASSP(k_scm)) Scm_Error("class required, but got %S", k_scm);
 129   k = SCM_CLASS(k_scm);
 130   newk_scm = SCM_ARGREF(1);
 131   newk = (newk_scm);
 132   {
 133 Scm_CommitClassRedefinition(k, newk);
 134 SCM_RETURN(SCM_UNDEFINED);
 135   }
 136 }
 137 
 138 static SCM_DEFINE_STRING_CONST(moplib__25commit_class_redefinitionX__NAME, "%commit-class-redefinition!", 27, 27);
 139 static SCM_DEFINE_SUBR(moplib__25commit_class_redefinitionX__STUB, 2, 0, SCM_OBJ(&moplib__25commit_class_redefinitionX__NAME), moplib__25commit_class_redefinitionX, NULL, NULL);
 140 
 141 static ScmObj moplib__25check_class_binding(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 142 {
 143   ScmObj name_scm;
 144   ScmObj name;
 145   ScmObj module_scm;
 146   ScmModule* module;
 147   SCM_ENTER_SUBR("%check-class-binding");
 148   name_scm = SCM_ARGREF(0);
 149   name = (name_scm);
 150   module_scm = SCM_ARGREF(1);
 151   if (!SCM_MODULEP(module_scm)) Scm_Error("module required, but got %S", module_scm);
 152   module = SCM_MODULE(module_scm);
 153   {
 154 {
 155 ScmObj SCM_RESULT;
 156 SCM_RESULT = Scm_CheckClassBinding(name, module);
 157 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
 158 }
 159   }
 160 }
 161 
 162 static SCM_DEFINE_STRING_CONST(moplib__25check_class_binding__NAME, "%check-class-binding", 20, 20);
 163 static SCM_DEFINE_SUBR(moplib__25check_class_binding__STUB, 2, 0, SCM_OBJ(&moplib__25check_class_binding__NAME), moplib__25check_class_binding, NULL, NULL);
 164 
 165 static ScmObj moplib__25replace_class_bindingX(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 166 {
 167   ScmObj k_scm;
 168   ScmClass* k;
 169   ScmObj newk_scm;
 170   ScmClass* newk;
 171   SCM_ENTER_SUBR("%replace-class-binding!");
 172   k_scm = SCM_ARGREF(0);
 173   if (!SCM_CLASSP(k_scm)) Scm_Error("class required, but got %S", k_scm);
 174   k = SCM_CLASS(k_scm);
 175   newk_scm = SCM_ARGREF(1);
 176   if (!SCM_CLASSP(newk_scm)) Scm_Error("class required, but got %S", newk_scm);
 177   newk = SCM_CLASS(newk_scm);
 178   {
 179 Scm_ReplaceClassBinding(k, newk);
 180 SCM_RETURN(SCM_UNDEFINED);
 181   }
 182 }
 183 
 184 static SCM_DEFINE_STRING_CONST(moplib__25replace_class_bindingX__NAME, "%replace-class-binding!", 23, 23);
 185 static SCM_DEFINE_SUBR(moplib__25replace_class_bindingX__STUB, 2, 0, SCM_OBJ(&moplib__25replace_class_bindingX__NAME), moplib__25replace_class_bindingX, NULL, NULL);
 186 
 187 static ScmObj moplib__25add_direct_subclassX(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 188 {
 189   ScmObj super_scm;
 190   ScmClass* super;
 191   ScmObj sub_scm;
 192   ScmClass* sub;
 193   SCM_ENTER_SUBR("%add-direct-subclass!");
 194   super_scm = SCM_ARGREF(0);
 195   if (!SCM_CLASSP(super_scm)) Scm_Error("class required, but got %S", super_scm);
 196   super = SCM_CLASS(super_scm);
 197   sub_scm = SCM_ARGREF(1);
 198   if (!SCM_CLASSP(sub_scm)) Scm_Error("class required, but got %S", sub_scm);
 199   sub = SCM_CLASS(sub_scm);
 200   {
 201 Scm_AddDirectSubclass(super, sub);
 202 SCM_RETURN(SCM_UNDEFINED);
 203   }
 204 }
 205 
 206 static SCM_DEFINE_STRING_CONST(moplib__25add_direct_subclassX__NAME, "%add-direct-subclass!", 21, 21);
 207 static SCM_DEFINE_SUBR(moplib__25add_direct_subclassX__STUB, 2, 0, SCM_OBJ(&moplib__25add_direct_subclassX__NAME), moplib__25add_direct_subclassX, NULL, NULL);
 208 
 209 static ScmObj moplib__25delete_direct_subclassX(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 210 {
 211   ScmObj super_scm;
 212   ScmClass* super;
 213   ScmObj sub_scm;
 214   ScmClass* sub;
 215   SCM_ENTER_SUBR("%delete-direct-subclass!");
 216   super_scm = SCM_ARGREF(0);
 217   if (!SCM_CLASSP(super_scm)) Scm_Error("class required, but got %S", super_scm);
 218   super = SCM_CLASS(super_scm);
 219   sub_scm = SCM_ARGREF(1);
 220   if (!SCM_CLASSP(sub_scm)) Scm_Error("class required, but got %S", sub_scm);
 221   sub = SCM_CLASS(sub_scm);
 222   {
 223 Scm_DeleteDirectSubclass(super, sub);
 224 SCM_RETURN(SCM_UNDEFINED);
 225   }
 226 }
 227 
 228 static SCM_DEFINE_STRING_CONST(moplib__25delete_direct_subclassX__NAME, "%delete-direct-subclass!", 24, 24);
 229 static SCM_DEFINE_SUBR(moplib__25delete_direct_subclassX__STUB, 2, 0, SCM_OBJ(&moplib__25delete_direct_subclassX__NAME), moplib__25delete_direct_subclassX, NULL, NULL);
 230 
 231 static ScmObj moplib__25add_direct_methodX(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 232 {
 233   ScmObj super_scm;
 234   ScmClass* super;
 235   ScmObj m_scm;
 236   ScmMethod* m;
 237   SCM_ENTER_SUBR("%add-direct-method!");
 238   super_scm = SCM_ARGREF(0);
 239   if (!SCM_CLASSP(super_scm)) Scm_Error("class required, but got %S", super_scm);
 240   super = SCM_CLASS(super_scm);
 241   m_scm = SCM_ARGREF(1);
 242   if (!SCM_METHODP(m_scm)) Scm_Error("method required, but got %S", m_scm);
 243   m = SCM_METHOD(m_scm);
 244   {
 245 Scm_AddDirectMethod(super, m);
 246 SCM_RETURN(SCM_UNDEFINED);
 247   }
 248 }
 249 
 250 static SCM_DEFINE_STRING_CONST(moplib__25add_direct_methodX__NAME, "%add-direct-method!", 19, 19);
 251 static SCM_DEFINE_SUBR(moplib__25add_direct_methodX__STUB, 2, 0, SCM_OBJ(&moplib__25add_direct_methodX__NAME), moplib__25add_direct_methodX, NULL, NULL);
 252 
 253 static ScmObj moplib__25delete_direct_methodX(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 254 {
 255   ScmObj super_scm;
 256   ScmClass* super;
 257   ScmObj m_scm;
 258   ScmMethod* m;
 259   SCM_ENTER_SUBR("%delete-direct-method!");
 260   super_scm = SCM_ARGREF(0);
 261   if (!SCM_CLASSP(super_scm)) Scm_Error("class required, but got %S", super_scm);
 262   super = SCM_CLASS(super_scm);
 263   m_scm = SCM_ARGREF(1);
 264   if (!SCM_METHODP(m_scm)) Scm_Error("method required, but got %S", m_scm);
 265   m = SCM_METHOD(m_scm);
 266   {
 267 Scm_DeleteDirectMethod(super, m);
 268 SCM_RETURN(SCM_UNDEFINED);
 269   }
 270 }
 271 
 272 static SCM_DEFINE_STRING_CONST(moplib__25delete_direct_methodX__NAME, "%delete-direct-method!", 22, 22);
 273 static SCM_DEFINE_SUBR(moplib__25delete_direct_methodX__STUB, 2, 0, SCM_OBJ(&moplib__25delete_direct_methodX__NAME), moplib__25delete_direct_methodX, NULL, NULL);
 274 
 275 static ScmObj moplib__25transplant_instanceX(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 276 {
 277   ScmObj src_scm;
 278   ScmObj src;
 279   ScmObj dst_scm;
 280   ScmObj dst;
 281   SCM_ENTER_SUBR("%transplant-instance!");
 282   src_scm = SCM_ARGREF(0);
 283   src = (src_scm);
 284   dst_scm = SCM_ARGREF(1);
 285   dst = (dst_scm);
 286   {
 287 Scm_TransplantInstance(src, dst);
 288 SCM_RETURN(SCM_UNDEFINED);
 289   }
 290 }
 291 
 292 static SCM_DEFINE_STRING_CONST(moplib__25transplant_instanceX__NAME, "%transplant-instance!", 21, 21);
 293 static SCM_DEFINE_SUBR(moplib__25transplant_instanceX__STUB, 2, 0, SCM_OBJ(&moplib__25transplant_instanceX__NAME), moplib__25transplant_instanceX, NULL, NULL);
 294 
 295 static ScmObj moplib_class_of(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 296 {
 297   ScmObj obj_scm;
 298   ScmObj obj;
 299   SCM_ENTER_SUBR("class-of");
 300   obj_scm = SCM_ARGREF(0);
 301   obj = (obj_scm);
 302   {
 303 {
 304 ScmObj SCM_RESULT;
 305 SCM_RESULT = Scm_VMClassOf(obj);
 306 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
 307 }
 308   }
 309 }
 310 
 311 static SCM_DEFINE_STRING_CONST(moplib_class_of__NAME, "class-of", 8, 8);
 312 static SCM_DEFINE_SUBR(moplib_class_of__STUB, 1, 0, SCM_OBJ(&moplib_class_of__NAME), moplib_class_of, NULL, NULL);
 313 
 314 static ScmObj moplib_current_class_of(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 315 {
 316   ScmObj obj_scm;
 317   ScmObj obj;
 318   SCM_ENTER_SUBR("current-class-of");
 319   obj_scm = SCM_ARGREF(0);
 320   obj = (obj_scm);
 321   {
 322 {
 323 ScmObj SCM_RESULT;
 324  SCM_RESULT = (SCM_OBJ(Scm_ClassOf(obj)));
 325 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
 326 }
 327   }
 328 }
 329 
 330 static SCM_DEFINE_STRING_CONST(moplib_current_class_of__NAME, "current-class-of", 16, 16);
 331 static SCM_DEFINE_SUBR(moplib_current_class_of__STUB, 1, 0, SCM_OBJ(&moplib_current_class_of__NAME), moplib_current_class_of, NULL, NULL);
 332 
 333 static ScmObj moplib_is_aP(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 334 {
 335   ScmObj obj_scm;
 336   ScmObj obj;
 337   ScmObj klass_scm;
 338   ScmClass* klass;
 339   SCM_ENTER_SUBR("is-a?");
 340   obj_scm = SCM_ARGREF(0);
 341   obj = (obj_scm);
 342   klass_scm = SCM_ARGREF(1);
 343   if (!SCM_CLASSP(klass_scm)) Scm_Error("class required, but got %S", klass_scm);
 344   klass = SCM_CLASS(klass_scm);
 345   {
 346 {
 347 ScmObj SCM_RESULT;
 348 SCM_RESULT = Scm_VMIsA(obj, klass);
 349 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
 350 }
 351   }
 352 }
 353 
 354 static SCM_DEFINE_STRING_CONST(moplib_is_aP__NAME, "is-a?", 5, 5);
 355 static SCM_DEFINE_SUBR(moplib_is_aP__STUB, 2, 0, SCM_OBJ(&moplib_is_aP__NAME), moplib_is_aP, SCM_MAKE_INT(SCM_VM_IS_A), NULL);
 356 
 357 static ScmObj moplib_slot_ref(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 358 {
 359   ScmObj obj_scm;
 360   ScmObj obj;
 361   ScmObj slot_scm;
 362   ScmObj slot;
 363   SCM_ENTER_SUBR("slot-ref");
 364   obj_scm = SCM_ARGREF(0);
 365   obj = (obj_scm);
 366   slot_scm = SCM_ARGREF(1);
 367   slot = (slot_scm);
 368   {
 369 {
 370 ScmObj SCM_RESULT;
 371  SCM_RESULT = (Scm_VMSlotRef(obj, slot, FALSE));
 372 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
 373 }
 374   }
 375 }
 376 
 377 static SCM_DEFINE_STRING_CONST(moplib_slot_ref__NAME, "slot-ref", 8, 8);
 378 static SCM_DEFINE_SUBR(moplib_slot_ref__STUB, 2, 0, SCM_OBJ(&moplib_slot_ref__NAME), moplib_slot_ref, SCM_MAKE_INT(SCM_VM_SLOT_REF), NULL);
 379 
 380 static ScmObj moplib_slot_setX(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 381 {
 382   ScmObj obj_scm;
 383   ScmObj obj;
 384   ScmObj slot_scm;
 385   ScmObj slot;
 386   ScmObj value_scm;
 387   ScmObj value;
 388   SCM_ENTER_SUBR("slot-set!");
 389   obj_scm = SCM_ARGREF(0);
 390   obj = (obj_scm);
 391   slot_scm = SCM_ARGREF(1);
 392   slot = (slot_scm);
 393   value_scm = SCM_ARGREF(2);
 394   value = (value_scm);
 395   {
 396 {
 397 ScmObj SCM_RESULT;
 398 SCM_RESULT = Scm_VMSlotSet(obj, slot, value);
 399 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
 400 }
 401   }
 402 }
 403 
 404 static SCM_DEFINE_STRING_CONST(moplib_slot_setX__NAME, "slot-set!", 9, 9);
 405 static SCM_DEFINE_SUBR(moplib_slot_setX__STUB, 3, 0, SCM_OBJ(&moplib_slot_setX__NAME), moplib_slot_setX, SCM_MAKE_INT(SCM_VM_SLOT_SET), NULL);
 406 
 407 static ScmObj moplib_slot_boundP(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 408 {
 409   ScmObj obj_scm;
 410   ScmObj obj;
 411   ScmObj slot_scm;
 412   ScmObj slot;
 413   SCM_ENTER_SUBR("slot-bound?");
 414   obj_scm = SCM_ARGREF(0);
 415   obj = (obj_scm);
 416   slot_scm = SCM_ARGREF(1);
 417   slot = (slot_scm);
 418   {
 419 {
 420 ScmObj SCM_RESULT;
 421 SCM_RESULT = Scm_VMSlotBoundP(obj, slot);
 422 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
 423 }
 424   }
 425 }
 426 
 427 static SCM_DEFINE_STRING_CONST(moplib_slot_boundP__NAME, "slot-bound?", 11, 11);
 428 static SCM_DEFINE_SUBR(moplib_slot_boundP__STUB, 2, 0, SCM_OBJ(&moplib_slot_boundP__NAME), moplib_slot_boundP, NULL, NULL);
 429 
 430 static ScmObj moplib_slot_ref_using_accessor(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 431 {
 432   ScmObj obj_scm;
 433   ScmObj obj;
 434   ScmObj accessor_scm;
 435   ScmSlotAccessor* accessor;
 436   SCM_ENTER_SUBR("slot-ref-using-accessor");
 437   obj_scm = SCM_ARGREF(0);
 438   obj = (obj_scm);
 439   accessor_scm = SCM_ARGREF(1);
 440   if (!SCM_SLOT_ACCESSOR_P(accessor_scm)) Scm_Error("<slot-accessor> required, but got %S", accessor_scm);
 441   accessor = SCM_SLOT_ACCESSOR(accessor_scm);
 442   {
 443 {
 444 ScmObj SCM_RESULT;
 445  SCM_RESULT = (Scm_VMSlotRefUsingAccessor(obj, accessor, FALSE));
 446 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
 447 }
 448   }
 449 }
 450 
 451 static SCM_DEFINE_STRING_CONST(moplib_slot_ref_using_accessor__NAME, "slot-ref-using-accessor", 23, 23);
 452 static SCM_DEFINE_SUBR(moplib_slot_ref_using_accessor__STUB, 2, 0, SCM_OBJ(&moplib_slot_ref_using_accessor__NAME), moplib_slot_ref_using_accessor, NULL, NULL);
 453 
 454 static ScmObj moplib_slot_bound_using_accessorP(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 455 {
 456   ScmObj obj_scm;
 457   ScmObj obj;
 458   ScmObj accessor_scm;
 459   ScmSlotAccessor* accessor;
 460   SCM_ENTER_SUBR("slot-bound-using-accessor?");
 461   obj_scm = SCM_ARGREF(0);
 462   obj = (obj_scm);
 463   accessor_scm = SCM_ARGREF(1);
 464   if (!SCM_SLOT_ACCESSOR_P(accessor_scm)) Scm_Error("<slot-accessor> required, but got %S", accessor_scm);
 465   accessor = SCM_SLOT_ACCESSOR(accessor_scm);
 466   {
 467 {
 468 ScmObj SCM_RESULT;
 469  SCM_RESULT = (Scm_VMSlotRefUsingAccessor(obj, accessor, TRUE));
 470 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
 471 }
 472   }
 473 }
 474 
 475 static SCM_DEFINE_STRING_CONST(moplib_slot_bound_using_accessorP__NAME, "slot-bound-using-accessor?", 26, 26);
 476 static SCM_DEFINE_SUBR(moplib_slot_bound_using_accessorP__STUB, 2, 0, SCM_OBJ(&moplib_slot_bound_using_accessorP__NAME), moplib_slot_bound_using_accessorP, NULL, NULL);
 477 
 478 static ScmObj moplib_slot_set_using_accessorX(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 479 {
 480   ScmObj obj_scm;
 481   ScmObj obj;
 482   ScmObj accessor_scm;
 483   ScmSlotAccessor* accessor;
 484   ScmObj value_scm;
 485   ScmObj value;
 486   SCM_ENTER_SUBR("slot-set-using-accessor!");
 487   obj_scm = SCM_ARGREF(0);
 488   obj = (obj_scm);
 489   accessor_scm = SCM_ARGREF(1);
 490   if (!SCM_SLOT_ACCESSOR_P(accessor_scm)) Scm_Error("<slot-accessor> required, but got %S", accessor_scm);
 491   accessor = SCM_SLOT_ACCESSOR(accessor_scm);
 492   value_scm = SCM_ARGREF(2);
 493   value = (value_scm);
 494   {
 495 {
 496 ScmObj SCM_RESULT;
 497 SCM_RESULT = Scm_VMSlotSetUsingAccessor(obj, accessor, value);
 498 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
 499 }
 500   }
 501 }
 502 
 503 static SCM_DEFINE_STRING_CONST(moplib_slot_set_using_accessorX__NAME, "slot-set-using-accessor!", 24, 24);
 504 static SCM_DEFINE_SUBR(moplib_slot_set_using_accessorX__STUB, 3, 0, SCM_OBJ(&moplib_slot_set_using_accessorX__NAME), moplib_slot_set_using_accessorX, NULL, NULL);
 505 
 506 static ScmObj moplib_slot_initialize_using_accessorX(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 507 {
 508   ScmObj obj_scm;
 509   ScmObj obj;
 510   ScmObj accessor_scm;
 511   ScmSlotAccessor* accessor;
 512   ScmObj initargs_scm;
 513   ScmObj initargs;
 514   SCM_ENTER_SUBR("slot-initialize-using-accessor!");
 515   obj_scm = SCM_ARGREF(0);
 516   obj = (obj_scm);
 517   accessor_scm = SCM_ARGREF(1);
 518   if (!SCM_SLOT_ACCESSOR_P(accessor_scm)) Scm_Error("<slot-accessor> required, but got %S", accessor_scm);
 519   accessor = SCM_SLOT_ACCESSOR(accessor_scm);
 520   initargs_scm = SCM_ARGREF(2);
 521   initargs = (initargs_scm);
 522   {
 523 {
 524 ScmObj SCM_RESULT;
 525 SCM_RESULT = Scm_VMSlotInitializeUsingAccessor(obj, accessor, initargs);
 526 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
 527 }
 528   }
 529 }
 530 
 531 static SCM_DEFINE_STRING_CONST(moplib_slot_initialize_using_accessorX__NAME, "slot-initialize-using-accessor!", 31, 31);
 532 static SCM_DEFINE_SUBR(moplib_slot_initialize_using_accessorX__STUB, 3, 0, SCM_OBJ(&moplib_slot_initialize_using_accessorX__NAME), moplib_slot_initialize_using_accessorX, NULL, NULL);
 533 
 534 static ScmObj moplib_instance_slot_ref(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 535 {
 536   ScmObj obj_scm;
 537   ScmObj obj;
 538   ScmObj num_scm;
 539   int num;
 540   SCM_ENTER_SUBR("instance-slot-ref");
 541   obj_scm = SCM_ARGREF(0);
 542   obj = (obj_scm);
 543   num_scm = SCM_ARGREF(1);
 544   if (!SCM_INTP(num_scm)) Scm_Error("small integer required, but got %S", num_scm);
 545   num = SCM_INT_VALUE(num_scm);
 546   {
 547 {
 548 ScmObj SCM_RESULT;
 549 SCM_RESULT = Scm_InstanceSlotRef(obj, num);
 550 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
 551 }
 552   }
 553 }
 554 
 555 static SCM_DEFINE_STRING_CONST(moplib_instance_slot_ref__NAME, "instance-slot-ref", 17, 17);
 556 static SCM_DEFINE_SUBR(moplib_instance_slot_ref__STUB, 2, 0, SCM_OBJ(&moplib_instance_slot_ref__NAME), moplib_instance_slot_ref, NULL, NULL);
 557 
 558 static ScmObj moplib_instance_slot_set(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 559 {
 560   ScmObj obj_scm;
 561   ScmObj obj;
 562   ScmObj num_scm;
 563   int num;
 564   ScmObj value_scm;
 565   ScmObj value;
 566   SCM_ENTER_SUBR("instance-slot-set");
 567   obj_scm = SCM_ARGREF(0);
 568   obj = (obj_scm);
 569   num_scm = SCM_ARGREF(1);
 570   if (!SCM_INTP(num_scm)) Scm_Error("small integer required, but got %S", num_scm);
 571   num = SCM_INT_VALUE(num_scm);
 572   value_scm = SCM_ARGREF(2);
 573   value = (value_scm);
 574   {
 575 Scm_InstanceSlotSet(obj, num, value);
 576 SCM_RETURN(SCM_UNDEFINED);
 577   }
 578 }
 579 
 580 static SCM_DEFINE_STRING_CONST(moplib_instance_slot_set__NAME, "instance-slot-set", 17, 17);
 581 static SCM_DEFINE_SUBR(moplib_instance_slot_set__STUB, 3, 0, SCM_OBJ(&moplib_instance_slot_set__NAME), moplib_instance_slot_set, NULL, NULL);
 582 
 583 static ScmObj moplib_touch_instanceX(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 584 {
 585   ScmObj obj_scm;
 586   ScmObj obj;
 587   SCM_ENTER_SUBR("touch-instance!");
 588   obj_scm = SCM_ARGREF(0);
 589   obj = (obj_scm);
 590   {
 591 {
 592 ScmObj SCM_RESULT;
 593 SCM_RESULT = Scm_VMTouchInstance(obj);
 594 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
 595 }
 596   }
 597 }
 598 
 599 static SCM_DEFINE_STRING_CONST(moplib_touch_instanceX__NAME, "touch-instance!", 15, 15);
 600 static SCM_DEFINE_SUBR(moplib_touch_instanceX__STUB, 1, 0, SCM_OBJ(&moplib_touch_instanceX__NAME), moplib_touch_instanceX, NULL, NULL);
 601 
 602 void Scm_Init_moplib(ScmModule *module)
 603 {
 604 
 605   SCM_DEFINE(module, "touch-instance!", SCM_OBJ(&moplib_touch_instanceX__STUB));
 606   SCM_DEFINE(module, "instance-slot-set", SCM_OBJ(&moplib_instance_slot_set__STUB));
 607   SCM_DEFINE(module, "instance-slot-ref", SCM_OBJ(&moplib_instance_slot_ref__STUB));
 608   SCM_DEFINE(module, "slot-initialize-using-accessor!", SCM_OBJ(&moplib_slot_initialize_using_accessorX__STUB));
 609   SCM_DEFINE(module, "slot-set-using-accessor!", SCM_OBJ(&moplib_slot_set_using_accessorX__STUB));
 610   SCM_DEFINE(module, "slot-bound-using-accessor?", SCM_OBJ(&moplib_slot_bound_using_accessorP__STUB));
 611   SCM_DEFINE(module, "slot-ref-using-accessor", SCM_OBJ(&moplib_slot_ref_using_accessor__STUB));
 612   SCM_DEFINE(module, "slot-bound?", SCM_OBJ(&moplib_slot_boundP__STUB));
 613   SCM_DEFINE(module, "slot-set!", SCM_OBJ(&moplib_slot_setX__STUB));
 614   SCM_DEFINE(module, "slot-ref", SCM_OBJ(&moplib_slot_ref__STUB));
 615   Scm_SetterSet(SCM_PROCEDURE(&moplib_slot_ref__STUB), SCM_PROCEDURE(&moplib_slot_setX__STUB), TRUE);
 616   SCM_DEFINE(module, "is-a?", SCM_OBJ(&moplib_is_aP__STUB));
 617   SCM_DEFINE(module, "current-class-of", SCM_OBJ(&moplib_current_class_of__STUB));
 618   SCM_DEFINE(module, "class-of", SCM_OBJ(&moplib_class_of__STUB));
 619   SCM_DEFINE(module, "%transplant-instance!", SCM_OBJ(&moplib__25transplant_instanceX__STUB));
 620   SCM_DEFINE(module, "%delete-direct-method!", SCM_OBJ(&moplib__25delete_direct_methodX__STUB));
 621   SCM_DEFINE(module, "%add-direct-method!", SCM_OBJ(&moplib__25add_direct_methodX__STUB));
 622   SCM_DEFINE(module, "%delete-direct-subclass!", SCM_OBJ(&moplib__25delete_direct_subclassX__STUB));
 623   SCM_DEFINE(module, "%add-direct-subclass!", SCM_OBJ(&moplib__25add_direct_subclassX__STUB));
 624   SCM_DEFINE(module, "%replace-class-binding!", SCM_OBJ(&moplib__25replace_class_bindingX__STUB));
 625   SCM_DEFINE(module, "%check-class-binding", SCM_OBJ(&moplib__25check_class_binding__STUB));
 626   SCM_DEFINE(module, "%commit-class-redefinition!", SCM_OBJ(&moplib__25commit_class_redefinitionX__STUB));
 627   SCM_DEFINE(module, "%start-class-redefinition!", SCM_OBJ(&moplib__25start_class_redefinitionX__STUB));
 628   SCM_DEFINE(module, "%method-code", SCM_OBJ(&moplib__25method_code__STUB));
 629   SCM_DEFINE(module, "%make-next-method", SCM_OBJ(&moplib__25make_next_method__STUB));
 630   SCM_DEFINE(module, "%ensure-generic-function", SCM_OBJ(&moplib__25ensure_generic_function__STUB));
 631 }

/* [<][>][^][v][top][bottom][index][help] */