gf 1633 src/class.c static ScmObj builtin_initialize(ScmObj *args, int nargs, ScmGeneric *gf) gf 1930 src/class.c static ScmObj generic_name(ScmGeneric *gf) gf 1932 src/class.c return gf->common.info; gf 1935 src/class.c static void generic_name_set(ScmGeneric *gf, ScmObj val) gf 1937 src/class.c gf->common.info = val; gf 1940 src/class.c static ScmObj generic_methods(ScmGeneric *gf) gf 1942 src/class.c return gf->methods; gf 1945 src/class.c static void generic_methods_set(ScmGeneric *gf, ScmObj val) gf 1947 src/class.c gf->methods = val; gf 1955 src/class.c ScmGeneric *gf = SCM_GENERIC(generic_allocate(SCM_CLASS_GENERIC, SCM_NIL)); gf 1956 src/class.c gf->common.info = name; gf 1958 src/class.c gf->fallback = fallback; gf 1959 src/class.c gf->data = data; gf 1961 src/class.c return SCM_OBJ(gf); gf 1965 src/class.c ScmObj Scm_NoNextMethod(ScmObj *args, int nargs, ScmGeneric *gf) gf 1968 src/class.c SCM_OBJ(gf), Scm_ArrayToList(args, nargs)); gf 1973 src/class.c ScmObj Scm_NoOperation(ScmObj *arg, int nargs, ScmGeneric *gf) gf 1979 src/class.c ScmObj Scm_InvalidApply(ScmObj *args, int nargs, ScmGeneric *gf) gf 1986 src/class.c ScmObj Scm_ComputeApplicableMethods(ScmGeneric *gf, ScmObj *args, int nargs) gf 1988 src/class.c ScmObj methods = gf->methods, mp; gf 2014 src/class.c ScmGeneric *gf = SCM_GENERIC(args[0]); gf 2023 src/class.c return Scm_ComputeApplicableMethods(gf, argv, n); gf 2327 src/class.c ScmObj Scm_AddMethod(ScmGeneric *gf, ScmMethod *method) gf 2332 src/class.c if (method->generic && method->generic != gf) gf 2335 src/class.c if (!SCM_FALSEP(Scm_Memq(SCM_OBJ(method), gf->methods))) gf 2338 src/class.c method, gf); gf 2339 src/class.c method->generic = gf; gf 2341 src/class.c pair = Scm_Cons(SCM_OBJ(method), gf->methods); gf 2344 src/class.c (void)SCM_INTERNAL_MUTEX_LOCK(gf->lock); gf 2345 src/class.c SCM_FOR_EACH(mp, gf->methods) { gf 2362 src/class.c if (!replaced) gf->methods = pair; gf 2363 src/class.c (void)SCM_INTERNAL_MUTEX_UNLOCK(gf->lock); gf 2385 src/class.c ScmObj Scm_DeleteMethod(ScmGeneric *gf, ScmMethod *method) gf 2389 src/class.c if (!method->generic || method->generic != gf) return SCM_UNDEFINED; gf 2391 src/class.c (void)SCM_INTERNAL_MUTEX_LOCK(gf->lock); gf 2392 src/class.c mp = gf->methods; gf 2395 src/class.c gf->methods = SCM_CDR(mp); gf 2408 src/class.c (void)SCM_INTERNAL_MUTEX_UNLOCK(gf->lock); gf 2431 src/class.c ScmObj Scm_MakeNextMethod(ScmGeneric *gf, ScmObj methods, gf 2437 src/class.c nm->generic = gf; gf 2923 src/class.c void Scm_InitBuiltinGeneric(ScmGeneric *gf, const char *name, ScmModule *mod) gf 2926 src/class.c gf->common.info = s; gf 2927 src/class.c if (gf->fallback == NULL) { gf 2928 src/class.c gf->fallback = Scm_NoNextMethod; gf 2930 src/class.c (void)SCM_INTERNAL_MUTEX_INIT(gf->lock); gf 2931 src/class.c Scm_Define(mod, SCM_SYMBOL(s), SCM_OBJ(gf)); gf 3061 src/class.c #define GINIT(gf, nam) \ gf 3062 src/class.c Scm_InitBuiltinGeneric(gf, nam, mod); gf 2311 src/gauche.h ScmObj (*fallback)(ScmObj *args, int nargs, ScmGeneric *gf); gf 2330 src/gauche.h SCM_EXTERN void Scm_InitBuiltinGeneric(ScmGeneric *gf, const char *name, gf 2335 src/gauche.h SCM_EXTERN ScmObj Scm_NoNextMethod(ScmObj *args, int nargs, ScmGeneric *gf); gf 2336 src/gauche.h SCM_EXTERN ScmObj Scm_NoOperation(ScmObj *args, int nargs, ScmGeneric *gf); gf 2337 src/gauche.h SCM_EXTERN ScmObj Scm_InvalidApply(ScmObj *args, int nargs, ScmGeneric *gf); gf 2357 src/gauche.h #define SCM_DEFINE_METHOD(cvar, gf, req, opt, specs, func, data) \ gf 2362 src/gauche.h gf, specs, func, data, NULL \ gf 113 src/gauche/class.h SCM_EXTERN ScmObj Scm_ComputeApplicableMethods(ScmGeneric *gf, gf 117 src/gauche/class.h SCM_EXTERN ScmObj Scm_MakeNextMethod(ScmGeneric *gf, ScmObj methods, gf 119 src/gauche/class.h SCM_EXTERN ScmObj Scm_AddMethod(ScmGeneric *gf, ScmMethod *method); gf 120 src/gauche/class.h SCM_EXTERN ScmObj Scm_DeleteMethod(ScmGeneric *gf, ScmMethod *method); gf 13 src/moplib.c static ScmObj call_fallback_proc(ScmObj *args, int nargs, ScmGeneric *gf) gf 15 src/moplib.c ScmObj proc = SCM_OBJ(gf->data); gf 53 src/moplib.c ScmObj gf; gf 60 src/moplib.c gf = (gf_scm); gf 69 src/moplib.c if (!Scm_TypeP(gf, SCM_CLASS_GENERIC)) gf 70 src/moplib.c Scm_Error("generic function requied, but got %S", gf); gf 76 src/moplib.c SCM_RETURN(Scm_MakeNextMethod(SCM_GENERIC(gf), methods, argv, nargs, FALSE)); gf 109 src/number.c static ScmObj bad_number_method(ScmObj *args, int nargs, ScmGeneric *gf) gf 111 src/number.c const char *fn = (const char *)SCM_GENERIC_DATA(gf); gf 865 src/number.c #define APPLY_GENERIC_ARITH(v, gf, arg0, arg1, args) \ gf 867 src/number.c v = Scm_Apply(SCM_OBJ(&gf), SCM_LIST2(arg0, arg1)); \ gf 48 src/write.c static ScmObj write_object_fallback(ScmObj *args, int nargs, ScmGeneric *gf); gf 287 src/write.c static ScmObj write_object_fallback(ScmObj *args, int nargs, ScmGeneric *gf)