/* 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 NimStringDesc NimStringDesc; typedef struct TGenericSeq TGenericSeq; typedef struct TNimType TNimType; typedef struct TNimNode TNimNode; 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 Optparser_fe5bDDfRbVwQIuUOouExnA Optparser_fe5bDDfRbVwQIuUOouExnA; typedef struct TNimObject TNimObject; typedef struct Basechunk_Sdq7WpT6qAH858F5ZEdG3w Basechunk_Sdq7WpT6qAH858F5ZEdG3w; typedef struct Freecell_u6M5LHprqzkn9axr04yg9bGQ Freecell_u6M5LHprqzkn9axr04yg9bGQ; struct TGenericSeq { NI len; NI reserved; }; struct NimStringDesc { TGenericSeq Sup; NIM_CHAR data[SEQ_DECL_SIZE]; }; 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; }; typedef NU8 Tnimnodekind_unfNsxrcATrufDZmpBq4HQ; struct TNimNode { Tnimnodekind_unfNsxrcATrufDZmpBq4HQ kind; NI offset; TNimType* typ; NCSTRING name; NI len; TNimNode** sons; }; typedef N_NIMCALL_PTR(void, TY_T4eqaYlFJYZUv9aG9b1TV0bQ) (void); 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 Tcmdlinepass_IiBn9cB6WYIMDHOT44O82wA; struct TNimObject { TNimType* m_type; }; typedef NU8 Cmdlinekind_XkdXq9atxjiuhkFFh0XYrSA; struct Optparser_fe5bDDfRbVwQIuUOouExnA { TNimObject Sup; NimStringDesc* cmd; NI pos; NIM_BOOL inshortstate; Cmdlinekind_XkdXq9atxjiuhkFFh0XYrSA kind; NimStringDesc* key; NimStringDesc* val; }; typedef NU64 Tglobaloption_RAfAEZqjnKMDumgyKKc1qw_Set; typedef NU8 Tglobaloption_RAfAEZqjnKMDumgyKKc1qw; typedef NU16 Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw; typedef NimStringDesc* TY_8ZvwQIddfpj2THRVPsFzIQ[1]; 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 Freecell_u6M5LHprqzkn9axr04yg9bGQ { Freecell_u6M5LHprqzkn9axr04yg9bGQ* next; NI zerofield; }; N_NIMCALL(void, nimGCvisit)(void* d0, NI op0); static N_NIMCALL(void, T_AxyNANBXigTKyIcRAbufXw_2)(void); N_NIMCALL(void, nimRegisterGlobalMarker)(TY_T4eqaYlFJYZUv9aG9b1TV0bQ markerproc0); N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src0); static N_INLINE(void, nimGCunrefNoCycle)(void* p0); 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); static N_NIMCALL(void, T_AxyNANBXigTKyIcRAbufXw_4)(void); N_NIMCALL(void, initoptparser_xt25Cv9cQqaNt3Mscl7nHFA)(NimStringDesc* cmdline0, Optparser_fe5bDDfRbVwQIuUOouExnA* Result); N_NOINLINE(void, chckNil)(void* p0); N_NIMCALL(void, nponext)(Optparser_fe5bDDfRbVwQIuUOouExnA* p0); static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a0, NimStringDesc* b0); static N_INLINE(NIM_BOOL, equalmem_DCrUjdaMvFDHaR1hs7sQGwropes)(void* a0, void* b0, NI size0); N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src0); N_NIMCALL(NIM_BOOL, processargument_33tMDAeUR8ND9c6ZfADVB4w)(Tcmdlinepass_IiBn9cB6WYIMDHOT44O82wA pass0, Optparser_fe5bDDfRbVwQIuUOouExnA* p0, NI* argscount0); N_NIMCALL(void, processswitch_TdGOW9ciAVvdBm6nv23Sz9aA)(Tcmdlinepass_IiBn9cB6WYIMDHOT44O82wA pass0, Optparser_fe5bDDfRbVwQIuUOouExnA* p0); N_NIMCALL(NimStringDesc*, nsuNormalize)(NimStringDesc* s0); N_NIMCALL(void, rawmessage_wSQLHRsYvHJ4DSWgdFrFaA)(Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw msg0, NimStringDesc** args0, NI args0Len0); NimStringDesc* curcaascmd_d9bbs0fkusQpq9c9aV1N2b4Ew; extern TNimType NTI_77mFvmsOLKik79ci2hXkHEg; extern Gcheap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q; NimStringDesc* lastcaascmd_XN0FKBK4eJUnsxrDhlKHzg; extern TNimType NTI_fe5bDDfRbVwQIuUOouExnA; extern Tglobaloption_RAfAEZqjnKMDumgyKKc1qw_Set gglobaloptions_j042VVDC9cT5ENYoXnmhhVg; extern NimStringDesc* arguments_J4sVmqKDJ3MkfxziRX9cODA; extern NimStringDesc* command_zo83h8QWwtDIGDuqkGhjqg; STRING_LITERAL(T_AxyNANBXigTKyIcRAbufXw_3, "", 0); STRING_LITERAL(T_AxyNANBXigTKyIcRAbufXw_5, " ", 1); STRING_LITERAL(T_AxyNANBXigTKyIcRAbufXw_6, "-", 1); STRING_LITERAL(T_AxyNANBXigTKyIcRAbufXw_7, "run", 3); static N_NIMCALL(void, T_AxyNANBXigTKyIcRAbufXw_2)(void) { nimGCvisit((void*)curcaascmd_d9bbs0fkusQpq9c9aV1N2b4Ew, 0); } 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, nimGCunrefNoCycle)(void* p0) { Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0; c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem(p0); { (*c0).refcount -= ((NI) 8); if (!((NU32)((*c0).refcount) < (NU32)(((NI) 8)))) goto LA3; rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system(c0); } LA3: ; } static N_NIMCALL(void, T_AxyNANBXigTKyIcRAbufXw_4)(void) { nimGCvisit((void*)lastcaascmd_XN0FKBK4eJUnsxrDhlKHzg, 0); } static N_INLINE(NIM_BOOL, equalmem_DCrUjdaMvFDHaR1hs7sQGwropes)(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_DCrUjdaMvFDHaR1hs7sQGwropes(((void*) ((*a0).data)), ((void*) ((*b0).data)), ((NI) ((*a0).Sup.len))); LA12: ; result0 = LOC11; goto BeforeRet; }BeforeRet: ; return result0; } N_NIMCALL(void, processcmdline_tw2pZl8Nisz38VPmsT5WZA)(Tcmdlinepass_IiBn9cB6WYIMDHOT44O82wA pass0, NimStringDesc* cmd0) { Optparser_fe5bDDfRbVwQIuUOouExnA p0; NI argscount0; memset((void*)(&p0), 0, sizeof(p0)); p0.Sup.m_type = (&NTI_fe5bDDfRbVwQIuUOouExnA); chckNil((void*)(&p0)); memset((void*)(&p0), 0, sizeof(p0)); p0.Sup.m_type = (&NTI_fe5bDDfRbVwQIuUOouExnA); initoptparser_xt25Cv9cQqaNt3Mscl7nHFA(cmd0, (&p0)); argscount0 = ((NI) 0); { while (1) { nponext((&p0)); switch (p0.kind) { case ((Cmdlinekind_XkdXq9atxjiuhkFFh0XYrSA) 0): { goto LA1; } break; case ((Cmdlinekind_XkdXq9atxjiuhkFFh0XYrSA) 2): case ((Cmdlinekind_XkdXq9atxjiuhkFFh0XYrSA) 3): { { if (!eqStrings(p0.key, ((NimStringDesc*) &T_AxyNANBXigTKyIcRAbufXw_5))) goto LA7; p0.key = copyString(((NimStringDesc*) &T_AxyNANBXigTKyIcRAbufXw_6)); { NIM_BOOL LOC11; LOC11 = (NIM_BOOL)0; LOC11 = processargument_33tMDAeUR8ND9c6ZfADVB4w(pass0, (&p0), (&argscount0)); if (!LOC11) goto LA12; goto LA1; } LA12: ; } goto LA5; LA7: ; { processswitch_TdGOW9ciAVvdBm6nv23Sz9aA(pass0, (&p0)); } LA5: ; } break; case ((Cmdlinekind_XkdXq9atxjiuhkFFh0XYrSA) 1): { { NIM_BOOL LOC18; LOC18 = (NIM_BOOL)0; LOC18 = processargument_33tMDAeUR8ND9c6ZfADVB4w(pass0, (&p0), (&argscount0)); if (!LOC18) goto LA19; goto LA1; } LA19: ; } break; } } } LA1: ; { if (!(pass0 == ((Tcmdlinepass_IiBn9cB6WYIMDHOT44O82wA) 1))) goto LA23; { NIM_BOOL LOC27; NIM_BOOL LOC28; NimStringDesc* LOC31; TY_8ZvwQIddfpj2THRVPsFzIQ LOC34; LOC27 = (NIM_BOOL)0; LOC28 = (NIM_BOOL)0; LOC28 = !(((gglobaloptions_j042VVDC9cT5ENYoXnmhhVg &((NU64)1<<((NU)(((Tglobaloption_RAfAEZqjnKMDumgyKKc1qw) 13))&63U)))!=0)); if (!(LOC28)) goto LA29; LOC28 = !(((arguments_J4sVmqKDJ3MkfxziRX9cODA) && (arguments_J4sVmqKDJ3MkfxziRX9cODA)->Sup.len == 0)); LA29: ; LOC27 = LOC28; if (!(LOC27)) goto LA30; LOC31 = (NimStringDesc*)0; LOC31 = nsuNormalize(command_zo83h8QWwtDIGDuqkGhjqg); LOC27 = !(eqStrings(LOC31, ((NimStringDesc*) &T_AxyNANBXigTKyIcRAbufXw_7))); LA30: ; if (!LOC27) goto LA32; memset((void*)LOC34, 0, sizeof(LOC34)); rawmessage_wSQLHRsYvHJ4DSWgdFrFaA(((Tmsgkind_IGAWgv9aR2KqPKJfPZPEWaw) 59), LOC34, 0); } LA32: ; } LA23: ; } NIM_EXTERNC N_NOINLINE(void, compiler_serviceInit000)(void) { NimStringDesc* LOC1; NimStringDesc* LOC2; nimRegisterGlobalMarker(T_AxyNANBXigTKyIcRAbufXw_2); nimRegisterGlobalMarker(T_AxyNANBXigTKyIcRAbufXw_4); LOC1 = (NimStringDesc*)0; LOC1 = curcaascmd_d9bbs0fkusQpq9c9aV1N2b4Ew; curcaascmd_d9bbs0fkusQpq9c9aV1N2b4Ew = copyStringRC1(((NimStringDesc*) &T_AxyNANBXigTKyIcRAbufXw_3)); if (LOC1) nimGCunrefNoCycle(LOC1); LOC2 = (NimStringDesc*)0; LOC2 = lastcaascmd_XN0FKBK4eJUnsxrDhlKHzg; lastcaascmd_XN0FKBK4eJUnsxrDhlKHzg = copyStringRC1(((NimStringDesc*) &T_AxyNANBXigTKyIcRAbufXw_3)); if (LOC2) nimGCunrefNoCycle(LOC2); } NIM_EXTERNC N_NOINLINE(void, compiler_serviceDatInit000)(void) { }