Beispiel #1
0
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;
}
Beispiel #2
0
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;
}
Beispiel #3
0
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;
}
Beispiel #4
0
	};

	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)