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