static kbool_t sugar_ExportNameSpace(KonohaContext *kctx, kNameSpace *ns, kNameSpace *exportNS, int option, KTraceInfo *trace) { KDEFINE_INT_CONST IntData[] = { #define DEFINE_KEYWORD(KW) {#KW, TY_int, KW} DEFINE_KEYWORD(ErrTag), DEFINE_KEYWORD(WarnTag), DEFINE_KEYWORD(NoticeTag), DEFINE_KEYWORD(InfoTag), DEFINE_KEYWORD(DebugTag), #undef DEFINE_KEYWORD {NULL}, }; KLIB kNameSpace_LoadConstData(kctx, exportNS, KonohaConst_(IntData), trace); return true; }
static kbool_t Syntax_ExportNameSpace(KonohaContext *kctx, kNameSpace *ns, kNameSpace *exportNS, int option, KTraceInfo *trace) { KDEFINE_INT_CONST IntData[] = { #define DEFINE_KEYWORD(KW) {#KW, KType_Int, KW} DEFINE_KEYWORD(ErrTag), DEFINE_KEYWORD(WarnTag), DEFINE_KEYWORD(NoticeTag), DEFINE_KEYWORD(InfoTag), DEFINE_KEYWORD(DebugTag), DEFINE_KEYWORD(TypeCheckPolicy_NoCheck), DEFINE_KEYWORD(TypeCheckPolicy_AllowVoid), DEFINE_KEYWORD(TypeCheckPolicy_Coercion), DEFINE_KEYWORD(TypeCheckPolicy_CONST), DEFINE_KEYWORD(Precedence_CPPStyleScope), DEFINE_KEYWORD(Precedence_CStyleSuffixCall), /*x(), x[], x.x x->x x++ */ DEFINE_KEYWORD(Precedence_CStylePrefixOperator), /*++x, --x, sizeof x &x +x -x !x (T)x */ // DEFINE_KEYWORD(Precedence_CppMember), /* .x ->x */ DEFINE_KEYWORD(Precedence_CStyleMUL), /* x * x, x / x, x % x*/ DEFINE_KEYWORD(Precedence_CStyleADD), /* x + x, x - x */ DEFINE_KEYWORD(Precedence_CStyleSHIFT), /* x << x, x >> x */ DEFINE_KEYWORD(Precedence_CStyleCOMPARE), DEFINE_KEYWORD(Precedence_CStyleEquals), DEFINE_KEYWORD(Precedence_CStyleBITAND), DEFINE_KEYWORD(Precedence_CStyleBITXOR), DEFINE_KEYWORD(Precedence_CStyleBITOR), DEFINE_KEYWORD(Precedence_CStyleAND), DEFINE_KEYWORD(Precedence_CStyleOR), DEFINE_KEYWORD(Precedence_CStyleTRINARY), /* ? : */ DEFINE_KEYWORD(Precedence_CStyleAssign), DEFINE_KEYWORD(Precedence_CStyleCOMMA), DEFINE_KEYWORD(Precedence_Statement), DEFINE_KEYWORD(Precedence_CStyleStatementEnd), DEFINE_KEYWORD(KNode_Done), DEFINE_KEYWORD(KNode_Const), DEFINE_KEYWORD(KNode_New), DEFINE_KEYWORD(KNode_Null), DEFINE_KEYWORD(KNode_UnboxConst), DEFINE_KEYWORD(KNode_Local), DEFINE_KEYWORD(KNode_Field), DEFINE_KEYWORD(KNode_Box), DEFINE_KEYWORD(KNode_MethodCall), DEFINE_KEYWORD(KNode_And), DEFINE_KEYWORD(KNode_Or), DEFINE_KEYWORD(KNode_Assign), DEFINE_KEYWORD(KNode_Block), DEFINE_KEYWORD(KNode_If), DEFINE_KEYWORD(KNode_While), DEFINE_KEYWORD(KNode_DoWhile), DEFINE_KEYWORD(KNode_Return), DEFINE_KEYWORD(KNode_Break), DEFINE_KEYWORD(KNode_Continue), DEFINE_KEYWORD(KNode_Try), DEFINE_KEYWORD(KNode_Throw), DEFINE_KEYWORD(KNode_Error), #undef DEFINE_KEYWORD {NULL}, }; KLIB kNameSpace_LoadConstData(kctx, exportNS, KConst_(IntData), trace); return true; }
static kbool_t RENAMEME_InitNameSpace(KonohaContext *kctx, kNameSpace *packageNS, kNameSpace *ns, KTraceInfo *trace) { KDEFINE_INT_CONST IntData[] = { #define DEFINE_KEYWORD(KW) {#KW, TY_int, KW} DEFINE_KEYWORD(KW_ExprPattern), DEFINE_KEYWORD(KW_SymbolPattern), DEFINE_KEYWORD(KW_TextPattern), DEFINE_KEYWORD(KW_NumberPattern), DEFINE_KEYWORD(KW_TypePattern), DEFINE_KEYWORD(KW_ParenthesisGroup), DEFINE_KEYWORD(KW_BracketGroup), DEFINE_KEYWORD(KW_BraceGroup), DEFINE_KEYWORD(KW_BlockPattern), DEFINE_KEYWORD(KW_ParamPattern), DEFINE_KEYWORD(KW_TokenPattern), DEFINE_KEYWORD(TSTMT_UNDEFINED), DEFINE_KEYWORD(TSTMT_ERR), DEFINE_KEYWORD(TSTMT_EXPR), DEFINE_KEYWORD(TSTMT_BLOCK), DEFINE_KEYWORD(TSTMT_RETURN), DEFINE_KEYWORD(TSTMT_IF), DEFINE_KEYWORD(TSTMT_LOOP), DEFINE_KEYWORD(TSTMT_JUMP), DEFINE_KEYWORD(TEXPR_CONST), DEFINE_KEYWORD(TEXPR_NEW), DEFINE_KEYWORD(TEXPR_NULL), DEFINE_KEYWORD(TEXPR_NCONST), DEFINE_KEYWORD(TEXPR_LOCAL), DEFINE_KEYWORD(TEXPR_BLOCK), DEFINE_KEYWORD(TEXPR_FIELD), // DEFINE_KEYWORD(TEXPR_BOX), // DEFINE_KEYWORD(TEXPR_UNBOX), DEFINE_KEYWORD(TEXPR_CALL), DEFINE_KEYWORD(TEXPR_AND), DEFINE_KEYWORD(TEXPR_OR), DEFINE_KEYWORD(TEXPR_LET), DEFINE_KEYWORD(TEXPR_STACKTOP), DEFINE_KEYWORD(TypeCheckPolicy_NOCHECK), DEFINE_KEYWORD(TypeCheckPolicy_ALLOWVOID), DEFINE_KEYWORD(TypeCheckPolicy_COERCION), DEFINE_KEYWORD(TypeCheckPolicy_CONST), #undef DEFINE_KEYWORD {NULL}, }; KLIB kNameSpace_LoadConstData(kctx, ns, KonohaConst_(IntData), trace); KDEFINE_SYNTAX SYNTAX[] = { { SYM_("syntax"), 0, "\"syntax\" $Token*", 0, 0, NULL, NULL, Statement_syntax, NULL, NULL, }, { KW_END, }, }; SUGAR kNameSpace_DefineSyntax(kctx, ns, SYNTAX, trace); return true; }
}; KModuleApache *mod = (KModuleApache *)KCalloc_UNTRACE(sizeof(KModuleApache), 1); mod->h.name = "apache"; mod->h.allocSize = sizeof(KModuleApache); mod->h.setupModuleContext = ApacheModule_Setup; mod->h.freeModule = ApacheModule_Free; KLIB KonohaRuntime_setModule(kctx, MOD_APACHE, (KonohaModule *)mod, trace); mod->cRequest = KLIB kNameSpace_DefineClass(kctx, ns, NULL, &Def, 0); mod->cAprTable = KLIB kNameSpace_DefineClass(kctx, ns, NULL, &aprTableDef, 0); mod->cAprTableEntry = KLIB kNameSpace_DefineClass(kctx, ns, NULL, &aprTableEntryDef, 0); mod->cApache = KLIB kNameSpace_DefineClass(kctx, ns, NULL, &apacheDef, 0); KDEFINE_INT_CONST IntData[] = { #define DEFINE_KEYWORD(KW) {#KW, TY_int, KW} DEFINE_KEYWORD(OK), DEFINE_KEYWORD(APLOG_EMERG), DEFINE_KEYWORD(APLOG_ALERT), DEFINE_KEYWORD(APLOG_CRIT), DEFINE_KEYWORD(APLOG_ERR), DEFINE_KEYWORD(APLOG_WARNING), DEFINE_KEYWORD(APLOG_NOTICE), DEFINE_KEYWORD(APLOG_INFO), DEFINE_KEYWORD(APLOG_DEBUG), {NULL, 0, 0} }; KLIB kNameSpace_LoadConstData(kctx, ns, KonohaConst_(IntData), false/*isOverride*/, trace); return true; } static kbool_t apache_ExportNameSpace(KonohaContext *kctx, kNameSpace *ns, kNameSpace *exportNS, int option, KTraceInfo *trace)