397 lines
12 KiB
C
397 lines
12 KiB
C
/* Generated by Nim Compiler v1.9.0 */
|
|
#define NIM_INTBITS 64
|
|
|
|
#include "nimbase.h"
|
|
#include <string.h>
|
|
#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)((NI64)(estimate) >> (NU64)(((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)((NU64)((NI)(ch & ((NI)1023))) << (NU64)(((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)((NI64)(ch) >> (NU64)(((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)((NI64)(ch) >> (NU64)(((NI)12))) | ((NI)224)))))));
|
|
nimAddCharV1((&result), ((NIM_CHAR) (((NI) ((NI)((NI)((NI)((NI64)(ch) >> (NU64)(((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)((NI64)(ch) >> (NU64)(((NI)18))) | ((NI)240)))))));
|
|
nimAddCharV1((&result), ((NIM_CHAR) (((NI) ((NI)((NI)((NI)((NI64)(ch) >> (NU64)(((NI)12))) & ((NI)63)) | ((NI)128)))))));
|
|
nimAddCharV1((&result), ((NIM_CHAR) (((NI) ((NI)((NI)((NI)((NI64)(ch) >> (NU64)(((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)((NI64)(((NU8)(source[i]))) >> (NU64)(((NI)5))) == ((NI)6))) goto LA9_;
|
|
{
|
|
if (!(i <= (NI)(L - ((NI)2)))) goto LA13_;
|
|
result_2 = (NI)((NI)((NU64)((NI)(((NU8)(source[i])) & ((NI)31))) << (NU64)(((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)((NI64)(((NU8)(source[i]))) >> (NU64)(((NI)4))) == ((NI)14))) goto LA17_;
|
|
{
|
|
if (!(i <= (NI)(L - ((NI)3)))) goto LA21_;
|
|
result_2 = (NI)((NI)((NI)((NU64)((NI)(((NU8)(source[i])) & ((NI)15))) << (NU64)(((NI)12))) | (NI)((NU64)((NI)(((NU8)(source[(NI)(i + ((NI)1))])) & ((NI)63))) << (NU64)(((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)((NI64)(((NU8)(source[i]))) >> (NU64)(((NI)3))) == ((NI)30))) goto LA25_;
|
|
{
|
|
if (!(i <= (NI)(L - ((NI)4)))) goto LA29_;
|
|
result_2 = (NI)((NI)((NI)((NI)((NU64)((NI)(((NU8)(source[i])) & ((NI)7))) << (NU64)(((NI)18))) | (NI)((NU64)((NI)(((NU8)(source[(NI)(i + ((NI)1))])) & ((NI)63))) << (NU64)(((NI)12)))) | (NI)((NU64)((NI)(((NU8)(source[(NI)(i + ((NI)2))])) & ((NI)63))) << (NU64)(((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)((NI64)(ch_2) >> (NU64)(((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;
|
|
}
|