N_NIMCALL(NIM_BOOL, matchnodekinds_WRbpWXbxOP9c3ULW5bbDujw)(Tnode_bROa11lyF5vxEN9aYNbHmhw* p0, Tnode_bROa11lyF5vxEN9aYNbHmhw* n0) { NIM_BOOL result0; TY_zl3qUQvo0CT9bJi9b5H7mRkw stack0; NI sp0; NimStringDesc* code0; NI pc0; result0 = (NIM_BOOL)0; stack0[(((NI) 0))- 0] = NIM_TRUE; sp0 = ((NI) 1); code0 = (*p0).kindU.S3.strval; pc0 = ((NI) 1); { while (1) { switch (((Topcode_cKhgukabZvDBOVLlPOrptA) (((NU8)(code0->data[pc0]))))) { case ((Topcode_cKhgukabZvDBOVLlPOrptA) 1): { goto LA1; } break; case ((Topcode_cKhgukabZvDBOVLlPOrptA) 2): { NIM_BOOL LOC5; LOC5 = (NIM_BOOL)0; LOC5 = stack0[((NI)(sp0 - ((NI) 1)))- 0]; if (LOC5) goto LA6; LOC5 = stack0[((NI)(sp0 - ((NI) 2)))- 0]; LA6: ; stack0[((NI)(sp0 - ((NI) 2)))- 0] = LOC5; sp0 -= ((NI) 1); } break; case ((Topcode_cKhgukabZvDBOVLlPOrptA) 3): { NIM_BOOL LOC8; LOC8 = (NIM_BOOL)0; LOC8 = stack0[((NI)(sp0 - ((NI) 1)))- 0]; if (!(LOC8)) goto LA9; LOC8 = stack0[((NI)(sp0 - ((NI) 2)))- 0]; LA9: ; stack0[((NI)(sp0 - ((NI) 2)))- 0] = LOC8; sp0 -= ((NI) 1); } break; case ((Topcode_cKhgukabZvDBOVLlPOrptA) 4): { stack0[((NI)(sp0 - ((NI) 1)))- 0] = !(stack0[((NI)(sp0 - ((NI) 1)))- 0]); } break; case ((Topcode_cKhgukabZvDBOVLlPOrptA) 5): { stack0[(sp0)- 0] = ((*n0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 3)); sp0 += ((NI) 1); } break; case ((Topcode_cKhgukabZvDBOVLlPOrptA) 6): { stack0[(sp0)- 0] = isatom_NyXYMHACmbtWJZnWqE9cJCAparampatterns(n0); sp0 += ((NI) 1); } break; case ((Topcode_cKhgukabZvDBOVLlPOrptA) 7): { stack0[(sp0)- 0] = ((*n0).kind >= ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*n0).kind <= ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 23)); sp0 += ((NI) 1); } break; case ((Topcode_cKhgukabZvDBOVLlPOrptA) 8): { stack0[(sp0)- 0] = ((*n0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 2)); sp0 += ((NI) 1); } break; case ((Topcode_cKhgukabZvDBOVLlPOrptA) 9): { stack0[(sp0)- 0] = ((*n0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*n0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*n0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*n0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*n0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*n0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*n0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 32)); sp0 += ((NI) 1); } break; case ((Topcode_cKhgukabZvDBOVLlPOrptA) 10): { Tsymkind_cNCW9acsSznmEccl1fgQwkw kind0; NIM_BOOL LOC17; kind0 = ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) (((NU8)(code0->data[(NI)(pc0 + ((NI) 1))])))); LOC17 = (NIM_BOOL)0; LOC17 = ((*n0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 3)); if (!(LOC17)) goto LA18; LOC17 = ((*(*n0).kindU.S4.sym).kind == kind0); LA18: ; stack0[(sp0)- 0] = LOC17; sp0 += ((NI) 1); pc0 += ((NI) 1); } break; case ((Topcode_cKhgukabZvDBOVLlPOrptA) 11): { Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw kind0; kind0 = ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) (((NU8)(code0->data[(NI)(pc0 + ((NI) 1))])))); stack0[(sp0)- 0] = ((*n0).kind == kind0); sp0 += ((NI) 1); pc0 += ((NI) 1); } break; case ((Topcode_cKhgukabZvDBOVLlPOrptA) 12): { Tassignableresult_JFgO3TudAWntzWI8Fmx4Ag LOC21; LOC21 = (Tassignableresult_JFgO3TudAWntzWI8Fmx4Ag)0; LOC21 = isassignable_KOwAOGLDd1pP23MT9bwF88w(NIM_NIL, n0, NIM_FALSE); stack0[(sp0)- 0] = ((6 &(1U<<((NU)(LOC21)&7U)))!=0); sp0 += ((NI) 1); } break; case ((Topcode_cKhgukabZvDBOVLlPOrptA) 13): { Tassignableresult_JFgO3TudAWntzWI8Fmx4Ag LOC23; LOC23 = (Tassignableresult_JFgO3TudAWntzWI8Fmx4Ag)0; LOC23 = isassignable_KOwAOGLDd1pP23MT9bwF88w(NIM_NIL, n0, NIM_FALSE); stack0[(sp0)- 0] = (LOC23 == ((Tassignableresult_JFgO3TudAWntzWI8Fmx4Ag) 2)); sp0 += ((NI) 1); } break; case ((Topcode_cKhgukabZvDBOVLlPOrptA) 14): { Tsideeffectanalysis_39b55cGxMJkG5uRuPt6svRw LOC25; LOC25 = (Tsideeffectanalysis_39b55cGxMJkG5uRuPt6svRw)0; LOC25 = checkforsideeffects_jZznHOk1Ngn1sF9cFDMhw5A(n0); stack0[(sp0)- 0] = (LOC25 == ((Tsideeffectanalysis_39b55cGxMJkG5uRuPt6svRw) 1)); sp0 += ((NI) 1); } break; case ((Topcode_cKhgukabZvDBOVLlPOrptA) 15): { Tsideeffectanalysis_39b55cGxMJkG5uRuPt6svRw LOC27; LOC27 = (Tsideeffectanalysis_39b55cGxMJkG5uRuPt6svRw)0; LOC27 = checkforsideeffects_jZznHOk1Ngn1sF9cFDMhw5A(n0); stack0[(sp0)- 0] = !((LOC27 == ((Tsideeffectanalysis_39b55cGxMJkG5uRuPt6svRw) 1))); sp0 += ((NI) 1); } break; } pc0 += ((NI) 1); } } LA1: ; result0 = stack0[((NI)(sp0 - ((NI) 1)))- 0]; return result0; }
N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, evaltemplate_xOup9aA9cJdjuapy5rkGnHBQ)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Tsym_AXG7xcvKqaxY6koRX1xkCw* tmpl0, Tsym_AXG7xcvKqaxY6koRX1xkCw* gensymowner0, NIM_BOOL fromhlo0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; Tnode_bROa11lyF5vxEN9aYNbHmhw* args0; Templctx_og0XwfDLUlsX2HzoVx0s3Q ctx0; Tnode_bROa11lyF5vxEN9aYNbHmhw* body0; result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; evaltemplatecounter_jPNQnHnAL0wozxUYkowWUA += ((NI) 1); { if (!(((NI) 100) < evaltemplatecounter_jPNQnHnAL0wozxUYkowWUA)) goto LA3; globalerror_VpilfPWbplGz6ny7O9cfr2g_3((*n0).info, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 187), ((NimStringDesc*) &T_N0xGjswvcjwwH43PvVNJAg_2)); result0 = n0; } LA3: ; args0 = evaltemplateargs_dw0jfqH3BrkE5IDOxRZp9cw(n0, tmpl0, fromhlo0); memset((void*)(&ctx0), 0, sizeof(ctx0)); ctx0.owner = tmpl0; ctx0.gensymowner = gensymowner0; initidtable_9cUS2oaKn1IFXKjLdglPZHQ((&ctx0.mapping)); body0 = getbody_eMf5HLowckpW9cDxAV9bNIZw(tmpl0); { NIM_BOOL LOC7; LOC7 = (NIM_BOOL)0; LOC7 = isatom_NyXYMHACmbtWJZnWqE9cJCAparampatterns(body0); if (!LOC7) goto LA8; result0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 37), (*body0).info); evaltemplateaux_AHGrgjfRCGeqRF8aKpZ9apw(body0, args0, (&ctx0), result0); { NI LOC12; LOC12 = (NI)0; LOC12 = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(result0); if (!(LOC12 == ((NI) 1))) goto LA13; result0 = (*result0).kindU.S6.sons->data[((NI) 0)]; } goto LA10; LA13: ; { NimStringDesc* LOC16; LOC16 = (NimStringDesc*)0; LOC16 = rendertree_ppjdh9aQ5L0SGPF8yz1gZ9cA(result0, 4); localerror_VpilfPWbplGz6ny7O9cfr2g((*result0).info, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 1), LOC16); } LA10: ; } goto LA5; LA8: ; { result0 = copynode_lz8T1F9c0YwEOpUnrAUYgjg(body0); { NI i_SNYOzy7RzNR8C5fM3A5wWQ; NI HEX3Atmp_nYz53CxK4Lv8EpLGchkEWg; NI LOC19; NI res_yGU1MAzLpa1QBpOBXdb9aQw; i_SNYOzy7RzNR8C5fM3A5wWQ = (NI)0; HEX3Atmp_nYz53CxK4Lv8EpLGchkEWg = (NI)0; LOC19 = (NI)0; LOC19 = safelen_CdME9baJhvveuPEDZE9bXoxAsigmatch(body0); HEX3Atmp_nYz53CxK4Lv8EpLGchkEWg = (NI)(LOC19 - ((NI) 1)); res_yGU1MAzLpa1QBpOBXdb9aQw = ((NI) 0); { while (1) { if (!(res_yGU1MAzLpa1QBpOBXdb9aQw <= HEX3Atmp_nYz53CxK4Lv8EpLGchkEWg)) goto LA21; i_SNYOzy7RzNR8C5fM3A5wWQ = res_yGU1MAzLpa1QBpOBXdb9aQw; evaltemplateaux_AHGrgjfRCGeqRF8aKpZ9apw((*body0).kindU.S6.sons->data[i_SNYOzy7RzNR8C5fM3A5wWQ], args0, (&ctx0), result0); res_yGU1MAzLpa1QBpOBXdb9aQw += ((NI) 1); } LA21: ; } } } LA5: ; result0 = wrapincomesfrom_YbfXH27kQZj5oIysAn7Rfg((*n0).info, result0); evaltemplatecounter_jPNQnHnAL0wozxUYkowWUA -= ((NI) 1); return result0; }