/* Generated by Nim Compiler v0.16.0 */ /* (c) 2017 Andreas Rumpf */ /* The generated code is subject to the original license. */ #define NIM_INTBITS 64 #include "nimbase.h" #include #undef linux typedef struct Tnodetable_wN7B39cKxLpMkvKNm9bduZ0A Tnodetable_wN7B39cKxLpMkvKNm9bduZ0A; typedef struct Tnode_bROa11lyF5vxEN9aYNbHmhw Tnode_bROa11lyF5vxEN9aYNbHmhw; typedef struct TY_vhmj4KkIKPinmRXny9c2Q6Q TY_vhmj4KkIKPinmRXny9c2Q6Q; typedef struct Tnodepair_EZfI4tFqtDSTQys2UInNjg Tnodepair_EZfI4tFqtDSTQys2UInNjg; typedef struct TGenericSeq TGenericSeq; typedef struct Ttype_LTUWCZolpovw9cWE3JBWSUw Ttype_LTUWCZolpovw9cWE3JBWSUw; typedef struct Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw; typedef struct NimStringDesc NimStringDesc; typedef struct Tsym_AXG7xcvKqaxY6koRX1xkCw Tsym_AXG7xcvKqaxY6koRX1xkCw; 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 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 TY_iGkpo9aKQdr3NWelKC4cnJA TY_iGkpo9aKQdr3NWelKC4cnJA; typedef struct Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA; typedef struct Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q Tlistentry_U4JkVlrJQaACKZ9a9cwCla3Q; typedef struct Basechunk_Sdq7WpT6qAH858F5ZEdG3w Basechunk_Sdq7WpT6qAH858F5ZEdG3w; typedef struct Freecell_u6M5LHprqzkn9axr04yg9bGQ Freecell_u6M5LHprqzkn9axr04yg9bGQ; typedef struct TY_a09bGTAl9ceOKTAytYdkbyKg TY_a09bGTAl9ceOKTAytYdkbyKg; struct Tnodepair_EZfI4tFqtDSTQys2UInNjg { NI h; Tnode_bROa11lyF5vxEN9aYNbHmhw* key; NI val; }; struct TGenericSeq { NI len; NI reserved; }; struct Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw { NI16 line; NI16 col; NI32 fileindex; }; typedef NU16 Tnodeflag_jyh9acXHkhZANSSvPIY7ZLg_Set; typedef NU8 Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw; struct NimStringDesc { TGenericSeq Sup; NIM_CHAR data[SEQ_DECL_SIZE]; }; 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; }; struct Tident_4umxGerWTHGPwUms7Yqu3g { Tidobj_raN9cHVgzmvaXisezY9aGg9cg Sup; NimStringDesc* s; Tident_4umxGerWTHGPwUms7Yqu3g* next; NI h; }; 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; }; struct Tnodetable_wN7B39cKxLpMkvKNm9bduZ0A { NI counter; TY_vhmj4KkIKPinmRXny9c2Q6Q* data; }; typedef NU8 Ttypecmpflag_72pgRXSg7774cr9aCWVPORw_Set; typedef NU8 Tnimnodekind_unfNsxrcATrufDZmpBq4HQ; struct TNimNode { Tnimnodekind_unfNsxrcATrufDZmpBq4HQ kind; NI offset; TNimType* typ; NCSTRING name; NI len; TNimNode** sons; }; 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 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 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 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_9a8QARi5WsUggNU9bom7kzTQ[8]; struct Trunk_W0r8S0Y3UGke6T9bIUWnnuw { Trunk_W0r8S0Y3UGke6T9bIUWnnuw* next; NI key; TY_9a8QARi5WsUggNU9bom7kzTQ 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_9a8QARi5WsUggNU9bom7kzTQ bits; }; struct TY_a09bGTAl9ceOKTAytYdkbyKg { NI Field0; Tsym_AXG7xcvKqaxY6koRX1xkCw* Field1; }; struct Tinstantiation_5LqgVn6Tq9ainQRK7TQAQxA { Tsym_AXG7xcvKqaxY6koRX1xkCw* sym; TY_zuqP4Riz26Oi5fWgPYVEgA* concretetypes; NI compilesid; }; struct Freecell_u6M5LHprqzkn9axr04yg9bGQ { Freecell_u6M5LHprqzkn9axr04yg9bGQ* next; NI zerofield; }; struct TY_vhmj4KkIKPinmRXny9c2Q6Q { TGenericSeq Sup; Tnodepair_EZfI4tFqtDSTQys2UInNjg data[SEQ_DECL_SIZE]; }; 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]; }; N_NIMCALL(NI, hashtree_Eo8objaHseTSHqIz1ec9cmQ)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0); static N_INLINE(NI, HEX21HEX26_6dtCP6C39bxOkT4wrIPJwKghashes)(NI h0, NI val0); N_NIMCALL(NI, hash_uBstFm5SYVQeOL3j9c9bc58A)(NimStringDesc* x0); N_NIMCALL(NI, sonslen_qPWPHw7WgJeEVYUdcaRIig)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0); N_NIMCALL(NI, nodetablerawget_2uELL659ao5jJa0oP9bgECwA)(Tnodetable_wN7B39cKxLpMkvKNm9bduZ0A t0, NI k0, Tnode_bROa11lyF5vxEN9aYNbHmhw* key0); N_NIMCALL(NIM_BOOL, treesequivalent_ES5PGoVkhviLiuaGxC9avVw)(Tnode_bROa11lyF5vxEN9aYNbHmhw* a0, Tnode_bROa11lyF5vxEN9aYNbHmhw* b0); static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a0, NimStringDesc* b0); static N_INLINE(NIM_BOOL, equalmem_fmeFeLBvgmAHG9bC8ETS9bYQropes)(void* a0, void* b0, NI size0); N_NIMCALL(NIM_BOOL, sametypeornil_EjIk4Kwv9bxfpaU9cx49cCrBQ_2)(Ttype_LTUWCZolpovw9cWE3JBWSUw* a0, Ttype_LTUWCZolpovw9cWE3JBWSUw* b0, Ttypecmpflag_72pgRXSg7774cr9aCWVPORw_Set flags0); static N_INLINE(NI, nexttry_4YWwV26d3PsQh1gUwwAjvAastalgo)(NI h0, NI maxhash0); N_NIMCALL(NIM_BOOL, mustrehash_UPHU5PqxEqM9bt6KyM7sznQ)(NI length0, NI counter0); N_NIMCALL(void*, newSeq)(TNimType* typ0, NI len0); N_NIMCALL(void, nodetablerawinsert_37KAHLfXcMoI3ByIpFkxKg)(TY_vhmj4KkIKPinmRXny9c2Q6Q** data0, NI k0, Tnode_bROa11lyF5vxEN9aYNbHmhw* key0, NI val0); 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, unsureAsgnRef)(void** dest0, void* src0); extern TNimType NTI_vhmj4KkIKPinmRXny9c2Q6Q; extern Gcheap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q; static N_INLINE(NI, HEX21HEX26_6dtCP6C39bxOkT4wrIPJwKghashes)(NI h0, NI val0) { NI result0; result0 = (NI)0; result0 = (NI)((NU64)(h0) + (NU64)(val0)); result0 = (NI)((NU64)(result0) + (NU64)((NI)((NU64)(result0) << (NU64)(((NI) 10))))); result0 = (NI)(result0 ^ (NI)((NU64)(result0) >> (NU64)(((NI) 6)))); return result0; } N_NIMCALL(NI, hashtree_Eo8objaHseTSHqIz1ec9cmQ)(Tnode_bROa11lyF5vxEN9aYNbHmhw* n0) { NI result0; { result0 = (NI)0; { if (!(n0 == NIM_NIL)) goto LA3; goto BeforeRet; } LA3: ; result0 = ((NI) ((*n0).kind)); switch ((*n0).kind) { case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 1): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 23): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 4): { } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 2): { result0 = HEX21HEX26_6dtCP6C39bxOkT4wrIPJwKghashes(result0, (*(*n0).kindU.S5.ident).h); } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 3): { result0 = HEX21HEX26_6dtCP6C39bxOkT4wrIPJwKghashes(result0, (*(*(*n0).kindU.S4.sym).name).h); } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 15): { { NIM_BOOL LOC11; LOC11 = (NIM_BOOL)0; LOC11 = ((IL64(-9223372036854775807) - IL64(1)) <= (*n0).kindU.S1.intval); if (!(LOC11)) goto LA12; LOC11 = ((*n0).kindU.S1.intval <= IL64(9223372036854775807)); LA12: ; if (!LOC11) goto LA13; result0 = HEX21HEX26_6dtCP6C39bxOkT4wrIPJwKghashes(result0, ((NI) ((*n0).kindU.S1.intval))); } LA13: ; } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 18): { { NIM_BOOL LOC18; LOC18 = (NIM_BOOL)0; LOC18 = (-1.0000000000000000e+06 <= (*n0).kindU.S2.floatval); if (!(LOC18)) goto LA19; LOC18 = ((*n0).kindU.S2.floatval <= 1.0000000000000000e+06); LA19: ; if (!LOC18) goto LA20; result0 = HEX21HEX26_6dtCP6C39bxOkT4wrIPJwKghashes(result0, float64ToInt32((*n0).kindU.S2.floatval)); } LA20: ; } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 22): { { NI LOC27; if (!!(((*n0).kindU.S3.strval == 0))) goto LA25; LOC27 = (NI)0; LOC27 = hash_uBstFm5SYVQeOL3j9c9bc58A((*n0).kindU.S3.strval); result0 = HEX21HEX26_6dtCP6C39bxOkT4wrIPJwKghashes(result0, LOC27); } LA25: ; } break; default: { { NI i_9cGdGRMH8yZg1s1yW84Phzg; NI HEX3Atmp_9cmt4NPMN1qPFiKHFJadp0w; NI LOC30; NI res_Ci5HPZtE5pp0sH9b9aDs6NRA; i_9cGdGRMH8yZg1s1yW84Phzg = (NI)0; HEX3Atmp_9cmt4NPMN1qPFiKHFJadp0w = (NI)0; LOC30 = (NI)0; LOC30 = sonslen_qPWPHw7WgJeEVYUdcaRIig(n0); HEX3Atmp_9cmt4NPMN1qPFiKHFJadp0w = (NI)(LOC30 - ((NI) 1)); res_Ci5HPZtE5pp0sH9b9aDs6NRA = ((NI) 0); { while (1) { NI LOC33; if (!(res_Ci5HPZtE5pp0sH9b9aDs6NRA <= HEX3Atmp_9cmt4NPMN1qPFiKHFJadp0w)) goto LA32; i_9cGdGRMH8yZg1s1yW84Phzg = res_Ci5HPZtE5pp0sH9b9aDs6NRA; LOC33 = (NI)0; LOC33 = hashtree_Eo8objaHseTSHqIz1ec9cmQ((*n0).kindU.S6.sons->data[i_9cGdGRMH8yZg1s1yW84Phzg]); result0 = HEX21HEX26_6dtCP6C39bxOkT4wrIPJwKghashes(result0, LOC33); res_Ci5HPZtE5pp0sH9b9aDs6NRA += ((NI) 1); } LA32: ; } } } break; } }BeforeRet: ; return result0; } static N_INLINE(NIM_BOOL, equalmem_fmeFeLBvgmAHG9bC8ETS9bYQropes)(void* a0, void* b0, NI size0) { NIM_BOOL result0; int LOC1; result0 = (NIM_BOOL)0; LOC1 = (int)0; LOC1 = memcmp(a0, b0, ((size_t) (size0))); result0 = (LOC1 == ((NI32) 0)); return result0; } static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a0, NimStringDesc* b0) { NIM_BOOL result0; NIM_BOOL LOC11; { result0 = (NIM_BOOL)0; { if (!(a0 == b0)) goto LA3; result0 = NIM_TRUE; goto BeforeRet; } LA3: ; { NIM_BOOL LOC7; LOC7 = (NIM_BOOL)0; LOC7 = (a0 == NIM_NIL); if (LOC7) goto LA8; LOC7 = (b0 == NIM_NIL); LA8: ; if (!LOC7) goto LA9; result0 = NIM_FALSE; goto BeforeRet; } LA9: ; LOC11 = (NIM_BOOL)0; LOC11 = ((*a0).Sup.len == (*b0).Sup.len); if (!(LOC11)) goto LA12; LOC11 = equalmem_fmeFeLBvgmAHG9bC8ETS9bYQropes(((void*) ((*a0).data)), ((void*) ((*b0).data)), ((NI) ((*a0).Sup.len))); LA12: ; result0 = LOC11; goto BeforeRet; }BeforeRet: ; return result0; } N_NIMCALL(NIM_BOOL, treesequivalent_ES5PGoVkhviLiuaGxC9avVw)(Tnode_bROa11lyF5vxEN9aYNbHmhw* a0, Tnode_bROa11lyF5vxEN9aYNbHmhw* b0) { NIM_BOOL result0; { result0 = (NIM_BOOL)0; { if (!(a0 == b0)) goto LA3; result0 = NIM_TRUE; } goto LA1; LA3: ; { NIM_BOOL LOC6; NIM_BOOL LOC7; LOC6 = (NIM_BOOL)0; LOC7 = (NIM_BOOL)0; LOC7 = !((a0 == NIM_NIL)); if (!(LOC7)) goto LA8; LOC7 = !((b0 == NIM_NIL)); LA8: ; LOC6 = LOC7; if (!(LOC6)) goto LA9; LOC6 = ((*a0).kind == (*b0).kind); LA9: ; if (!LOC6) goto LA10; switch ((*a0).kind) { case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 1): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 23): case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 4): { result0 = NIM_TRUE; } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 3): { result0 = ((*(*a0).kindU.S4.sym).Sup.id == (*(*b0).kindU.S4.sym).Sup.id); } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 2): { result0 = ((*(*a0).kindU.S5.ident).Sup.id == (*(*b0).kindU.S5.ident).Sup.id); } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 15): { result0 = ((*a0).kindU.S1.intval == (*b0).kindU.S1.intval); } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 18): { result0 = ((*a0).kindU.S2.floatval == (*b0).kindU.S2.floatval); } break; case ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((Tnodekind_G4E4Gxe7oI2Cm03rkiOzQw) 22): { result0 = eqStrings((*a0).kindU.S3.strval, (*b0).kindU.S3.strval); } break; default: { { NI LOC21; NI LOC22; LOC21 = (NI)0; LOC21 = sonslen_qPWPHw7WgJeEVYUdcaRIig(a0); LOC22 = (NI)0; LOC22 = sonslen_qPWPHw7WgJeEVYUdcaRIig(b0); if (!(LOC21 == LOC22)) goto LA23; { NI i_H9aVPuit5Ucp46kuDbqY45Q; NI HEX3Atmp_QK5Fb5056EGUZSTmnxErjg; NI LOC26; NI res_pf9axAlt71ELqYoCj4388QA; i_H9aVPuit5Ucp46kuDbqY45Q = (NI)0; HEX3Atmp_QK5Fb5056EGUZSTmnxErjg = (NI)0; LOC26 = (NI)0; LOC26 = sonslen_qPWPHw7WgJeEVYUdcaRIig(a0); HEX3Atmp_QK5Fb5056EGUZSTmnxErjg = (NI)(LOC26 - ((NI) 1)); res_pf9axAlt71ELqYoCj4388QA = ((NI) 0); { while (1) { if (!(res_pf9axAlt71ELqYoCj4388QA <= HEX3Atmp_QK5Fb5056EGUZSTmnxErjg)) goto LA28; i_H9aVPuit5Ucp46kuDbqY45Q = res_pf9axAlt71ELqYoCj4388QA; { NIM_BOOL LOC31; LOC31 = (NIM_BOOL)0; LOC31 = treesequivalent_ES5PGoVkhviLiuaGxC9avVw((*a0).kindU.S6.sons->data[i_H9aVPuit5Ucp46kuDbqY45Q], (*b0).kindU.S6.sons->data[i_H9aVPuit5Ucp46kuDbqY45Q]); if (!!(LOC31)) goto LA32; goto BeforeRet; } LA32: ; res_pf9axAlt71ELqYoCj4388QA += ((NI) 1); } LA28: ; } } result0 = NIM_TRUE; } LA23: ; } break; } { if (!result0) goto LA36; result0 = sametypeornil_EjIk4Kwv9bxfpaU9cx49cCrBQ_2((*a0).typ, (*b0).typ, 0); } LA36: ; } goto LA1; LA10: ; LA1: ; }BeforeRet: ; return result0; } static N_INLINE(NI, nexttry_4YWwV26d3PsQh1gUwwAjvAastalgo)(NI h0, NI maxhash0) { NI result0; result0 = (NI)0; result0 = (NI)((NI)((NI)(((NI) 5) * h0) + ((NI) 1)) & maxhash0); return result0; } N_NIMCALL(NI, nodetablerawget_2uELL659ao5jJa0oP9bgECwA)(Tnodetable_wN7B39cKxLpMkvKNm9bduZ0A t0, NI k0, Tnode_bROa11lyF5vxEN9aYNbHmhw* key0) { NI result0; NI h0; { result0 = (NI)0; h0 = (NI)(k0 & (t0.data ? (t0.data->Sup.len-1) : -1)); { while (1) { if (!!((t0.data->data[h0].key == NIM_NIL))) goto LA2; { NIM_BOOL LOC5; LOC5 = (NIM_BOOL)0; LOC5 = (t0.data->data[h0].h == k0); if (!(LOC5)) goto LA6; LOC5 = treesequivalent_ES5PGoVkhviLiuaGxC9avVw(t0.data->data[h0].key, key0); LA6: ; if (!LOC5) goto LA7; result0 = h0; goto BeforeRet; } LA7: ; h0 = nexttry_4YWwV26d3PsQh1gUwwAjvAastalgo(h0, (t0.data ? (t0.data->Sup.len-1) : -1)); } LA2: ; } result0 = ((NI) -1); }BeforeRet: ; return result0; } static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr0) { Cell_1zcF9cV8XIAtbN8h5HRUB8g* result0; result0 = (Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0; result0 = ((Cell_1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU64)(((NI) (usr0))) - (NU64)(((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 (!((NU64)((*c0).refcount) < (NU64)(((NI) 8)))) goto LA11; rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system(c0); } LA11: ; } LA7: ; (*dest0) = src0; } N_NIMCALL(void, nodetablerawinsert_37KAHLfXcMoI3ByIpFkxKg)(TY_vhmj4KkIKPinmRXny9c2Q6Q** data0, NI k0, Tnode_bROa11lyF5vxEN9aYNbHmhw* key0, NI val0) { NI h0; h0 = (NI)(k0 & ((*data0) ? ((*data0)->Sup.len-1) : -1)); { while (1) { if (!!(((*data0)->data[h0].key == NIM_NIL))) goto LA2; h0 = nexttry_4YWwV26d3PsQh1gUwwAjvAastalgo(h0, ((*data0) ? ((*data0)->Sup.len-1) : -1)); } LA2: ; } (*data0)->data[h0].h = k0; asgnRefNoCycle((void**) (&(*data0)->data[h0].key), key0); (*data0)->data[h0].val = val0; } N_NIMCALL(NI, nodetabletestorset_tWmKJP7glBWLCISQFGGk2Q)(Tnodetable_wN7B39cKxLpMkvKNm9bduZ0A* t0, Tnode_bROa11lyF5vxEN9aYNbHmhw* key0, NI val0) { NI result0; TY_vhmj4KkIKPinmRXny9c2Q6Q* n0; NI k0; NI index0; result0 = (NI)0; n0 = (TY_vhmj4KkIKPinmRXny9c2Q6Q*)0; k0 = hashtree_Eo8objaHseTSHqIz1ec9cmQ(key0); index0 = nodetablerawget_2uELL659ao5jJa0oP9bgECwA((*t0), k0, key0); { if (!(((NI) 0) <= index0)) goto LA3; result0 = (*t0).data->data[index0].val; } goto LA1; LA3: ; { { NIM_BOOL LOC8; TY_vhmj4KkIKPinmRXny9c2Q6Q* LOC18; LOC8 = (NIM_BOOL)0; LOC8 = mustrehash_UPHU5PqxEqM9bt6KyM7sznQ(((*t0).data ? (*t0).data->Sup.len : 0), (*t0).counter); if (!LOC8) goto LA9; n0 = (TY_vhmj4KkIKPinmRXny9c2Q6Q*) newSeq((&NTI_vhmj4KkIKPinmRXny9c2Q6Q), ((NI) ((NI)(((*t0).data ? (*t0).data->Sup.len : 0) * ((NI) 2))))); { NI i_c9bCLFEa2rvkLtk2EC2qJYA; NI HEX3Atmp_Mvlt3Ih9aERi3resGEMt9aJw; NI res_JAMbPO9aVDKtPG5QJks9cteA; i_c9bCLFEa2rvkLtk2EC2qJYA = (NI)0; HEX3Atmp_Mvlt3Ih9aERi3resGEMt9aJw = (NI)0; HEX3Atmp_Mvlt3Ih9aERi3resGEMt9aJw = ((*t0).data ? ((*t0).data->Sup.len-1) : -1); res_JAMbPO9aVDKtPG5QJks9cteA = ((NI) 0); { while (1) { if (!(res_JAMbPO9aVDKtPG5QJks9cteA <= HEX3Atmp_Mvlt3Ih9aERi3resGEMt9aJw)) goto LA13; i_c9bCLFEa2rvkLtk2EC2qJYA = res_JAMbPO9aVDKtPG5QJks9cteA; { if (!!(((*t0).data->data[i_c9bCLFEa2rvkLtk2EC2qJYA].key == NIM_NIL))) goto LA16; nodetablerawinsert_37KAHLfXcMoI3ByIpFkxKg((&n0), (*t0).data->data[i_c9bCLFEa2rvkLtk2EC2qJYA].h, (*t0).data->data[i_c9bCLFEa2rvkLtk2EC2qJYA].key, (*t0).data->data[i_c9bCLFEa2rvkLtk2EC2qJYA].val); } LA16: ; res_JAMbPO9aVDKtPG5QJks9cteA += ((NI) 1); } LA13: ; } } LOC18 = (TY_vhmj4KkIKPinmRXny9c2Q6Q*)0; LOC18 = (*t0).data; unsureAsgnRef((void**) (&(*t0).data), n0); n0 = LOC18; } LA9: ; nodetablerawinsert_37KAHLfXcMoI3ByIpFkxKg((&(*t0).data), k0, key0, val0); result0 = val0; (*t0).counter += ((NI) 1); } LA1: ; return result0; } NIM_EXTERNC N_NOINLINE(void, compiler_treetabInit000)(void) { } NIM_EXTERNC N_NOINLINE(void, compiler_treetabDatInit000)(void) { }