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; }
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; }
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; } }
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(); }
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; }