static kbool_t class_PackupNameSpace(KonohaContext *kctx, kNameSpace *ns, int option, KTraceInfo *trace) { KRequirePackage("konoha.field", trace); class_defineSyntax(kctx, ns, trace); class_defineMethod(kctx, ns, trace); return true; }
static kbool_t foreach_PackupNameSpace(KonohaContext *kctx, kNameSpace *ns, int option, KTraceInfo *trace) { KRequirePackage("konoha.iterator", trace); KImportPackageSymbol(ns, "cstyle", "break", trace); KImportPackageSymbol(ns, "cstyle", "continue", trace); foreach_defineSyntax(kctx, ns, trace); return true; }
static kbool_t sql_PackupNameSpace(KonohaContext *kctx, kNameSpace *ns, int option, KTraceInfo *trace) { KRequirePackage("Type.Float", trace); static KDEFINE_CLASS ConnectionDef = { STRUCTNAME(Connection), .cflag = KClassFlag_Final, .init = kConnection_Init, .free = kConnection_Free, };
static kbool_t untyped_PackupNameSpace(KonohaContext *kctx, kNameSpace *ns, int option, KTraceInfo *trace) { KRequirePackage("Type.StaticVar", trace); kSyntax *assignSyntax = kSyntax_(KNULL(NameSpace), KSymbol_LET); KDEFINE_SYNTAX SYNTAX[] = { { KSymbol_("="), SYNFLAG_NodeLeftJoinOp2, assignSyntax->precedence_op2, assignSyntax->precedence_op1, {assignSyntax->ParseFuncNULL}, {KSugarFunc(ns, TypeCheck_UntypedAssign)}}, { KSymbol_END, }, /* sentinental */ }; KLIB kNameSpace_DefineSyntax(kctx, ns, SYNTAX, trace); return true; }
static kbool_t object_initPackage(KonohaContext *kctx, kNameSpace *ns, int argc, const char**args, KTraceInfo *trace) { KRequirePackage("konoha.subtype", trace); KDEFINE_INT_CONST ClassData[] = { // add Object as available {"Object", VirtualType_KonohaClass, (uintptr_t)CT_(TY_Object)}, {NULL}, }; KLIB kNameSpace_loadConstData(kctx, ns, KonohaConst_(ClassData), 0); KDEFINE_METHOD MethodData[] = { _Public|_Const, _F(Object_getTypeId), TY_int, TY_Object, MN_("getTypeId"), 0, DEND, }; KLIB kNameSpace_loadMethodData(kctx, ns, MethodData); return true; }
static kbool_t file_PackupNameSpace(KonohaContext *kctx, kNameSpace *ns, int option, KTraceInfo *trace) { KRequireKonohaCommonModule(trace); KRequirePackage("Type.Bytes", trace); if(KClass_File == NULL) { KDEFINE_CLASS defFile = { .structname = "File", .typeId = KTypeAttr_NewId, .cstruct_size = sizeof(kFile), .cflag = KClassFlag_Final, .init = kFile_Init, .reftrace = kFile_Reftrace, .free = kFile_Free, .format = kFile_format, }; KClass_File = KLIB kNameSpace_DefineClass(kctx, ns, NULL, &defFile, trace); } file_defineMethod(kctx, ns, trace); file_defineConst(kctx, ns, trace); return true; }
static kbool_t JSON_initPackage(KonohaContext *kctx, kNameSpace *ns, int argc, const char**args, KTraceInfo *trace) { KRequirePackage("konoha.float", trace); KDEFINE_CLASS JSONDef = { STRUCTNAME(JSON), .cflag = kClass_Final, .init = kJSON_init, .free = kJSON_free, .p = kJSON_p, }; KonohaClass *cJSON = KLIB kNameSpace_defineClass(kctx, ns, NULL, &JSONDef, trace); kparamtype_t ps = {TY_JSON, FN_("json")}; KonohaClass *CT_JSONArray = KLIB KonohaClass_Generics(kctx, CT_Array, TY_JSON, 1, &ps); ktype_t TY_JSONArray = CT_JSONArray->typeId; int FN_key = FN_("key"); int FN_v = FN_("v"); KDEFINE_METHOD MethodData[] = { _Public|_Const|_Static, _F(kJSON_parse), TY_JSON, TY_JSON, MN_("parse"), 1, TY_String, FN_("data"), _Public|_Const|_Im, _F(kJSON_get), TY_JSON, TY_JSON, MN_("get"), 1, TY_String, FN_key, _Public|_Const|_Im, _F(kJSON_getArray), TY_JSONArray, TY_JSON, MN_("getArray"), 1, TY_String, FN_key, _Public|_Const|_Im, _F(kJSON_getBool), TY_boolean, TY_JSON, MN_("getBool"), 1, TY_String, FN_key, _Public|_Const|_Im, _F(kJSON_getFloat), TY_float, TY_JSON, MN_("getFloat"), 1, TY_String, FN_key, _Public|_Const|_Im, _F(kJSON_getInt), TY_int, TY_JSON, MN_("getInt"), 1, TY_String, FN_key, _Public|_Const|_Im, _F(kJSON_getString), TY_String, TY_JSON, MN_("getString"), 1, TY_String, FN_key, _Public, _F(kJSON_new), TY_JSON, TY_JSON, MN_("new"), 0, _Public, _F(kJSON_set), TY_void, TY_JSON, MN_("set"), 2, TY_String, FN_key, TY_JSON, FN_("value"), _Public|_Const|_Im, _F(kJSONArray_get), TY_JSON, TY_JSONArray, MN_("get"), 1, TY_int, FN_("index"), _Public, _F(kJSONArray_append), TY_void, TY_JSONArray, MN_("add"), 1, TY_JSON, FN_v, _Public, _F(kJSONArray_append), TY_void, TY_JSONArray, MN_("append"), 1, TY_JSON, FN_v, _Public|_Const|_Im, _F(kJSONArray_getSize),TY_int, TY_JSONArray, MN_("getSize"),0, DEND, }; KLIB kNameSpace_loadMethodData(kctx, ns, MethodData); return true; }
static kbool_t curl_PackupNameSpace(KonohaContext *kctx, kNameSpace *ns, int option, KTraceInfo *trace) { KRequireKonohaCommonModule(trace); KRequirePackage("Type.File", trace); KDEFINE_CLASS defCurl = { STRUCTNAME(Curl), .cflag = KClassFlag_Final, .init = kCurl_Init, .reftrace = kCurl_Reftrace, .free = kCurl_Free, }; KClass *cCurl = KLIB kNameSpace_DefineClass(kctx, ns, NULL, &defCurl, trace); KDEFINE_METHOD MethodData[] = { _Public, _F(Curl_new), KType_Curl, KType_Curl, KMethodName_("new"), 0, _Public, _F(Curl_SetOptBoolean), KType_void, KType_Curl, KMethodName_("setOpt"), 2, KType_Int, KFieldName_("option"), KType_Boolean, KFieldName_("data"), _Public, _F(Curl_SetOptInt), KType_void, KType_Curl, KMethodName_("setOpt"), 2, KType_Int, KFieldName_("option"), KType_Int, KFieldName_("data"), _Public, _F(Curl_SetOptString), KType_void, KType_Curl, KMethodName_("setOpt"), 2, KType_Int, KFieldName_("option"), KType_String, KFieldName_("data"), _Public, _F(Curl_SetOptFile), KType_void, KType_Curl, KMethodName_("setOpt"), 2, KType_Int, KFieldName_("option"), KType_File, KFieldName_("data"), _Public, _F(Curl_appendHeader), KType_void, KType_Curl, KMethodName_("appendHeader"), 1, KType_String, KFieldName_("header"), _Public, _F(Curl_perform), KType_Boolean, KType_Curl, KMethodName_("perform"), 0, _Public, _F(Curl_receiveString), KType_String, KType_Curl, KMethodName_("receiveString"), 0, _Public|_Im, _F(Curl_getInfo), KType_Object/*FIXME KType_Dynamic*/, KType_Curl, KMethodName_("getInfo"), 1, KType_Int, KFieldName_("type"), DEND, }; KLIB kNameSpace_LoadMethodData(kctx, ns, MethodData, trace); KDEFINE_INT_CONST IntData[] = { {KDefineConstInt(CURLOPT_AUTOREFERER)}, {KDefineConstInt(CURLOPT_COOKIESESSION)}, {KDefineConstInt(CURLOPT_CRLF)}, {KDefineConstInt(CURLOPT_DNS_USE_GLOBAL_CACHE)}, {KDefineConstInt(CURLOPT_FAILONERROR)}, {KDefineConstInt(CURLOPT_FILETIME)}, {KDefineConstInt(CURLOPT_FOLLOWLOCATION)}, {KDefineConstInt(CURLOPT_FORBID_REUSE)}, {KDefineConstInt(CURLOPT_FRESH_CONNECT)}, {KDefineConstInt(CURLOPT_FTP_USE_EPRT)}, {KDefineConstInt(CURLOPT_FTP_USE_EPSV)}, {KDefineConstInt(CURLOPT_FTPAPPEND)}, {KDefineConstInt(CURLOPT_FTPLISTONLY)}, {KDefineConstInt(CURLOPT_HEADER)}, {KDefineConstInt(CURLOPT_HTTPGET)}, {KDefineConstInt(CURLOPT_HTTPPROXYTUNNEL)}, {KDefineConstInt(CURLOPT_NETRC)}, {KDefineConstInt(CURLOPT_NOBODY)}, {KDefineConstInt(CURLOPT_NOPROGRESS)}, {KDefineConstInt(CURLOPT_NOSIGNAL)}, {KDefineConstInt(CURLOPT_POST)}, {KDefineConstInt(CURLOPT_PUT)}, {KDefineConstInt(CURLOPT_SSL_VERIFYPEER)}, {KDefineConstInt(CURLOPT_TRANSFERTEXT)}, {KDefineConstInt(CURLOPT_UNRESTRICTED_AUTH)}, {KDefineConstInt(CURLOPT_UPLOAD)}, {KDefineConstInt(CURLOPT_VERBOSE)}, {KDefineConstInt(CURLOPT_BUFFERSIZE)}, {KDefineConstInt(CURLOPT_CLOSEPOLICY)}, {KDefineConstInt(CURLOPT_CONNECTTIMEOUT)}, {KDefineConstInt(CURLOPT_DNS_CACHE_TIMEOUT)}, {KDefineConstInt(CURLOPT_FTPSSLAUTH)}, {KDefineConstInt(CURLOPT_HTTP_VERSION)}, {KDefineConstInt(CURLOPT_HTTPAUTH)}, {KDefineConstInt(CURLAUTH_ANY)}, {KDefineConstInt(CURLAUTH_ANYSAFE)}, {KDefineConstInt(CURLOPT_INFILESIZE)}, {KDefineConstInt(CURLOPT_LOW_SPEED_LIMIT)}, {KDefineConstInt(CURLOPT_LOW_SPEED_TIME)}, {KDefineConstInt(CURLOPT_MAXCONNECTS)}, {KDefineConstInt(CURLOPT_MAXREDIRS)}, {KDefineConstInt(CURLOPT_PORT)}, {KDefineConstInt(CURLOPT_PROXYAUTH)}, {KDefineConstInt(CURLOPT_PROXYPORT)}, {KDefineConstInt(CURLOPT_PROXYTYPE)}, {KDefineConstInt(CURLOPT_RESUME_FROM)}, {KDefineConstInt(CURLOPT_SSL_VERIFYHOST)}, {KDefineConstInt(CURLOPT_SSLVERSION)}, {KDefineConstInt(CURLOPT_TIMECONDITION)}, {KDefineConstInt(CURLOPT_TIMEOUT)}, {KDefineConstInt(CURLOPT_TIMEVALUE)}, {KDefineConstInt(CURLOPT_CAINFO)}, {KDefineConstInt(CURLOPT_CAPATH)}, {KDefineConstInt(CURLOPT_COOKIE)}, {KDefineConstInt(CURLOPT_COOKIEFILE)}, {KDefineConstInt(CURLOPT_COOKIEJAR)}, {KDefineConstInt(CURLOPT_CUSTOMREQUEST)}, {KDefineConstInt(CURLOPT_ENCODING)}, {KDefineConstInt(CURLOPT_FTPPORT)}, {KDefineConstInt(CURLOPT_INTERFACE)}, {KDefineConstInt(CURLOPT_KRB4LEVEL)}, {KDefineConstInt(CURLOPT_POSTFIELDS)}, {KDefineConstInt(CURLOPT_PROXY)}, {KDefineConstInt(CURLOPT_PROXYUSERPWD)}, {KDefineConstInt(CURLOPT_RANDOM_FILE)}, {KDefineConstInt(CURLOPT_RANGE)}, {KDefineConstInt(CURLOPT_REFERER)}, {KDefineConstInt(CURLOPT_SSL_CIPHER_LIST)}, {KDefineConstInt(CURLOPT_SSLCERT)}, {KDefineConstInt(CURLOPT_SSLCERTTYPE)}, {KDefineConstInt(CURLOPT_SSLENGINE)}, {KDefineConstInt(CURLOPT_SSLENGINE_DEFAULT)}, {KDefineConstInt(CURLOPT_SSLKEY)}, {KDefineConstInt(CURLOPT_SSLKEYTYPE)}, {KDefineConstInt(CURLOPT_URL)}, {KDefineConstInt(CURLOPT_USERAGENT)}, {KDefineConstInt(CURLOPT_USERPWD)}, {KDefineConstInt(CURLOPT_FILE)}, {KDefineConstInt(CURLOPT_WRITEDATA)}, {KDefineConstInt(CURLOPT_READDATA)}, {KDefineConstInt(CURLOPT_STDERR)}, {KDefineConstInt(CURLOPT_WRITEHEADER)}, {KDefineConstInt(CURLINFO_HEADER_SIZE)}, {KDefineConstInt(CURLINFO_REQUEST_SIZE)}, {KDefineConstInt(CURLINFO_REDIRECT_TIME)}, {KDefineConstInt(CURLINFO_TOTAL_TIME)}, {KDefineConstInt(CURLINFO_NAMELOOKUP_TIME)}, {KDefineConstInt(CURLINFO_CONNECT_TIME)}, {KDefineConstInt(CURLINFO_PRETRANSFER_TIME)}, {KDefineConstInt(CURLINFO_STARTTRANSFER_TIME)}, {KDefineConstInt(CURLINFO_SIZE_UPLOAD)}, {KDefineConstInt(CURLINFO_SIZE_DOWNLOAD)}, {KDefineConstInt(CURLINFO_SPEED_DOWNLOAD)}, {KDefineConstInt(CURLINFO_SPEED_UPLOAD)}, {KDefineConstInt(CURLINFO_EFFECTIVE_URL)}, {KDefineConstInt(CURLINFO_CONTENT_TYPE)}, {} // end of const data }; KLIB kNameSpace_LoadConstData(kctx, ns, KConst_(IntData), trace); return true; }
static kbool_t jansson_initPackage(KonohaContext *kctx, kNameSpace *ns, int argc, const char**args, KTraceInfo *trace) { KRequirePackage("konoha.float", trace); KDEFINE_CLASS JsonDef = { .structname = "Json", .typeId = TY_newid, .cflag = kClass_Final, .init = Jansson_init, .free = Jansson_free, .p = Jansson_p, }; KonohaClass *cJson = KLIB kNameSpace_defineClass(kctx, ns, NULL, &JsonDef, trace); ktype_t TY_JsonArray = CT_JsonArray->typeId; ktype_t TY_StringArray0 = CT_StringArray0->typeId; int FN_k = FN_("key"); int FN_v = FN_("value"); KDEFINE_METHOD MethodData[] = { _Public|_Const|_Im, _F(Json_dump), TY_String, TY_Json, MN_("dump"), 0, _Public|_Const|_Im, _F(Json_getJson), TY_Json, TY_Json, MN_("getJson"), 1, TY_String, FN_k, _Public|_Const|_Im, _F(Json_getArray), TY_JsonArray, TY_Json, MN_("getArray"), 1, TY_String, FN_k, _Public|_Const|_Im, _F(Json_getBool), TY_boolean, TY_Json, MN_("getBool"), 1, TY_String, FN_k, _Public|_Const|_Im, _F(Json_getFloat), TY_float, TY_Json, MN_("getFloat"), 1, TY_String, FN_k, _Public|_Const|_Im, _F(Json_getInt), TY_int, TY_Json, MN_("getInt"), 1, TY_String, FN_k, _Public|_Const|_Im, _F(Json_getString), TY_String, TY_Json, MN_("getString"), 1, TY_String, FN_k, _Public, _F(Json_new), TY_Json, TY_Json, MN_("new"), 0, _Public|_Static|_Const|_Im, _F(Json_parse), TY_Json, TY_Json, MN_("parse"), 1, TY_String, FN_v, _Public, _F(Json_setJson), TY_void, TY_Json, MN_("setJson"), 2, TY_String, FN_k, TY_Json, FN_v, _Public, _F(Json_setArray), TY_void, TY_Json, MN_("setArray"), 2, TY_String, FN_k, TY_JsonArray, FN_v, _Public, _F(Json_setBool), TY_void, TY_Json, MN_("setBool"), 2, TY_String, FN_k, TY_boolean, FN_v, _Public, _F(Json_setFloat), TY_void, TY_Json, MN_("setFloat"), 2, TY_String, FN_k, TY_float, FN_v, _Public, _F(Json_setInt), TY_void, TY_Json, MN_("setInt"), 2, TY_String, FN_k, TY_int, FN_v, _Public, _F(Json_setString), TY_void, TY_Json, MN_("setString"), 2, TY_String, FN_k, TY_String, FN_v, _Public|_Const|_Im, _F(Json_getKeys), TY_StringArray0, TY_Json, MN_("getKeys"), 0, _Public|_Const|_Im, _F(Json_dump), TY_String, TY_JsonArray, MN_("dump"), 0, _Public, _F(JsonArray_newArray), TY_JsonArray, TY_JsonArray, MN_("newArray"), 1, TY_int, FN_("size"), _Public|_Const|_Im, _F(JsonArray_get), TY_Json, TY_JsonArray, MN_("get"), 1, TY_int, FN_("idx"), _Public, _F(JsonArray_add), TY_void, TY_JsonArray, MN_("add"), 1, TY_Json, FN_v, _Public|_Const|_Im, _F(JsonArray_getSize), TY_int, TY_JsonArray, MN_("getSize"), 0, DEND, }; KLIB kNameSpace_loadMethodData(kctx, ns, MethodData); return true; } static kbool_t jansson_setupPackage(KonohaContext *kctx, kNameSpace *ns, isFirstTime_t isFirstTime, KTraceInfo *trace) { return true; } KDEFINE_PACKAGE* jansson_init(void) { static KDEFINE_PACKAGE d = { KPACKNAME("jansson", "1.0"), .initPackage = jansson_initPackage, .setupPackage = jansson_setupPackage, }; return &d; }
static kbool_t Complex_PackupNameSpace(KonohaContext *kctx, kNameSpace *ns, int option, KTraceInfo *trace) { KRequirePackage("Type.Float", trace); KDEFINE_CLASS defComplex = {0}; SETSTRUCTNAME(defComplex, Complex); defComplex.cflag = KClassFlag_Final; defComplex.init = kComplex_Init; defComplex.free = kComplex_Free; KClass *ComplexClass = KLIB kNameSpace_DefineClass(kctx, ns, NULL, &defComplex, trace); int KType_Complex = ComplexClass->typeId; KDEFINE_METHOD MethodData[] = { _Public, _F(Complex_new), KType_Complex, KType_Complex, KMethodName_("new"), 2, KType_float, KFieldName_("real"), KType_float, KFieldName_("imaginary"), _Public, _F(Complex_csin), KType_float, KType_Complex, KMethodName_("csin"), 0, _Public, _F(Complex_csinf), KType_float, KType_Complex, KMethodName_("csinf"), 0, _Public, _F(Complex_csinl), KType_float, KType_Complex, KMethodName_("csinl"), 0, _Public, _F(Complex_ccos), KType_float, KType_Complex, KMethodName_("ccos"), 0, _Public, _F(Complex_ccosf), KType_float, KType_Complex, KMethodName_("ccosf"), 0, _Public, _F(Complex_ccosl), KType_float, KType_Complex, KMethodName_("ccosl"), 0, _Public, _F(Complex_ctan), KType_float, KType_Complex, KMethodName_("ctan"), 0, _Public, _F(Complex_ctanf), KType_float, KType_Complex, KMethodName_("ctanf"), 0, _Public, _F(Complex_ctanl), KType_float, KType_Complex, KMethodName_("ctanl"), 0, _Public, _F(Complex_casin), KType_float, KType_Complex, KMethodName_("casin"), 0, _Public, _F(Complex_casinf), KType_float, KType_Complex, KMethodName_("casinf"), 0, _Public, _F(Complex_casinl), KType_float, KType_Complex, KMethodName_("casinl"), 0, _Public, _F(Complex_cacos), KType_float, KType_Complex, KMethodName_("cacos"), 0, _Public, _F(Complex_cacosf), KType_float, KType_Complex, KMethodName_("cacosf"), 0, _Public, _F(Complex_cacosl), KType_float, KType_Complex, KMethodName_("cacosl"), 0, _Public, _F(Complex_catan), KType_float, KType_Complex, KMethodName_("catan"), 0, _Public, _F(Complex_catanf), KType_float, KType_Complex, KMethodName_("catanf"), 0, _Public, _F(Complex_catanl), KType_float, KType_Complex, KMethodName_("catanl"), 0, _Public, _F(Complex_csinh), KType_float, KType_Complex, KMethodName_("csinh"), 0, _Public, _F(Complex_csinhf), KType_float, KType_Complex, KMethodName_("csinhf"), 0, _Public, _F(Complex_csinhl), KType_float, KType_Complex, KMethodName_("csinhl"), 0, _Public, _F(Complex_ccosh), KType_float, KType_Complex, KMethodName_("ccosh"), 0, _Public, _F(Complex_ccoshf), KType_float, KType_Complex, KMethodName_("ccoshf"), 0, _Public, _F(Complex_ccoshl), KType_float, KType_Complex, KMethodName_("ccoshl"), 0, _Public, _F(Complex_ctanh), KType_float, KType_Complex, KMethodName_("ctanh"), 0, _Public, _F(Complex_ctanhf), KType_float, KType_Complex, KMethodName_("ctanhf"), 0, _Public, _F(Complex_ctanhl), KType_float, KType_Complex, KMethodName_("ctanhl"), 0, _Public, _F(Complex_casinh), KType_float, KType_Complex, KMethodName_("casinh"), 0, _Public, _F(Complex_casinhf), KType_float, KType_Complex, KMethodName_("casinhf"), 0, _Public, _F(Complex_casinhl), KType_float, KType_Complex, KMethodName_("casinhl"), 0, _Public, _F(Complex_cacosh), KType_float, KType_Complex, KMethodName_("cacosh"), 0, _Public, _F(Complex_cacoshf), KType_float, KType_Complex, KMethodName_("cacoshf"), 0, _Public, _F(Complex_cacoshl), KType_float, KType_Complex, KMethodName_("cacoshl"), 0, _Public, _F(Complex_catanh), KType_float, KType_Complex, KMethodName_("catanh"), 0, _Public, _F(Complex_catanhf), KType_float, KType_Complex, KMethodName_("catanhf"), 0, _Public, _F(Complex_catanhl), KType_float, KType_Complex, KMethodName_("catanhl"), 0, _Public, _F(Complex_cexp), KType_float, KType_Complex, KMethodName_("cexp"), 0, _Public, _F(Complex_cexpf), KType_float, KType_Complex, KMethodName_("cexpf"), 0, _Public, _F(Complex_cexpl), KType_float, KType_Complex, KMethodName_("cexpl"), 0, _Public, _F(Complex_clog), KType_float, KType_Complex, KMethodName_("clog"), 0, _Public, _F(Complex_clogf), KType_float, KType_Complex, KMethodName_("clogf"), 0, _Public, _F(Complex_clogl), KType_float, KType_Complex, KMethodName_("clogl"), 0, _Public, _F(Complex_cabs), KType_float, KType_Complex, KMethodName_("cabs"), 0, _Public, _F(Complex_cabsf), KType_float, KType_Complex, KMethodName_("cabsf"), 0, _Public, _F(Complex_cabsl), KType_float, KType_Complex, KMethodName_("cabsl"), 0, _Public, _F(Complex_csqrt), KType_float, KType_Complex, KMethodName_("csqrt"), 0, _Public, _F(Complex_csqrtf), KType_float, KType_Complex, KMethodName_("csqrtf"), 0, _Public, _F(Complex_csqrtl), KType_float, KType_Complex, KMethodName_("csqrtl"), 0, _Public, _F(Complex_cpow), KType_float, KType_Complex, KMethodName_("cpow"), 2, KType_float, KFieldName_("real"), KType_float, KFieldName_("imaginary"), _Public, _F(Complex_cpowf), KType_float, KType_Complex, KMethodName_("cpowf"), 2, KType_float, KFieldName_("real"), KType_float, KFieldName_("imaginary"), _Public, _F(Complex_cpowl), KType_float, KType_Complex, KMethodName_("cpowl"), 2, KType_float, KFieldName_("real"), KType_float, KFieldName_("imaginary"), _Public, _F(Complex_creal), KType_float, KType_Complex, KMethodName_("creal"), 0, _Public, _F(Complex_crealf), KType_float, KType_Complex, KMethodName_("crealf"), 0, _Public, _F(Complex_creall), KType_float, KType_Complex, KMethodName_("creall"), 0, _Public, _F(Complex_cimag), KType_float, KType_Complex, KMethodName_("cimag"), 0, _Public, _F(Complex_cimagf), KType_float, KType_Complex, KMethodName_("cimagf"), 0, _Public, _F(Complex_cimagl), KType_float, KType_Complex, KMethodName_("cimagl"), 0, _Public, _F(Complex_carg), KType_float, KType_Complex, KMethodName_("carg"), 0, _Public, _F(Complex_cargf), KType_float, KType_Complex, KMethodName_("cargf"), 0, _Public, _F(Complex_cargl), KType_float, KType_Complex, KMethodName_("cargl"), 0, _Public, _F(Complex_conj), KType_Complex, KType_Complex, KMethodName_("conj"), 0, _Public, _F(Complex_conjf), KType_Complex, KType_Complex, KMethodName_("conjf"), 0, _Public, _F(Complex_conjl), KType_Complex, KType_Complex, KMethodName_("conjl"), 0, DEND, /* <= sentinel */ }; KLIB kNameSpace_LoadMethodData(kctx, ns, MethodData, trace); return true; }
static kbool_t konoha_initPackage(KonohaContext *kctx, kNameSpace *ns, int argc, const char**args, KTraceInfo *trace) { KRequirePackage("cstyle", trace); // continue, break KRequirePackage("konoha.namespace", trace); KRequirePackage("konoha.const", trace); KRequirePackage("konoha.global", trace); KRequirePackage("konoha.class", trace); // subtype KRequirePackage("konoha.null", trace); KRequirePackage("konoha.var", trace); KRequirePackage("konoha.object", trace); // subtype KRequirePackage("konoha.int", trace); #ifndef K_USING_NOFLOAT KRequirePackage("konoha.float", trace); #endif KRequirePackage("konoha.string", trace); KRequirePackage("konoha.array", trace); KRequirePackage("konoha.map", trace); KRequirePackage("konoha.iterator", trace); KRequirePackage("konoha.assign", trace); KRequirePackage("konoha.io", trace); return true; }
static kbool_t math_PackupNameSpace(KonohaContext *kctx, kNameSpace *ns, int option, KTraceInfo *trace) { KRequirePackage("Type.Float", trace); static KDEFINE_CLASS MathDef = {0}; MathDef.cflag = KClassFlag_Singleton|KClassFlag_Final; MathDef.structname = "Math"; /*structname*/ MathDef.typeId = KTypeAttr_NewId; /*cid*/ KClass *cMath = KLIB kNameSpace_DefineClass(kctx, ns, NULL, &MathDef, trace); int FN_x = KFieldName_("x"); int FN_y = KFieldName_("y"); KDEFINE_METHOD MethodData[] = { _Public|_Const|_Static, _F(Math_abs), KType_Int, KType_Math, KMethodName_("abs"), 1, KType_Int, FN_x, _Public|_Const|_Static, _F(Math_fabs), KType_float, KType_Math, KMethodName_("fabs"), 1, KType_float, FN_x, _Public|_Const|_Static, _F(Math_pow), KType_float, KType_Math, KMethodName_("pow"), 2, KType_float, FN_x, KType_float, FN_y, _Public|_Const|_Static, _F(Math_ldexp), KType_float, KType_Math, KMethodName_("ldexp"), 2, KType_float, FN_x, KType_Int, FN_y, _Public|_Const|_Static, _F(Math_modf), KType_float, KType_Math, KMethodName_("modf"), 2, KType_float, FN_x, KType_float, FN_y, _Public|_Const|_Static, _F(Math_frexp), KType_float, KType_Math, KMethodName_("frexp"), 2, KType_float, FN_x, KType_Int, FN_y, _Public|_Const|_Static, _F(Math_fmod), KType_float, KType_Math, KMethodName_("fmod"), 2, KType_float, FN_x, KType_float, FN_y, _Public|_Const|_Static, _F(Math_ceil), KType_float, KType_Math, KMethodName_("ceil"), 1, KType_float, FN_x, #ifdef K_USING_WIN32_ _Public, _F(Math_round), KType_float, KType_Math, KMethodName_("round"), 1, KType_float, FN_x, _Public, _F(Math_nearByInt), KType_float, KType_Math, KMethodName_("nearByInt"), 1, KType_float, FN_x, #endif _Public|_Const|_Static, _F(Math_floor), KType_float, KType_Math, KMethodName_("floor"), 1, KType_float, FN_x, _Public|_Const|_Static, _F(Math_sqrt), KType_float, KType_Math, KMethodName_("sqrt"), 1, KType_float, FN_x, _Public|_Const|_Static, _F(Math_exp), KType_float, KType_Math, KMethodName_("exp"), 1, KType_float, FN_x, _Public|_Const|_Static, _F(Math_log10), KType_float, KType_Math, KMethodName_("log10"), 1, KType_float, FN_x, _Public|_Const|_Static, _F(Math_log), KType_float, KType_Math, KMethodName_("log"), 1, KType_float, FN_x, _Public|_Const|_Static, _F(Math_sin), KType_float, KType_Math, KMethodName_("sin"), 1, KType_float, FN_x, _Public|_Const|_Static, _F(Math_cos), KType_float, KType_Math, KMethodName_("cos"), 1, KType_float, FN_x, _Public|_Const|_Static, _F(Math_tan), KType_float, KType_Math, KMethodName_("tan"), 1, KType_float, FN_x, _Public|_Const|_Static, _F(Math_asin), KType_float, KType_Math, KMethodName_("asin"), 1, KType_float, FN_x, _Public|_Const|_Static, _F(Math_acos), KType_float, KType_Math, KMethodName_("acos"), 1, KType_float, FN_x, _Public|_Const|_Static, _F(Math_atan), KType_float, KType_Math, KMethodName_("atan"), 1, KType_float, FN_x, _Public|_Const|_Static, _F(Math_atan2), KType_float, KType_Math, KMethodName_("atan2"), 2, KType_float, FN_x, KType_float, FN_y, _Public|_Const|_Static, _F(Math_sinh), KType_float, KType_Math, KMethodName_("sinh"), 1, KType_float, FN_x, _Public|_Const|_Static, _F(Math_cosh), KType_float, KType_Math, KMethodName_("cosh"), 1, KType_float, FN_x, _Public|_Const|_Static, _F(Math_tanh), KType_float, KType_Math, KMethodName_("tanh"), 1, KType_float, FN_x, #if defined(K_USING_WIN32_) _Public|_Const|_Static, _F(Math_asinh), KType_float, KType_Math, KMethodName_("asinh"), 1, KType_float, FN_x, _Public|_Const|_Static, _F(Math_acosh), KType_float, KType_Math, KMethodName_("acosh"), 1, KType_float, FN_x, _Public|_Const|_Static, _F(Math_atanh), KType_float, KType_Math, KMethodName_("atanh"), 1, KType_float, FN_x, #endif _Public, _F(Math_random), KType_float, KType_Math, KMethodName_("random"), 0, DEND, }; KLIB kNameSpace_LoadMethodData(kctx, ns, MethodData, trace); KDEFINE_FLOAT_CONST FloatData[] = { {MATH_(E)}, {MATH_(LOG2E)}, {MATH_(LOG10E)}, {MATH_(LN2)}, {MATH_(LN10)}, {MATH_(PI)}, {MATH_(SQRT2)}, {} }; KLIB kNameSpace_LoadConstData(kctx, ns, KConst_(FloatData), trace); return true; }