コード例 #1
0
ファイル: compiler_vmdeps.c プロジェクト: jlp765/csources
N_NIMCALL(Tnode190813*, maptypetoast_379086)(Ttype190849* t, Tlineinfo162338 info, NIM_BOOL allowrecursion) {
	Tnode190813* result;
	result = 0;
	switch ((*t).kind) {
	case ((NU8) 0):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2830), t, info);
	}
	break;
	case ((NU8) 1):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2831), t, info);
	}
	break;
	case ((NU8) 2):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2832), t, info);
	}
	break;
	case ((NU8) 5):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2833), t, info);
	}
	break;
	case ((NU8) 6):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2834), t, info);
	}
	break;
	case ((NU8) 7):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2835), t, info);
	}
	break;
	case ((NU8) 3):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2836), t, info);
	}
	break;
	case ((NU8) 4):
	case ((NU8) 16):
	{
		Tnode190813* LOC9;
		Tnode190813* LOC10;
		Tnode190813* LOC11;
		result = newnodeit_192807(((NU8) 42), info, t);
		LOC9 = 0;
		LOC9 = atomictypex_379072(((NimStringDesc*) &TMP2837), t, info);
		add_191164(result, LOC9);
		LOC10 = 0;
		LOC10 = maptypetoast_379086((*t).sons->data[((NI) 0)], info, NIM_FALSE);
		add_191164(result, LOC10);
		LOC11 = 0;
		LOC11 = maptypetoast_379086((*t).sons->data[((NI) 1)], info, NIM_FALSE);
		add_191164(result, LOC11);
	}
	break;
	case ((NU8) 8):
	{
		{
			Ttype190849* LOC15;
			Tnode190813* LOC18;
			Ttype190849* LOC19;
			Tnode190813* LOC20;
			LOC15 = 0;
			LOC15 = base_220039(t);
			if (!!((LOC15 == NIM_NIL))) goto LA16;
			result = newnodeit_192807(((NU8) 42), info, t);
			LOC18 = 0;
			LOC18 = atomictypex_379072(((NimStringDesc*) &TMP2838), t, info);
			add_191164(result, LOC18);
			LOC19 = 0;
			LOC19 = base_220039(t);
			LOC20 = 0;
			LOC20 = maptypetoast_379086(LOC19, info, NIM_FALSE);
			add_191164(result, LOC20);
		}
		goto LA13;
		LA16: ;
		{
			result = atomictypex_379072(((NimStringDesc*) &TMP2839), t, info);
		}
		LA13: ;
	}
	break;
	case ((NU8) 9):
	{
		result = newnodeit_192807(((NU8) 42), info, t);
		{
			NI i_379203;
			NI HEX3Atmp_379249;
			NI LOC24;
			NI res_379252;
			i_379203 = 0;
			HEX3Atmp_379249 = 0;
			LOC24 = 0;
			LOC24 = len_193377(t);
			HEX3Atmp_379249 = (LOC24 - 1);
			res_379252 = ((NI) 0);
			{
				while (1) {
					Tnode190813* LOC27;
					if (!(res_379252 <= HEX3Atmp_379249)) goto LA26;
					i_379203 = res_379252;
					LOC27 = 0;
					LOC27 = maptypetoast_379086((*t).sons->data[i_379203], info, NIM_FALSE);
					add_191164(result, LOC27);
					res_379252 += ((NI) 1);
				} LA26: ;
			}
		}
	}
	break;
	case ((NU8) 11):
	case ((NU8) 10):
	case ((NU8) 15):
	case ((NU8) 53):
	{
		Ttype190849* LOC29;
		LOC29 = 0;
		LOC29 = lastson_193442(t);
		result = maptypetoast_379086(LOC29, info, NIM_FALSE);
	}
	break;
	case ((NU8) 13):
	{
		{
			if (!allowrecursion) goto LA33;
			result = maptypetobracket_379094(((NimStringDesc*) &TMP2841), t, info);
		}
		goto LA31;
		LA33: ;
		{
			result = atomictypex_379072((*(*(*t).sym).name).s, t, info);
		}
		LA31: ;
	}
	break;
	case ((NU8) 12):
	case ((NU8) 30):
	{
		result = atomictypex_379072((*(*(*t).sym).name).s, t, info);
	}
	break;
	case ((NU8) 17):
	{
		{
			Tnode190813* LOC48;
			if (!allowrecursion) goto LA40;
			result = newnodeit_192807(((NU8) 133), info, t);
			{
				if (!((*t).sons->data[((NI) 0)] == NIM_NIL)) goto LA44;
				add_191164(result, emptynode_191807);
			}
			goto LA42;
			LA44: ;
			{
				Tnode190813* LOC47;
				LOC47 = 0;
				LOC47 = maptypetoast_379086((*t).sons->data[((NI) 0)], info, NIM_FALSE);
				add_191164(result, LOC47);
			}
			LA42: ;
			LOC48 = 0;
			LOC48 = copytree_195028((*t).n);
			add_191164(result, LOC48);
		}
		goto LA38;
		LA40: ;
		{
			result = atomictypex_379072((*(*(*t).sym).name).s, t, info);
		}
		LA38: ;
	}
	break;
	case ((NU8) 14):
	{
		Tnode190813* LOC51;
		result = newnodeit_192807(((NU8) 150), info, t);
		LOC51 = 0;
		LOC51 = copytree_195028((*t).n);
		add_191164(result, LOC51);
	}
	break;
	case ((NU8) 18):
	{
		result = maptypetobracket_379094(((NimStringDesc*) &TMP2842), t, info);
	}
	break;
	case ((NU8) 19):
	{
		result = maptypetobracket_379094(((NimStringDesc*) &TMP2843), t, info);
	}
	break;
	case ((NU8) 21):
	{
		result = maptypetobracket_379094(((NimStringDesc*) &TMP2844), t, info);
	}
	break;
	case ((NU8) 22):
	{
		result = maptypetobracket_379094(((NimStringDesc*) &TMP2845), t, info);
	}
	break;
	case ((NU8) 23):
	{
		result = maptypetobracket_379094(((NimStringDesc*) &TMP2846), t, info);
	}
	break;
	case ((NU8) 24):
	{
		result = maptypetobracket_379094(((NimStringDesc*) &TMP2847), t, info);
	}
	break;
	case ((NU8) 25):
	{
		result = maptypetobracket_379094(((NimStringDesc*) &TMP2848), t, info);
	}
	break;
	case ((NU8) 27):
	{
		result = maptypetobracket_379094(((NimStringDesc*) &TMP2849), t, info);
	}
	break;
	case ((NU8) 20):
	{
		Tnode190813* LOC61;
		Tnode190813* LOC62;
		Tnode190813* LOC63;
		result = newnodeit_192807(((NU8) 42), info, t);
		LOC61 = 0;
		LOC61 = atomictypex_379072(((NimStringDesc*) &TMP2850), t, info);
		add_191164(result, LOC61);
		LOC62 = 0;
		LOC62 = copytree_195028((*(*t).n).kindU.S6.sons->data[((NI) 0)]);
		add_191164(result, LOC62);
		LOC63 = 0;
		LOC63 = copytree_195028((*(*t).n).kindU.S6.sons->data[((NI) 1)]);
		add_191164(result, LOC63);
	}
	break;
	case ((NU8) 26):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2851), t, info);
	}
	break;
	case ((NU8) 28):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2852), t, info);
	}
	break;
	case ((NU8) 29):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2853), t, info);
	}
	break;
	case ((NU8) 31):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2854), t, info);
	}
	break;
	case ((NU8) 32):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2855), t, info);
	}
	break;
	case ((NU8) 33):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2856), t, info);
	}
	break;
	case ((NU8) 34):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2857), t, info);
	}
	break;
	case ((NU8) 35):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2858), t, info);
	}
	break;
	case ((NU8) 36):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2859), t, info);
	}
	break;
	case ((NU8) 37):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2860), t, info);
	}
	break;
	case ((NU8) 38):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2861), t, info);
	}
	break;
	case ((NU8) 39):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2862), t, info);
	}
	break;
	case ((NU8) 40):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2863), t, info);
	}
	break;
	case ((NU8) 41):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2864), t, info);
	}
	break;
	case ((NU8) 42):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2865), t, info);
	}
	break;
	case ((NU8) 43):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2866), t, info);
	}
	break;
	case ((NU8) 44):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2867), t, info);
	}
	break;
	case ((NU8) 45):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2868), t, info);
	}
	break;
	case ((NU8) 46):
	{
		result = maptypetobracket_379094(((NimStringDesc*) &TMP2869), t, info);
	}
	break;
	case ((NU8) 47):
	{
		result = maptypetobracket_379094(((NimStringDesc*) &TMP2870), t, info);
	}
	break;
	case ((NU8) 48):
	{
		result = maptypetobracket_379094(((NimStringDesc*) &TMP2871), t, info);
	}
	break;
	case ((NU8) 49):
	{
		result = maptypetobracket_379094(((NimStringDesc*) &TMP2872), t, info);
	}
	break;
	case ((NU8) 50):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2873), t, info);
	}
	break;
	case ((NU8) 51):
	{
		result = maptypetobracket_379094(((NimStringDesc*) &TMP2874), t, info);
	}
	break;
	case ((NU8) 52):
	{
		Tnode190813* LOC89;
		result = maptypetobracket_379094(((NimStringDesc*) &TMP2875), t, info);
		LOC89 = 0;
		LOC89 = copytree_195028((*t).n);
		add_191164(result, LOC89);
	}
	break;
	case ((NU8) 54):
	{
		result = maptypetobracket_379094(((NimStringDesc*) &TMP2876), t, info);
	}
	break;
	case ((NU8) 55):
	{
		result = maptypetobracket_379094(((NimStringDesc*) &TMP2877), t, info);
	}
	break;
	case ((NU8) 56):
	{
		result = maptypetobracket_379094(((NimStringDesc*) &TMP2878), t, info);
	}
	break;
	case ((NU8) 57):
	{
		result = maptypetobracket_379094(((NimStringDesc*) &TMP2879), t, info);
	}
	break;
	case ((NU8) 58):
	{
		result = atomictypex_379072(((NimStringDesc*) &TMP2880), t, info);
	}
	break;
	case ((NU8) 59):
	case ((NU8) 60):
	case ((NU8) 61):
	{
		Tnode190813* LOC96;
		result = newnodeit_192807(((NU8) 42), info, t);
		LOC96 = 0;
		LOC96 = atomictypex_379072(((NimStringDesc*) &TMP2881), t, info);
		add_191164(result, LOC96);
		{
			Tnode190813* LOC101;
			if (!!(((*t).n == NIM_NIL))) goto LA99;
			LOC101 = 0;
			LOC101 = copytree_195028((*t).n);
			add_191164(result, LOC101);
		}
		LA99: ;
	}
	break;
	}
	return result;
}
コード例 #2
0
N_NIMCALL(Tnode190813*, evaltemplateargs_383184)(Tnode190813* n, Tsym190843* s) {
	Tnode190813* result;
	NI a;
	NI f;
	nimfr("evalTemplateArgs", "evaltempl.nim")
	result = 0;
	a = 0;
	nimln(60, "evaltempl.nim");
	switch ((*n).kind) {
	case ((NU8) 27):
	case ((NU8) 29):
	case ((NU8) 30):
	case ((NU8) 31):
	case ((NU8) 26):
	case ((NU8) 28):
	{
		nimln(62, "evaltempl.nim");
		a = sonslen_193403(n);
	}
	break;
	default:
	{
		nimln(63, "evaltempl.nim");
		a = ((NI) 0);
	}
	break;
	}
	nimln(64, "evaltempl.nim");
	f = sonslen_193351((*s).typ);
	nimln(65, "evaltempl.nim");
	{
		if (!(f < a)) goto LA5;
		globalerror_164134((*n).info, ((NU16) 133), ((NimStringDesc*) &TMP7631));
	}
	LA5: ;
	nimln(67, "evaltempl.nim");
	result = newnodei_192351(((NU8) 152), (*n).info);
	{
		NI i_383204;
		NI HEX3Atmp_383234;
		NI TMP7632;
		NI res_383237;
		i_383204 = 0;
		HEX3Atmp_383234 = 0;
		nimln(68, "evaltempl.nim");
		TMP7632 = subInt(f, ((NI) 1));
		HEX3Atmp_383234 = (NI)(TMP7632);
		nimln(1598, "system.nim");
		res_383237 = ((NI) 1);
		{
			nimln(1599, "system.nim");
			while (1) {
				Tnode190813* arg;
				NI TMP7633;
				if (!(res_383237 <= HEX3Atmp_383234)) goto LA9;
				nimln(1600, "system.nim");
				i_383204 = res_383237;
				nimln(69, "evaltempl.nim");
				{
					if (!(i_383204 < a)) goto LA12;
					if (((TMP7624[(*n).kind/8] &(1<<((*n).kind%8)))!=0)) raiseFieldError(((NimStringDesc*) &TMP7625));
					if ((NU)(i_383204) >= (NU)((*n).kindU.S6.sons->Sup.len)) raiseIndexError();
					arg = (*n).kindU.S6.sons->data[i_383204];
				}
				goto LA10;
				LA12: ;
				{
					if (((TMP7624[(*(*(*s).typ).n).kind/8] &(1<<((*(*(*s).typ).n).kind%8)))!=0)) raiseFieldError(((NimStringDesc*) &TMP7625));
					if ((NU)(i_383204) >= (NU)((*(*(*s).typ).n).kindU.S6.sons->Sup.len)) raiseIndexError();
					if (!(((TMP7622[(*(*(*(*s).typ).n).kindU.S6.sons->data[i_383204]).kind/8] &(1<<((*(*(*(*s).typ).n).kindU.S6.sons->data[i_383204]).kind%8)))!=0))) raiseFieldError(((NimStringDesc*) &TMP7623));
					arg = copytree_195028((*(*(*(*(*s).typ).n).kindU.S6.sons->data[i_383204]).kindU.S4.sym).ast);
				}
				LA10: ;
				nimln(70, "evaltempl.nim");
				{
					NIM_BOOL LOC17;
					LOC17 = 0;
					LOC17 = (arg == NIM_NIL);
					if (LOC17) goto LA18;
					LOC17 = ((*arg).kind == ((NU8) 1));
					LA18: ;
					if (!LOC17) goto LA19;
					nimln(71, "evaltempl.nim");
					localerror_164155((*n).info, ((NU16) 133), ((NimStringDesc*) &TMP7631));
				}
				LA19: ;
				nimln(72, "evaltempl.nim");
				addson_192819(result, arg);
				nimln(1614, "system.nim");
				TMP7633 = addInt(res_383237, ((NI) 1));
				res_383237 = (NI)(TMP7633);
			} LA9: ;
		}
	}
	popFrame();
	return result;
}
コード例 #3
0
ファイル: compiler_evaltempl.c プロジェクト: jlp765/csources
N_NIMCALL(void, evaltemplateaux_382039)(Tnode190813* templ, Tnode190813* actual, Templctx382019* c, Tnode190813* result) {
	switch ((*templ).kind) {
	case ((NU8) 3):
	{
		Tsym190843* s;
		s = (*templ).kindU.S4.sym;
		{
			if (!((*(*s).owner).Sup.id == (*(*c).owner).Sup.id)) goto LA4;
			{
				NIM_BOOL LOC8;
				Tnode190813* x;
				LOC8 = 0;
				LOC8 = ((*s).kind == ((NU8) 3));
				if (!(LOC8)) goto LA9;
				LOC8 = !((((*s).flags &(1<<((((NU8) 31))&31)))!=0));
				LA9: ;
				if (!LOC8) goto LA10;
				x = (*actual).kindU.S6.sons->data[(*s).position];
				{
					if (!((*x).kind == ((NU8) 152))) goto LA14;
					{
						Tnode190813* y_382083;
						y_382083 = 0;
						{
							NI i_382142;
							NI HEX3Atmp_382144;
							NI LOC18;
							NI res_382146;
							i_382142 = 0;
							HEX3Atmp_382144 = 0;
							LOC18 = 0;
							LOC18 = len_191097(x);
							HEX3Atmp_382144 = (LOC18 - 1);
							res_382146 = ((NI) 0);
							{
								while (1) {
									if (!(res_382146 <= HEX3Atmp_382144)) goto LA20;
									i_382142 = res_382146;
									y_382083 = (*x).kindU.S6.sons->data[i_382142];
									add_191164(result, y_382083);
									res_382146 += ((NI) 1);
								} LA20: ;
							}
						}
					}
				}
				goto LA12;
				LA14: ;
				{
					Tnode190813* LOC22;
					LOC22 = 0;
					LOC22 = copytree_195028(x);
					add_191164(result, LOC22);
				}
				LA12: ;
			}
			goto LA6;
			LA10: ;
			{
				Tsym190843* x;
				Tidobj166015* LOC29;
				TNimObject* LOC30;
				Tlineinfo162338 LOC37;
				Tnode190813* LOC43;
				{
					NimStringDesc* LOC28;
					if (!!((((*s).flags &(1<<((((NU8) 31))&31)))!=0))) goto LA26;
					LOC28 = 0;
					LOC28 = HEX24_164322(TMP2820);
					internalerror_164234(LOC28);
				}
				LA26: ;
				LOC29 = 0;
				LOC29 = &s->Sup;
				LOC30 = 0;
				LOC30 = idtableget_198182((*c).mapping, LOC29);
				x = ((Tsym190843*) (LOC30));
				{
					Tidobj166015* LOC35;
					TNimObject* LOC36;
					if (!(x == NIM_NIL)) goto LA33;
					x = copysym_193607(s, NIM_FALSE);
					asgnRefNoCycle((void**) (&(*x).owner), (*c).gensymowner);
					LOC35 = 0;
					LOC35 = &s->Sup;
					LOC36 = 0;
					LOC36 = &x->Sup.Sup;
					idtableput_198196((&(*c).mapping), LOC35, LOC36);
				}
				LA33: ;
				{
					if (!(*c).instlines) goto LA40;
					LOC37 = (*actual).info;
				}
				goto LA38;
				LA40: ;
				{
					LOC37 = (*templ).info;
				}
				LA38: ;
				LOC43 = 0;
				LOC43 = newsymnode_192338(x, LOC37);
				add_191164(result, LOC43);
			}
			LA6: ;
		}
		goto LA2;
		LA4: ;
		{
			Tnode190813* LOC45;
			LOC45 = 0;
			LOC45 = copynode_382027((&(*c)), templ, actual);
			add_191164(result, LOC45);
		}
		LA2: ;
	}
	break;
	case ((NU8) 0) ... ((NU8) 2):
	case ((NU8) 4) ... ((NU8) 23):
	{
		Tnode190813* LOC47;
		LOC47 = 0;
		LOC47 = copynode_382027((&(*c)), templ, actual);
		add_191164(result, LOC47);
	}
	break;
	default:
	{
		Tnode190813* res;
		res = copynode_382027((&(*c)), templ, actual);
		{
			NI i_382135;
			NI HEX3Atmp_382150;
			NI LOC50;
			NI res_382153;
			i_382135 = 0;
			HEX3Atmp_382150 = 0;
			LOC50 = 0;
			LOC50 = sonslen_193403(templ);
			HEX3Atmp_382150 = (NI)(LOC50 - ((NI) 1));
			res_382153 = ((NI) 0);
			{
				while (1) {
					if (!(res_382153 <= HEX3Atmp_382150)) goto LA52;
					i_382135 = res_382153;
					evaltemplateaux_382039((*templ).kindU.S6.sons->data[i_382135], actual, c, res);
					res_382153 += ((NI) 1);
				} LA52: ;
			}
		}
		add_191164(result, res);
	}
	break;
	}
}
コード例 #4
0
N_NIMCALL(void, evaltemplateaux_383039)(Tnode190813* templ, Tnode190813* actual, Templctx383019* c, Tnode190813* result) {
	nimfr("evalTemplateAux", "evaltempl.nim")
	nimln(28, "evaltempl.nim");
	switch ((*templ).kind) {
	case ((NU8) 3):
	{
		Tsym190843* s;
		nimln(30, "evaltempl.nim");
		if (!(((TMP7622[(*templ).kind/8] &(1<<((*templ).kind%8)))!=0))) raiseFieldError(((NimStringDesc*) &TMP7623));
		s = (*templ).kindU.S4.sym;
		nimln(31, "evaltempl.nim");
		{
			if (!((*(*s).owner).Sup.id == (*(*c).owner).Sup.id)) goto LA4;
			nimln(32, "evaltempl.nim");
			{
				NIM_BOOL LOC8;
				Tnode190813* x;
				LOC8 = 0;
				LOC8 = ((*s).kind == ((NU8) 3));
				if (!(LOC8)) goto LA9;
				LOC8 = !((((*s).flags &(1<<((((NU8) 31))&31)))!=0));
				LA9: ;
				if (!LOC8) goto LA10;
				nimln(33, "evaltempl.nim");
				if (((TMP7624[(*actual).kind/8] &(1<<((*actual).kind%8)))!=0)) raiseFieldError(((NimStringDesc*) &TMP7625));
				if ((NU)((*s).position) >= (NU)((*actual).kindU.S6.sons->Sup.len)) raiseIndexError();
				x = (*actual).kindU.S6.sons->data[(*s).position];
				nimln(34, "evaltempl.nim");
				{
					if (!((*x).kind == ((NU8) 152))) goto LA14;
					{
						Tnode190813* y_383083;
						y_383083 = 0;
						{
							NI i_383142;
							NI HEX3Atmp_383144;
							NI LOC18;
							NI res_383146;
							i_383142 = 0;
							HEX3Atmp_383144 = 0;
							nimln(1537, "ast.nim");
							LOC18 = 0;
							LOC18 = len_191097(x);
							HEX3Atmp_383144 = subInt(LOC18, 1);
							nimln(1598, "system.nim");
							res_383146 = ((NI) 0);
							{
								nimln(1599, "system.nim");
								while (1) {
									NI TMP7626;
									if (!(res_383146 <= HEX3Atmp_383144)) goto LA20;
									nimln(1600, "system.nim");
									i_383142 = res_383146;
									nimln(1537, "ast.nim");
									if (((TMP7624[(*x).kind/8] &(1<<((*x).kind%8)))!=0)) raiseFieldError(((NimStringDesc*) &TMP7625));
									if ((NU)(i_383142) >= (NU)((*x).kindU.S6.sons->Sup.len)) raiseIndexError();
									y_383083 = (*x).kindU.S6.sons->data[i_383142];
									nimln(35, "evaltempl.nim");
									add_191164(result, y_383083);
									nimln(1619, "system.nim");
									TMP7626 = addInt(res_383146, ((NI) 1));
									res_383146 = (NI)(TMP7626);
								} LA20: ;
							}
						}
					}
				}
				goto LA12;
				LA14: ;
				{
					Tnode190813* LOC22;
					nimln(37, "evaltempl.nim");
					LOC22 = 0;
					LOC22 = copytree_195028(x);
					add_191164(result, LOC22);
				}
				LA12: ;
			}
			goto LA6;
			LA10: ;
			{
				Tsym190843* x;
				Tidobj166015* LOC29;
				TNimObject* LOC30;
				Tlineinfo162338 LOC37;
				Tnode190813* LOC43;
				nimln(854, "msgs.nim");
				{
					NimStringDesc* LOC28;
					nimln(39, "evaltempl.nim");
					if (!!((((*s).flags &(1<<((((NU8) 31))&31)))!=0))) goto LA26;
					nimln(854, "msgs.nim");
					LOC28 = 0;
					LOC28 = HEX24_164306(TMP7627);
					internalerror_164218(LOC28);
				}
				LA26: ;
				nimln(40, "evaltempl.nim");
				LOC29 = 0;
				LOC29 = &s->Sup;
				LOC30 = 0;
				LOC30 = idtableget_198182((*c).mapping, LOC29);
				if (LOC30) chckObj((*LOC30).m_type, (&NTI190843));
				x = ((Tsym190843*) (LOC30));
				nimln(41, "evaltempl.nim");
				{
					Tidobj166015* LOC35;
					TNimObject* LOC36;
					if (!(x == NIM_NIL)) goto LA33;
					nimln(42, "evaltempl.nim");
					x = copysym_193607(s, NIM_FALSE);
					nimln(43, "evaltempl.nim");
					asgnRefNoCycle((void**) (&(*x).owner), (*c).gensymowner);
					nimln(44, "evaltempl.nim");
					LOC35 = 0;
					LOC35 = &s->Sup;
					LOC36 = 0;
					LOC36 = &x->Sup.Sup;
					idtableput_198196((&(*c).mapping), LOC35, LOC36);
				}
				LA33: ;
				nimln(45, "evaltempl.nim");
				{
					if (!(*c).instlines) goto LA40;
					LOC37 = (*actual).info;
				}
				goto LA38;
				LA40: ;
				{
					LOC37 = (*templ).info;
				}
				LA38: ;
				LOC43 = 0;
				LOC43 = newsymnode_192338(x, LOC37);
				add_191164(result, LOC43);
			}
			LA6: ;
		}
		goto LA2;
		LA4: ;
		{
			Tnode190813* LOC45;
			nimln(47, "evaltempl.nim");
			LOC45 = 0;
			LOC45 = copynode_383027((&(*c)), templ, actual);
			add_191164(result, LOC45);
		}
		LA2: ;
	}
	break;
	case ((NU8) 0) ... ((NU8) 2):
	case ((NU8) 4) ... ((NU8) 23):
	{
		Tnode190813* LOC47;
		nimln(49, "evaltempl.nim");
		LOC47 = 0;
		LOC47 = copynode_383027((&(*c)), templ, actual);
		add_191164(result, LOC47);
	}
	break;
	default:
	{
		Tnode190813* res;
		nimln(51, "evaltempl.nim");
		res = copynode_383027((&(*c)), templ, actual);
		{
			NI i_383135;
			NI HEX3Atmp_383150;
			NI LOC50;
			NI TMP7629;
			NI res_383153;
			i_383135 = 0;
			HEX3Atmp_383150 = 0;
			nimln(52, "evaltempl.nim");
			LOC50 = 0;
			LOC50 = sonslen_193403(templ);
			TMP7629 = subInt(LOC50, ((NI) 1));
			HEX3Atmp_383150 = (NI)(TMP7629);
			nimln(1598, "system.nim");
			res_383153 = ((NI) 0);
			{
				nimln(1599, "system.nim");
				while (1) {
					NI TMP7630;
					if (!(res_383153 <= HEX3Atmp_383150)) goto LA52;
					nimln(1600, "system.nim");
					i_383135 = res_383153;
					nimln(53, "evaltempl.nim");
					if (((TMP7624[(*templ).kind/8] &(1<<((*templ).kind%8)))!=0)) raiseFieldError(((NimStringDesc*) &TMP7625));
					if ((NU)(i_383135) >= (NU)((*templ).kindU.S6.sons->Sup.len)) raiseIndexError();
					evaltemplateaux_383039((*templ).kindU.S6.sons->data[i_383135], actual, c, res);
					nimln(1614, "system.nim");
					TMP7630 = addInt(res_383153, ((NI) 1));
					res_383153 = (NI)(TMP7630);
				} LA52: ;
			}
		}
		nimln(54, "evaltempl.nim");
		add_191164(result, res);
	}
	break;
	}
	popFrame();
}
コード例 #5
0
ファイル: compiler_evaltempl.c プロジェクト: jlp765/csources
N_NIMCALL(Tnode190813*, evaltemplateargs_382184)(Tnode190813* n, Tsym190843* s) {
	Tnode190813* result;
	NI a;
	NI f;
	result = 0;
	a = 0;
	switch ((*n).kind) {
	case ((NU8) 27):
	case ((NU8) 29):
	case ((NU8) 30):
	case ((NU8) 31):
	case ((NU8) 26):
	case ((NU8) 28):
	{
		a = sonslen_193403(n);
	}
	break;
	default:
	{
		a = ((NI) 0);
	}
	break;
	}
	f = sonslen_193351((*s).typ);
	{
		if (!(f < a)) goto LA5;
		globalerror_164150((*n).info, ((NU16) 133), ((NimStringDesc*) &TMP2819));
	}
	LA5: ;
	result = newnodei_192351(((NU8) 152), (*n).info);
	{
		NI i_382204;
		NI HEX3Atmp_382234;
		NI res_382237;
		i_382204 = 0;
		HEX3Atmp_382234 = 0;
		HEX3Atmp_382234 = (NI)(f - ((NI) 1));
		res_382237 = ((NI) 1);
		{
			while (1) {
				Tnode190813* arg;
				if (!(res_382237 <= HEX3Atmp_382234)) goto LA9;
				i_382204 = res_382237;
				{
					if (!(i_382204 < a)) goto LA12;
					arg = (*n).kindU.S6.sons->data[i_382204];
				}
				goto LA10;
				LA12: ;
				{
					arg = copytree_195028((*(*(*(*(*s).typ).n).kindU.S6.sons->data[i_382204]).kindU.S4.sym).ast);
				}
				LA10: ;
				{
					NIM_BOOL LOC17;
					LOC17 = 0;
					LOC17 = (arg == NIM_NIL);
					if (LOC17) goto LA18;
					LOC17 = ((*arg).kind == ((NU8) 1));
					LA18: ;
					if (!LOC17) goto LA19;
					localerror_164171((*n).info, ((NU16) 133), ((NimStringDesc*) &TMP2819));
				}
				LA19: ;
				addson_192819(result, arg);
				res_382237 += ((NI) 1);
			} LA9: ;
		}
	}
	return result;
}