/* 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 TNimType TNimType; typedef struct TNimNode TNimNode; typedef struct Baselexer_B6cGbTPhMsqMovc9cOcIHRw Baselexer_B6cGbTPhMsqMovc9cOcIHRw; typedef struct TNimObject TNimObject; typedef struct Streamobj_RShkcoDOPnoCVhtpN1hDPQ Streamobj_RShkcoDOPnoCVhtpN1hDPQ; 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; }; struct TNimObject { TNimType* m_type; }; typedef NU8 TY_nmiMWKVIe46vacnhAFrQvw_Set[32]; struct Baselexer_B6cGbTPhMsqMovc9cOcIHRw { TNimObject Sup; NI bufpos; NCSTRING buf; NI buflen; Streamobj_RShkcoDOPnoCVhtpN1hDPQ* input; NI linenumber; NI sentinel; NI linestart; TY_nmiMWKVIe46vacnhAFrQvw_Set refillchars; }; typedef N_NIMCALL_PTR(void, TY_cnkJEp9bna8U6yi9aVW9cAJ0Q) (Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s0); typedef N_NIMCALL_PTR(NIM_BOOL, TY_KjFcmLOhf4VQvVcyLJWXZw) (Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s0); typedef N_NIMCALL_PTR(void, TY_jlOYFw9cHausuCbPoWx2iiA) (Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s0, NI pos0); typedef N_NIMCALL_PTR(NI, TY_Xzm85qBLb9cf9cu8VOfAr8PQ) (Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s0); typedef N_NIMCALL_PTR(NI, TY_tjaJtoUzLe1BMUbItlcGhQ) (Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s0, void* buffer0, NI buflen0); typedef N_NIMCALL_PTR(void, TY_b9bsIuILxTLVZHPvJBW187A) (Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s0, void* buffer0, NI buflen0); struct Streamobj_RShkcoDOPnoCVhtpN1hDPQ { TNimObject Sup; TY_cnkJEp9bna8U6yi9aVW9cAJ0Q closeimpl; TY_KjFcmLOhf4VQvVcyLJWXZw atendimpl; TY_jlOYFw9cHausuCbPoWx2iiA setpositionimpl; TY_Xzm85qBLb9cf9cu8VOfAr8PQ getpositionimpl; TY_tjaJtoUzLe1BMUbItlcGhQ readdataimpl; TY_tjaJtoUzLe1BMUbItlcGhQ peekdataimpl; TY_b9bsIuILxTLVZHPvJBW187A writedataimpl; TY_cnkJEp9bna8U6yi9aVW9cAJ0Q flushimpl; }; N_NIMCALL(void, unsureAsgnRef)(void** dest0, void* src0); N_NOCONV(void*, alloc_sVm4rDImKK2ZDdylByayiA_2)(NI size0); N_NIMCALL(void, fillbuffer_QbedUCk2XwI9c7bbRzXBY0g)(Baselexer_B6cGbTPhMsqMovc9cOcIHRw* L0); static N_INLINE(void, movemem_E1xtACub5WcDa3vbrIXbwgnimlexbase)(void* dest0, void* source0, NI size0); N_NIMCALL(NI, readdata_Gnwdizh7H5Q9cYivUoGHrVA)(Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s0, void* buffer0, NI buflen0); N_NOCONV(void*, realloc_y4TzCoc3hQhz9cedxS9cbemA)(void* p0, NI newsize0); N_NIMCALL(void, skiputf8bom_BMPUUaJVkFzDJfE3dUzOCw)(Baselexer_B6cGbTPhMsqMovc9cOcIHRw* L0); N_NOCONV(void, dealloc_RCjNtRnHdRYntrcE7YtwWw)(void* p0); N_NIMCALL(void, close_4ed7IXme7lqtClFI7s2sTQ)(Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s0); N_NIMCALL(NI, fillbaselexer_IwUEvMBOLRY9cqyar6XKEaw_2)(Baselexer_B6cGbTPhMsqMovc9cOcIHRw* L0, NI pos0); extern TNimType NTI_13RNkKqUOX1TtorOUlKtqA; TNimType NTI_B6cGbTPhMsqMovc9cOcIHRw; extern TNimType NTI_rR5Bzr1D5krxoo1NcNyeMA; extern TNimType NTI_S9agCYBinaYZnGWcjTdxclg; extern TNimType NTI_r3Wc5tOoxP8rz1DvGVTUvw; extern TNimType NTI_nmiMWKVIe46vacnhAFrQvw; TNimType NTI_HDqWPvEAxZK51ZcfaeQEdg; static N_INLINE(void, movemem_E1xtACub5WcDa3vbrIXbwgnimlexbase)(void* dest0, void* source0, NI size0) { void* LOC1; LOC1 = (void*)0; LOC1 = memmove(dest0, source0, ((size_t) (size0))); } N_NIMCALL(void, fillbuffer_QbedUCk2XwI9c7bbRzXBY0g)(Baselexer_B6cGbTPhMsqMovc9cOcIHRw* L0) { NI charsread0; NI tocopy0; NI s0; NI oldbuflen0; NI LOC5; charsread0 = (NI)0; tocopy0 = (NI)0; s0 = (NI)0; oldbuflen0 = (NI)0; tocopy0 = (NI)((NI)((*L0).buflen - (*L0).sentinel) - ((NI) 1)); { if (!(((NI) 0) < tocopy0)) goto LA3; movemem_E1xtACub5WcDa3vbrIXbwgnimlexbase(((void*) ((*L0).buf)), ((void*) ((&(*L0).buf[(NI)((*L0).sentinel + ((NI) 1))]))), ((NI) ((NI)(tocopy0 * ((NI) 1))))); } LA3: ; LOC5 = (NI)0; LOC5 = readdata_Gnwdizh7H5Q9cYivUoGHrVA((*L0).input, ((void*) ((&(*L0).buf[tocopy0]))), (NI)((NI)((*L0).sentinel + ((NI) 1)) * ((NI) 1))); charsread0 = (NI)(LOC5 / ((NI) 1)); s0 = (NI)(tocopy0 + charsread0); { if (!(charsread0 < (NI)((*L0).sentinel + ((NI) 1)))) goto LA8; (*L0).buf[s0] = 0; (*L0).sentinel = s0; } goto LA6; LA8: ; { s0 -= ((NI) 1); { while (1) { { while (1) { NIM_BOOL LOC15; LOC15 = (NIM_BOOL)0; LOC15 = (((NI) 0) <= s0); if (!(LOC15)) goto LA16; LOC15 = !((((*L0).refillchars[(NU)(((NU8)((*L0).buf[s0])))>>3] &(1U<<((NU)(((NU8)((*L0).buf[s0])))&7U)))!=0)); LA16: ; if (!LOC15) goto LA14; s0 -= ((NI) 1); } LA14: ; } { if (!(((NI) 0) <= s0)) goto LA19; (*L0).sentinel = s0; goto LA11; } goto LA17; LA19: ; { void* LOC22; NI LOC23; oldbuflen0 = (*L0).buflen; (*L0).buflen = (NI)((*L0).buflen * ((NI) 2)); LOC22 = (void*)0; LOC22 = realloc_y4TzCoc3hQhz9cedxS9cbemA(((void*) ((*L0).buf)), ((NI) ((NI)((*L0).buflen * ((NI) 1))))); (*L0).buf = ((NCSTRING) (LOC22)); LOC23 = (NI)0; LOC23 = readdata_Gnwdizh7H5Q9cYivUoGHrVA((*L0).input, ((void*) ((&(*L0).buf[oldbuflen0]))), (NI)(oldbuflen0 * ((NI) 1))); charsread0 = (NI)(LOC23 / ((NI) 1)); { if (!(charsread0 < oldbuflen0)) goto LA26; (*L0).buf[(NI)(oldbuflen0 + charsread0)] = 0; (*L0).sentinel = (NI)(oldbuflen0 + charsread0); goto LA11; } LA26: ; s0 = (NI)((*L0).buflen - ((NI) 1)); } LA17: ; } } LA11: ; } LA6: ; } N_NIMCALL(void, skiputf8bom_BMPUUaJVkFzDJfE3dUzOCw)(Baselexer_B6cGbTPhMsqMovc9cOcIHRw* L0) { { NIM_BOOL LOC3; NIM_BOOL LOC4; LOC3 = (NIM_BOOL)0; LOC4 = (NIM_BOOL)0; LOC4 = ((NU8)((*L0).buf[((NI) 0)]) == (NU8)(239)); if (!(LOC4)) goto LA5; LOC4 = ((NU8)((*L0).buf[((NI) 1)]) == (NU8)(187)); LA5: ; LOC3 = LOC4; if (!(LOC3)) goto LA6; LOC3 = ((NU8)((*L0).buf[((NI) 2)]) == (NU8)(191)); LA6: ; if (!LOC3) goto LA7; (*L0).bufpos += ((NI) 3); (*L0).linestart += ((NI) 3); } LA7: ; } N_NIMCALL(void, open_xmgaYJZNnO6QcDtac9bs3Vg)(Baselexer_B6cGbTPhMsqMovc9cOcIHRw* L0, Streamobj_RShkcoDOPnoCVhtpN1hDPQ* input0, NI buflen0, TY_nmiMWKVIe46vacnhAFrQvw_Set refillchars0) { void* LOC1; unsureAsgnRef((void**) (&(*L0).input), input0); (*L0).bufpos = ((NI) 0); (*L0).buflen = buflen0; memcpy((void*)(*L0).refillchars, (NIM_CONST void*)refillchars0, 32); LOC1 = (void*)0; LOC1 = alloc_sVm4rDImKK2ZDdylByayiA_2(((NI) ((NI)(buflen0 * ((NI) 1))))); (*L0).buf = ((NCSTRING) (LOC1)); (*L0).sentinel = (NI)(buflen0 - ((NI) 1)); (*L0).linestart = ((NI) 0); (*L0).linenumber = ((NI) 1); fillbuffer_QbedUCk2XwI9c7bbRzXBY0g(L0); skiputf8bom_BMPUUaJVkFzDJfE3dUzOCw(L0); } N_NIMCALL(void, close_QbedUCk2XwI9c7bbRzXBY0g_2)(Baselexer_B6cGbTPhMsqMovc9cOcIHRw* L0) { dealloc_RCjNtRnHdRYntrcE7YtwWw(((void*) ((*L0).buf))); close_4ed7IXme7lqtClFI7s2sTQ((*L0).input); } N_NIMCALL(NI, fillbaselexer_IwUEvMBOLRY9cqyar6XKEaw_2)(Baselexer_B6cGbTPhMsqMovc9cOcIHRw* L0, NI pos0) { NI result0; result0 = (NI)0; { if (!(pos0 < (*L0).sentinel)) goto LA3; result0 = (NI)(pos0 + ((NI) 1)); } goto LA1; LA3: ; { fillbuffer_QbedUCk2XwI9c7bbRzXBY0g(L0); (*L0).bufpos = ((NI) 0); result0 = ((NI) 0); } LA1: ; return result0; } N_NIMCALL(NI, handlecr_IwUEvMBOLRY9cqyar6XKEaw)(Baselexer_B6cGbTPhMsqMovc9cOcIHRw* L0, NI pos0) { NI result0; result0 = (NI)0; (*L0).linenumber += ((NI) 1); result0 = fillbaselexer_IwUEvMBOLRY9cqyar6XKEaw_2(L0, pos0); { if (!((NU8)((*L0).buf[result0]) == (NU8)(10))) goto LA3; result0 = fillbaselexer_IwUEvMBOLRY9cqyar6XKEaw_2(L0, result0); } LA3: ; (*L0).linestart = result0; return result0; } N_NIMCALL(NI, handlelf_IwUEvMBOLRY9cqyar6XKEaw_3)(Baselexer_B6cGbTPhMsqMovc9cOcIHRw* L0, NI pos0) { NI result0; result0 = (NI)0; (*L0).linenumber += ((NI) 1); result0 = fillbaselexer_IwUEvMBOLRY9cqyar6XKEaw_2(L0, pos0); (*L0).linestart = result0; return result0; } N_NIMCALL(NI, getcolnumber_9cj186ckGjLqyndkoW7bBdg)(Baselexer_B6cGbTPhMsqMovc9cOcIHRw* L0, NI pos0) { NI result0; result0 = (NI)0; result0 = ((NI)(pos0 - (*L0).linestart) > 0? ((NI)(pos0 - (*L0).linestart)) : -((NI)(pos0 - (*L0).linestart))); return result0; } NIM_EXTERNC N_NOINLINE(void, stdlib_lexbaseInit000)(void) { } NIM_EXTERNC N_NOINLINE(void, stdlib_lexbaseDatInit000)(void) { static TNimNode* T_k6p5NxDJat9aTyZxfZjCDJQ_2[8]; static TNimNode T_k6p5NxDJat9aTyZxfZjCDJQ_0[10]; NTI_B6cGbTPhMsqMovc9cOcIHRw.size = sizeof(Baselexer_B6cGbTPhMsqMovc9cOcIHRw); NTI_B6cGbTPhMsqMovc9cOcIHRw.kind = 17; NTI_B6cGbTPhMsqMovc9cOcIHRw.base = (&NTI_13RNkKqUOX1TtorOUlKtqA); T_k6p5NxDJat9aTyZxfZjCDJQ_2[0] = &T_k6p5NxDJat9aTyZxfZjCDJQ_0[1]; T_k6p5NxDJat9aTyZxfZjCDJQ_0[1].kind = 1; T_k6p5NxDJat9aTyZxfZjCDJQ_0[1].offset = offsetof(Baselexer_B6cGbTPhMsqMovc9cOcIHRw, bufpos); T_k6p5NxDJat9aTyZxfZjCDJQ_0[1].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA); T_k6p5NxDJat9aTyZxfZjCDJQ_0[1].name = "bufpos"; T_k6p5NxDJat9aTyZxfZjCDJQ_2[1] = &T_k6p5NxDJat9aTyZxfZjCDJQ_0[2]; T_k6p5NxDJat9aTyZxfZjCDJQ_0[2].kind = 1; T_k6p5NxDJat9aTyZxfZjCDJQ_0[2].offset = offsetof(Baselexer_B6cGbTPhMsqMovc9cOcIHRw, buf); T_k6p5NxDJat9aTyZxfZjCDJQ_0[2].typ = (&NTI_S9agCYBinaYZnGWcjTdxclg); T_k6p5NxDJat9aTyZxfZjCDJQ_0[2].name = "buf"; T_k6p5NxDJat9aTyZxfZjCDJQ_2[2] = &T_k6p5NxDJat9aTyZxfZjCDJQ_0[3]; T_k6p5NxDJat9aTyZxfZjCDJQ_0[3].kind = 1; T_k6p5NxDJat9aTyZxfZjCDJQ_0[3].offset = offsetof(Baselexer_B6cGbTPhMsqMovc9cOcIHRw, buflen); T_k6p5NxDJat9aTyZxfZjCDJQ_0[3].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA); T_k6p5NxDJat9aTyZxfZjCDJQ_0[3].name = "bufLen"; T_k6p5NxDJat9aTyZxfZjCDJQ_2[3] = &T_k6p5NxDJat9aTyZxfZjCDJQ_0[4]; T_k6p5NxDJat9aTyZxfZjCDJQ_0[4].kind = 1; T_k6p5NxDJat9aTyZxfZjCDJQ_0[4].offset = offsetof(Baselexer_B6cGbTPhMsqMovc9cOcIHRw, input); T_k6p5NxDJat9aTyZxfZjCDJQ_0[4].typ = (&NTI_r3Wc5tOoxP8rz1DvGVTUvw); T_k6p5NxDJat9aTyZxfZjCDJQ_0[4].name = "input"; T_k6p5NxDJat9aTyZxfZjCDJQ_2[4] = &T_k6p5NxDJat9aTyZxfZjCDJQ_0[5]; T_k6p5NxDJat9aTyZxfZjCDJQ_0[5].kind = 1; T_k6p5NxDJat9aTyZxfZjCDJQ_0[5].offset = offsetof(Baselexer_B6cGbTPhMsqMovc9cOcIHRw, linenumber); T_k6p5NxDJat9aTyZxfZjCDJQ_0[5].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA); T_k6p5NxDJat9aTyZxfZjCDJQ_0[5].name = "lineNumber"; T_k6p5NxDJat9aTyZxfZjCDJQ_2[5] = &T_k6p5NxDJat9aTyZxfZjCDJQ_0[6]; T_k6p5NxDJat9aTyZxfZjCDJQ_0[6].kind = 1; T_k6p5NxDJat9aTyZxfZjCDJQ_0[6].offset = offsetof(Baselexer_B6cGbTPhMsqMovc9cOcIHRw, sentinel); T_k6p5NxDJat9aTyZxfZjCDJQ_0[6].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA); T_k6p5NxDJat9aTyZxfZjCDJQ_0[6].name = "sentinel"; T_k6p5NxDJat9aTyZxfZjCDJQ_2[6] = &T_k6p5NxDJat9aTyZxfZjCDJQ_0[7]; T_k6p5NxDJat9aTyZxfZjCDJQ_0[7].kind = 1; T_k6p5NxDJat9aTyZxfZjCDJQ_0[7].offset = offsetof(Baselexer_B6cGbTPhMsqMovc9cOcIHRw, linestart); T_k6p5NxDJat9aTyZxfZjCDJQ_0[7].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA); T_k6p5NxDJat9aTyZxfZjCDJQ_0[7].name = "lineStart"; T_k6p5NxDJat9aTyZxfZjCDJQ_2[7] = &T_k6p5NxDJat9aTyZxfZjCDJQ_0[8]; NTI_HDqWPvEAxZK51ZcfaeQEdg.size = sizeof(TY_nmiMWKVIe46vacnhAFrQvw_Set); NTI_HDqWPvEAxZK51ZcfaeQEdg.kind = 19; NTI_HDqWPvEAxZK51ZcfaeQEdg.base = (&NTI_nmiMWKVIe46vacnhAFrQvw); NTI_HDqWPvEAxZK51ZcfaeQEdg.flags = 3; T_k6p5NxDJat9aTyZxfZjCDJQ_0[9].len = 0; T_k6p5NxDJat9aTyZxfZjCDJQ_0[9].kind = 0; NTI_HDqWPvEAxZK51ZcfaeQEdg.node = &T_k6p5NxDJat9aTyZxfZjCDJQ_0[9]; T_k6p5NxDJat9aTyZxfZjCDJQ_0[8].kind = 1; T_k6p5NxDJat9aTyZxfZjCDJQ_0[8].offset = offsetof(Baselexer_B6cGbTPhMsqMovc9cOcIHRw, refillchars); T_k6p5NxDJat9aTyZxfZjCDJQ_0[8].typ = (&NTI_HDqWPvEAxZK51ZcfaeQEdg); T_k6p5NxDJat9aTyZxfZjCDJQ_0[8].name = "refillChars"; T_k6p5NxDJat9aTyZxfZjCDJQ_0[0].len = 8; T_k6p5NxDJat9aTyZxfZjCDJQ_0[0].kind = 2; T_k6p5NxDJat9aTyZxfZjCDJQ_0[0].sons = &T_k6p5NxDJat9aTyZxfZjCDJQ_2[0]; NTI_B6cGbTPhMsqMovc9cOcIHRw.node = &T_k6p5NxDJat9aTyZxfZjCDJQ_0[0]; }