int _pSLang_init_sllist (void) { SLang_Class_Type *cl; if (SLclass_is_class_defined (SLANG_LIST_TYPE)) return 0; if (NULL == (cl = SLclass_allocate_class ("List_Type"))) return -1; (void) SLclass_set_destroy_function (cl, cl_list_destroy); (void) SLclass_set_push_function (cl, cl_list_push); (void) SLclass_set_aput_function (cl, _pSLlist_aput); (void) SLclass_set_aget_function (cl, _pSLlist_aget); (void) SLclass_set_deref_function (cl, cl_list_dereference); (void) SLclass_set_string_function (cl, string_method); (void) SLclass_set_eqs_function (cl, eqs_method); (void) SLclass_set_is_container (cl, 1); cl->cl_length = list_length; cl->cl_foreach_open = cl_foreach_open; cl->cl_foreach_close = cl_foreach_close; cl->cl_foreach = cl_foreach; if (-1 == SLclass_register_class (cl, SLANG_LIST_TYPE, sizeof (SLang_List_Type), SLANG_CLASS_TYPE_PTR)) return -1; if (-1 == SLadd_intrin_fun_table (Intrin_Table, NULL)) return -1; return 0; }
int SLang_init_slassoc (void) { SLang_Class_Type *cl; if (SLclass_is_class_defined (SLANG_ASSOC_TYPE)) return 0; if (NULL == (cl = SLclass_allocate_class ("Assoc_Type"))) return -1; (void) SLclass_set_destroy_function (cl, assoc_destroy); (void) SLclass_set_aput_function (cl, _pSLassoc_aput); (void) SLclass_set_aget_function (cl, _pSLassoc_aget); (void) SLclass_set_anew_function (cl, assoc_anew); cl->cl_length = assoc_length; cl->cl_foreach_open = cl_foreach_open; cl->cl_foreach_close = cl_foreach_close; cl->cl_foreach = cl_foreach; if (-1 == SLclass_register_class (cl, SLANG_ASSOC_TYPE, sizeof (SLang_Assoc_Array_Type), SLANG_CLASS_TYPE_MMT)) return -1; if (-1 == SLadd_intrin_fun_table (Assoc_Table, "__SLASSOC__")) return -1; return 0; }