/* Generated by Nim Compiler v0.16.0 */ /* (c) 2017 Andreas Rumpf */ /* The generated code is subject to the original license. */ #define NIM_INTBITS 32 #include "nimbase.h" #include #undef linux typedef struct Tnode_bROa11lyF5vxEN9aYNbHmhw Tnode_bROa11lyF5vxEN9aYNbHmhw; typedef struct Tsym_AXG7xcvKqaxY6koRX1xkCw Tsym_AXG7xcvKqaxY6koRX1xkCw; typedef struct Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw; typedef struct NimStringDesc NimStringDesc; typedef struct TGenericSeq TGenericSeq; typedef struct Ttype_LTUWCZolpovw9cWE3JBWSUw Ttype_LTUWCZolpovw9cWE3JBWSUw; typedef struct Tident_4umxGerWTHGPwUms7Yqu3g Tident_4umxGerWTHGPwUms7Yqu3g; typedef struct TY_ehmV9bTklH2Gt9cXHV9c0HLeQ TY_ehmV9bTklH2Gt9cXHV9c0HLeQ; typedef struct Tidobj_raN9cHVgzmvaXisezY9aGg9cg Tidobj_raN9cHVgzmvaXisezY9aGg9cg; typedef struct TNimObject TNimObject; typedef struct TNimType TNimType; typedef struct TNimNode TNimNode; typedef struct TY_zuqP4Riz26Oi5fWgPYVEgA TY_zuqP4Riz26Oi5fWgPYVEgA; typedef struct TY_DXS6mEo7PVUFJkirsQ9bNQA TY_DXS6mEo7PVUFJkirsQ9bNQA; typedef struct Tstrtable_f07aOS3dr28kGa5wcE29aFA Tstrtable_f07aOS3dr28kGa5wcE29aFA; typedef struct TY_sksVpmPRIkNR9axiwtD1Guw TY_sksVpmPRIkNR9axiwtD1Guw; typedef struct Tloc_EtHNvCB0bgfu9bFjzx9cb6aA Tloc_EtHNvCB0bgfu9bFjzx9cb6aA; typedef struct Ropeobj_HF4qJnb6xiOddgPmsxodtQ Ropeobj_HF4qJnb6xiOddgPmsxodtQ; typedef struct Tlib_4f9aBgmqEuj7uWJdBBGcRgA Tlib_4f9aBgmqEuj7uWJdBBGcRgA; typedef struct TY_iGkpo9aKQdr3NWelKC4cnJA TY_iGkpo9aKQdr3NWelKC4cnJA; typedef struct Templctx_og0XwfDLUlsX2HzoVx0s3Q Templctx_og0XwfDLUlsX2HzoVx0s3Q; typedef struct Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q; typedef struct TY_Mh9agqM29bm9aP5AUL1x7dZGA TY_Mh9agqM29bm9aP5AUL1x7dZGA; typedef struct TY_XOVT24GHXwqiEj5GCsEGCA TY_XOVT24GHXwqiEj5GCsEGCA; typedef struct Cell_1zcF9cV8XIAtbN8h5HRUB8g Cell_1zcF9cV8XIAtbN8h5HRUB8g; typedef struct Cellseq_Axo1XVm9aaQueTOldv8le5w Cellseq_Axo1XVm9aaQueTOldv8le5w; typedef struct Gcheap_1TRH1TZMaVZTnLNcIHuNFQ Gcheap_1TRH1TZMaVZTnLNcIHuNFQ; typedef struct Gcstack_7fytPA5bBsob6See21YMRA Gcstack_7fytPA5bBsob6See21YMRA; typedef struct Memregion_x81NhDv59b8ercDZ9bi85jyg Memregion_x81NhDv59b8ercDZ9bi85jyg; typedef struct Smallchunk_tXn60W2f8h3jgAYdEmy5NQ Smallchunk_tXn60W2f8h3jgAYdEmy5NQ; typedef struct Llchunk_XsENErzHIZV9bhvyJx56wGw Llchunk_XsENErzHIZV9bhvyJx56wGw; typedef struct Bigchunk_Rv9c70Uhp2TytkX7eH78qEg Bigchunk_Rv9c70Uhp2TytkX7eH78qEg; typedef struct Intset_EZObFrE3NC9bIb3YMkY9crZA Intset_EZObFrE3NC9bIb3YMkY9crZA; typedef struct Trunk_W0r8S0Y3UGke6T9bIUWnnuw Trunk_W0r8S0Y3UGke6T9bIUWnnuw; typedef struct Avlnode_IaqjtwKhxLEpvDS9bct9blEw Avlnode_IaqjtwKhxLEpvDS9bct9blEw; typedef struct Gcstat_0RwLoVBHZPfUAcLczmfQAg Gcstat_0RwLoVBHZPfUAcLczmfQAg; typedef struct Cellset_jG87P0AI9aZtss9ccTYBIISQ Cellset_jG87P0AI9aZtss9ccTYBIISQ; typedef struct Pagedesc_fublkgIY4LG3mT51LU2WHg Pagedesc_fublkgIY4LG3mT51LU2WHg; typedef struct Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA; typedef struct Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q; typedef struct TY_a09bGTAl9ceOKTAytYdkbyKg TY_a09bGTAl9ceOKTAytYdkbyKg; typedef struct Tidpair_AdFnD2YdADPeuJbG2YJ4vg Tidpair_AdFnD2YdADPeuJbG2YJ4vg; typedef struct Basechunk_Sdq7WpT6qAH858F5ZEdG3w Basechunk_Sdq7WpT6qAH858F5ZEdG3w; typedef struct Freecell_u6M5LHprqzkn9axr04yg9bGQ Freecell_u6M5LHprqzkn9axr04yg9bGQ; struct Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw { NI16 line; NI16 col; NI32 fileindex; }; typedef NU16 Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw; struct TGenericSeq { NI len; NI reserved; }; struct NimStringDesc { TGenericSeq Sup; NIM_CHAR data[SEQ_DECL_SIZE]; }; typedef NU16 Tnodeflag_jyh9acXHkhZANSSvPIY7ZLg_Set; typedef NU8 Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw; struct Tnode_bROa11lyF5vxEN9aYNbHmhw { Ttype_LTUWCZolpovw9cWE3JBWSUw* typ; Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info; Tnodeflag_jyh9acXHkhZANSSvPIY7ZLg_Set flags; Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw kind; union{ struct {NI64 intval; } S1; struct {NF floatval; } S2; struct {NimStringDesc* strval; } S3; struct {Tsym_AXG7xcvKqaxY6koRX1xkCw* sym; } S4; struct {Tident_4umxGerWTHGPwUms7Yqu3g* ident; } S5; struct {TY_ehmV9bTklH2Gt9cXHV9c0HLeQ* sons; } S6; } kindU; NimStringDesc* comment; }; typedef NU8 Tnimkind_jIBKr1ejBgsfM33Kxw4j7A; typedef NU8 Tnimtypeflag_v8QUszD1sWlSIWZz7mC4bQ_Set; typedef N_NIMCALL_PTR(void, TY_ojoeKfW4VYIm36I9cpDTQIg) (void* p0, NI op0); typedef N_NIMCALL_PTR(void*, TY_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p0); struct TNimType { NI size; Tnimkind_jIBKr1ejBgsfM33Kxw4j7A kind; Tnimtypeflag_v8QUszD1sWlSIWZz7mC4bQ_Set flags; TNimType* base; TNimNode* node; void* finalizer; TY_ojoeKfW4VYIm36I9cpDTQIg marker; TY_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy; }; struct TNimObject { TNimType* m_type; }; struct Tidobj_raN9cHVgzmvaXisezY9aGg9cg { TNimObject Sup; NI id; }; typedef NU8 Tsymkind_cNCW9acsSznmEccl1fgQwkw; struct Tstrtable_f07aOS3dr28kGa5wcE29aFA { NI counter; TY_sksVpmPRIkNR9axiwtD1Guw* data; }; typedef NU16 Tmagic_shZhZOdbVC5nnFvcXQAImg; typedef NU32 Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw_Set; typedef NU32 Toption_WspMeQySXNP2XoTWR5MTgg_Set; typedef NU8 Tlockind_O7PRFZKuiBBWbku09cayVBg; typedef NU8 Tstorageloc_JK9cKMX3XnqHaUky9b6gkGEw; typedef NU16 Tlocflag_o2bqJgR4ceIupnUSpxiudA_Set; struct Tloc_EtHNvCB0bgfu9bFjzx9cb6aA { Tlockind_O7PRFZKuiBBWbku09cayVBg k; Tstorageloc_JK9cKMX3XnqHaUky9b6gkGEw s; Tlocflag_o2bqJgR4ceIupnUSpxiudA_Set flags; Ttype_LTUWCZolpovw9cWE3JBWSUw* t; Ropeobj_HF4qJnb6xiOddgPmsxodtQ* r; }; struct Tsym_AXG7xcvKqaxY6koRX1xkCw { Tidobj_raN9cHVgzmvaXisezY9aGg9cg Sup; Tsymkind_cNCW9acsSznmEccl1fgQwkw kind; union{ struct {TY_zuqP4Riz26Oi5fWgPYVEgA* typeinstcache; } S1; struct {TY_DXS6mEo7PVUFJkirsQ9bNQA* procinstcache; Tsym_AXG7xcvKqaxY6koRX1xkCw* gcunsafetyreason; } S2; struct {TY_DXS6mEo7PVUFJkirsQ9bNQA* usedgenerics; Tstrtable_f07aOS3dr28kGa5wcE29aFA tab; } S3; struct {Tsym_AXG7xcvKqaxY6koRX1xkCw* guard; NI bitsize; } S4; } kindU; Tmagic_shZhZOdbVC5nnFvcXQAImg magic; Ttype_LTUWCZolpovw9cWE3JBWSUw* typ; Tident_4umxGerWTHGPwUms7Yqu3g* name; Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info; Tsym_AXG7xcvKqaxY6koRX1xkCw* owner; Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw_Set flags; Tnode_bROa11lyF5vxEN9aYNbHmhw* ast; Toption_WspMeQySXNP2XoTWR5MTgg_Set options; NI position; NI offset; Tloc_EtHNvCB0bgfu9bFjzx9cb6aA loc; Tlib_4f9aBgmqEuj7uWJdBBGcRgA* annex; Tnode_bROa11lyF5vxEN9aYNbHmhw* constraint; }; typedef NU8 Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw; typedef NU8 Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag; typedef NU8 Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA; typedef NU32 Ttypeflag_x2m5g1NpbmDig4wLT3Ylhw_Set; struct Ttype_LTUWCZolpovw9cWE3JBWSUw { Tidobj_raN9cHVgzmvaXisezY9aGg9cg Sup; Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag kind; Tcallingconvention_yjAJ8w0h1PBaSwSGJ3P7IA callconv; Ttypeflag_x2m5g1NpbmDig4wLT3Ylhw_Set flags; TY_zuqP4Riz26Oi5fWgPYVEgA* sons; Tnode_bROa11lyF5vxEN9aYNbHmhw* n; Tsym_AXG7xcvKqaxY6koRX1xkCw* owner; Tsym_AXG7xcvKqaxY6koRX1xkCw* sym; Tsym_AXG7xcvKqaxY6koRX1xkCw* destructor; Tsym_AXG7xcvKqaxY6koRX1xkCw* deepcopy; Tsym_AXG7xcvKqaxY6koRX1xkCw* assignment; TY_iGkpo9aKQdr3NWelKC4cnJA* methods; NI64 size; NI16 align; NI16 locklevel; Tloc_EtHNvCB0bgfu9bFjzx9cb6aA loc; Ttype_LTUWCZolpovw9cWE3JBWSUw* typeinst; }; struct Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q { NI counter; TY_Mh9agqM29bm9aP5AUL1x7dZGA* data; }; struct Templctx_og0XwfDLUlsX2HzoVx0s3Q { Tsym_AXG7xcvKqaxY6koRX1xkCw* owner; Tsym_AXG7xcvKqaxY6koRX1xkCw* gensymowner; NIM_BOOL instlines; Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q mapping; }; struct TY_XOVT24GHXwqiEj5GCsEGCA { NimStringDesc* Field0; NI Field1; }; struct Cell_1zcF9cV8XIAtbN8h5HRUB8g { NI refcount; TNimType* typ; }; struct Cellseq_Axo1XVm9aaQueTOldv8le5w { NI len; NI cap; Cell_1zcF9cV8XIAtbN8h5HRUB8g** d; }; typedef Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* TY_SiRwrEKZdLgxqz9a9aoVBglg[512]; typedef Trunk_W0r8S0Y3UGke6T9bIUWnnuw* TY_lh2A89ahMmYg9bCmpVaplLbA[256]; struct Intset_EZObFrE3NC9bIb3YMkY9crZA { TY_lh2A89ahMmYg9bCmpVaplLbA data; }; struct Memregion_x81NhDv59b8ercDZ9bi85jyg { NI minlargeobj; NI maxlargeobj; TY_SiRwrEKZdLgxqz9a9aoVBglg freesmallchunks; Llchunk_XsENErzHIZV9bhvyJx56wGw* llmem; NI currmem; NI maxmem; NI freemem; NI lastsize; Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* freechunkslist; Intset_EZObFrE3NC9bIb3YMkY9crZA chunkstarts; Avlnode_IaqjtwKhxLEpvDS9bct9blEw* root; Avlnode_IaqjtwKhxLEpvDS9bct9blEw* deleted; Avlnode_IaqjtwKhxLEpvDS9bct9blEw* last; Avlnode_IaqjtwKhxLEpvDS9bct9blEw* freeavlnodes; NIM_BOOL locked; NIM_BOOL blockchunksizeincrease; NI nextchunksize; }; struct Gcstat_0RwLoVBHZPfUAcLczmfQAg { NI stackscans; NI cyclecollections; NI maxthreshold; NI maxstacksize; NI maxstackcells; NI cycletablesize; NI64 maxpause; }; struct Cellset_jG87P0AI9aZtss9ccTYBIISQ { NI counter; NI max; Pagedesc_fublkgIY4LG3mT51LU2WHg* head; Pagedesc_fublkgIY4LG3mT51LU2WHg** data; }; struct Gcheap_1TRH1TZMaVZTnLNcIHuNFQ { Gcstack_7fytPA5bBsob6See21YMRA* stack; void* stackbottom; NI cyclethreshold; Cellseq_Axo1XVm9aaQueTOldv8le5w zct; Cellseq_Axo1XVm9aaQueTOldv8le5w decstack; Cellseq_Axo1XVm9aaQueTOldv8le5w tempstack; NI recgclock; Memregion_x81NhDv59b8ercDZ9bi85jyg region; Gcstat_0RwLoVBHZPfUAcLczmfQAg stat; Cellset_jG87P0AI9aZtss9ccTYBIISQ marked; Cellseq_Axo1XVm9aaQueTOldv8le5w additionalroots; }; typedef NU8 Trenderflag_wrPgUo1ExBlHvFnXN2nSHw_Set; struct Tident_4umxGerWTHGPwUms7Yqu3g { Tidobj_raN9cHVgzmvaXisezY9aGg9cg Sup; NimStringDesc* s; Tident_4umxGerWTHGPwUms7Yqu3g* next; NI h; }; typedef NU8 Tnimnodekind_unfNsxrcATrufDZmpBq4HQ; struct TNimNode { Tnimnodekind_unfNsxrcATrufDZmpBq4HQ kind; NI offset; TNimType* typ; NCSTRING name; NI len; TNimNode** sons; }; struct Ropeobj_HF4qJnb6xiOddgPmsxodtQ { TNimObject Sup; Ropeobj_HF4qJnb6xiOddgPmsxodtQ* left; Ropeobj_HF4qJnb6xiOddgPmsxodtQ* right; NI length; NimStringDesc* data; }; struct Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q { TNimObject Sup; Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q* prev; Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q* next; }; typedef NU8 Tlibkind_9b8v60kso59bBaw9cp8B9a9apKQ; struct Tlib_4f9aBgmqEuj7uWJdBBGcRgA { Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q Sup; Tlibkind_9b8v60kso59bBaw9cp8B9a9apKQ kind; NIM_BOOL generated; NIM_BOOL isoverriden; Ropeobj_HF4qJnb6xiOddgPmsxodtQ* name; Tnode_bROa11lyF5vxEN9aYNbHmhw* path; }; struct TY_a09bGTAl9ceOKTAytYdkbyKg { NI Field0; Tsym_AXG7xcvKqaxY6koRX1xkCw* Field1; }; struct Tidpair_AdFnD2YdADPeuJbG2YJ4vg { Tidobj_raN9cHVgzmvaXisezY9aGg9cg* key; TNimObject* val; }; struct Gcstack_7fytPA5bBsob6See21YMRA { Gcstack_7fytPA5bBsob6See21YMRA* prev; Gcstack_7fytPA5bBsob6See21YMRA* next; void* starts; void* pos; NI maxstacksize; }; struct Basechunk_Sdq7WpT6qAH858F5ZEdG3w { NI prevsize; NI size; NIM_BOOL used; }; struct Smallchunk_tXn60W2f8h3jgAYdEmy5NQ { Basechunk_Sdq7WpT6qAH858F5ZEdG3w Sup; Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* next; Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* prev; Freecell_u6M5LHprqzkn9axr04yg9bGQ* freelist; NI free; NI acc; NF data; }; struct Llchunk_XsENErzHIZV9bhvyJx56wGw { NI size; NI acc; Llchunk_XsENErzHIZV9bhvyJx56wGw* next; }; struct Bigchunk_Rv9c70Uhp2TytkX7eH78qEg { Basechunk_Sdq7WpT6qAH858F5ZEdG3w Sup; Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* next; Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* prev; NI align; NF data; }; typedef NI TY_9agrCtWKhCnWWMJpKKugJag[16]; struct Trunk_W0r8S0Y3UGke6T9bIUWnnuw { Trunk_W0r8S0Y3UGke6T9bIUWnnuw* next; NI key; TY_9agrCtWKhCnWWMJpKKugJag bits; }; typedef Avlnode_IaqjtwKhxLEpvDS9bct9blEw* TY_0aOLqZchNi8nWtMTi8ND8w[2]; struct Avlnode_IaqjtwKhxLEpvDS9bct9blEw { TY_0aOLqZchNi8nWtMTi8ND8w link; NI key; NI upperbound; NI level; }; struct Pagedesc_fublkgIY4LG3mT51LU2WHg { Pagedesc_fublkgIY4LG3mT51LU2WHg* next; NI key; TY_9agrCtWKhCnWWMJpKKugJag bits; }; struct Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA { Tsym_AXG7xcvKqaxY6koRX1xkCw* sym; TY_zuqP4Riz26Oi5fWgPYVEgA* concretetypes; NI compilesid; }; struct Freecell_u6M5LHprqzkn9axr04yg9bGQ { Freecell_u6M5LHprqzkn9axr04yg9bGQ* next; NI zerofield; }; struct TY_ehmV9bTklH2Gt9cXHV9c0HLeQ { TGenericSeq Sup; Tnode_bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE]; }; struct TY_zuqP4Riz26Oi5fWgPYVEgA { TGenericSeq Sup; Ttype_LTUWCZolpovw9cWE3JBWSUw* data[SEQ_DECL_SIZE]; }; struct TY_DXS6mEo7PVUFJkirsQ9bNQA { TGenericSeq Sup; Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA* data[SEQ_DECL_SIZE]; }; struct TY_sksVpmPRIkNR9axiwtD1Guw { TGenericSeq Sup; Tsym_AXG7xcvKqaxY6koRX1xkCw* data[SEQ_DECL_SIZE]; }; struct TY_iGkpo9aKQdr3NWelKC4cnJA { TGenericSeq Sup; TY_a09bGTAl9ceOKTAytYdkbyKg data[SEQ_DECL_SIZE]; }; struct TY_Mh9agqM29bm9aP5AUL1x7dZGA { TGenericSeq Sup; Tidpair_AdFnD2YdADPeuJbG2YJ4vg data[SEQ_DECL_SIZE]; }; N_NIMCALL(void, globalerror_VpilfPWbplGz6ny7O9cfr2g_3)(Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw msg0, NimStringDesc* arg0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, evaltemplateargs_dw0jfqH3BrkE5IDOxRZp9cw)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Tsym_AXG7xcvKqaxY6koRX1xkCw* s0, NIM_BOOL fromhlo0); static N_INLINE(NI, len_CdME9baJhvveuPEDZE9bXoxAlambdalifting)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0); static N_INLINE(Tnode_bROa11lyF5vxEN9aYNbHmhw*, HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, NI i0); N_NIMCALL(NI, len_gG7hUAX9cA629ahMLVL3xN4w_2)(Ttype_LTUWCZolpovw9cWE3JBWSUw* n0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, newnodei_PIqgSH9b0m7nFpOyXf9cpz5w)(Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw kind0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0); N_NIMCALL(void, addson_gCCf68XrWL79bKes6htzFjQ)(Tnode_bROa11lyF5vxEN9aYNbHmhw* father0, Tnode_bROa11lyF5vxEN9aYNbHmhw* son0); N_NIMCALL(void, localerror_VpilfPWbplGz6ny7O9cfr2g)(Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw msg0, NimStringDesc* arg0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, copytree_lz8T1F9c0YwEOpUnrAUYgjg_2)(Tnode_bROa11lyF5vxEN9aYNbHmhw* src0); N_NIMCALL(void, initidtable_9cUS2oaKn1IFXKjLdglPZHQ)(Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q* x0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, getbody_eMf5HLowckpW9cDxAV9bNIZw)(Tsym_AXG7xcvKqaxY6koRX1xkCw* s0); static N_INLINE(NIM_BOOL, isatom_NyXYMHACmbtWJZnWqE9cJCAparampatterns)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0); N_NIMCALL(void, evaltemplateaux_AHGrgjfRCGeqRF8aKpZ9apw)(Tnode_bROa11lyF5vxEN9aYNbHmhw* templ0, Tnode_bROa11lyF5vxEN9aYNbHmhw* actual0, Templctx_og0XwfDLUlsX2HzoVx0s3Q* c0, Tnode_bROa11lyF5vxEN9aYNbHmhw* result0); N_NIMCALL(void, add_gCCf68XrWL79bKes6htzFjQ_3)(Tnode_bROa11lyF5vxEN9aYNbHmhw* father0, Tnode_bROa11lyF5vxEN9aYNbHmhw* son0); N_NIMCALL(void, internalerror_5XY9cUy7hZmUusM38U9cYYdw)(NimStringDesc* errmsg0); N_NIMCALL(NimStringDesc*, HEX24_k53Ge4e9cDjc7y9c5uML7sPQ)(TY_XOVT24GHXwqiEj5GCsEGCA x0); N_NIMCALL(TNimObject*, idtableget_D12lVDWWPrKae8szg3EYLw)(Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q t0, Tidobj_raN9cHVgzmvaXisezY9aGg9cg* key0); N_NIMCALL(Tsym_AXG7xcvKqaxY6koRX1xkCw*, copysym_KkocQl2VXhKLz8kG9aC7GEw)(Tsym_AXG7xcvKqaxY6koRX1xkCw* s0, NIM_BOOL keepid0); static N_INLINE(void, asgnRefNoCycle)(void** dest0, void* src0); static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr0); static N_INLINE(void, rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0); N_NOINLINE(void, addzct_fCDI7oO1NNVXXURtxSzsRw)(Cellseq_Axo1XVm9aaQueTOldv8le5w* s0, Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0); N_NIMCALL(void, idtableput_3gLsywwJ9bZDaf06DfKpYbw)(Tidtable_9aiv9bp2t5icFNINcg9c4xi1Q* t0, Tidobj_raN9cHVgzmvaXisezY9aGg9cg* key0, TNimObject* val0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, newsymnode_slQ2jWOFI1ND3N9c79b7b18g)(Tsym_AXG7xcvKqaxY6koRX1xkCw* sym0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, copynode_HoisCusAu6Qks82zEN9cbNg)(Templctx_og0XwfDLUlsX2HzoVx0s3Q* ctx0, Tnode_bROa11lyF5vxEN9aYNbHmhw* a0, Tnode_bROa11lyF5vxEN9aYNbHmhw* b0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, copynode_lz8T1F9c0YwEOpUnrAUYgjg)(Tnode_bROa11lyF5vxEN9aYNbHmhw* src0); N_NIMCALL(NI, sonslen_qPWPHw7WgJeEVYUdcaRIig)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0); N_NIMCALL(NimStringDesc*, rendertree_ppjdh9aQ5L0SGPF8yz1gZ9cA)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Trenderflag_wrPgUo1ExBlHvFnXN2nSHw_Set renderflags0); static N_INLINE(NI, safelen_CdME9baJhvveuPEDZE9bXoxAsigmatch)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, wrapincomesfrom_YbfXH27kQZj5oIysAn7Rfg)(Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, Tnode_bROa11lyF5vxEN9aYNbHmhw* res0); N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, lastson_esDJA7239bJDiq4UrX9aHCjg)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0); NI evaltemplatecounter_jPNQnHnAL0wozxUYkowWUA; extern Tnode_bROa11lyF5vxEN9aYNbHmhw* emptynode_69ccLGuQ2mITw7zylZYtWcA; extern Gcheap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q; STRING_LITERAL(T_N0xGjswvcjwwH43PvVNJAg_2, "", 0); STRING_LITERAL(T_N0xGjswvcjwwH43PvVNJAg_4, "evaltempl.nim", 13); NIM_CONST TY_XOVT24GHXwqiEj5GCsEGCA T_N0xGjswvcjwwH43PvVNJAg_3 = {((NimStringDesc*) &T_N0xGjswvcjwwH43PvVNJAg_4), ((NI) 45)} ; static N_INLINE(NI, len_CdME9baJhvveuPEDZE9bXoxAlambdalifting)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0) { NI result0; result0 = (NI)0; { if (!((*n0).kindU.S6.sons == 0)) goto LA3; result0 = ((NI) 0); } goto LA1; LA3: ; { result0 = ((*n0).kindU.S6.sons ? (*n0).kindU.S6.sons->Sup.len : 0); } LA1: ; return result0; } static N_INLINE(Tnode_bROa11lyF5vxEN9aYNbHmhw*, HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, NI i0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; result0 = (*n0).kindU.S6.sons->data[i0]; return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, evaltemplateargs_dw0jfqH3BrkE5IDOxRZp9cw)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0, Tsym_AXG7xcvKqaxY6koRX1xkCw* s0, NIM_BOOL fromhlo0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; NI totalparams0; NI genericparams0; NI expectedregularparams0; NI LOC12; NI givenregularparams0; result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; switch ((*n0).kind) { case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 27): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 29): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 30): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 31): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 26): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 28): { NI LOC2; LOC2 = (NI)0; LOC2 = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(n0); totalparams0 = (NI)(LOC2 - ((NI) 1)); } break; default: { totalparams0 = ((NI) 0); } break; } { NIM_BOOL LOC6; LOC6 = (NIM_BOOL)0; LOC6 = (((*s0).flags &(1U<<((NU)(((Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw) 25))&31U)))!=0); if (LOC6) goto LA7; LOC6 = fromhlo0; LA7: ; if (!LOC6) goto LA8; genericparams0 = ((NI) 0); } goto LA4; LA8: ; { Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC11; LOC11 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC11 = HEX5BHEX5D_4mGh5VHoHoaSkXDYdG6pyAitersgen((*s0).ast, ((NI) 2)); genericparams0 = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(LOC11); } LA4: ; LOC12 = (NI)0; LOC12 = len_gG7hUAX9cA629ahMLVL3xN4w_2((*s0).typ); expectedregularparams0 = (LOC12 - 1); givenregularparams0 = (NI)(totalparams0 - genericparams0); { if (!(givenregularparams0 < ((NI) 0))) goto LA15; givenregularparams0 = ((NI) 0); } LA15: ; { if (!((NI)(expectedregularparams0 + genericparams0) < totalparams0)) goto LA19; globalerror_VpilfPWbplGz6ny7O9cfr2g_3((*n0).info, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 136), ((NimStringDesc*) &T_N0xGjswvcjwwH43PvVNJAg_2)); } LA19: ; result0 = newnodei_PIqgSH9b0m7nFpOyXf9cpz5w(((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 152), (*n0).info); { NI i_PYl9cv9bQnghKQXyXdxMDYzg; NI res_TrLd5q7GRjzsRNmujZ5Kog; i_PYl9cv9bQnghKQXyXdxMDYzg = (NI)0; res_TrLd5q7GRjzsRNmujZ5Kog = ((NI) 1); { while (1) { if (!(res_TrLd5q7GRjzsRNmujZ5Kog <= givenregularparams0)) goto LA23; i_PYl9cv9bQnghKQXyXdxMDYzg = res_TrLd5q7GRjzsRNmujZ5Kog; addson_gCCf68XrWL79bKes6htzFjQ(result0, (*n0).kindU.S6.sons->data[i_PYl9cv9bQnghKQXyXdxMDYzg]); res_TrLd5q7GRjzsRNmujZ5Kog += ((NI) 1); } LA23: ; } } { NI i_PYl9cv9bQnghKQXyXdxMDYzg_2; NI HEX3Atmp_TikpdK7Q4mtvBGSlduHjng; NI res_TrLd5q7GRjzsRNmujZ5Kog_2; i_PYl9cv9bQnghKQXyXdxMDYzg_2 = (NI)0; HEX3Atmp_TikpdK7Q4mtvBGSlduHjng = (NI)0; HEX3Atmp_TikpdK7Q4mtvBGSlduHjng = (NI)(givenregularparams0 + ((NI) 1)); res_TrLd5q7GRjzsRNmujZ5Kog_2 = HEX3Atmp_TikpdK7Q4mtvBGSlduHjng; { while (1) { Tnode_bROa11lyF5vxEN9aYNbHmhw* default_BdXr9c9bxIvQs559cCj7oBmLQ; if (!(res_TrLd5q7GRjzsRNmujZ5Kog_2 <= expectedregularparams0)) goto LA26; i_PYl9cv9bQnghKQXyXdxMDYzg_2 = res_TrLd5q7GRjzsRNmujZ5Kog_2; default_BdXr9c9bxIvQs559cCj7oBmLQ = (*(*(*(*(*s0).typ).n).kindU.S6.sons->data[i_PYl9cv9bQnghKQXyXdxMDYzg_2]).kindU.S4.sym).ast; { NIM_BOOL LOC29; LOC29 = (NIM_BOOL)0; LOC29 = (default_BdXr9c9bxIvQs559cCj7oBmLQ == 0); if (LOC29) goto LA30; LOC29 = ((*default_BdXr9c9bxIvQs559cCj7oBmLQ).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 1)); LA30: ; if (!LOC29) goto LA31; localerror_VpilfPWbplGz6ny7O9cfr2g((*n0).info, ((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 136), ((NimStringDesc*) &T_N0xGjswvcjwwH43PvVNJAg_2)); addson_gCCf68XrWL79bKes6htzFjQ(result0, emptynode_69ccLGuQ2mITw7zylZYtWcA); } goto LA27; LA31: ; { Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC34; LOC34 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC34 = copytree_lz8T1F9c0YwEOpUnrAUYgjg_2(default_BdXr9c9bxIvQs559cCj7oBmLQ); addson_gCCf68XrWL79bKes6htzFjQ(result0, LOC34); } LA27: ; res_TrLd5q7GRjzsRNmujZ5Kog_2 += ((NI) 1); } LA26: ; } } { NI i_PYl9cv9bQnghKQXyXdxMDYzg_3; NI res_TrLd5q7GRjzsRNmujZ5Kog_3; i_PYl9cv9bQnghKQXyXdxMDYzg_3 = (NI)0; res_TrLd5q7GRjzsRNmujZ5Kog_3 = ((NI) 1); { while (1) { if (!(res_TrLd5q7GRjzsRNmujZ5Kog_3 <= genericparams0)) goto LA37; i_PYl9cv9bQnghKQXyXdxMDYzg_3 = res_TrLd5q7GRjzsRNmujZ5Kog_3; addson_gCCf68XrWL79bKes6htzFjQ(result0, (*n0).kindU.S6.sons->data[(NI)(givenregularparams0 + i_PYl9cv9bQnghKQXyXdxMDYzg_3)]); res_TrLd5q7GRjzsRNmujZ5Kog_3 += ((NI) 1); } LA37: ; } } return result0; } static N_INLINE(NIM_BOOL, isatom_NyXYMHACmbtWJZnWqE9cJCAparampatterns)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0) { NIM_BOOL result0; NIM_BOOL LOC1; result0 = (NIM_BOOL)0; LOC1 = (NIM_BOOL)0; LOC1 = (((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 0) <= (*n0).kind); if (!(LOC1)) goto LA2; LOC1 = ((*n0).kind <= ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 23)); LA2: ; result0 = LOC1; return result0; } static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr0) { Cell_1zcF9cV8XIAtbN8h5HRUB8g* result0; result0 = (Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0; result0 = ((Cell_1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU32)(((NI) (usr0))) - (NU32)(((NI)sizeof(Cell_1zcF9cV8XIAtbN8h5HRUB8g)))))); return result0; } static N_INLINE(void, rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0) { addzct_fCDI7oO1NNVXXURtxSzsRw((&gch_IcYaEuuWivYAS86vFMTS3Q.zct), c0); } static N_INLINE(void, asgnRefNoCycle)(void** dest0, void* src0) { { Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0; if (!!((src0 == NIM_NIL))) goto LA3; c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem(src0); (*c0).refcount += ((NI) 8); } LA3: ; { Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0; if (!!(((*dest0) == NIM_NIL))) goto LA7; c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest0)); { (*c0).refcount -= ((NI) 8); if (!((NU32)((*c0).refcount) < (NU32)(((NI) 8)))) goto LA11; rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system(c0); } LA11: ; } LA7: ; (*dest0) = src0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, copynode_HoisCusAu6Qks82zEN9cbNg)(Templctx_og0XwfDLUlsX2HzoVx0s3Q* ctx0, Tnode_bROa11lyF5vxEN9aYNbHmhw* a0, Tnode_bROa11lyF5vxEN9aYNbHmhw* b0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; result0 = copynode_lz8T1F9c0YwEOpUnrAUYgjg(a0); { if (!(*ctx0).instlines) goto LA3; (*result0).info = (*b0).info; } LA3: ; return result0; } N_NIMCALL(void, evaltemplateaux_AHGrgjfRCGeqRF8aKpZ9apw)(Tnode_bROa11lyF5vxEN9aYNbHmhw* templ0, Tnode_bROa11lyF5vxEN9aYNbHmhw* actual0, Templctx_og0XwfDLUlsX2HzoVx0s3Q* c0, Tnode_bROa11lyF5vxEN9aYNbHmhw* result0) { switch ((*templ0).kind) { case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 3): { Tsym_AXG7xcvKqaxY6koRX1xkCw* s0; s0 = (*templ0).kindU.S4.sym; { if (!((*(*s0).owner).Sup.id == (*(*c0).owner).Sup.id)) goto LA4; { NIM_BOOL LOC8; Tnode_bROa11lyF5vxEN9aYNbHmhw* x_bpH68CEPoNrC9czs9a6EqbOg; LOC8 = (NIM_BOOL)0; LOC8 = ((*s0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 3)); if (!(LOC8)) goto LA9; LOC8 = !((((*s0).flags &(1U<<((NU)(((Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw) 31))&31U)))!=0)); LA9: ; if (!LOC8) goto LA10; x_bpH68CEPoNrC9czs9a6EqbOg = (*actual0).kindU.S6.sons->data[(*s0).position]; { if (!((*x_bpH68CEPoNrC9czs9a6EqbOg).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 152))) goto LA14; { Tnode_bROa11lyF5vxEN9aYNbHmhw* y_sHgbS9bPoBpoZKm4v8bGWYg; y_sHgbS9bPoBpoZKm4v8bGWYg = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; { NI i_UyOiZSYKpbQs42BU32yTQQ; NI HEX3Atmp_xrewkryzQlwNCc2YCCU9bXg; NI LOC18; NI res_mrbSWFKRIi4XqJhjBWoMJg; i_UyOiZSYKpbQs42BU32yTQQ = (NI)0; HEX3Atmp_xrewkryzQlwNCc2YCCU9bXg = (NI)0; LOC18 = (NI)0; LOC18 = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(x_bpH68CEPoNrC9czs9a6EqbOg); HEX3Atmp_xrewkryzQlwNCc2YCCU9bXg = (LOC18 - 1); res_mrbSWFKRIi4XqJhjBWoMJg = ((NI) 0); { while (1) { if (!(res_mrbSWFKRIi4XqJhjBWoMJg <= HEX3Atmp_xrewkryzQlwNCc2YCCU9bXg)) goto LA20; i_UyOiZSYKpbQs42BU32yTQQ = res_mrbSWFKRIi4XqJhjBWoMJg; y_sHgbS9bPoBpoZKm4v8bGWYg = (*x_bpH68CEPoNrC9czs9a6EqbOg).kindU.S6.sons->data[i_UyOiZSYKpbQs42BU32yTQQ]; add_gCCf68XrWL79bKes6htzFjQ_3(result0, y_sHgbS9bPoBpoZKm4v8bGWYg); res_mrbSWFKRIi4XqJhjBWoMJg += ((NI) 1); } LA20: ; } } } } goto LA12; LA14: ; { Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC22; LOC22 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC22 = copytree_lz8T1F9c0YwEOpUnrAUYgjg_2(x_bpH68CEPoNrC9czs9a6EqbOg); add_gCCf68XrWL79bKes6htzFjQ_3(result0, LOC22); } LA12: ; } goto LA6; LA10: ; { NIM_BOOL LOC24; NIM_BOOL LOC26; NIM_BOOL LOC27; Tnode_bROa11lyF5vxEN9aYNbHmhw* x_bpH68CEPoNrC9czs9a6EqbOg_2; NI LOC32; LOC24 = (NIM_BOOL)0; LOC24 = ((*s0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 4)); if (LOC24) goto LA25; LOC26 = (NIM_BOOL)0; LOC27 = (NIM_BOOL)0; LOC27 = ((*s0).kind == ((Tsymkind_cNCW9acsSznmEccl1fgQwkw) 7)); if (!(LOC27)) goto LA28; LOC27 = !(((*s0).typ == NIM_NIL)); LA28: ; LOC26 = LOC27; if (!(LOC26)) goto LA29; LOC26 = ((*(*s0).typ).kind == ((Ttypekind_9a3YiReNVD0IJHWFKgXRe9ag) 12)); LA29: ; LOC24 = LOC26; LA25: ; if (!LOC24) goto LA30; LOC32 = (NI)0; LOC32 = len_gG7hUAX9cA629ahMLVL3xN4w_2((*(*s0).owner).typ); x_bpH68CEPoNrC9czs9a6EqbOg_2 = (*actual0).kindU.S6.sons->data[(NI)((NI)(LOC32 + (*s0).position) - ((NI) 1))]; { if (!((*x_bpH68CEPoNrC9czs9a6EqbOg_2).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 152))) goto LA35; { Tnode_bROa11lyF5vxEN9aYNbHmhw* y_sHgbS9bPoBpoZKm4v8bGWYg_2; y_sHgbS9bPoBpoZKm4v8bGWYg_2 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; { NI i_UyOiZSYKpbQs42BU32yTQQ_2; NI HEX3Atmp_xrewkryzQlwNCc2YCCU9bXg_2; NI LOC39; NI res_mrbSWFKRIi4XqJhjBWoMJg_2; i_UyOiZSYKpbQs42BU32yTQQ_2 = (NI)0; HEX3Atmp_xrewkryzQlwNCc2YCCU9bXg_2 = (NI)0; LOC39 = (NI)0; LOC39 = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(x_bpH68CEPoNrC9czs9a6EqbOg_2); HEX3Atmp_xrewkryzQlwNCc2YCCU9bXg_2 = (LOC39 - 1); res_mrbSWFKRIi4XqJhjBWoMJg_2 = ((NI) 0); { while (1) { if (!(res_mrbSWFKRIi4XqJhjBWoMJg_2 <= HEX3Atmp_xrewkryzQlwNCc2YCCU9bXg_2)) goto LA41; i_UyOiZSYKpbQs42BU32yTQQ_2 = res_mrbSWFKRIi4XqJhjBWoMJg_2; y_sHgbS9bPoBpoZKm4v8bGWYg_2 = (*x_bpH68CEPoNrC9czs9a6EqbOg_2).kindU.S6.sons->data[i_UyOiZSYKpbQs42BU32yTQQ_2]; add_gCCf68XrWL79bKes6htzFjQ_3(result0, y_sHgbS9bPoBpoZKm4v8bGWYg_2); res_mrbSWFKRIi4XqJhjBWoMJg_2 += ((NI) 1); } LA41: ; } } } } goto LA33; LA35: ; { Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC43; LOC43 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC43 = copytree_lz8T1F9c0YwEOpUnrAUYgjg_2(x_bpH68CEPoNrC9czs9a6EqbOg_2); add_gCCf68XrWL79bKes6htzFjQ_3(result0, LOC43); } LA33: ; } goto LA6; LA30: ; { Tsym_AXG7xcvKqaxY6koRX1xkCw* x0; Tidobj_raN9cHVgzmvaXisezY9aGg9cg* LOC50; TNimObject* LOC51; Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw LOC58; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC64; { NimStringDesc* LOC49; if (!!((((*s0).flags &(1U<<((NU)(((Tsymflag_K9ay6LWMat9bUiT9bIbMxpDHw) 31))&31U)))!=0))) goto LA47; LOC49 = (NimStringDesc*)0; LOC49 = HEX24_k53Ge4e9cDjc7y9c5uML7sPQ(T_N0xGjswvcjwwH43PvVNJAg_3); internalerror_5XY9cUy7hZmUusM38U9cYYdw(LOC49); } LA47: ; LOC50 = (Tidobj_raN9cHVgzmvaXisezY9aGg9cg*)0; LOC50 = &s0->Sup; LOC51 = (TNimObject*)0; LOC51 = idtableget_D12lVDWWPrKae8szg3EYLw((*c0).mapping, LOC50); x0 = ((Tsym_AXG7xcvKqaxY6koRX1xkCw*) (LOC51)); { Tidobj_raN9cHVgzmvaXisezY9aGg9cg* LOC56; TNimObject* LOC57; if (!(x0 == NIM_NIL)) goto LA54; x0 = copysym_KkocQl2VXhKLz8kG9aC7GEw(s0, NIM_FALSE); asgnRefNoCycle((void**) (&(*x0).owner), (*c0).gensymowner); LOC56 = (Tidobj_raN9cHVgzmvaXisezY9aGg9cg*)0; LOC56 = &s0->Sup; LOC57 = (TNimObject*)0; LOC57 = &x0->Sup.Sup; idtableput_3gLsywwJ9bZDaf06DfKpYbw((&(*c0).mapping), LOC56, LOC57); } LA54: ; { if (!(*c0).instlines) goto LA61; LOC58 = (*actual0).info; } goto LA59; LA61: ; { LOC58 = (*templ0).info; } LA59: ; LOC64 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC64 = newsymnode_slQ2jWOFI1ND3N9c79b7b18g(x0, LOC58); add_gCCf68XrWL79bKes6htzFjQ_3(result0, LOC64); } LA6: ; } goto LA2; LA4: ; { Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC66; LOC66 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC66 = copynode_HoisCusAu6Qks82zEN9cbNg((&(*c0)), templ0, actual0); add_gCCf68XrWL79bKes6htzFjQ_3(result0, LOC66); } LA2: ; } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 0) ... ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 2): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 4) ... ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 23): { Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC68; LOC68 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC68 = copynode_HoisCusAu6Qks82zEN9cbNg((&(*c0)), templ0, actual0); add_gCCf68XrWL79bKes6htzFjQ_3(result0, LOC68); } break; default: { Tnode_bROa11lyF5vxEN9aYNbHmhw* res0; res0 = copynode_HoisCusAu6Qks82zEN9cbNg((&(*c0)), templ0, actual0); { NI i_UyOiZSYKpbQs42BU32yTQQ_3; NI HEX3Atmp_xrewkryzQlwNCc2YCCU9bXg_3; NI LOC71; NI res_mrbSWFKRIi4XqJhjBWoMJg_3; i_UyOiZSYKpbQs42BU32yTQQ_3 = (NI)0; HEX3Atmp_xrewkryzQlwNCc2YCCU9bXg_3 = (NI)0; LOC71 = (NI)0; LOC71 = sonslen_qPWPHw7WgJeEVYUdcaRIig(templ0); HEX3Atmp_xrewkryzQlwNCc2YCCU9bXg_3 = (NI)(LOC71 - ((NI) 1)); res_mrbSWFKRIi4XqJhjBWoMJg_3 = ((NI) 0); { while (1) { if (!(res_mrbSWFKRIi4XqJhjBWoMJg_3 <= HEX3Atmp_xrewkryzQlwNCc2YCCU9bXg_3)) goto LA73; i_UyOiZSYKpbQs42BU32yTQQ_3 = res_mrbSWFKRIi4XqJhjBWoMJg_3; evaltemplateaux_AHGrgjfRCGeqRF8aKpZ9apw((*templ0).kindU.S6.sons->data[i_UyOiZSYKpbQs42BU32yTQQ_3], actual0, c0, res0); res_mrbSWFKRIi4XqJhjBWoMJg_3 += ((NI) 1); } LA73: ; } } add_gCCf68XrWL79bKes6htzFjQ_3(result0, res0); } break; } } static N_INLINE(NI, safelen_CdME9baJhvveuPEDZE9bXoxAsigmatch)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0) { NI result0; result0 = (NI)0; { NIM_BOOL LOC3; LOC3 = (NIM_BOOL)0; LOC3 = ((*n0).kind >= ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n0).kind <= ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 23)); if (LOC3) goto LA4; LOC3 = ((*n0).kindU.S6.sons == 0); LA4: ; if (!LOC3) goto LA5; result0 = ((NI) 0); } goto LA1; LA5: ; { result0 = ((*n0).kindU.S6.sons ? (*n0).kindU.S6.sons->Sup.len : 0); } LA1: ; return result0; } N_NIMCALL(Tnode_bROa11lyF5vxEN9aYNbHmhw*, wrapincomesfrom_YbfXH27kQZj5oIysAn7Rfg)(Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0, Tnode_bROa11lyF5vxEN9aYNbHmhw* res0) { Tnode_bROa11lyF5vxEN9aYNbHmhw* result0; result0 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; result0 = res0; (*result0).info = info0; { NIM_BOOL LOC3; NI LOC5; Tnode_bROa11lyF5vxEN9aYNbHmhw* LOC8; LOC3 = (NIM_BOOL)0; LOC3 = ((*result0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 115) || (*result0).kind == ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 126)); if (!(LOC3)) goto LA4; LOC5 = (NI)0; LOC5 = len_CdME9baJhvveuPEDZE9bXoxAlambdalifting(result0); LOC3 = (((NI) 0) < LOC5); LA4: ; if (!LOC3) goto LA6; LOC8 = (Tnode_bROa11lyF5vxEN9aYNbHmhw*)0; LOC8 = lastson_esDJA7239bJDiq4UrX9aHCjg(result0); (*LOC8).info = info0; } LA6: ; 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; } NIM_EXTERNC N_NOINLINE(void, compiler_evaltemplInit000)(void) { evaltemplatecounter_jPNQnHnAL0wozxUYkowWUA = ((NI) 0); } NIM_EXTERNC N_NOINLINE(void, compiler_evaltemplDatInit000)(void) { }