/* Generated by Nim Compiler v1.9.0 */ #define NIM_INTBITS 32 #include "nimbase.h" #include #undef LANGUAGE_C #undef MIPSEB #undef MIPSEL #undef PPC #undef R3000 #undef R4000 #undef i386 #undef linux #undef mips #undef near #undef far #undef powerpc #undef unix #define nimfr_(x, y) #define nimln_(x, y) typedef struct NimStrPayload NimStrPayload; typedef struct NimStringV2 NimStringV2; typedef struct tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A; struct NimStrPayload { NI cap; NIM_CHAR data[SEQ_DECL_SIZE]; }; struct NimStringV2 { NI len; NimStrPayload* p; }; struct tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A { NI bytes; NI16* data; }; typedef NI16 tyUncheckedArray__Tyd4y3haUOOHTj71TPIRag[1]; N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___stdZwidestrs_290)(NI16* w, NI estimate, NI replacement); N_NIMCALL(NimStringV2, rawNewString)(NI cap); N_LIB_PRIVATE N_NIMCALL(NI, ord__stdZwidestrs_44)(NI16 arg); static N_INLINE(void, nimAddCharV1)(NimStringV2* s, NIM_CHAR c); N_LIB_PRIVATE N_NIMCALL(void, prepareAdd)(NimStringV2* s, NI addlen); static N_INLINE(NIM_BOOL*, nimErrorFlag)(void); static N_INLINE(void, nimZeroMem)(void* p, NI size); static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size); N_LIB_PRIVATE N_NIMCALL(void, createWide__stdZwidestrs_30)(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A* a, NI bytes); N_LIB_PRIVATE N_NOCONV(void*, alloc0Impl__system_1737)(NI size); N_LIB_PRIVATE N_NOCONV(void, dealloc)(void* p); N_LIB_PRIVATE N_NIMCALL(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A, newWideCString__stdZwidestrs_260)(NCSTRING source, NI L); static N_INLINE(NCSTRING, nimToCStringConv)(NimStringV2 s); static N_INLINE(NI, nimCStrLen)(NCSTRING a); extern NIM_BOOL nimInErrorMode__system_3980; N_LIB_PRIVATE N_NIMCALL(NI, ord__stdZwidestrs_44)(NI16 arg) { NI result; result = (NI)0; result = ((NI) (((NU16) (arg)))); return result; } static N_INLINE(void, nimAddCharV1)(NimStringV2* s, NIM_CHAR c) { prepareAdd(s, ((NI)1)); (*(*s).p).data[(*s).len] = c; (*(*s).p).data[(NI)((*s).len + ((NI)1))] = 0; (*s).len += ((NI)1); } static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) { NIM_BOOL* result; result = (NIM_BOOL*)0; result = (&nimInErrorMode__system_3980); return result; } N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___stdZwidestrs_290)(NI16* w, NI estimate, NI replacement) { NimStringV2 result; NI i; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result.len = 0; result.p = NIM_NIL; result = rawNewString(((NI) ((NI)(estimate + (NI)((NI32)(estimate) >> (NU32)(((NI)2))))))); i = ((NI)0); { while (1) { NI ch; if (!!((w[i] == ((NI16)0)))) goto LA2 ; ch = ord__stdZwidestrs_44(w[i]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; i += ((NI)1); { NIM_BOOL T5_; NI ch2; T5_ = (NIM_BOOL)0; T5_ = (((NI)55296) <= ch); if (!(T5_)) goto LA6_; T5_ = (ch <= ((NI)56319)); LA6_: ; if (!T5_) goto LA7_; ch2 = ord__stdZwidestrs_44(w[i]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; { NIM_BOOL T11_; T11_ = (NIM_BOOL)0; T11_ = (((NI)56320) <= ch2); if (!(T11_)) goto LA12_; T11_ = (ch2 <= ((NI)57343)); LA12_: ; if (!T11_) goto LA13_; ch = (NI)((NI)((NI)((NU32)((NI)(ch & ((NI)1023))) << (NU32)(((NI)10))) + (NI)(ch2 & ((NI)1023))) + ((NI)65536)); i += ((NI)1); } goto LA9_; LA13_: ; { ch = replacement; } LA9_: ; } goto LA3_; LA7_: ; { NIM_BOOL T17_; T17_ = (NIM_BOOL)0; T17_ = (((NI)56320) <= ch); if (!(T17_)) goto LA18_; T17_ = (ch <= ((NI)57343)); LA18_: ; if (!T17_) goto LA19_; ch = replacement; } goto LA3_; LA19_: ; LA3_: ; { if (!(ch < ((NI)128))) goto LA23_; nimAddCharV1((&result), ((NIM_CHAR) (((NI) (ch))))); } goto LA21_; LA23_: ; { if (!(ch < ((NI)2048))) goto LA26_; nimAddCharV1((&result), ((NIM_CHAR) (((NI) ((NI)((NI)((NI32)(ch) >> (NU32)(((NI)6))) | ((NI)192))))))); nimAddCharV1((&result), ((NIM_CHAR) (((NI) ((NI)((NI)(ch & ((NI)63)) | ((NI)128))))))); } goto LA21_; LA26_: ; { if (!(ch < ((NI)65536))) goto LA29_; nimAddCharV1((&result), ((NIM_CHAR) (((NI) ((NI)((NI)((NI32)(ch) >> (NU32)(((NI)12))) | ((NI)224))))))); nimAddCharV1((&result), ((NIM_CHAR) (((NI) ((NI)((NI)((NI)((NI32)(ch) >> (NU32)(((NI)6))) & ((NI)63)) | ((NI)128))))))); nimAddCharV1((&result), ((NIM_CHAR) (((NI) ((NI)((NI)(ch & ((NI)63)) | ((NI)128))))))); } goto LA21_; LA29_: ; { if (!(ch <= ((NI)1114111))) goto LA32_; nimAddCharV1((&result), ((NIM_CHAR) (((NI) ((NI)((NI)((NI32)(ch) >> (NU32)(((NI)18))) | ((NI)240))))))); nimAddCharV1((&result), ((NIM_CHAR) (((NI) ((NI)((NI)((NI)((NI32)(ch) >> (NU32)(((NI)12))) & ((NI)63)) | ((NI)128))))))); nimAddCharV1((&result), ((NIM_CHAR) (((NI) ((NI)((NI)((NI)((NI32)(ch) >> (NU32)(((NI)6))) & ((NI)63)) | ((NI)128))))))); nimAddCharV1((&result), ((NIM_CHAR) (((NI) ((NI)((NI)(ch & ((NI)63)) | ((NI)128))))))); } goto LA21_; LA32_: ; { nimAddCharV1((&result), 239); nimAddCharV1((&result), 191); nimAddCharV1((&result), 189); } LA21_: ; } LA2: ; } }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___stdZwidestrs_356)(NI16* s) { NimStringV2 result; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result.len = 0; result.p = NIM_NIL; result = dollar___stdZwidestrs_290(s, ((NI)80), ((NI)65533)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; }BeforeRet_: ; return result; } static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) { void* T1_; T1_ = (void*)0; T1_ = memset(a, v, ((size_t) (size))); } static N_INLINE(void, nimZeroMem)(void* p, NI size) { NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); nimSetMem__systemZmemory_7(p, ((int)0), size); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; }BeforeRet_: ; } N_LIB_PRIVATE N_NIMCALL(void, createWide__stdZwidestrs_30)(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A* a, NI bytes) { void* T1_; (*a).bytes = bytes; T1_ = (void*)0; T1_ = alloc0Impl__system_1737(((NI) (bytes))); (*a).data = ((NI16*) (T1_)); } N_LIB_PRIVATE N_NIMCALL(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A, newWideCString__stdZwidestrs_260)(NCSTRING source, NI L) { tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A result; NI d; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); nimZeroMem((void*)(&result), sizeof(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A)); createWide__stdZwidestrs_30((&result), (NI)((NI)(L * ((NI)2)) + ((NI)2))); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; d = ((NI)0); { NI ch; NI i; NI result_2; ch = (NI)0; i = ((NI)0); result_2 = (NI)0; { while (1) { if (!(i < L)) goto LA3 ; { if (!(((NU8)(source[i])) <= ((NI)127))) goto LA6_; result_2 = ((NU8)(source[i])); i += ((NI)1); } goto LA4_; LA6_: ; { if (!((NI)((NI32)(((NU8)(source[i]))) >> (NU32)(((NI)5))) == ((NI)6))) goto LA9_; { if (!(i <= (NI)(L - ((NI)2)))) goto LA13_; result_2 = (NI)((NI)((NU32)((NI)(((NU8)(source[i])) & ((NI)31))) << (NU32)(((NI)6))) | (NI)(((NU8)(source[(NI)(i + ((NI)1))])) & ((NI)63))); i += ((NI)2); } goto LA11_; LA13_: ; { result_2 = ((NI)65533); i += ((NI)1); } LA11_: ; } goto LA4_; LA9_: ; { if (!((NI)((NI32)(((NU8)(source[i]))) >> (NU32)(((NI)4))) == ((NI)14))) goto LA17_; { if (!(i <= (NI)(L - ((NI)3)))) goto LA21_; result_2 = (NI)((NI)((NI)((NU32)((NI)(((NU8)(source[i])) & ((NI)15))) << (NU32)(((NI)12))) | (NI)((NU32)((NI)(((NU8)(source[(NI)(i + ((NI)1))])) & ((NI)63))) << (NU32)(((NI)6)))) | (NI)(((NU8)(source[(NI)(i + ((NI)2))])) & ((NI)63))); i += ((NI)3); } goto LA19_; LA21_: ; { result_2 = ((NI)65533); i += ((NI)1); } LA19_: ; } goto LA4_; LA17_: ; { if (!((NI)((NI32)(((NU8)(source[i]))) >> (NU32)(((NI)3))) == ((NI)30))) goto LA25_; { if (!(i <= (NI)(L - ((NI)4)))) goto LA29_; result_2 = (NI)((NI)((NI)((NI)((NU32)((NI)(((NU8)(source[i])) & ((NI)7))) << (NU32)(((NI)18))) | (NI)((NU32)((NI)(((NU8)(source[(NI)(i + ((NI)1))])) & ((NI)63))) << (NU32)(((NI)12)))) | (NI)((NU32)((NI)(((NU8)(source[(NI)(i + ((NI)2))])) & ((NI)63))) << (NU32)(((NI)6)))) | (NI)(((NU8)(source[(NI)(i + ((NI)3))])) & ((NI)63))); i += ((NI)4); } goto LA27_; LA29_: ; { result_2 = ((NI)65533); i += ((NI)1); } LA27_: ; } goto LA4_; LA25_: ; { result_2 = ((NI)65533); i += ((NI)1); } LA4_: ; ch = result_2; { if (!(ch <= ((NI)65535))) goto LA35_; { NIM_BOOL T39_; T39_ = (NIM_BOOL)0; T39_ = (((NI)55296) <= ch); if (!(T39_)) goto LA40_; T39_ = (ch <= ((NI)57343)); LA40_: ; if (!T39_) goto LA41_; result.data[d] = ((NI16)-3); } goto LA37_; LA41_: ; { result.data[d] = ((NI16) (((NU16) (ch)))); } LA37_: ; } goto LA33_; LA35_: ; { if (!(((NI)1114111) < ch)) goto LA45_; result.data[d] = ((NI16)-3); } goto LA33_; LA45_: ; { NI ch_2; ch_2 = (NI)(ch - ((NI)65536)); result.data[d] = ((NI16) (((NU16) ((NI)((NI)((NI32)(ch_2) >> (NU32)(((NI)10))) + ((NI)55296)))))); d += ((NI)1); result.data[d] = ((NI16) (((NU16) ((NI)((NI)(ch_2 & ((NI)1023)) + ((NI)56320)))))); } LA33_: ; d += ((NI)1); } LA3: ; } } result.data[d] = ((NI16)0); }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(void, eqsink___stdZwidestrs_27)(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A* a, tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A b) { (*a).bytes = b.bytes; (*a).data = b.data; } N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___stdZwidestrs_359)(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A s, NI estimate, NI replacement) { NimStringV2 result; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result.len = 0; result.p = NIM_NIL; result = dollar___stdZwidestrs_290(s.data, estimate, replacement); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___stdZwidestrs_6)(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A* a) { { if (!!(((*a).data == ((NI16*) NIM_NIL)))) goto LA3_; dealloc(((void*) ((*a).data))); } LA3_: ; } static N_INLINE(NCSTRING, nimToCStringConv)(NimStringV2 s) { NCSTRING result; result = (NCSTRING)0; { if (!(s.len == ((NI)0))) goto LA3_; result = ""; } goto LA1_; LA3_: ; { result = ((NCSTRING) ((*s.p).data)); } LA1_: ; return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A, newWideCString__stdZwidestrs_287)(NimStringV2 s) { tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A result; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); nimZeroMem((void*)(&result), sizeof(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A)); result = newWideCString__stdZwidestrs_260(nimToCStringConv(s), s.len); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; }BeforeRet_: ; return result; } static N_INLINE(NI, nimCStrLen)(NCSTRING a) { NI result; size_t T1_; result = (NI)0; T1_ = (size_t)0; T1_ = strlen(a); result = ((NI) (T1_)); return result; } N_LIB_PRIVATE N_NIMCALL(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A, newWideCString__stdZwidestrs_281)(NCSTRING s) { tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A result; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); nimZeroMem((void*)(&result), sizeof(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A)); { if (!(s == 0)) goto LA3_; nimZeroMem((void*)(&result), sizeof(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A)); result.bytes = ((NI)0); result.data = ((NI16*) NIM_NIL); goto BeforeRet_; } LA3_: ; result = newWideCString__stdZwidestrs_260(s, (s ? nimCStrLen(s) : 0)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; }BeforeRet_: ; return result; }