Example #1
0
N_NIMCALL(NIM_BOOL, matchnodekinds_281344)(tnode191813* p, tnode191813* n) {
	NIM_BOOL result;
	TY281349 stack;
	NI sp;
	NimStringDesc* code;
	NI pc;
	NI TMP3605;
	nimfr("matchNodeKinds", "parampatterns.nim")
	result = 0;
	nimln(229, "parampatterns.nim");
	stack[(0)- 0] = NIM_TRUE;
	nimln(230, "parampatterns.nim");
	sp = 1;
	nimln(236, "parampatterns.nim");
	if (!(((TMP3568[(*p).Kind/8] &(1<<((*p).Kind%8)))!=0))) raiseFieldError(((NimStringDesc*) &TMP3569));
	code = (*p).kindU.S3.Strval;
	nimln(237, "parampatterns.nim");
	pc = 1;
	nimln(238, "parampatterns.nim");
	while (1) {
		nimln(239, "parampatterns.nim");
		if ((NU)(pc) > (NU)(code->Sup.len)) raiseIndexError();
		switch (((NU8)chckRange(((NU8)(code->data[pc])), ((NU8) 1), ((NU8) 15)))) {
		case ((NU8) 1):
		{
			nimln(240, "parampatterns.nim");
			goto LA1;
		}
		break;
		case ((NU8) 2):
		{
			NI TMP3595;
			NIM_BOOL LOC4;
			NI TMP3596;
			NI TMP3597;
			nimln(242, "parampatterns.nim");
			nimln(242, "parampatterns.nim");
			TMP3595 = subInt(sp, 2);
			if ((NU)((NI32)(TMP3595)) > (NU)(64)) raiseIndexError();
			nimln(242, "parampatterns.nim");
			LOC4 = 0;
			nimln(242, "parampatterns.nim");
			TMP3596 = subInt(sp, 1);
			if ((NU)((NI32)(TMP3596)) > (NU)(64)) raiseIndexError();
			LOC4 = stack[((NI32)(TMP3596))- 0];
			if (LOC4) goto LA5;
			nimln(242, "parampatterns.nim");
			TMP3597 = subInt(sp, 2);
			if ((NU)((NI32)(TMP3597)) > (NU)(64)) raiseIndexError();
			LOC4 = stack[((NI32)(TMP3597))- 0];
			LA5: ;
			stack[((NI32)(TMP3595))- 0] = LOC4;
			nimln(243, "parampatterns.nim");
			sp = subInt(sp, 1);
		}
		break;
		case ((NU8) 3):
		{
			NI TMP3598;
			NIM_BOOL LOC7;
			NI TMP3599;
			NI TMP3600;
			nimln(245, "parampatterns.nim");
			nimln(245, "parampatterns.nim");
			TMP3598 = subInt(sp, 2);
			if ((NU)((NI32)(TMP3598)) > (NU)(64)) raiseIndexError();
			nimln(245, "parampatterns.nim");
			LOC7 = 0;
			nimln(245, "parampatterns.nim");
			TMP3599 = subInt(sp, 1);
			if ((NU)((NI32)(TMP3599)) > (NU)(64)) raiseIndexError();
			LOC7 = stack[((NI32)(TMP3599))- 0];
			if (!(LOC7)) goto LA8;
			nimln(245, "parampatterns.nim");
			TMP3600 = subInt(sp, 2);
			if ((NU)((NI32)(TMP3600)) > (NU)(64)) raiseIndexError();
			LOC7 = stack[((NI32)(TMP3600))- 0];
			LA8: ;
			stack[((NI32)(TMP3598))- 0] = LOC7;
			nimln(246, "parampatterns.nim");
			sp = subInt(sp, 1);
		}
		break;
		case ((NU8) 4):
		{
			NI TMP3601;
			NI TMP3602;
			nimln(247, "parampatterns.nim");
			nimln(247, "parampatterns.nim");
			TMP3601 = subInt(sp, 1);
			if ((NU)((NI32)(TMP3601)) > (NU)(64)) raiseIndexError();
			nimln(247, "parampatterns.nim");
			nimln(247, "parampatterns.nim");
			TMP3602 = subInt(sp, 1);
			if ((NU)((NI32)(TMP3602)) > (NU)(64)) raiseIndexError();
			stack[((NI32)(TMP3601))- 0] = !(stack[((NI32)(TMP3602))- 0]);
		}
		break;
		case ((NU8) 5):
		{
			nimln(233, "parampatterns.nim");
			if ((NU)(sp) > (NU)(64)) raiseIndexError();
			nimln(248, "parampatterns.nim");
			stack[(sp)- 0] = ((*n).Kind == ((NU8) 3));
			nimln(234, "parampatterns.nim");
			sp = addInt(sp, 1);
		}
		break;
		case ((NU8) 6):
		{
			nimln(233, "parampatterns.nim");
			if ((NU)(sp) > (NU)(64)) raiseIndexError();
			stack[(sp)- 0] = isatom_198186(n);
			nimln(234, "parampatterns.nim");
			sp = addInt(sp, 1);
		}
		break;
		case ((NU8) 7):
		{
			nimln(233, "parampatterns.nim");
			if ((NU)(sp) > (NU)(64)) raiseIndexError();
			nimln(250, "parampatterns.nim");
			stack[(sp)- 0] = ((*n).Kind >= ((NU8) 5) && (*n).Kind <= ((NU8) 23));
			nimln(234, "parampatterns.nim");
			sp = addInt(sp, 1);
		}
		break;
		case ((NU8) 8):
		{
			nimln(233, "parampatterns.nim");
			if ((NU)(sp) > (NU)(64)) raiseIndexError();
			nimln(251, "parampatterns.nim");
			stack[(sp)- 0] = ((*n).Kind == ((NU8) 2));
			nimln(234, "parampatterns.nim");
			sp = addInt(sp, 1);
		}
		break;
		case ((NU8) 9):
		{
			nimln(233, "parampatterns.nim");
			if ((NU)(sp) > (NU)(64)) raiseIndexError();
			nimln(252, "parampatterns.nim");
			stack[(sp)- 0] = ((*n).Kind == ((NU8) 27) || (*n).Kind == ((NU8) 29) || (*n).Kind == ((NU8) 30) || (*n).Kind == ((NU8) 31) || (*n).Kind == ((NU8) 26) || (*n).Kind == ((NU8) 28) || (*n).Kind == ((NU8) 32));
			nimln(234, "parampatterns.nim");
			sp = addInt(sp, 1);
		}
		break;
		case ((NU8) 10):
		{
			NU8 kind;
			NI TMP3603;
			NIM_BOOL LOC16;
			nimln(254, "parampatterns.nim");
			nimln(254, "parampatterns.nim");
			TMP3603 = addInt(pc, 1);
			if ((NU)((NI32)(TMP3603)) > (NU)(code->Sup.len)) raiseIndexError();
			kind = ((NU8)chckRange(((NU8)(code->data[(NI32)(TMP3603)])), ((NU8) 0), ((NU8) 24)));
			nimln(233, "parampatterns.nim");
			if ((NU)(sp) > (NU)(64)) raiseIndexError();
			nimln(255, "parampatterns.nim");
			LOC16 = 0;
			nimln(255, "parampatterns.nim");
			LOC16 = ((*n).Kind == ((NU8) 3));
			if (!(LOC16)) goto LA17;
			nimln(255, "parampatterns.nim");
			if (!(((TMP3593[(*n).Kind/8] &(1<<((*n).Kind%8)))!=0))) raiseFieldError(((NimStringDesc*) &TMP3594));
			LOC16 = ((*(*n).kindU.S4.Sym).Kind == kind);
			LA17: ;
			stack[(sp)- 0] = LOC16;
			nimln(234, "parampatterns.nim");
			sp = addInt(sp, 1);
			nimln(256, "parampatterns.nim");
			pc = addInt(pc, 1);
		}
		break;
		case ((NU8) 11):
		{
			NU8 kind;
			NI TMP3604;
			nimln(258, "parampatterns.nim");
			nimln(258, "parampatterns.nim");
			TMP3604 = addInt(pc, 1);
			if ((NU)((NI32)(TMP3604)) > (NU)(code->Sup.len)) raiseIndexError();
			kind = ((NU8)chckRange(((NU8)(code->data[(NI32)(TMP3604)])), ((NU8) 0), ((NU8) 156)));
			nimln(233, "parampatterns.nim");
			if ((NU)(sp) > (NU)(64)) raiseIndexError();
			nimln(259, "parampatterns.nim");
			stack[(sp)- 0] = ((*n).Kind == kind);
			nimln(234, "parampatterns.nim");
			sp = addInt(sp, 1);
			nimln(260, "parampatterns.nim");
			pc = addInt(pc, 1);
		}
		break;
		case ((NU8) 12):
		{
			NU8 LOC20;
			nimln(233, "parampatterns.nim");
			if ((NU)(sp) > (NU)(64)) raiseIndexError();
			nimln(261, "parampatterns.nim");
			nimln(261, "parampatterns.nim");
			LOC20 = 0;
			LOC20 = isassignable_280970(NIM_NIL, n);
			stack[(sp)- 0] = ((6 &(1<<((LOC20)&7)))!=0);
			nimln(234, "parampatterns.nim");
			sp = addInt(sp, 1);
		}
		break;
		case ((NU8) 13):
		{
			NU8 LOC22;
			nimln(233, "parampatterns.nim");
			if ((NU)(sp) > (NU)(64)) raiseIndexError();
			nimln(262, "parampatterns.nim");
			nimln(262, "parampatterns.nim");
			LOC22 = 0;
			LOC22 = isassignable_280970(NIM_NIL, n);
			stack[(sp)- 0] = (LOC22 == ((NU8) 2));
			nimln(234, "parampatterns.nim");
			sp = addInt(sp, 1);
		}
		break;
		case ((NU8) 14):
		{
			NU8 LOC24;
			nimln(233, "parampatterns.nim");
			if ((NU)(sp) > (NU)(64)) raiseIndexError();
			nimln(263, "parampatterns.nim");
			nimln(263, "parampatterns.nim");
			LOC24 = 0;
			LOC24 = checkforsideeffects_280740(n);
			stack[(sp)- 0] = (LOC24 == ((NU8) 1));
			nimln(234, "parampatterns.nim");
			sp = addInt(sp, 1);
		}
		break;
		case ((NU8) 15):
		{
			NU8 LOC26;
			nimln(233, "parampatterns.nim");
			if ((NU)(sp) > (NU)(64)) raiseIndexError();
			nimln(264, "parampatterns.nim");
			nimln(264, "parampatterns.nim");
			nimln(264, "parampatterns.nim");
			LOC26 = 0;
			LOC26 = checkforsideeffects_280740(n);
			stack[(sp)- 0] = !((LOC26 == ((NU8) 1)));
			nimln(234, "parampatterns.nim");
			sp = addInt(sp, 1);
		}
		break;
		}
		nimln(265, "parampatterns.nim");
		pc = addInt(pc, 1);
	} LA1: ;
	nimln(266, "parampatterns.nim");
	nimln(266, "parampatterns.nim");
	TMP3605 = subInt(sp, 1);
	if ((NU)((NI32)(TMP3605)) > (NU)(64)) raiseIndexError();
	result = stack[((NI32)(TMP3605))- 0];
	popFrame();
	return result;
}
Example #2
0
N_NIMCALL(tnode191813*, evaltemplate_395275)(tnode191813* n, tsym191843* tmpl, tsym191843* gensymowner) {
	tnode191813* result;
	tnode191813* args;
	templctx395010 ctx;
	tnode191813* body;
	nimfr("evalTemplate", "evaltempl.nim")
	result = 0;
	nimln(78, "evaltempl.nim");
	evaltemplatecounter_395273 = addInt(evaltemplatecounter_395273, 1);
	nimln(79, "evaltempl.nim");
	{
		nimln(79, "evaltempl.nim");
		if (!(100 < evaltemplatecounter_395273)) goto LA3;
		nimln(80, "evaltempl.nim");
		globalerror_168558((*n).Info, ((NU16) 183), ((NimStringDesc*) &TMP5475));
		nimln(81, "evaltempl.nim");
		result = n;
	}
	LA3: ;
	nimln(84, "evaltempl.nim");
	args = evaltemplateargs_395174(n, tmpl);
	memset((void*)&ctx, 0, sizeof(ctx));
	nimln(86, "evaltempl.nim");
	ctx.Owner = tmpl;
	nimln(87, "evaltempl.nim");
	ctx.Gensymowner = gensymowner;
	nimln(88, "evaltempl.nim");
	initidtable_192130(&ctx.Mapping);
	nimln(90, "evaltempl.nim");
	body = getbody_243244(tmpl);
	nimln(91, "evaltempl.nim");
	{
		NIM_BOOL LOC7;
		nimln(91, "evaltempl.nim");
		LOC7 = 0;
		LOC7 = isatom_198186(body);
		if (!LOC7) goto LA8;
		nimln(92, "evaltempl.nim");
		result = newnodei_192109(((NU8) 37), (*body).Info);
		nimln(93, "evaltempl.nim");
		evaltemplateaux_395024(body, args, &ctx, result);
		nimln(94, "evaltempl.nim");
		{
			NI LOC12;
			nimln(94, "evaltempl.nim");
			nimln(94, "evaltempl.nim");
			LOC12 = 0;
			LOC12 = len_192274(result);
			if (!(LOC12 == 1)) goto LA13;
			nimln(94, "evaltempl.nim");
			if (((TMP5470[(*result).Kind/8] &(1<<((*result).Kind%8)))!=0)) raiseFieldError(((NimStringDesc*) &TMP5471));
			if ((NU)(0) >= (NU)((*result).kindU.S6.Sons->Sup.len)) raiseIndexError();
			result = (*result).kindU.S6.Sons->data[0];
		}
		goto LA10;
		LA13: ;
		{
			NimStringDesc* LOC16;
			nimln(96, "evaltempl.nim");
			nimln(97, "evaltempl.nim");
			LOC16 = 0;
			LOC16 = rendertree_215051(result, 4);
			globalerror_168558((*result).Info, ((NU16) 1), LOC16);
		}
		LA10: ;
	}
	goto LA5;
	LA8: ;
	{
		NI i_395345;
		NI HEX3Atmp_395378;
		NI LOC22;
		NI TMP5477;
		NI res_395380;
		nimln(99, "evaltempl.nim");
		result = copynode_192243(body);
		nimln(100, "evaltempl.nim");
		nimln(100, "evaltempl.nim");
		nimln(100, "evaltempl.nim");
		ctx.Instlines = !(((*body).Kind == ((NU8) 114) || (*body).Kind == ((NU8) 125) || (*body).Kind == ((NU8) 111) || (*body).Kind == ((NU8) 126)));
		nimln(102, "evaltempl.nim");
		{
			if (!ctx.Instlines) goto LA20;
			nimln(102, "evaltempl.nim");
			(*result).Info = (*n).Info;
		}
		LA20: ;
		i_395345 = 0;
		HEX3Atmp_395378 = 0;
		nimln(103, "evaltempl.nim");
		nimln(103, "evaltempl.nim");
		nimln(103, "evaltempl.nim");
		LOC22 = 0;
		LOC22 = safelen_192330(body);
		TMP5477 = subInt(LOC22, 1);
		HEX3Atmp_395378 = (NI32)(TMP5477);
		nimln(1451, "system.nim");
		res_395380 = 0;
		nimln(1452, "system.nim");
		while (1) {
			nimln(1452, "system.nim");
			if (!(res_395380 <= HEX3Atmp_395378)) goto LA23;
			nimln(1451, "system.nim");
			i_395345 = res_395380;
			nimln(104, "evaltempl.nim");
			if (((TMP5470[(*body).Kind/8] &(1<<((*body).Kind%8)))!=0)) raiseFieldError(((NimStringDesc*) &TMP5471));
			if ((NU)(i_395345) >= (NU)((*body).kindU.S6.Sons->Sup.len)) raiseIndexError();
			evaltemplateaux_395024((*body).kindU.S6.Sons->data[i_395345], args, &ctx, result);
			nimln(1454, "system.nim");
			res_395380 = addInt(res_395380, 1);
		} LA23: ;
	}
	LA5: ;
	nimln(106, "evaltempl.nim");
	evaltemplatecounter_395273 = subInt(evaltemplatecounter_395273, 1);
	popFrame();
	return result;
}