csources_v2/c_code/2_7/@m..@slib@spure@sparsejson.nim.c
2022-12-16 10:54:01 +08:00

1582 lines
53 KiB
C

/* Generated by Nim Compiler v1.9.0 */
#define NIM_INTBITS 32
#define NIM_EmulateOverflowChecks
#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 TNimTypeV2 TNimTypeV2;
typedef struct tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
typedef struct tyObject_BaseLexer__MAw8rJZtJ279bVV3TWMtXSg tyObject_BaseLexer__MAw8rJZtJ279bVV3TWMtXSg;
typedef struct RootObj RootObj;
typedef struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ;
typedef struct tySequence__Ih0V9cYug0VPJyBBGvgEH7Q tySequence__Ih0V9cYug0VPJyBBGvgEH7Q;
typedef struct tySequence__Ih0V9cYug0VPJyBBGvgEH7Q_Content tySequence__Ih0V9cYug0VPJyBBGvgEH7Q_Content;
typedef struct tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A;
typedef struct tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ;
typedef struct tyObject_CellSeq__sGle0igznE2T7vk4dBh5SQ tyObject_CellSeq__sGle0igznE2T7vk4dBh5SQ;
typedef struct tyTuple__N4J9cV4JZGem3ljqqj5rT0Q tyTuple__N4J9cV4JZGem3ljqqj5rT0Q;
typedef struct tyObject_CellSeq__z4KasHYddby49cXX2MD4LxQ tyObject_CellSeq__z4KasHYddby49cXX2MD4LxQ;
typedef struct tyTuple__0F3Kz25HWtRatQmCDVHWEA tyTuple__0F3Kz25HWtRatQmCDVHWEA;
typedef struct tyObject_JsonParsingError__Ff9b7Z3F83CBVRI2ZoKErcQ tyObject_JsonParsingError__Ff9b7Z3F83CBVRI2ZoKErcQ;
typedef struct tyObject_ValueError__ke0esfQKJkTSUu9bpZ7VlFw tyObject_ValueError__ke0esfQKJkTSUu9bpZ7VlFw;
typedef struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA;
typedef struct Exception Exception;
typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA_Content tySequence__uB9b75OUPRENsBAu4AnoePA_Content;
typedef struct tyObject_JsonKindError__rdnXHgdE6eiyK6cn26vKMw tyObject_JsonKindError__rdnXHgdE6eiyK6cn26vKMw;
typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
struct TNimTypeV2 {
void* destructor;
NI size;
NI16 align;
NI16 depth;
NU32* display;
void* traceImpl;
void* typeInfoV1;
NI flags;
};
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
struct RootObj {
TNimTypeV2* m_type;
};
typedef NU8 tySet_tyChar__nmiMWKVIe46vacnhAFrQvw[32];
struct tyObject_BaseLexer__MAw8rJZtJ279bVV3TWMtXSg {
RootObj Sup;
NI bufpos;
NimStringV2 buf;
tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* input;
NI lineNumber;
NI sentinel;
NI lineStart;
NI offsetBase;
tySet_tyChar__nmiMWKVIe46vacnhAFrQvw refillChars;
};
typedef NU8 tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw;
typedef NU8 tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA;
typedef NU8 tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew;
struct tySequence__Ih0V9cYug0VPJyBBGvgEH7Q {
NI len; tySequence__Ih0V9cYug0VPJyBBGvgEH7Q_Content* p;
};
struct tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ {
tyObject_BaseLexer__MAw8rJZtJ279bVV3TWMtXSg Sup;
NimStringV2 a;
tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw tok;
tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA kind;
tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew err;
tySequence__Ih0V9cYug0VPJyBBGvgEH7Q state;
NimStringV2 filename;
NIM_BOOL rawStringLiterals;
};
struct tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A {
NI rc;
NI rootIdx;
};
typedef NU8 tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ;
struct tyObject_CellSeq__sGle0igznE2T7vk4dBh5SQ {
NI len;
NI cap;
tyTuple__N4J9cV4JZGem3ljqqj5rT0Q* d;
};
struct tyObject_CellSeq__z4KasHYddby49cXX2MD4LxQ {
NI len;
NI cap;
tyTuple__0F3Kz25HWtRatQmCDVHWEA* d;
};
struct tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ {
tyObject_CellSeq__sGle0igznE2T7vk4dBh5SQ traceStack;
tyObject_CellSeq__z4KasHYddby49cXX2MD4LxQ toFree;
NI freed;
NI touched;
NI edges;
NI rcSum;
NIM_BOOL keepThreshold;
};
struct tyTuple__N4J9cV4JZGem3ljqqj5rT0Q {
void** Field0;
TNimTypeV2* Field1;
};
typedef tyTuple__N4J9cV4JZGem3ljqqj5rT0Q tyUncheckedArray__72XmdLy0QAaMtx66AmNKfA[1];
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_JsonParsingError__Ff9b7Z3F83CBVRI2ZoKErcQ {
tyObject_ValueError__ke0esfQKJkTSUu9bpZ7VlFw Sup;
};
typedef NimStringV2 tyArray__sMpvt1sOxOJ3LFGulnbeMQ[4];
struct tyObject_JsonKindError__rdnXHgdE6eiyK6cn26vKMw {
tyObject_ValueError__ke0esfQKJkTSUu9bpZ7VlFw Sup;
};
typedef NimStringV2 tyArray__FkG8aLMyiZfDjueUwWl3WA[14];
#ifndef tySequence__Ih0V9cYug0VPJyBBGvgEH7Q_Content_PP
#define tySequence__Ih0V9cYug0VPJyBBGvgEH7Q_Content_PP
struct tySequence__Ih0V9cYug0VPJyBBGvgEH7Q_Content { NI cap; tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ data[SEQ_DECL_SIZE];};
#endif
#ifndef tySequence__Ih0V9cYug0VPJyBBGvgEH7Q_Content_PP
#define tySequence__Ih0V9cYug0VPJyBBGvgEH7Q_Content_PP
struct tySequence__Ih0V9cYug0VPJyBBGvgEH7Q_Content { NI cap; tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ data[SEQ_DECL_SIZE];};
#endif
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(void, eqdestroy___pureZparsejson_156)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* dest);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___stdZassertions_13)(NimStringV2* dest);
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_3143)(NIM_BOOL isDestroyAction, tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A* s, TNimTypeV2* desc);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, nimDestroyAndDispose)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZparsejson_168)(tySequence__Ih0V9cYug0VPJyBBGvgEH7Q* dest);
N_LIB_PRIVATE N_NIMCALL(void, alignedDealloc)(void* p, NI align);
N_LIB_PRIVATE N_NIMCALL(void, eqtrace___pureZparsejson_165)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* dest, void* env);
static N_INLINE(void, nimTraceRefDyn)(void* q, void* env);
static N_INLINE(void, add__system_2688)(tyObject_CellSeq__sGle0igznE2T7vk4dBh5SQ* s, void** c, TNimTypeV2* t);
N_LIB_PRIVATE N_NOCONV(void*, allocImpl__system_1735)(NI size);
static N_INLINE(void, copyMem__system_1719)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_LIB_PRIVATE N_NOCONV(void, dealloc)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, open__pureZlexbase_131)(tyObject_BaseLexer__MAw8rJZtJ279bVV3TWMtXSg* L, tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* input, NI bufLen, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw refillChars);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___stdZassertions_16)(NimStringV2* dest, NimStringV2 src);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___pureZparsejson_174)(tySequence__Ih0V9cYug0VPJyBBGvgEH7Q* dest, tySequence__Ih0V9cYug0VPJyBBGvgEH7Q src);
N_LIB_PRIVATE N_NIMCALL(void*, newSeqPayload)(NI cap, NI elemSize, NI elemAlign);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___stdZassertions_19)(NimStringV2* dest, NimStringV2 src);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw, getTok__pureZparsejson_621)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my);
N_LIB_PRIVATE N_NIMCALL(void, setLengthStrV2)(NimStringV2* s, NI newLen);
N_LIB_PRIVATE N_NIMCALL(void, skip__pureZparsejson_504)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my);
N_LIB_PRIVATE N_NIMCALL(NI, handleCR__pureZlexbase_84)(tyObject_BaseLexer__MAw8rJZtJ279bVV3TWMtXSg* L, NI pos);
N_LIB_PRIVATE N_NIMCALL(NI, handleLF__pureZlexbase_96)(tyObject_BaseLexer__MAw8rJZtJ279bVV3TWMtXSg* L, NI pos);
N_LIB_PRIVATE N_NIMCALL(void, parseNumber__pureZparsejson_542)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my);
static N_INLINE(void, nimAddCharV1)(NimStringV2* s, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(void, prepareAdd)(NimStringV2* s, NI addlen);
static N_INLINE(void, appendString)(NimStringV2* dest, NimStringV2 src);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__pureZstrutils_1820)(NimStringV2 s, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw chars);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw, parseString__pureZparsejson_394)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my);
N_LIB_PRIVATE N_NIMCALL(NI, parseEscapedUTF16__pureZparsejson_380)(NCSTRING buf, NI* pos);
static N_INLINE(NIM_BOOL, handleHexChar__stdZprivateZdecode95helpers_1)(NIM_CHAR c, NI* x);
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringV2 s);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nuctoUTF8)(NI32 c);
N_LIB_PRIVATE N_NIMCALL(void, parseName__pureZparsejson_605)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringV2 a, NimStringV2 b);
static N_INLINE(NIM_BOOL, equalMem__system_1727)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(void, add__pureZparsejson_675)(tySequence__Ih0V9cYug0VPJyBBGvgEH7Q* x, tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ value);
static N_INLINE(tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ, pop__pureZparsejson_722)(tySequence__Ih0V9cYug0VPJyBBGvgEH7Q* s);
N_LIB_PRIVATE N_NIMCALL(void, shrink__pureZparsejson_192)(tySequence__Ih0V9cYug0VPJyBBGvgEH7Q* x, NI newLen);
N_LIB_PRIVATE N_NIMCALL(void, next__pureZparsejson_659)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my);
N_LIB_PRIVATE N_NIMCALL(void*, nimNewObj)(NI size, NI alignment);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZparsejson_800)(tyObject_JsonParsingError__Ff9b7Z3F83CBVRI2ZoKErcQ* dest);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___stdZassertions_55)(tySequence__uB9b75OUPRENsBAu4AnoePA* dest);
N_LIB_PRIVATE N_NIMCALL(void, eqtrace___pureZparsejson_809)(tyObject_JsonParsingError__Ff9b7Z3F83CBVRI2ZoKErcQ* dest, void* env);
N_LIB_PRIVATE N_NIMCALL(void, eqtrace___stdZassertions_64)(tySequence__uB9b75OUPRENsBAu4AnoePA* dest, void* env);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, errorMsgExpected__pureZparsejson_376)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my, NimStringV2 e);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuFormatOpenArray)(NimStringV2 formatstr, NimStringV2* a, NI aLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___systemZdollars_3)(NI x);
static N_INLINE(NI, getLine__pureZparsejson_360)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my);
static N_INLINE(NI, getColumn__pureZparsejson_357)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my);
N_LIB_PRIVATE N_NIMCALL(NI, getColNumber__pureZlexbase_146)(tyObject_BaseLexer__MAw8rJZtJ279bVV3TWMtXSg* L, NI pos);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, rawNewString)(NI space);
N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZjson_5802)(tyObject_JsonKindError__rdnXHgdE6eiyK6cn26vKMw* dest);
N_LIB_PRIVATE N_NIMCALL(void, eqtrace___pureZjson_5811)(tyObject_JsonKindError__rdnXHgdE6eiyK6cn26vKMw* dest, void* env);
N_LIB_PRIVATE N_NOINLINE(void, raiseParseErr__pureZparsejson_796)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* p, NimStringV2 msg);
N_LIB_PRIVATE TNimTypeV2 NTIv2__KWIQnzXEOUqdWsnCUL9atyQ_;
static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__nIinruGrC8EPIfjL3PuTvA_3 = {
0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
static const struct {
NI cap; NIM_CHAR data[0+1];
} TM__nIinruGrC8EPIfjL3PuTvA_4 = { 0 | NIM_STRLIT_FLAG, "" };
static const NimStringV2 TM__nIinruGrC8EPIfjL3PuTvA_5 = {0, (NimStrPayload*)&TM__nIinruGrC8EPIfjL3PuTvA_4};
static const struct {
NI cap; NIM_CHAR data[2+1];
} TM__nIinruGrC8EPIfjL3PuTvA_6 = { 2 | NIM_STRLIT_FLAG, "0." };
static const NimStringV2 TM__nIinruGrC8EPIfjL3PuTvA_7 = {2, (NimStrPayload*)&TM__nIinruGrC8EPIfjL3PuTvA_6};
static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__nIinruGrC8EPIfjL3PuTvA_8 = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
static const struct {
NI cap; NIM_CHAR data[4+1];
} TM__nIinruGrC8EPIfjL3PuTvA_9 = { 4 | NIM_STRLIT_FLAG, "null" };
static const NimStringV2 TM__nIinruGrC8EPIfjL3PuTvA_10 = {4, (NimStrPayload*)&TM__nIinruGrC8EPIfjL3PuTvA_9};
static const struct {
NI cap; NIM_CHAR data[4+1];
} TM__nIinruGrC8EPIfjL3PuTvA_11 = { 4 | NIM_STRLIT_FLAG, "true" };
static const NimStringV2 TM__nIinruGrC8EPIfjL3PuTvA_12 = {4, (NimStrPayload*)&TM__nIinruGrC8EPIfjL3PuTvA_11};
static const struct {
NI cap; NIM_CHAR data[5+1];
} TM__nIinruGrC8EPIfjL3PuTvA_13 = { 5 | NIM_STRLIT_FLAG, "false" };
static const NimStringV2 TM__nIinruGrC8EPIfjL3PuTvA_14 = {5, (NimStrPayload*)&TM__nIinruGrC8EPIfjL3PuTvA_13};
N_LIB_PRIVATE TNimTypeV2 NTIv2__Ff9b7Z3F83CBVRI2ZoKErcQ_;
static const struct {
NI cap; NIM_CHAR data[20+1];
} TM__nIinruGrC8EPIfjL3PuTvA_16 = { 20 | NIM_STRLIT_FLAG, "$1($2, $3) Error: $4" };
static const NimStringV2 TM__nIinruGrC8EPIfjL3PuTvA_17 = {20, (NimStrPayload*)&TM__nIinruGrC8EPIfjL3PuTvA_16};
static const struct {
NI cap; NIM_CHAR data[9+1];
} TM__nIinruGrC8EPIfjL3PuTvA_18 = { 9 | NIM_STRLIT_FLAG, " expected" };
static const NimStringV2 TM__nIinruGrC8EPIfjL3PuTvA_19 = {9, (NimStrPayload*)&TM__nIinruGrC8EPIfjL3PuTvA_18};
N_LIB_PRIVATE TNimTypeV2 NTIv2__rdnXHgdE6eiyK6cn26vKMw_;
static const struct {
NI cap; NIM_CHAR data[13+1];
} TM__nIinruGrC8EPIfjL3PuTvA_21 = { 13 | NIM_STRLIT_FLAG, "invalid token" };
static const struct {
NI cap; NIM_CHAR data[3+1];
} TM__nIinruGrC8EPIfjL3PuTvA_22 = { 3 | NIM_STRLIT_FLAG, "EOF" };
static const struct {
NI cap; NIM_CHAR data[14+1];
} TM__nIinruGrC8EPIfjL3PuTvA_23 = { 14 | NIM_STRLIT_FLAG, "string literal" };
static const struct {
NI cap; NIM_CHAR data[11+1];
} TM__nIinruGrC8EPIfjL3PuTvA_24 = { 11 | NIM_STRLIT_FLAG, "int literal" };
static const struct {
NI cap; NIM_CHAR data[13+1];
} TM__nIinruGrC8EPIfjL3PuTvA_25 = { 13 | NIM_STRLIT_FLAG, "float literal" };
static const struct {
NI cap; NIM_CHAR data[1+1];
} TM__nIinruGrC8EPIfjL3PuTvA_26 = { 1 | NIM_STRLIT_FLAG, "{" };
static const struct {
NI cap; NIM_CHAR data[1+1];
} TM__nIinruGrC8EPIfjL3PuTvA_27 = { 1 | NIM_STRLIT_FLAG, "}" };
static const struct {
NI cap; NIM_CHAR data[1+1];
} TM__nIinruGrC8EPIfjL3PuTvA_28 = { 1 | NIM_STRLIT_FLAG, "[" };
static const struct {
NI cap; NIM_CHAR data[1+1];
} TM__nIinruGrC8EPIfjL3PuTvA_29 = { 1 | NIM_STRLIT_FLAG, "]" };
static const struct {
NI cap; NIM_CHAR data[1+1];
} TM__nIinruGrC8EPIfjL3PuTvA_30 = { 1 | NIM_STRLIT_FLAG, ":" };
static const struct {
NI cap; NIM_CHAR data[1+1];
} TM__nIinruGrC8EPIfjL3PuTvA_31 = { 1 | NIM_STRLIT_FLAG, "," };
N_LIB_PRIVATE NIM_CONST tyArray__FkG8aLMyiZfDjueUwWl3WA tokToStr__pureZparsejson_79 = {{13, (NimStrPayload*)&TM__nIinruGrC8EPIfjL3PuTvA_21},
{3, (NimStrPayload*)&TM__nIinruGrC8EPIfjL3PuTvA_22},
{14, (NimStrPayload*)&TM__nIinruGrC8EPIfjL3PuTvA_23},
{11, (NimStrPayload*)&TM__nIinruGrC8EPIfjL3PuTvA_24},
{13, (NimStrPayload*)&TM__nIinruGrC8EPIfjL3PuTvA_25},
{4, (NimStrPayload*)&TM__nIinruGrC8EPIfjL3PuTvA_11},
{5, (NimStrPayload*)&TM__nIinruGrC8EPIfjL3PuTvA_13},
{4, (NimStrPayload*)&TM__nIinruGrC8EPIfjL3PuTvA_9},
{1, (NimStrPayload*)&TM__nIinruGrC8EPIfjL3PuTvA_26},
{1, (NimStrPayload*)&TM__nIinruGrC8EPIfjL3PuTvA_27},
{1, (NimStrPayload*)&TM__nIinruGrC8EPIfjL3PuTvA_28},
{1, (NimStrPayload*)&TM__nIinruGrC8EPIfjL3PuTvA_29},
{1, (NimStrPayload*)&TM__nIinruGrC8EPIfjL3PuTvA_30},
{1, (NimStrPayload*)&TM__nIinruGrC8EPIfjL3PuTvA_31}}
;
extern NIM_BOOL nimInErrorMode__system_3980;
static NIM_CONST NU32 TM__nIinruGrC8EPIfjL3PuTvA_2[3] = {3701606400, 205302784, 1645256448};
N_LIB_PRIVATE TNimTypeV2 NTIv2__KWIQnzXEOUqdWsnCUL9atyQ_ = {.destructor = (void*)eqdestroy___pureZparsejson_156, .size = sizeof(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ), .align = (NI16) NIM_ALIGNOF(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ), .depth = 2, .display = TM__nIinruGrC8EPIfjL3PuTvA_2, .traceImpl = (void*)eqtrace___pureZparsejson_165, .flags = 0};
static NIM_CONST NU32 TM__nIinruGrC8EPIfjL3PuTvA_15[5] = {3701606400, 1285336064, 3000110592, 3978211584, 4290471680};
N_LIB_PRIVATE TNimTypeV2 NTIv2__Ff9b7Z3F83CBVRI2ZoKErcQ_ = {.destructor = (void*)eqdestroy___pureZparsejson_800, .size = sizeof(tyObject_JsonParsingError__Ff9b7Z3F83CBVRI2ZoKErcQ), .align = (NI16) NIM_ALIGNOF(tyObject_JsonParsingError__Ff9b7Z3F83CBVRI2ZoKErcQ), .depth = 4, .display = TM__nIinruGrC8EPIfjL3PuTvA_15, .traceImpl = (void*)eqtrace___pureZparsejson_809, .flags = 0};
static NIM_CONST NU32 TM__nIinruGrC8EPIfjL3PuTvA_20[5] = {3701606400, 1285336064, 3000110592, 3978211584, 3654753792};
N_LIB_PRIVATE TNimTypeV2 NTIv2__rdnXHgdE6eiyK6cn26vKMw_ = {.destructor = (void*)eqdestroy___pureZjson_5802, .size = sizeof(tyObject_JsonKindError__rdnXHgdE6eiyK6cn26vKMw), .align = (NI16) NIM_ALIGNOF(tyObject_JsonKindError__rdnXHgdE6eiyK6cn26vKMw), .depth = 4, .display = TM__nIinruGrC8EPIfjL3PuTvA_20, .traceImpl = (void*)eqtrace___pureZjson_5811, .flags = 0};
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*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (NIM_BOOL*)0;
result = (&nimInErrorMode__system_3980);
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_3143(result, cell, (*((TNimTypeV2**) (p))));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA3_: ;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZparsejson_168)(tySequence__Ih0V9cYug0VPJyBBGvgEH7Q* dest) {
if ((*dest).p && !((*dest).p->cap & NIM_STRLIT_FLAG)) {
alignedDealloc((*dest).p, NIM_ALIGNOF(tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ));
}
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZparsejson_156)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* dest) {
eqdestroy___stdZassertions_13((&(*dest).Sup.buf));
{
NIM_BOOL T3_;
T3_ = (NIM_BOOL)0;
T3_ = nimDecRefIsLastCyclicDyn((*dest).Sup.input);
if (!T3_) goto LA4_;
nimDestroyAndDispose((*dest).Sup.input);
}
LA4_: ;
eqdestroy___stdZassertions_13((&(*dest).a));
eqdestroy___pureZparsejson_168((&(*dest).state));
eqdestroy___stdZassertions_13((&(*dest).filename));
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
void* T1_;
T1_ = (void*)0;
T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__system_1719)(void* dest, void* source, NI size) {
nimCopyMem(dest, source, size);
}
static N_INLINE(void, add__system_2688)(tyObject_CellSeq__sGle0igznE2T7vk4dBh5SQ* s, void** c, TNimTypeV2* t) {
void** colontmp_;
TNimTypeV2* colontmp__2;
{
tyTuple__N4J9cV4JZGem3ljqqj5rT0Q* d;
void* T5_;
if (!((*s).cap <= (*s).len)) goto LA3_;
(*s).cap = (NI)((NI)((*s).cap * ((NI)3)) / ((NI)2));
T5_ = (void*)0;
T5_ = allocImpl__system_1735(((NI) ((NI)((*s).cap * ((NI)8)))));
d = ((tyTuple__N4J9cV4JZGem3ljqqj5rT0Q*) (T5_));
copyMem__system_1719(((void*) (d)), ((void*) ((*s).d)), ((NI) ((NI)((*s).len * ((NI)8)))));
dealloc(((void*) ((*s).d)));
(*s).d = d;
}
LA3_: ;
colontmp_ = c;
colontmp__2 = t;
(*s).d[(*s).len].Field0 = colontmp_;
(*s).d[(*s).len].Field1 = colontmp__2;
(*s).len += ((NI)1);
}
static N_INLINE(void, nimTraceRefDyn)(void* q, void* env) {
void** p;
p = ((void**) (q));
{
tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ* j;
if (!!(((*p) == NIM_NIL))) goto LA3_;
j = ((tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ*) (env));
add__system_2688((&(*j).traceStack), p, (*((TNimTypeV2**) ((*p)))));
}
LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqtrace___pureZparsejson_165)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* dest, void* env) {
nimTraceRefDyn(&(*dest).Sup.input, env);
}
N_LIB_PRIVATE N_NIMCALL(void, eqsink___pureZparsejson_174)(tySequence__Ih0V9cYug0VPJyBBGvgEH7Q* dest, tySequence__Ih0V9cYug0VPJyBBGvgEH7Q src) {
if ((*dest).p != src.p) { eqdestroy___pureZparsejson_168(dest);
}
(*dest).len = src.len; (*dest).p = src.p;
}
N_LIB_PRIVATE N_NIMCALL(void, open__pureZparsejson_128)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my, tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* input, NimStringV2 filename, NIM_BOOL rawStringLiterals) {
tySequence__Ih0V9cYug0VPJyBBGvgEH7Q T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
open__pureZlexbase_131(&my->Sup, input, ((NI)8192), TM__nIinruGrC8EPIfjL3PuTvA_3);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
eqcopy___stdZassertions_16((&(*my).filename), filename);
T1_.len = 0; T1_.p = NIM_NIL;
T1_.len = 1; T1_.p = (tySequence__Ih0V9cYug0VPJyBBGvgEH7Q_Content*) newSeqPayload(1, sizeof(tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ), NIM_ALIGNOF(tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ));
T1_.p->data[0] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)1);
eqsink___pureZparsejson_174((&(*my).state), T1_);
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA)0);
eqsink___stdZassertions_19((&(*my).a), TM__nIinruGrC8EPIfjL3PuTvA_5);
(*my).rawStringLiterals = rawStringLiterals;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, skip__pureZparsejson_504)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my) {
NI pos;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
pos = (*my).Sup.bufpos;
{
while (1) {
switch (((NU8)((*my).Sup.buf.p->data[pos]))) {
case 47:
{
{
if (!((NU8)((*my).Sup.buf.p->data[(NI)(pos + ((NI)1))]) == (NU8)(47))) goto LA6_;
pos += ((NI)2);
{
while (1) {
switch (((NU8)((*my).Sup.buf.p->data[pos]))) {
case 0:
{
goto LA8;
}
break;
case 13:
{
pos = handleCR__pureZlexbase_84(&my->Sup, pos);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
goto LA8;
}
break;
case 10:
{
pos = handleLF__pureZlexbase_96(&my->Sup, pos);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
goto LA8;
}
break;
default:
{
pos += ((NI)1);
}
break;
}
}
} LA8: ;
}
goto LA4_;
LA6_: ;
{
if (!((NU8)((*my).Sup.buf.p->data[(NI)(pos + ((NI)1))]) == (NU8)(42))) goto LA15_;
pos += ((NI)2);
{
while (1) {
switch (((NU8)((*my).Sup.buf.p->data[pos]))) {
case 0:
{
(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew)8);
goto LA17;
}
break;
case 13:
{
pos = handleCR__pureZlexbase_84(&my->Sup, pos);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
break;
case 10:
{
pos = handleLF__pureZlexbase_96(&my->Sup, pos);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
break;
case 42:
{
pos += ((NI)1);
{
if (!((NU8)((*my).Sup.buf.p->data[pos]) == (NU8)(47))) goto LA25_;
pos += ((NI)1);
goto LA17;
}
LA25_: ;
}
break;
default:
{
pos += ((NI)1);
}
break;
}
}
} LA17: ;
}
goto LA4_;
LA15_: ;
{
goto LA1;
}
LA4_: ;
}
break;
case 32:
case 9:
{
pos += ((NI)1);
}
break;
case 13:
{
pos = handleCR__pureZlexbase_84(&my->Sup, pos);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
break;
case 10:
{
pos = handleLF__pureZlexbase_96(&my->Sup, pos);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
break;
default:
{
goto LA1;
}
break;
}
}
} LA1: ;
(*my).Sup.bufpos = pos;
}BeforeRet_: ;
}
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(void, appendString)(NimStringV2* dest, NimStringV2 src) {
{
if (!(((NI)0) < src.len)) goto LA3_;
copyMem__system_1719(((void*) ((&(*(*dest).p).data[(*dest).len]))), ((void*) ((&(*src.p).data[((NI)0)]))), ((NI) ((NI)(src.len + ((NI)1)))));
(*dest).len += src.len;
}
LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, parseNumber__pureZparsejson_542)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my) {
NI pos;
pos = (*my).Sup.bufpos;
{
if (!((NU8)((*my).Sup.buf.p->data[pos]) == (NU8)(45))) goto LA3_;
nimAddCharV1((&(*my).a), 45);
pos += ((NI)1);
}
LA3_: ;
{
if (!((NU8)((*my).Sup.buf.p->data[pos]) == (NU8)(46))) goto LA7_;
prepareAdd((&(*my).a), 2);
appendString((&(*my).a), TM__nIinruGrC8EPIfjL3PuTvA_7);
pos += ((NI)1);
}
goto LA5_;
LA7_: ;
{
{
while (1) {
if (!(((NU8)((*my).Sup.buf.p->data[pos])) >= ((NU8)(48)) && ((NU8)((*my).Sup.buf.p->data[pos])) <= ((NU8)(57)))) goto LA11 ;
nimAddCharV1((&(*my).a), (*my).Sup.buf.p->data[pos]);
pos += ((NI)1);
} LA11: ;
}
{
if (!((NU8)((*my).Sup.buf.p->data[pos]) == (NU8)(46))) goto LA14_;
nimAddCharV1((&(*my).a), 46);
pos += ((NI)1);
}
LA14_: ;
}
LA5_: ;
{
while (1) {
if (!(((NU8)((*my).Sup.buf.p->data[pos])) >= ((NU8)(48)) && ((NU8)((*my).Sup.buf.p->data[pos])) <= ((NU8)(57)))) goto LA17 ;
nimAddCharV1((&(*my).a), (*my).Sup.buf.p->data[pos]);
pos += ((NI)1);
} LA17: ;
}
{
if (!(((NU8)((*my).Sup.buf.p->data[pos])) == ((NU8)(69)) || ((NU8)((*my).Sup.buf.p->data[pos])) == ((NU8)(101)))) goto LA20_;
nimAddCharV1((&(*my).a), (*my).Sup.buf.p->data[pos]);
pos += ((NI)1);
{
if (!(((NU8)((*my).Sup.buf.p->data[pos])) == ((NU8)(43)) || ((NU8)((*my).Sup.buf.p->data[pos])) == ((NU8)(45)))) goto LA24_;
nimAddCharV1((&(*my).a), (*my).Sup.buf.p->data[pos]);
pos += ((NI)1);
}
LA24_: ;
{
while (1) {
if (!(((NU8)((*my).Sup.buf.p->data[pos])) >= ((NU8)(48)) && ((NU8)((*my).Sup.buf.p->data[pos])) <= ((NU8)(57)))) goto LA27 ;
nimAddCharV1((&(*my).a), (*my).Sup.buf.p->data[pos]);
pos += ((NI)1);
} LA27: ;
}
}
LA20_: ;
(*my).Sup.bufpos = pos;
}
static N_INLINE(NIM_BOOL, handleHexChar__stdZprivateZdecode95helpers_1)(NIM_CHAR c, NI* x) {
NIM_BOOL result;
result = (NIM_BOOL)0;
result = NIM_TRUE;
switch (((NU8)(c))) {
case 48 ... 57:
{
(*x) = (NI)((NI)((NU32)((*x)) << (NU32)(((NI)4))) | (NI)(((NU8)(c)) - ((NI)48)));
}
break;
case 97 ... 102:
{
(*x) = (NI)((NI)((NU32)((*x)) << (NU32)(((NI)4))) | (NI)((NI)(((NU8)(c)) - ((NI)97)) + ((NI)10)));
}
break;
case 65 ... 70:
{
(*x) = (NI)((NI)((NU32)((*x)) << (NU32)(((NI)4))) | (NI)((NI)(((NU8)(c)) - ((NI)65)) + ((NI)10)));
}
break;
default:
{
result = NIM_FALSE;
}
break;
}
return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, parseEscapedUTF16__pureZparsejson_380)(NCSTRING buf, NI* pos) {
NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
result = ((NI)0);
{
NI _;
NI res;
_ = (NI)0;
res = ((NI)0);
{
while (1) {
if (!(res <= ((NI)3))) goto LA3 ;
_ = res;
{
NIM_BOOL T6_;
T6_ = (NIM_BOOL)0;
T6_ = handleHexChar__stdZprivateZdecode95helpers_1(buf[(*pos)], (&result));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
if (!T6_) goto LA7_;
(*pos) += ((NI)1);
}
goto LA4_;
LA7_: ;
{
result = ((NI)-1);
goto BeforeRet_;
}
LA4_: ;
res += ((NI)1);
} LA3: ;
}
}
}BeforeRet_: ;
return result;
}
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(tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw, parseString__pureZparsejson_394)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my) {
tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw result;
NI pos;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)0;
result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)2);
pos = (NI)((*my).Sup.bufpos + ((NI)1));
{
if (!(*my).rawStringLiterals) goto LA3_;
nimAddCharV1((&(*my).a), 34);
}
LA3_: ;
{
while (1) {
switch (((NU8)((*my).Sup.buf.p->data[pos]))) {
case 0:
{
(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew)7);
result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)0);
goto LA5;
}
break;
case 34:
{
{
if (!(*my).rawStringLiterals) goto LA11_;
nimAddCharV1((&(*my).a), 34);
}
LA11_: ;
pos += ((NI)1);
goto LA5;
}
break;
case 92:
{
{
if (!(*my).rawStringLiterals) goto LA16_;
nimAddCharV1((&(*my).a), 92);
}
LA16_: ;
switch (((NU8)((*my).Sup.buf.p->data[(NI)(pos + ((NI)1))]))) {
case 92:
case 34:
case 39:
case 47:
{
nimAddCharV1((&(*my).a), (*my).Sup.buf.p->data[(NI)(pos + ((NI)1))]);
pos += ((NI)2);
}
break;
case 98:
{
nimAddCharV1((&(*my).a), 8);
pos += ((NI)2);
}
break;
case 102:
{
nimAddCharV1((&(*my).a), 12);
pos += ((NI)2);
}
break;
case 110:
{
nimAddCharV1((&(*my).a), 10);
pos += ((NI)2);
}
break;
case 114:
{
nimAddCharV1((&(*my).a), 13);
pos += ((NI)2);
}
break;
case 116:
{
nimAddCharV1((&(*my).a), 9);
pos += ((NI)2);
}
break;
case 118:
{
nimAddCharV1((&(*my).a), 11);
pos += ((NI)2);
}
break;
case 117:
{
NI pos2;
NI r;
{
if (!(*my).rawStringLiterals) goto LA28_;
nimAddCharV1((&(*my).a), 117);
}
LA28_: ;
pos += ((NI)2);
pos2 = pos;
r = parseEscapedUTF16__pureZparsejson_380(nimToCStringConv((*my).Sup.buf), (&pos));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
{
if (!(r < ((NI)0))) goto LA32_;
(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew)1);
goto LA5;
}
LA32_: ;
{
NI s;
if (!((NI)(r & ((NI)64512)) == ((NI)55296))) goto LA36_;
{
NIM_BOOL T40_;
T40_ = (NIM_BOOL)0;
T40_ = !(((NU8)((*my).Sup.buf.p->data[pos]) == (NU8)(92)));
if (T40_) goto LA41_;
T40_ = !(((NU8)((*my).Sup.buf.p->data[(NI)(pos + ((NI)1))]) == (NU8)(117)));
LA41_: ;
if (!T40_) goto LA42_;
(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew)1);
goto LA5;
}
LA42_: ;
pos += ((NI)2);
s = parseEscapedUTF16__pureZparsejson_380(nimToCStringConv((*my).Sup.buf), (&pos));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
{
NIM_BOOL T46_;
T46_ = (NIM_BOOL)0;
T46_ = ((NI)(s & ((NI)64512)) == ((NI)56320));
if (!(T46_)) goto LA47_;
T46_ = (((NI)0) < s);
LA47_: ;
if (!T46_) goto LA48_;
r = (NI)(((NI)65536) + (NI)((NI)((NU32)((NI)(r - ((NI)55296))) << (NU32)(((NI)10))) | (NI)(s - ((NI)56320))));
}
goto LA44_;
LA48_: ;
{
(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew)1);
goto LA5;
}
LA44_: ;
}
LA36_: ;
{
NI length;
if (!(*my).rawStringLiterals) goto LA53_;
length = (NI)(pos - pos2);
{
NI i;
NI res;
i = (NI)0;
res = ((NI)1);
{
while (1) {
if (!(res <= length)) goto LA57 ;
i = res;
{
if (!(((NU8)((*my).Sup.buf.p->data[pos2])) >= ((NU8)(48)) && ((NU8)((*my).Sup.buf.p->data[pos2])) <= ((NU8)(57)) || ((NU8)((*my).Sup.buf.p->data[pos2])) >= ((NU8)(65)) && ((NU8)((*my).Sup.buf.p->data[pos2])) <= ((NU8)(70)) || ((NU8)((*my).Sup.buf.p->data[pos2])) >= ((NU8)(97)) && ((NU8)((*my).Sup.buf.p->data[pos2])) <= ((NU8)(102)))) goto LA60_;
nimAddCharV1((&(*my).a), (*my).Sup.buf.p->data[pos2]);
pos2 += ((NI)1);
}
goto LA58_;
LA60_: ;
{
goto LA55;
}
LA58_: ;
res += ((NI)1);
} LA57: ;
}
} LA55: ;
}
goto LA51_;
LA53_: ;
{
NimStringV2 colontmpD_;
colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
colontmpD_ = nuctoUTF8(((NI32) (r)));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
prepareAdd((&(*my).a), colontmpD_.len + 0);
appendString((&(*my).a), colontmpD_);
eqdestroy___stdZassertions_13((&colontmpD_));
}
LA51_: ;
}
break;
default:
{
nimAddCharV1((&(*my).a), (*my).Sup.buf.p->data[pos]);
pos += ((NI)1);
}
break;
}
}
break;
case 13:
{
pos = handleCR__pureZlexbase_84(&my->Sup, pos);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
nimAddCharV1((&(*my).a), 13);
}
break;
case 10:
{
pos = handleLF__pureZlexbase_96(&my->Sup, pos);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
nimAddCharV1((&(*my).a), 10);
}
break;
default:
{
nimAddCharV1((&(*my).a), (*my).Sup.buf.p->data[pos]);
pos += ((NI)1);
}
break;
}
}
} LA5: ;
(*my).Sup.bufpos = pos;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(void, parseName__pureZparsejson_605)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my) {
NI pos;
pos = (*my).Sup.bufpos;
{
if (!(((NU8)((*my).Sup.buf.p->data[pos])) >= ((NU8)(97)) && ((NU8)((*my).Sup.buf.p->data[pos])) <= ((NU8)(122)) || ((NU8)((*my).Sup.buf.p->data[pos])) >= ((NU8)(65)) && ((NU8)((*my).Sup.buf.p->data[pos])) <= ((NU8)(90)) || ((NU8)((*my).Sup.buf.p->data[pos])) == ((NU8)(95)))) goto LA3_;
{
while (1) {
if (!(((NU8)((*my).Sup.buf.p->data[pos])) >= ((NU8)(97)) && ((NU8)((*my).Sup.buf.p->data[pos])) <= ((NU8)(122)) || ((NU8)((*my).Sup.buf.p->data[pos])) >= ((NU8)(65)) && ((NU8)((*my).Sup.buf.p->data[pos])) <= ((NU8)(90)) || ((NU8)((*my).Sup.buf.p->data[pos])) >= ((NU8)(48)) && ((NU8)((*my).Sup.buf.p->data[pos])) <= ((NU8)(57)) || ((NU8)((*my).Sup.buf.p->data[pos])) == ((NU8)(95)))) goto LA6 ;
nimAddCharV1((&(*my).a), (*my).Sup.buf.p->data[pos]);
pos += ((NI)1);
} LA6: ;
}
}
LA3_: ;
(*my).Sup.bufpos = pos;
}
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
int result;
result = (int)0;
result = memcmp(a, b, ((size_t) (size)));
return result;
}
static N_INLINE(NIM_BOOL, equalMem__system_1727)(void* a, void* b, NI size) {
NIM_BOOL result;
int T1_;
result = (NIM_BOOL)0;
T1_ = (int)0;
T1_ = nimCmpMem(a, b, size);
result = (T1_ == ((NI32)0));
return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringV2 a, NimStringV2 b) {
NIM_BOOL result;
NI alen;
NI blen;
{ result = (NIM_BOOL)0;
alen = a.len;
blen = b.len;
{
if (!(alen == blen)) goto LA3_;
{
if (!(alen == ((NI)0))) goto LA7_;
result = NIM_TRUE;
goto BeforeRet_;
}
LA7_: ;
result = equalMem__system_1727(((void*) ((&a.p->data[((NI)0)]))), ((void*) ((&b.p->data[((NI)0)]))), ((NI) (alen)));
goto BeforeRet_;
}
LA3_: ;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw, getTok__pureZparsejson_621)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my) {
tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)0;
setLengthStrV2((&(*my).a), ((NI)0));
skip__pureZparsejson_504(my);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
switch (((NU8)((*my).Sup.buf.p->data[(*my).Sup.bufpos]))) {
case 45:
case 46:
case 48 ... 57:
{
parseNumber__pureZparsejson_542(my);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
{
NIM_BOOL T4_;
T4_ = (NIM_BOOL)0;
T4_ = contains__pureZstrutils_1820((*my).a, TM__nIinruGrC8EPIfjL3PuTvA_8);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
if (!T4_) goto LA5_;
result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)4);
}
goto LA2_;
LA5_: ;
{
result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)3);
}
LA2_: ;
}
break;
case 34:
{
result = parseString__pureZparsejson_394(my);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
break;
case 91:
{
(*my).Sup.bufpos += ((NI)1);
result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)10);
}
break;
case 123:
{
(*my).Sup.bufpos += ((NI)1);
result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)8);
}
break;
case 93:
{
(*my).Sup.bufpos += ((NI)1);
result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)11);
}
break;
case 125:
{
(*my).Sup.bufpos += ((NI)1);
result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)9);
}
break;
case 44:
{
(*my).Sup.bufpos += ((NI)1);
result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)13);
}
break;
case 58:
{
(*my).Sup.bufpos += ((NI)1);
result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)12);
}
break;
case 0:
{
result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)1);
}
break;
case 97 ... 122:
case 65 ... 90:
case 95:
{
parseName__pureZparsejson_605(my);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
if (eqStrings((*my).a, TM__nIinruGrC8EPIfjL3PuTvA_10)) goto LA17_;
if (eqStrings((*my).a, TM__nIinruGrC8EPIfjL3PuTvA_12)) goto LA18_;
if (eqStrings((*my).a, TM__nIinruGrC8EPIfjL3PuTvA_14)) goto LA19_;
goto LA20_;
LA17_: ;
{
result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)7);
}
goto LA21_;
LA18_: ;
{
result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)5);
}
goto LA21_;
LA19_: ;
{
result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)6);
}
goto LA21_;
LA20_: ;
{
result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)0);
}
LA21_: ;
}
break;
default:
{
(*my).Sup.bufpos += ((NI)1);
result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)0);
}
break;
}
(*my).tok = result;
}BeforeRet_: ;
return result;
}
static N_INLINE(tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ, pop__pureZparsejson_722)(tySequence__Ih0V9cYug0VPJyBBGvgEH7Q* s) {
tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ result;
NI L;
NI T1_;
result = (tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)0;
T1_ = (*s).len;
L = (NI)(T1_ - ((NI)1));
result = (*s).p->data[L];
(*s).p->data[L] = 0;
shrink__pureZparsejson_192(s, ((NI) (L)));
return result;
}
N_LIB_PRIVATE N_NIMCALL(void, next__pureZparsejson_659)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my) {
tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw tk;
NI i;
NI T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
tk = getTok__pureZparsejson_621(my);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
T1_ = (*my).state.len;
i = (NI)(T1_ - ((NI)1));
switch ((*my).state.p->data[i]) {
case ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)0):
{
{
if (!(tk == ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)1))) goto LA5_;
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA)1);
}
goto LA3_;
LA5_: ;
{
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA)0);
(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew)9);
}
LA3_: ;
}
break;
case ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)1):
{
switch (tk) {
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)2):
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)3):
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)4):
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)5):
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)6):
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)7):
{
(*my).state.p->data[i] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)0);
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) (tk));
}
break;
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)10):
{
add__pureZparsejson_675((&(*my).state), ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)3));
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA)10);
}
break;
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)8):
{
add__pureZparsejson_675((&(*my).state), ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)2));
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA)8);
}
break;
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)1):
{
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA)1);
}
break;
default:
{
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA)0);
(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew)9);
}
break;
}
}
break;
case ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)2):
{
switch (tk) {
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)2):
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)3):
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)4):
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)5):
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)6):
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)7):
{
add__pureZparsejson_675((&(*my).state), ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)6));
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) (tk));
}
break;
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)10):
{
add__pureZparsejson_675((&(*my).state), ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)6));
add__pureZparsejson_675((&(*my).state), ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)3));
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA)10);
}
break;
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)8):
{
add__pureZparsejson_675((&(*my).state), ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)6));
add__pureZparsejson_675((&(*my).state), ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)2));
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA)8);
}
break;
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)9):
{
tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ T19_;
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA)9);
T19_ = (tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)0;
T19_ = pop__pureZparsejson_722((&(*my).state));
(void)(T19_);
}
break;
default:
{
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA)0);
(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew)6);
}
break;
}
}
break;
case ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)3):
{
switch (tk) {
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)2):
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)3):
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)4):
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)5):
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)6):
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)7):
{
add__pureZparsejson_675((&(*my).state), ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)4));
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) (tk));
}
break;
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)10):
{
add__pureZparsejson_675((&(*my).state), ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)4));
add__pureZparsejson_675((&(*my).state), ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)3));
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA)10);
}
break;
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)8):
{
add__pureZparsejson_675((&(*my).state), ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)4));
add__pureZparsejson_675((&(*my).state), ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)2));
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA)8);
}
break;
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)11):
{
tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ T26_;
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA)11);
T26_ = (tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)0;
T26_ = pop__pureZparsejson_722((&(*my).state));
(void)(T26_);
}
break;
default:
{
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA)0);
(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew)5);
}
break;
}
}
break;
case ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)4):
{
switch (tk) {
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)13):
{
tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ T30_;
T30_ = (tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)0;
T30_ = pop__pureZparsejson_722((&(*my).state));
(void)(T30_);
next__pureZparsejson_659(my);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
break;
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)11):
{
tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ T32_;
tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ T33_;
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA)11);
T32_ = (tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)0;
T32_ = pop__pureZparsejson_722((&(*my).state));
(void)(T32_);
T33_ = (tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)0;
T33_ = pop__pureZparsejson_722((&(*my).state));
(void)(T33_);
}
break;
default:
{
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA)0);
(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew)5);
}
break;
}
}
break;
case ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)5):
{
switch (tk) {
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)13):
{
tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ T37_;
T37_ = (tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)0;
T37_ = pop__pureZparsejson_722((&(*my).state));
(void)(T37_);
next__pureZparsejson_659(my);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
break;
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)9):
{
tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ T39_;
tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ T40_;
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA)9);
T39_ = (tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)0;
T39_ = pop__pureZparsejson_722((&(*my).state));
(void)(T39_);
T40_ = (tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)0;
T40_ = pop__pureZparsejson_722((&(*my).state));
(void)(T40_);
}
break;
default:
{
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA)0);
(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew)6);
}
break;
}
}
break;
case ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)6):
{
switch (tk) {
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)12):
{
(*my).state.p->data[i] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)7);
next__pureZparsejson_659(my);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
break;
default:
{
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA)0);
(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew)3);
}
break;
}
}
break;
case ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)7):
{
switch (tk) {
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)2):
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)3):
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)4):
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)5):
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)6):
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)7):
{
(*my).state.p->data[i] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)5);
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) (tk));
}
break;
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)10):
{
(*my).state.p->data[i] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)5);
add__pureZparsejson_675((&(*my).state), ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)3));
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA)10);
}
break;
case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)8):
{
(*my).state.p->data[i] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)5);
add__pureZparsejson_675((&(*my).state), ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)2));
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA)8);
}
break;
default:
{
(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA)0);
(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew)10);
}
break;
}
}
break;
}
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZparsejson_800)(tyObject_JsonParsingError__Ff9b7Z3F83CBVRI2ZoKErcQ* dest) {
{
NIM_BOOL T3_;
T3_ = (NIM_BOOL)0;
T3_ = nimDecRefIsLastCyclicDyn((*dest).Sup.Sup.Sup.parent);
if (!T3_) goto LA4_;
nimDestroyAndDispose((*dest).Sup.Sup.Sup.parent);
}
LA4_: ;
eqdestroy___stdZassertions_13((&(*dest).Sup.Sup.Sup.message));
eqdestroy___stdZassertions_55((&(*dest).Sup.Sup.Sup.trace));
{
NIM_BOOL T8_;
T8_ = (NIM_BOOL)0;
T8_ = nimDecRefIsLastCyclicDyn((*dest).Sup.Sup.Sup.up);
if (!T8_) goto LA9_;
nimDestroyAndDispose((*dest).Sup.Sup.Sup.up);
}
LA9_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqtrace___pureZparsejson_809)(tyObject_JsonParsingError__Ff9b7Z3F83CBVRI2ZoKErcQ* dest, void* env) {
nimTraceRefDyn(&(*dest).Sup.Sup.Sup.parent, env);
eqtrace___stdZassertions_64((&(*dest).Sup.Sup.Sup.trace), env);
nimTraceRefDyn(&(*dest).Sup.Sup.Sup.up, env);
}
static N_INLINE(NI, getLine__pureZparsejson_360)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my) {
NI result;
result = (NI)0;
result = (*my).Sup.lineNumber;
return result;
}
static N_INLINE(NI, getColumn__pureZparsejson_357)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my) {
NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
result = getColNumber__pureZlexbase_146((&(*my).Sup), (*my).Sup.bufpos);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, errorMsgExpected__pureZparsejson_376)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my, NimStringV2 e) {
NimStringV2 result;
NimStringV2 colontmpD_;
NimStringV2 colontmpD__2;
NimStringV2 colontmpD__3;
tyArray__sMpvt1sOxOJ3LFGulnbeMQ T2_;
NI T3_;
NI T4_;
NimStringV2 T5_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result.len = 0; result.p = NIM_NIL;
colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
T2_[0] = (*my).filename;
T3_ = (NI)0;
T3_ = getLine__pureZparsejson_360(my);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
colontmpD_ = dollar___systemZdollars_3(T3_);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
T2_[1] = colontmpD_;
T4_ = (NI)0;
T4_ = getColumn__pureZparsejson_357(my);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
colontmpD__2 = dollar___systemZdollars_3(T4_);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
T2_[2] = colontmpD__2;
T5_.len = 0; T5_.p = NIM_NIL;
T5_ = rawNewString(e.len + 9);
appendString((&T5_), e);
appendString((&T5_), TM__nIinruGrC8EPIfjL3PuTvA_19);
colontmpD__3 = T5_;
T2_[3] = colontmpD__3;
result = nsuFormatOpenArray(TM__nIinruGrC8EPIfjL3PuTvA_17, T2_, 4);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
{
LA1_:;
}
{
eqdestroy___stdZassertions_13((&colontmpD__3));
eqdestroy___stdZassertions_13((&colontmpD__2));
eqdestroy___stdZassertions_13((&colontmpD_));
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NOINLINE(void, raiseParseErr__pureZparsejson_796)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* p, NimStringV2 msg) {
tyObject_JsonParsingError__Ff9b7Z3F83CBVRI2ZoKErcQ* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
T1_ = NIM_NIL;
T1_ = (tyObject_JsonParsingError__Ff9b7Z3F83CBVRI2ZoKErcQ*) nimNewObj(sizeof(tyObject_JsonParsingError__Ff9b7Z3F83CBVRI2ZoKErcQ), NIM_ALIGNOF(tyObject_JsonParsingError__Ff9b7Z3F83CBVRI2ZoKErcQ));
(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIv2__Ff9b7Z3F83CBVRI2ZoKErcQ_);
(*T1_).Sup.Sup.Sup.name = "JsonParsingError";
(*T1_).Sup.Sup.Sup.message = errorMsgExpected__pureZparsejson_376(p, msg);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
(*T1_).Sup.Sup.Sup.parent = ((Exception*) NIM_NIL);
raiseExceptionEx((Exception*)T1_, "JsonParsingError", "raiseParseErr", "parsejson.nim", 518);
goto BeforeRet_;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZjson_5802)(tyObject_JsonKindError__rdnXHgdE6eiyK6cn26vKMw* dest) {
{
NIM_BOOL T3_;
T3_ = (NIM_BOOL)0;
T3_ = nimDecRefIsLastCyclicDyn((*dest).Sup.Sup.Sup.parent);
if (!T3_) goto LA4_;
nimDestroyAndDispose((*dest).Sup.Sup.Sup.parent);
}
LA4_: ;
eqdestroy___stdZassertions_13((&(*dest).Sup.Sup.Sup.message));
eqdestroy___stdZassertions_55((&(*dest).Sup.Sup.Sup.trace));
{
NIM_BOOL T8_;
T8_ = (NIM_BOOL)0;
T8_ = nimDecRefIsLastCyclicDyn((*dest).Sup.Sup.Sup.up);
if (!T8_) goto LA9_;
nimDestroyAndDispose((*dest).Sup.Sup.Sup.up);
}
LA9_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqtrace___pureZjson_5811)(tyObject_JsonKindError__rdnXHgdE6eiyK6cn26vKMw* dest, void* env) {
nimTraceRefDyn(&(*dest).Sup.Sup.Sup.parent, env);
eqtrace___stdZassertions_64((&(*dest).Sup.Sup.Sup.trace), env);
nimTraceRefDyn(&(*dest).Sup.Sup.Sup.up, env);
}
N_LIB_PRIVATE N_NIMCALL(void, eat__pureZparsejson_837)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* p, tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw tok) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
{
tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw T5_;
if (!((*p).tok == tok)) goto LA3_;
T5_ = (tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)0;
T5_ = getTok__pureZparsejson_621(p);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
(void)(T5_);
}
goto LA1_;
LA3_: ;
{
raiseParseErr__pureZparsejson_796((&(*p)), tokToStr__pureZparsejson_79[(tok)- 0]);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA1_: ;
}BeforeRet_: ;
}