csources_v2/c_code/1_1/@m..@slib@sstd@swidestrs.nim.c
2022-12-16 10:54:01 +08:00

397 lines
12 KiB
C

/* Generated by Nim Compiler v1.9.0 */
#define NIM_INTBITS 32
#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)((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;
}