csources_v2/c_code/8_1/@m..@slib@spure@sparseutils.nim.c
2022-12-16 10:54:01 +08:00

751 lines
20 KiB
C

/* Generated by Nim Compiler v1.9.0 */
#define NIM_INTBITS 32
#include "nimbase.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_ValueError__ke0esfQKJkTSUu9bpZ7VlFw tyObject_ValueError__ke0esfQKJkTSUu9bpZ7VlFw;
typedef struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA;
typedef struct Exception Exception;
typedef struct RootObj RootObj;
typedef struct TNimTypeV2 TNimTypeV2;
typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA_Content tySequence__uB9b75OUPRENsBAu4AnoePA_Content;
typedef struct tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A;
typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
struct TNimTypeV2 {
void* destructor;
NI size;
NI16 align;
NI16 depth;
NU32* display;
void* traceImpl;
void* typeInfoV1;
NI flags;
};
struct RootObj {
TNimTypeV2* m_type;
};
struct tySequence__uB9b75OUPRENsBAu4AnoePA {
NI len; tySequence__uB9b75OUPRENsBAu4AnoePA_Content* p;
};
struct Exception {
RootObj Sup;
Exception* parent;
NCSTRING name;
NimStringV2 message;
tySequence__uB9b75OUPRENsBAu4AnoePA trace;
Exception* up;
};
struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA {
Exception Sup;
};
struct tyObject_ValueError__ke0esfQKJkTSUu9bpZ7VlFw {
tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
};
struct tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A {
NI rc;
NI rootIdx;
};
struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
NCSTRING procname;
NI line;
NCSTRING filename;
};
#ifndef tySequence__uB9b75OUPRENsBAu4AnoePA_Content_PP
#define tySequence__uB9b75OUPRENsBAu4AnoePA_Content_PP
struct tySequence__uB9b75OUPRENsBAu4AnoePA_Content { NI cap; tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];};
#endif
N_LIB_PRIVATE N_NIMCALL(NI, parseSaturatedNatural__pureZparseutils_443)(NIM_CHAR* s, NI sLen_0, NI* b);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(NI, parseHex__pureZstrutils_989)(NIM_CHAR* s, NI sLen_0, NI* number, NI maxLen);
N_LIB_PRIVATE N_NIMCALL(NI, npuParseInt)(NIM_CHAR* s, NI sLen_0, NI* number);
N_LIB_PRIVATE N_NIMCALL(NI, npuParseBiggestInt)(NIM_CHAR* s, NI sLen_0, NI64* number);
N_LIB_PRIVATE N_NIMCALL(NI, rawParseInt__pureZparseutils_364)(NIM_CHAR* s, NI sLen_0, NI64* b);
N_LIB_PRIVATE N_NOINLINE(void, integerOutOfRangeError__pureZparseutils_325)(void);
N_LIB_PRIVATE N_NIMCALL(void*, nimNewObj)(NI size, NI alignment);
N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
N_LIB_PRIVATE N_NIMCALL(NI, npuParseFloat)(NIM_CHAR* s, NI sLen_0, NF* number);
N_NIMCALL(NI, nimParseBiggestFloat)(NIM_CHAR* s, NI sLen_0, NF* number);
N_LIB_PRIVATE N_NIMCALL(NI, npuParseBiggestUInt)(NIM_CHAR* s, NI sLen_0, NU64* number);
N_LIB_PRIVATE N_NIMCALL(NI, rawParseUInt__pureZparseutils_498)(NIM_CHAR* s, NI sLen_0, NU64* b);
N_LIB_PRIVATE N_NIMCALL(void, setLengthStrV2)(NimStringV2* s, NI newLen);
static N_INLINE(void, nimPrepareStrMutationV2)(NimStringV2* s);
N_LIB_PRIVATE N_NIMCALL(void, nimPrepareStrMutationImpl__system_2301)(NimStringV2* s);
static N_INLINE(NIM_BOOL, nimDecRefIsLastCyclicDyn)(void* p);
static N_INLINE(NI, minuspercent___system_790)(NI x, NI y);
N_LIB_PRIVATE N_NOINLINE(void, rememberCycle__system_3141)(NIM_BOOL isDestroyAction, tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A* s, TNimTypeV2* desc);
N_LIB_PRIVATE N_NIMCALL(void, nimDestroyAndDispose)(void* p);
N_LIB_PRIVATE N_NIMCALL(NI, parseIdent__pureZparseutils_56)(NIM_CHAR* s, NI sLen_0, NimStringV2* ident);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___stdZassertions_19)(NimStringV2* dest, NimStringV2 src);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, substr__system_7500)(NIM_CHAR* s, NI sLen_0);
extern TNimTypeV2 NTIv2__ke0esfQKJkTSUu9bpZ7VlFw_;
static const struct {
NI cap; NIM_CHAR data[37+1];
} TM__vI9aZNKIcImom6dDyKXW1ZA_2 = { 37 | NIM_STRLIT_FLAG, "Parsed integer outside of valid range" };
static const NimStringV2 TM__vI9aZNKIcImom6dDyKXW1ZA_3 = {37, (NimStrPayload*)&TM__vI9aZNKIcImom6dDyKXW1ZA_2};
extern NIM_BOOL nimInErrorMode__system_3978;
N_LIB_PRIVATE N_NIMCALL(NI, parseSaturatedNatural__pureZparseutils_443)(NIM_CHAR* s, NI sLen_0, NI* b) {
NI result;
NI i;
result = (NI)0;
i = ((NI)0);
{
NIM_BOOL T3_;
T3_ = (NIM_BOOL)0;
T3_ = (i < sLen_0);
if (!(T3_)) goto LA4_;
T3_ = ((NU8)(s[i]) == (NU8)(43));
LA4_: ;
if (!T3_) goto LA5_;
i += ((NI)1);
}
LA5_: ;
{
NIM_BOOL T9_;
T9_ = (NIM_BOOL)0;
T9_ = (i < sLen_0);
if (!(T9_)) goto LA10_;
T9_ = (((NU8)(s[i])) >= ((NU8)(48)) && ((NU8)(s[i])) <= ((NU8)(57)));
LA10_: ;
if (!T9_) goto LA11_;
(*b) = ((NI)0);
{
while (1) {
NIM_BOOL T15_;
NI c;
T15_ = (NIM_BOOL)0;
T15_ = (i < sLen_0);
if (!(T15_)) goto LA16_;
T15_ = (((NU8)(s[i])) >= ((NU8)(48)) && ((NU8)(s[i])) <= ((NU8)(57)));
LA16_: ;
if (!T15_) goto LA14 ;
c = (NI)(((NU8)(s[i])) - ((NI)48));
{
if (!((*b) <= (NI)((NI)(((NI)2147483647) - c) / ((NI)10)))) goto LA19_;
(*b) = (NI)((NI)((*b) * ((NI)10)) + c);
}
goto LA17_;
LA19_: ;
{
(*b) = ((NI)2147483647);
}
LA17_: ;
i += ((NI)1);
{
while (1) {
NIM_BOOL T24_;
T24_ = (NIM_BOOL)0;
T24_ = (i < sLen_0);
if (!(T24_)) goto LA25_;
T24_ = ((NU8)(s[i]) == (NU8)(95));
LA25_: ;
if (!T24_) goto LA23 ;
i += ((NI)1);
} LA23: ;
}
} LA14: ;
}
result = i;
}
LA11_: ;
return result;
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (NIM_BOOL*)0;
result = (&nimInErrorMode__system_3978);
return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, parseSaturatedNatural__pureZparseutils_837)(NimStringV2 s, NI* b, NI start) {
NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
result = parseSaturatedNatural__pureZparseutils_443((((s).p) ? ((NIM_CHAR*)s.p->data+(start)) : NIM_NIL), ((s.len-1))-(start)+1, b);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, parseHex__pureZstrutils_989)(NIM_CHAR* s, NI sLen_0, NI* number, NI maxLen) {
NI result;
NI colontmpD_;
NI colontmpD__2;
NI i;
NI output;
NIM_BOOL foundDigit;
NI last;
NI T1_;
result = (NI)0;
colontmpD_ = (NI)0;
colontmpD__2 = (NI)0;
i = ((NI)0);
output = ((NI)0);
foundDigit = NIM_FALSE;
T1_ = (NI)0;
{
if (!(maxLen == ((NI)0))) goto LA4_;
colontmpD_ = sLen_0;
T1_ = colontmpD_;
}
goto LA2_;
LA4_: ;
{
colontmpD__2 = (NI)(i + maxLen);
T1_ = colontmpD__2;
}
LA2_: ;
last = ((sLen_0 <= T1_) ? sLen_0 : T1_);
{
NIM_BOOL T9_;
NIM_BOOL T10_;
T9_ = (NIM_BOOL)0;
T10_ = (NIM_BOOL)0;
T10_ = ((NI)(i + ((NI)1)) < last);
if (!(T10_)) goto LA11_;
T10_ = ((NU8)(s[i]) == (NU8)(48));
LA11_: ;
T9_ = T10_;
if (!(T9_)) goto LA12_;
T9_ = (((NU8)(s[(NI)(i + ((NI)1))])) == ((NU8)(120)) || ((NU8)(s[(NI)(i + ((NI)1))])) == ((NU8)(88)));
LA12_: ;
if (!T9_) goto LA13_;
i += ((NI)2);
}
goto LA7_;
LA13_: ;
{
NIM_BOOL T16_;
T16_ = (NIM_BOOL)0;
T16_ = (i < last);
if (!(T16_)) goto LA17_;
T16_ = ((NU8)(s[i]) == (NU8)(35));
LA17_: ;
if (!T16_) goto LA18_;
i += ((NI)1);
}
goto LA7_;
LA18_: ;
LA7_: ;
{
while (1) {
if (!(i < last)) goto LA21 ;
switch (((NU8)(s[i]))) {
case 95:
{
}
break;
case 48 ... 57:
{
output = (NI)((NI)((NU32)(output) << (NU32)(((NI)4))) | (NI)(((NU8)(s[i])) - ((NI)48)));
foundDigit = NIM_TRUE;
}
break;
case 97 ... 102:
{
output = (NI)((NI)((NU32)(output) << (NU32)(((NI)4))) | (NI)((NI)(((NU8)(s[i])) - ((NI)97)) + ((NI)10)));
foundDigit = NIM_TRUE;
}
break;
case 65 ... 70:
{
output = (NI)((NI)((NU32)(output) << (NU32)(((NI)4))) | (NI)((NI)(((NU8)(s[i])) - ((NI)65)) + ((NI)10)));
foundDigit = NIM_TRUE;
}
break;
default:
{
goto LA20;
}
break;
}
i += ((NI)1);
} LA21: ;
} LA20: ;
{
if (!foundDigit) goto LA29_;
(*number) = output;
result = i;
}
LA29_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, parseHex__pureZstrutils_982)(NimStringV2 s, NI* number, NI start, NI maxLen) {
NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
result = parseHex__pureZstrutils_989((((s).p) ? ((NIM_CHAR*)s.p->data+(start)) : NIM_NIL), ((s.len-1))-(start)+1, number, maxLen);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NOINLINE(void, integerOutOfRangeError__pureZparseutils_325)(void) {
tyObject_ValueError__ke0esfQKJkTSUu9bpZ7VlFw* T1_;
{ T1_ = NIM_NIL;
T1_ = (tyObject_ValueError__ke0esfQKJkTSUu9bpZ7VlFw*) nimNewObj(sizeof(tyObject_ValueError__ke0esfQKJkTSUu9bpZ7VlFw), NIM_ALIGNOF(tyObject_ValueError__ke0esfQKJkTSUu9bpZ7VlFw));
(*T1_).Sup.Sup.Sup.m_type = (&NTIv2__ke0esfQKJkTSUu9bpZ7VlFw_);
(*T1_).Sup.Sup.name = "ValueError";
(*T1_).Sup.Sup.message = TM__vI9aZNKIcImom6dDyKXW1ZA_3;
(*T1_).Sup.Sup.parent = ((Exception*) NIM_NIL);
raiseExceptionEx((Exception*)T1_, "ValueError", "integerOutOfRangeError", "parseutils.nim", 421);
goto BeforeRet_;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, rawParseInt__pureZparseutils_364)(NIM_CHAR* s, NI sLen_0, NI64* b) {
NI result;
NI64 sign;
NI i;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
sign = IL64(-1);
i = ((NI)0);
{
if (!(i < sLen_0)) goto LA3_;
{
if (!((NU8)(s[i]) == (NU8)(43))) goto LA7_;
i += ((NI)1);
}
goto LA5_;
LA7_: ;
{
if (!((NU8)(s[i]) == (NU8)(45))) goto LA10_;
i += ((NI)1);
sign = IL64(1);
}
goto LA5_;
LA10_: ;
LA5_: ;
}
LA3_: ;
{
NIM_BOOL T14_;
T14_ = (NIM_BOOL)0;
T14_ = (i < sLen_0);
if (!(T14_)) goto LA15_;
T14_ = (((NU8)(s[i])) >= ((NU8)(48)) && ((NU8)(s[i])) <= ((NU8)(57)));
LA15_: ;
if (!T14_) goto LA16_;
(*b) = IL64(0);
{
while (1) {
NIM_BOOL T20_;
NI c;
T20_ = (NIM_BOOL)0;
T20_ = (i < sLen_0);
if (!(T20_)) goto LA21_;
T20_ = (((NU8)(s[i])) >= ((NU8)(48)) && ((NU8)(s[i])) <= ((NU8)(57)));
LA21_: ;
if (!T20_) goto LA19 ;
c = (NI)(((NU8)(s[i])) - ((NI)48));
{
if (!((NI64)((NI64)((IL64(-9223372036854775807) - IL64(1)) + ((NI64) (c))) / IL64(10)) <= (*b))) goto LA24_;
(*b) = (NI64)((NI64)((*b) * IL64(10)) - ((NI64) (c)));
}
goto LA22_;
LA24_: ;
{
integerOutOfRangeError__pureZparseutils_325();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA22_: ;
i += ((NI)1);
{
while (1) {
NIM_BOOL T29_;
T29_ = (NIM_BOOL)0;
T29_ = (i < sLen_0);
if (!(T29_)) goto LA30_;
T29_ = ((NU8)(s[i]) == (NU8)(95));
LA30_: ;
if (!T29_) goto LA28 ;
i += ((NI)1);
} LA28: ;
}
} LA19: ;
}
{
NIM_BOOL T33_;
T33_ = (NIM_BOOL)0;
T33_ = (sign == IL64(-1));
if (!(T33_)) goto LA34_;
T33_ = ((*b) == (IL64(-9223372036854775807) - IL64(1)));
LA34_: ;
if (!T33_) goto LA35_;
integerOutOfRangeError__pureZparseutils_325();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
goto LA31_;
LA35_: ;
{
(*b) = (NI64)((*b) * sign);
result = i;
}
LA31_: ;
}
LA16_: ;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, npuParseBiggestInt)(NIM_CHAR* s, NI sLen_0, NI64* number) {
NI result;
NI64 res;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
res = IL64(0);
result = rawParseInt__pureZparseutils_364(s, sLen_0, (&res));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
{
if (!!((result == ((NI)0)))) goto LA3_;
(*number) = res;
}
LA3_: ;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, npuParseInt)(NIM_CHAR* s, NI sLen_0, NI* number) {
NI result;
NI64 res;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
res = IL64(0);
result = npuParseBiggestInt(s, sLen_0, (&res));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
{
NIM_BOOL T3_;
T3_ = (NIM_BOOL)0;
T3_ = (res < IL64(-2147483648));
if (T3_) goto LA4_;
T3_ = (IL64(2147483647) < res);
LA4_: ;
if (!T3_) goto LA5_;
integerOutOfRangeError__pureZparseutils_325();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA5_: ;
{
if (!!((result == ((NI)0)))) goto LA9_;
(*number) = ((NI) (res));
}
LA9_: ;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, parseInt__pureZparseutils_832)(NimStringV2 s, NI* number, NI start) {
NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
result = npuParseInt((((s).p) ? ((NIM_CHAR*)s.p->data+(start)) : NIM_NIL), ((s.len-1))-(start)+1, number);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, npuParseFloat)(NIM_CHAR* s, NI sLen_0, NF* number) {
NI result;
NF bf;
result = (NI)0;
bf = 0.0;
result = nimParseBiggestFloat(s, sLen_0, (&bf));
{
if (!!((result == ((NI)0)))) goto LA3_;
(*number) = bf;
}
LA3_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, parseFloat__pureZparseutils_857)(NimStringV2 s, NF* number, NI start) {
NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
result = npuParseFloat((((s).p) ? ((NIM_CHAR*)s.p->data+(start)) : NIM_NIL), ((s.len-1))-(start)+1, number);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, rawParseUInt__pureZparseutils_498)(NIM_CHAR* s, NI sLen_0, NU64* b) {
NI result;
NU64 res;
NU64 prev;
NI i;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
res = 0ULL;
prev = 0ULL;
i = ((NI)0);
{
NIM_BOOL T3_;
NIM_BOOL T4_;
T3_ = (NIM_BOOL)0;
T4_ = (NIM_BOOL)0;
T4_ = (i < (NI)(sLen_0 - ((NI)1)));
if (!(T4_)) goto LA5_;
T4_ = ((NU8)(s[i]) == (NU8)(45));
LA5_: ;
T3_ = T4_;
if (!(T3_)) goto LA6_;
T3_ = (((NU8)(s[(NI)(i + ((NI)1))])) >= ((NU8)(48)) && ((NU8)(s[(NI)(i + ((NI)1))])) <= ((NU8)(57)));
LA6_: ;
if (!T3_) goto LA7_;
integerOutOfRangeError__pureZparseutils_325();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA7_: ;
{
NIM_BOOL T11_;
T11_ = (NIM_BOOL)0;
T11_ = (i < sLen_0);
if (!(T11_)) goto LA12_;
T11_ = ((NU8)(s[i]) == (NU8)(43));
LA12_: ;
if (!T11_) goto LA13_;
i += ((NI)1);
}
LA13_: ;
{
NIM_BOOL T17_;
T17_ = (NIM_BOOL)0;
T17_ = (i < sLen_0);
if (!(T17_)) goto LA18_;
T17_ = (((NU8)(s[i])) >= ((NU8)(48)) && ((NU8)(s[i])) <= ((NU8)(57)));
LA18_: ;
if (!T17_) goto LA19_;
(*b) = 0ULL;
{
while (1) {
NIM_BOOL T23_;
T23_ = (NIM_BOOL)0;
T23_ = (i < sLen_0);
if (!(T23_)) goto LA24_;
T23_ = (((NU8)(s[i])) >= ((NU8)(48)) && ((NU8)(s[i])) <= ((NU8)(57)));
LA24_: ;
if (!T23_) goto LA22 ;
prev = res;
res = (NU64)((NU64)((NU64)((NU64)(res) * (NU64)(10ULL))) + (NU64)(((NU64) ((NI)(((NU8)(s[i])) - ((NI)48))))));
{
if (!((NU64)(res) < (NU64)(prev))) goto LA27_;
integerOutOfRangeError__pureZparseutils_325();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA27_: ;
i += ((NI)1);
{
while (1) {
NIM_BOOL T31_;
T31_ = (NIM_BOOL)0;
T31_ = (i < sLen_0);
if (!(T31_)) goto LA32_;
T31_ = ((NU8)(s[i]) == (NU8)(95));
LA32_: ;
if (!T31_) goto LA30 ;
i += ((NI)1);
} LA30: ;
}
} LA22: ;
}
(*b) = res;
result = i;
}
LA19_: ;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, npuParseBiggestUInt)(NIM_CHAR* s, NI sLen_0, NU64* number) {
NI result;
NU64 res;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
res = 0ULL;
result = rawParseUInt__pureZparseutils_498(s, sLen_0, (&res));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
{
if (!!((result == ((NI)0)))) goto LA3_;
(*number) = res;
}
LA3_: ;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, parseBiggestUInt__pureZparseutils_842)(NimStringV2 s, NU64* number, NI start) {
NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
result = npuParseBiggestUInt((((s).p) ? ((NIM_CHAR*)s.p->data+(start)) : NIM_NIL), ((s.len-1))-(start)+1, number);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, parseBiggestInt__pureZparseutils_827)(NimStringV2 s, NI64* number, NI start) {
NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
result = npuParseBiggestInt((((s).p) ? ((NIM_CHAR*)s.p->data+(start)) : NIM_NIL), ((s.len-1))-(start)+1, number);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
return result;
}
static N_INLINE(void, nimPrepareStrMutationV2)(NimStringV2* s) {
{
NIM_BOOL T3_;
T3_ = (NIM_BOOL)0;
T3_ = !(((*s).p == ((NimStrPayload*) NIM_NIL)));
if (!(T3_)) goto LA4_;
T3_ = ((NI)((*(*s).p).cap & ((NI)1073741824)) == ((NI)1073741824));
LA4_: ;
if (!T3_) goto LA5_;
nimPrepareStrMutationImpl__system_2301(s);
}
LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, fastSubstr__pureZparseutils_225)(NIM_CHAR* s, NI sLen_0, NimStringV2* token, NI length) {
setLengthStrV2((&(*token)), ((NI) (length)));
{
NI i;
NI i_2;
i = (NI)0;
i_2 = ((NI)0);
{
while (1) {
if (!(i_2 < length)) goto LA3 ;
i = i_2;
nimPrepareStrMutationV2((&(*token)));
(*token).p->data[i] = s[i];
i_2 += ((NI)1);
} LA3: ;
}
}
}
static N_INLINE(NI, minuspercent___system_790)(NI x, NI y) {
NI result;
result = (NI)0;
result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
return result;
}
static N_INLINE(NIM_BOOL, nimDecRefIsLastCyclicDyn)(void* p) {
NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NIM_BOOL)0;
{
tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A* cell;
NI T5_;
if (!!((p == NIM_NIL))) goto LA3_;
T5_ = (NI)0;
T5_ = minuspercent___system_790(((NI) (ptrdiff_t) (p)), ((NI)8));
cell = ((tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A*) (T5_));
{
if (!((NI)((*cell).rc & ((NI)-16)) == ((NI)0))) goto LA8_;
result = NIM_TRUE;
}
goto LA6_;
LA8_: ;
{
(*cell).rc -= ((NI)16);
}
LA6_: ;
rememberCycle__system_3141(result, cell, (*((TNimTypeV2**) (p))));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA3_: ;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZparseutils_349)(tyObject_ValueError__ke0esfQKJkTSUu9bpZ7VlFw** dest) {
{
NIM_BOOL T3_;
T3_ = (NIM_BOOL)0;
T3_ = nimDecRefIsLastCyclicDyn((*dest));
if (!T3_) goto LA4_;
nimDestroyAndDispose((*dest));
}
LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, parseBiggestFloat__pureZparseutils_852)(NimStringV2 s, NF* number, NI start) {
NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
result = npuParseFloat((((s).p) ? ((NIM_CHAR*)s.p->data+(start)) : NIM_NIL), ((s.len-1))-(start)+1, number);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, parseIdent__pureZparseutils_56)(NIM_CHAR* s, NI sLen_0, NimStringV2* ident) {
NI result;
NI i;
result = (NI)0;
i = ((NI)0);
{
NIM_BOOL T3_;
NimStringV2 T11_;
T3_ = (NIM_BOOL)0;
T3_ = (i < sLen_0);
if (!(T3_)) goto LA4_;
T3_ = (((NU8)(s[i])) >= ((NU8)(97)) && ((NU8)(s[i])) <= ((NU8)(122)) || ((NU8)(s[i])) >= ((NU8)(65)) && ((NU8)(s[i])) <= ((NU8)(90)) || ((NU8)(s[i])) == ((NU8)(95)));
LA4_: ;
if (!T3_) goto LA5_;
i += ((NI)1);
{
while (1) {
NIM_BOOL T9_;
T9_ = (NIM_BOOL)0;
T9_ = (i < sLen_0);
if (!(T9_)) goto LA10_;
T9_ = (((NU8)(s[i])) >= ((NU8)(97)) && ((NU8)(s[i])) <= ((NU8)(122)) || ((NU8)(s[i])) >= ((NU8)(65)) && ((NU8)(s[i])) <= ((NU8)(90)) || ((NU8)(s[i])) >= ((NU8)(48)) && ((NU8)(s[i])) <= ((NU8)(57)) || ((NU8)(s[i])) == ((NU8)(95)));
LA10_: ;
if (!T9_) goto LA8 ;
i += ((NI)1);
} LA8: ;
}
T11_.len = 0; T11_.p = NIM_NIL;
T11_ = substr__system_7500((NIM_CHAR*)(s)+(((NI)0)), ((NI)(i - ((NI)1)))-(((NI)0))+1);
eqsink___stdZassertions_19((&(*ident)), T11_);
result = i;
}
LA5_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, parseIdent__pureZparseutils_754)(NimStringV2 s, NimStringV2* ident, NI start) {
NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
result = parseIdent__pureZparseutils_56((((s).p) ? ((NIM_CHAR*)s.p->data+(start)) : NIM_NIL), ((s.len-1))-(start)+1, ident);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
return result;
}