/* Generated by Nim Compiler v0.16.0 */ /* (c) 2017 Andreas Rumpf */ /* The generated code is subject to the original license. */ /* Compiled for: Linux, amd64, gcc */ /* Command for C compiler: gcc -c -w -O3 -fno-strict-aliasing -I/afs/athena.mit.edu/software/nim-lang_v0.16.0/nim-0.16.0/lib -o tools/nimsuggest/nimcache/compiler_rodutils.o tools/nimsuggest/nimcache/compiler_rodutils.c */ #define NIM_INTBITS 64 #include "nimbase.h" #undef linux typedef struct NimStringDesc NimStringDesc; typedef struct TGenericSeq TGenericSeq; struct TGenericSeq { NI len; NI reserved; }; struct NimStringDesc { TGenericSeq Sup; NIM_CHAR data[SEQ_DECL_SIZE]; }; N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src0); N_NIMCALL(void, hexchar_AQ39b2vc2IkLN3FY9bhdTqCg)(NIM_CHAR c0, NI* xi0); N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s0, NIM_CHAR c0); N_NIMCALL(void, encodevintaux_UxDO4XNnIGIEXt1v5wvZJQ_2)(NI x0, NimStringDesc** result0); STRING_LITERAL(T_mZLUkjbotQF2WK9bQcNKBCA_2, "", 0); STRING_LITERAL(T_mZLUkjbotQF2WK9bQcNKBCA_3, "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 62); N_NIMCALL(void, hexchar_AQ39b2vc2IkLN3FY9bhdTqCg)(NIM_CHAR c0, NI* xi0) { switch (((NU8)(c0))) { case 48 ... 57: { (*xi0) = (NI)((NI)((NU64)((*xi0)) << (NU64)(((NI) 4))) | ((NI) ((NI)(((NI) (((NU8)(c0)))) - ((NI) 48))))); } break; case 97 ... 102: { (*xi0) = (NI)((NI)((NU64)((*xi0)) << (NU64)(((NI) 4))) | ((NI) ((NI)(((NI) ((NI)(((NI) (((NU8)(c0)))) - ((NI) 97)))) + ((NI) 10))))); } break; case 65 ... 70: { (*xi0) = (NI)((NI)((NU64)((*xi0)) << (NU64)(((NI) 4))) | ((NI) ((NI)(((NI) ((NI)(((NI) (((NU8)(c0)))) - ((NI) 65)))) + ((NI) 10))))); } break; default: { } break; } } N_NIMCALL(NimStringDesc*, decodestr_STVN8cb52NB3wWUNHppyDQ)(NCSTRING s0, NI* pos0) { NimStringDesc* result0; NI i0; result0 = (NimStringDesc*)0; i0 = (*pos0); result0 = copyString(((NimStringDesc*) &T_mZLUkjbotQF2WK9bQcNKBCA_2)); { while (1) { switch (((NU8)(s0[i0]))) { case 92: { NI xi0; i0 += ((NI) 3); xi0 = ((NI) 0); hexchar_AQ39b2vc2IkLN3FY9bhdTqCg(s0[(NI)(i0 - ((NI) 2))], (&xi0)); hexchar_AQ39b2vc2IkLN3FY9bhdTqCg(s0[(NI)(i0 - ((NI) 1))], (&xi0)); result0 = addChar(result0, ((NIM_CHAR) (((NI) (xi0))))); } break; case 97 ... 122: case 65 ... 90: case 48 ... 57: case 95: { result0 = addChar(result0, s0[i0]); i0 += ((NI) 1); } break; default: { goto LA1; } break; } } } LA1: ; (*pos0) = i0; return result0; } N_NIMCALL(NI, decodevint_P9b8WkVDF9cqEDrYeG3xWGwQ)(NCSTRING s0, NI* pos0) { NI result0; NI i_9cV3UrBT9aoHlkZRInBVIgTA; NI sign_H9cQxu6gsYtEm1xd9a0GLrTQ; result0 = (NI)0; i_9cV3UrBT9aoHlkZRInBVIgTA = (*pos0); sign_H9cQxu6gsYtEm1xd9a0GLrTQ = ((NI) -1); { if (!((NU8)(s0[i_9cV3UrBT9aoHlkZRInBVIgTA]) == (NU8)(45))) goto LA3; i_9cV3UrBT9aoHlkZRInBVIgTA += ((NI) 1); sign_H9cQxu6gsYtEm1xd9a0GLrTQ = ((NI) 1); } LA3: ; result0 = ((NI) 0); { while (1) { switch (((NU8)(s0[i_9cV3UrBT9aoHlkZRInBVIgTA]))) { case 48 ... 57: { result0 = (NI)((NI)(result0 * ((NI) 190)) - ((NI) ((NI)(((NI) (((NU8)(s0[i_9cV3UrBT9aoHlkZRInBVIgTA])))) - ((NI) 48))))); } break; case 97 ... 122: { result0 = (NI)((NI)(result0 * ((NI) 190)) - ((NI) ((NI)(((NI) ((NI)(((NI) (((NU8)(s0[i_9cV3UrBT9aoHlkZRInBVIgTA])))) - ((NI) 97)))) + ((NI) 10))))); } break; case 65 ... 90: { result0 = (NI)((NI)(result0 * ((NI) 190)) - ((NI) ((NI)(((NI) ((NI)(((NI) (((NU8)(s0[i_9cV3UrBT9aoHlkZRInBVIgTA])))) - ((NI) 65)))) + ((NI) 36))))); } break; case 128 ... 255: { result0 = (NI)((NI)(result0 * ((NI) 190)) - ((NI) ((NI)(((NI) ((NI)(((NI) (((NU8)(s0[i_9cV3UrBT9aoHlkZRInBVIgTA])))) - ((NI) 128)))) + ((NI) 62))))); } break; default: { goto LA5; } break; } i_9cV3UrBT9aoHlkZRInBVIgTA += ((NI) 1); } } LA5: ; result0 = (NI)((NU64)((NI)(result0 * sign_H9cQxu6gsYtEm1xd9a0GLrTQ)) - (NU64)(((NI) 5))); (*pos0) = i_9cV3UrBT9aoHlkZRInBVIgTA; return result0; } N_NIMCALL(void, encodevintaux_UxDO4XNnIGIEXt1v5wvZJQ_2)(NI x0, NimStringDesc** result0) { NIM_CHAR d_ax9bS9bsAPVgC4ahHddm4Hcw; NI v_gBdlxiROIAt5LFmlJ8v8kg; NI rem_yreReHvXxN1M69b1CTWIVEg; NI idx_qCyVzkN9bJtLyqCbx9cCK6wA; d_ax9bS9bsAPVgC4ahHddm4Hcw = (NIM_CHAR)0; v_gBdlxiROIAt5LFmlJ8v8kg = x0; rem_yreReHvXxN1M69b1CTWIVEg = (NI)(v_gBdlxiROIAt5LFmlJ8v8kg % ((NI) 190)); { if (!(((NI) (rem_yreReHvXxN1M69b1CTWIVEg)) < ((NI) 0))) goto LA3; (*result0) = addChar((*result0), 45); v_gBdlxiROIAt5LFmlJ8v8kg = ((NI64)-((NI)(v_gBdlxiROIAt5LFmlJ8v8kg / ((NI) 190)))); rem_yreReHvXxN1M69b1CTWIVEg = ((NI64)-(((NI) (rem_yreReHvXxN1M69b1CTWIVEg)))); } goto LA1; LA3: ; { v_gBdlxiROIAt5LFmlJ8v8kg = (NI)(v_gBdlxiROIAt5LFmlJ8v8kg / ((NI) 190)); } LA1: ; idx_qCyVzkN9bJtLyqCbx9cCK6wA = ((NI) (rem_yreReHvXxN1M69b1CTWIVEg)); { if (!(idx_qCyVzkN9bJtLyqCbx9cCK6wA < ((NI) 62))) goto LA8; d_ax9bS9bsAPVgC4ahHddm4Hcw = ((NimStringDesc*) &T_mZLUkjbotQF2WK9bQcNKBCA_3)->data[idx_qCyVzkN9bJtLyqCbx9cCK6wA]; } goto LA6; LA8: ; { d_ax9bS9bsAPVgC4ahHddm4Hcw = ((NIM_CHAR) (((NI) ((NI)((NI)(idx_qCyVzkN9bJtLyqCbx9cCK6wA - ((NI) 62)) + ((NI) 128)))))); } LA6: ; { if (!!((v_gBdlxiROIAt5LFmlJ8v8kg == ((NI) 0)))) goto LA13; encodevintaux_UxDO4XNnIGIEXt1v5wvZJQ_2(v_gBdlxiROIAt5LFmlJ8v8kg, result0); } LA13: ; (*result0) = addChar((*result0), d_ax9bS9bsAPVgC4ahHddm4Hcw); } N_NIMCALL(void, encodevint_UxDO4XNnIGIEXt1v5wvZJQ)(NI x0, NimStringDesc** result0) { encodevintaux_UxDO4XNnIGIEXt1v5wvZJQ_2((NI)((NU64)(x0) + (NU64)(((NI) 5))), result0); } N_NIMCALL(NI64, decodevbiggestint_5JGKp2eBU7Vp9cFMYv9bssUA)(NCSTRING s0, NI* pos0) { NI64 result0; NI i_1P3GUp8dNC2IlQB2ZC7L1w; NI sign_euY9ct2bU6IxDMSaCKlpidw; result0 = (NI64)0; i_1P3GUp8dNC2IlQB2ZC7L1w = (*pos0); sign_euY9ct2bU6IxDMSaCKlpidw = ((NI) -1); { if (!((NU8)(s0[i_1P3GUp8dNC2IlQB2ZC7L1w]) == (NU8)(45))) goto LA3; i_1P3GUp8dNC2IlQB2ZC7L1w += ((NI) 1); sign_euY9ct2bU6IxDMSaCKlpidw = ((NI) 1); } LA3: ; result0 = IL64(0); { while (1) { switch (((NU8)(s0[i_1P3GUp8dNC2IlQB2ZC7L1w]))) { case 48 ... 57: { result0 = (NI64)((NI64)(result0 * IL64(190)) - ((NI64) ((NI)(((NI) (((NU8)(s0[i_1P3GUp8dNC2IlQB2ZC7L1w])))) - ((NI) 48))))); } break; case 97 ... 122: { result0 = (NI64)((NI64)(result0 * IL64(190)) - ((NI64) ((NI)(((NI) ((NI)(((NI) (((NU8)(s0[i_1P3GUp8dNC2IlQB2ZC7L1w])))) - ((NI) 97)))) + ((NI) 10))))); } break; case 65 ... 90: { result0 = (NI64)((NI64)(result0 * IL64(190)) - ((NI64) ((NI)(((NI) ((NI)(((NI) (((NU8)(s0[i_1P3GUp8dNC2IlQB2ZC7L1w])))) - ((NI) 65)))) + ((NI) 36))))); } break; case 128 ... 255: { result0 = (NI64)((NI64)(result0 * IL64(190)) - ((NI64) ((NI)(((NI) ((NI)(((NI) (((NU8)(s0[i_1P3GUp8dNC2IlQB2ZC7L1w])))) - ((NI) 128)))) + ((NI) 62))))); } break; default: { goto LA5; } break; } i_1P3GUp8dNC2IlQB2ZC7L1w += ((NI) 1); } } LA5: ; result0 = (NI64)((NU64)((NI64)(result0 * ((NI64) (sign_euY9ct2bU6IxDMSaCKlpidw)))) - (NU64)(IL64(5))); (*pos0) = i_1P3GUp8dNC2IlQB2ZC7L1w; return result0; } NIM_EXTERNC N_NOINLINE(void, compiler_rodutilsInit000)(void) { } NIM_EXTERNC N_NOINLINE(void, compiler_rodutilsDatInit000)(void) { }