1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 32
3 #define NIM_EmulateOverflowChecks
4 
5 #include "nimbase.h"
6 #include <string.h>
7 #undef LANGUAGE_C
8 #undef MIPSEB
9 #undef MIPSEL
10 #undef PPC
11 #undef R3000
12 #undef R4000
13 #undef i386
14 #undef linux
15 #undef mips
16 #undef near
17 #undef far
18 #undef powerpc
19 #undef unix
20 #define nimfr_(x, y)
21 #define nimln_(x, y)
22 typedef struct TNimType TNimType;
23 typedef struct TNimNode TNimNode;
24 typedef struct tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ;
25 typedef struct tyObject_BaseLexer__MAw8rJZtJ279bVV3TWMtXSg tyObject_BaseLexer__MAw8rJZtJ279bVV3TWMtXSg;
26 typedef struct RootObj RootObj;
27 typedef struct NimStringDesc NimStringDesc;
28 typedef struct TGenericSeq TGenericSeq;
29 typedef struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ;
30 typedef struct tySequence__Ih0V9cYug0VPJyBBGvgEH7Q tySequence__Ih0V9cYug0VPJyBBGvgEH7Q;
31 typedef struct tyObject_JsonParsingError__XTejXaID1NT7KS9byQm3Jxg tyObject_JsonParsingError__XTejXaID1NT7KS9byQm3Jxg;
32 typedef struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw;
33 typedef struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA;
34 typedef struct Exception Exception;
35 typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
36 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
37 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
38 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
39 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
40 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
41 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
42 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
43 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
44 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
45 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
46 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
47 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
48 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
49 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
50 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
51 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
52 typedef struct tyObject_JsonKindError__GezlryuJLt9aOJ0RpuN6G8g tyObject_JsonKindError__GezlryuJLt9aOJ0RpuN6G8g;
53 typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
54 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
55 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
56 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
57 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
58 struct TNimType {
59 NI size;
60 NI align;
61 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
62 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
63 TNimType* base;
64 TNimNode* node;
65 void* finalizer;
66 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
67 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
68 };
69 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
70 struct TNimNode {
71 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
72 NI offset;
73 TNimType* typ;
74 NCSTRING name;
75 NI len;
76 TNimNode** sons;
77 };
78 struct RootObj {
79 TNimType* m_type;
80 };
81 struct TGenericSeq {
82 NI len;
83 NI reserved;
84 };
85 struct NimStringDesc {
86   TGenericSeq Sup;
87 NIM_CHAR data[SEQ_DECL_SIZE];
88 };
89 typedef NU8 tySet_tyChar__nmiMWKVIe46vacnhAFrQvw[32];
90 struct tyObject_BaseLexer__MAw8rJZtJ279bVV3TWMtXSg {
91   RootObj Sup;
92 NI bufpos;
93 NimStringDesc* buf;
94 tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* input;
95 NI lineNumber;
96 NI sentinel;
97 NI lineStart;
98 NI offsetBase;
99 tySet_tyChar__nmiMWKVIe46vacnhAFrQvw refillChars;
100 };
101 typedef NU8 tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw;
102 typedef NU8 tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA;
103 typedef NU8 tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew;
104 struct tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ {
105   tyObject_BaseLexer__MAw8rJZtJ279bVV3TWMtXSg Sup;
106 NimStringDesc* a;
107 tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw tok;
108 tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA kind;
109 tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew err;
110 tySequence__Ih0V9cYug0VPJyBBGvgEH7Q* state;
111 NimStringDesc* filename;
112 NIM_BOOL rawStringLiterals;
113 };
114 typedef NU8 tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ;
115 struct Exception {
116   RootObj Sup;
117 Exception* parent;
118 NCSTRING name;
119 NimStringDesc* message;
120 tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
121 Exception* up;
122 };
123 struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA {
124   Exception Sup;
125 };
126 struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw {
127   tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
128 };
129 struct tyObject_JsonParsingError__XTejXaID1NT7KS9byQm3Jxg {
130   tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw Sup;
131 };
132 typedef NimStringDesc* tyArray__sMpvt1sOxOJ3LFGulnbeMQ[4];
133 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
134 NI refcount;
135 TNimType* typ;
136 };
137 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
138 void* bottom;
139 };
140 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
141 NI len;
142 NI cap;
143 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
144 };
145 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
146 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
147 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
148 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
149 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
150 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
151 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
152 };
153 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
154 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
155 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
156 NI key;
157 NI upperBound;
158 NI level;
159 };
160 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
161 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
162 NI Field1;
163 };
164 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
165 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
166 NI len;
167 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
168 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
169 };
170 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
171 NI minLargeObj;
172 NI maxLargeObj;
173 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
174 NU32 flBitmap;
175 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
176 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
177 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
178 NI currMem;
179 NI maxMem;
180 NI freeMem;
181 NI occ;
182 NI lastSize;
183 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
184 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
185 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
186 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
187 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
188 NIM_BOOL locked;
189 NIM_BOOL blockChunkSizeIncrease;
190 NI nextChunkSize;
191 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
192 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
193 };
194 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
195 NI stackScans;
196 NI cycleCollections;
197 NI maxThreshold;
198 NI maxStackSize;
199 NI maxStackCells;
200 NI cycleTableSize;
201 NI64 maxPause;
202 };
203 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
204 NI counter;
205 NI max;
206 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
207 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
208 };
209 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
210 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
211 NI cycleThreshold;
212 NI zctThreshold;
213 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
214 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
215 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
216 NI recGcLock;
217 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
218 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
219 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
220 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
221 NI gcThreadId;
222 };
223 struct tyObject_JsonKindError__GezlryuJLt9aOJ0RpuN6G8g {
224   tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw Sup;
225 };
226 typedef NimStringDesc* tyArray__FkG8aLMyiZfDjueUwWl3WA[14];
227 struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
228 NCSTRING procname;
229 NI line;
230 NCSTRING filename;
231 };
232 struct tySequence__Ih0V9cYug0VPJyBBGvgEH7Q {
233   TGenericSeq Sup;
234   tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ data[SEQ_DECL_SIZE];
235 };
236 struct tySequence__uB9b75OUPRENsBAu4AnoePA {
237   TGenericSeq Sup;
238   tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
239 };
240 static N_NIMCALL(void, Marker_tySequence__Ih0V9cYug0VPJyBBGvgEH7Q)(void* p, NI op);
241 N_LIB_PRIVATE N_NIMCALL(void, open__pureZlexbase_122)(tyObject_BaseLexer__MAw8rJZtJ279bVV3TWMtXSg* L, tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* input, NI bufLen, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw refillChars);
242 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
243 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
244 N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
245 N_LIB_PRIVATE N_NIMCALL(tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw, getTok__pureZparsejson_425)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my);
246 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
247 N_LIB_PRIVATE N_NIMCALL(void, skip__pureZparsejson_324)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my);
248 N_LIB_PRIVATE N_NIMCALL(NI, handleCR__pureZlexbase_79)(tyObject_BaseLexer__MAw8rJZtJ279bVV3TWMtXSg* L, NI pos);
249 N_LIB_PRIVATE N_NIMCALL(NI, handleLF__pureZlexbase_90)(tyObject_BaseLexer__MAw8rJZtJ279bVV3TWMtXSg* L, NI pos);
250 N_LIB_PRIVATE N_NIMCALL(void, parseNumber__pureZparsejson_355)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my);
251 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
252 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
253 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
254 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
255 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
256 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__pureZstrutils_1635)(NimStringDesc* s, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw chars);
257 N_LIB_PRIVATE N_NIMCALL(tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw, parseString__pureZparsejson_233)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my);
258 N_LIB_PRIVATE N_NIMCALL(NI, parseEscapedUTF16__pureZparsejson_220)(NCSTRING buf, NI* pos);
259 static N_INLINE(NIM_BOOL, handleHexChar__stdZprivateZdecode95helpers_1)(NIM_CHAR c, NI* x);
260 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
261 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nuctoUTF8)(NI32 c);
262 N_LIB_PRIVATE N_NIMCALL(void, parseName__pureZparsejson_410)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my);
263 static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
264 static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size);
265 static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
266 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
267 static N_INLINE(tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ, pop__pureZparsejson_504)(tySequence__Ih0V9cYug0VPJyBBGvgEH7Q** s);
268 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
269 N_LIB_PRIVATE N_NIMCALL(void, next__pureZparsejson_456)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my);
270 N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
271 static N_NIMCALL(void, Marker_tyRef__PyuSdojUZWOAnzN7dInq1Q)(void* p, NI op);
272 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
273 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, errorMsgExpected__pureZparsejson_216)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my, NimStringDesc* e);
274 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
275 static N_INLINE(void, nimZeroMem)(void* p, NI size);
276 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
277 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_3)(NI x);
278 static N_INLINE(NI, getLine__pureZparsejson_200)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my);
279 static N_INLINE(NI, getColumn__pureZparsejson_188)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my);
280 N_LIB_PRIVATE N_NIMCALL(NI, getColNumber__pureZlexbase_137)(tyObject_BaseLexer__MAw8rJZtJ279bVV3TWMtXSg* L, NI pos);
281 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
282 static N_INLINE(void, asgnRef)(void** dest, void* src);
283 static N_INLINE(void, incRef__system_5329)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
284 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
285 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5291)(void* usr);
286 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
287 static N_INLINE(void, decRef__system_5336)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
288 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
289 static N_INLINE(void, rtlAddZCT__system_5334)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
290 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5285)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
291 N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
292 static N_NIMCALL(void, Marker_tyRef__tn3kJ9cInprO2X2FSPir4WQ)(void* p, NI op);
293 N_LIB_PRIVATE N_NOINLINE(void, raiseParseErr__pureZparsejson_580)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* p, NimStringDesc* msg) __attribute__((noreturn));
294 extern TNimType NTIbaselexer__MAw8rJZtJ279bVV3TWMtXSg_;
295 N_LIB_PRIVATE TNimType NTIjsonparser__KWIQnzXEOUqdWsnCUL9atyQ_;
296 extern TNimType NTIstring__77mFvmsOLKik79ci2hXkHEg_;
297 N_LIB_PRIVATE TNimType NTItokkind__Q9c4KaNqJU4PbXaGht0C7iw_;
298 N_LIB_PRIVATE TNimType NTIjsoneventkind__0zjE9c54eTrq224F5wMcaFA_;
299 N_LIB_PRIVATE TNimType NTIjsonerror__G9cw5MrJXJrcpID5JXaplew_;
300 N_LIB_PRIVATE TNimType NTIparserstate__Na0rM2Zdr3RpxeNeXbvLrQ_;
301 N_LIB_PRIVATE TNimType NTIseqLparserstateT__Ih0V9cYug0VPJyBBGvgEH7Q_;
302 extern TNimType NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_;
303 static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__nIinruGrC8EPIfjL3PuTvA_15 = {
304 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
305 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
306 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
307 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
308 ;
309 STRING_LITERAL(TM__nIinruGrC8EPIfjL3PuTvA_16, "0.", 2);
310 static NIM_CONST tySet_tyChar__nmiMWKVIe46vacnhAFrQvw TM__nIinruGrC8EPIfjL3PuTvA_17 = {
311 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
312 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
313 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
314 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
315 ;
316 STRING_LITERAL(TM__nIinruGrC8EPIfjL3PuTvA_18, "null", 4);
317 STRING_LITERAL(TM__nIinruGrC8EPIfjL3PuTvA_19, "true", 4);
318 STRING_LITERAL(TM__nIinruGrC8EPIfjL3PuTvA_20, "false", 5);
319 extern TNimType NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_;
320 N_LIB_PRIVATE TNimType NTIjsonparsingerror__XTejXaID1NT7KS9byQm3Jxg_;
321 N_LIB_PRIVATE TNimType NTIrefjsonparsingerror__PyuSdojUZWOAnzN7dInq1Q_;
322 STRING_LITERAL(TM__nIinruGrC8EPIfjL3PuTvA_21, "$1($2, $3) Error: $4", 20);
323 STRING_LITERAL(TM__nIinruGrC8EPIfjL3PuTvA_22, " expected", 9);
324 N_LIB_PRIVATE TNimType NTIjsonkinderror__GezlryuJLt9aOJ0RpuN6G8g_;
325 N_LIB_PRIVATE TNimType NTIrefjsonkinderror__tn3kJ9cInprO2X2FSPir4WQ_;
326 STRING_LITERAL(TM__nIinruGrC8EPIfjL3PuTvA_23, "invalid token", 13);
327 STRING_LITERAL(TM__nIinruGrC8EPIfjL3PuTvA_24, "EOF", 3);
328 STRING_LITERAL(TM__nIinruGrC8EPIfjL3PuTvA_25, "string literal", 14);
329 STRING_LITERAL(TM__nIinruGrC8EPIfjL3PuTvA_26, "int literal", 11);
330 STRING_LITERAL(TM__nIinruGrC8EPIfjL3PuTvA_27, "float literal", 13);
331 STRING_LITERAL(TM__nIinruGrC8EPIfjL3PuTvA_28, "{", 1);
332 STRING_LITERAL(TM__nIinruGrC8EPIfjL3PuTvA_29, "}", 1);
333 STRING_LITERAL(TM__nIinruGrC8EPIfjL3PuTvA_30, "[", 1);
334 STRING_LITERAL(TM__nIinruGrC8EPIfjL3PuTvA_31, "]", 1);
335 STRING_LITERAL(TM__nIinruGrC8EPIfjL3PuTvA_32, ":", 1);
336 STRING_LITERAL(TM__nIinruGrC8EPIfjL3PuTvA_33, ",", 1);
337 N_LIB_PRIVATE NIM_CONST tyArray__FkG8aLMyiZfDjueUwWl3WA tokToStr__pureZparsejson_78 = {((NimStringDesc*) &TM__nIinruGrC8EPIfjL3PuTvA_23),
338 ((NimStringDesc*) &TM__nIinruGrC8EPIfjL3PuTvA_24),
339 ((NimStringDesc*) &TM__nIinruGrC8EPIfjL3PuTvA_25),
340 ((NimStringDesc*) &TM__nIinruGrC8EPIfjL3PuTvA_26),
341 ((NimStringDesc*) &TM__nIinruGrC8EPIfjL3PuTvA_27),
342 ((NimStringDesc*) &TM__nIinruGrC8EPIfjL3PuTvA_19),
343 ((NimStringDesc*) &TM__nIinruGrC8EPIfjL3PuTvA_20),
344 ((NimStringDesc*) &TM__nIinruGrC8EPIfjL3PuTvA_18),
345 ((NimStringDesc*) &TM__nIinruGrC8EPIfjL3PuTvA_28),
346 ((NimStringDesc*) &TM__nIinruGrC8EPIfjL3PuTvA_29),
347 ((NimStringDesc*) &TM__nIinruGrC8EPIfjL3PuTvA_30),
348 ((NimStringDesc*) &TM__nIinruGrC8EPIfjL3PuTvA_31),
349 ((NimStringDesc*) &TM__nIinruGrC8EPIfjL3PuTvA_32),
350 ((NimStringDesc*) &TM__nIinruGrC8EPIfjL3PuTvA_33)}
351 ;
352 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5238;
N_NIMCALL(void,Marker_tySequence__Ih0V9cYug0VPJyBBGvgEH7Q)353 static N_NIMCALL(void, Marker_tySequence__Ih0V9cYug0VPJyBBGvgEH7Q)(void* p, NI op) {
354 	tySequence__Ih0V9cYug0VPJyBBGvgEH7Q* a;
355 	NI T1_;
356 	a = (tySequence__Ih0V9cYug0VPJyBBGvgEH7Q*)p;
357 	T1_ = (NI)0;
358 }
N_NIMCALL(void,open__pureZparsejson_97)359 N_LIB_PRIVATE N_NIMCALL(void, open__pureZparsejson_97)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my, tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* input, NimStringDesc* filename, NIM_BOOL rawStringLiterals) {
360 	open__pureZlexbase_122(&my->Sup, input, ((NI) 8192), TM__nIinruGrC8EPIfjL3PuTvA_15);
361 	unsureAsgnRef((void**) (&(*my).filename), copyString(filename));
362 	unsureAsgnRef((void**) (&(*my).state), (tySequence__Ih0V9cYug0VPJyBBGvgEH7Q*) newSeq((&NTIseqLparserstateT__Ih0V9cYug0VPJyBBGvgEH7Q_), 1));
363 	(*my).state->data[0] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 1);
364 	(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) 0);
365 	unsureAsgnRef((void**) (&(*my).a), ((NimStringDesc*) NIM_NIL));
366 	(*my).rawStringLiterals = rawStringLiterals;
367 }
N_NIMCALL(void,skip__pureZparsejson_324)368 N_LIB_PRIVATE N_NIMCALL(void, skip__pureZparsejson_324)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my) {
369 	NI pos;
370 	pos = (*my).Sup.bufpos;
371 	{
372 		while (1) {
373 			switch (((NU8)((*my).Sup.buf->data[pos]))) {
374 			case 47:
375 			{
376 				{
377 					if (!((NU8)((*my).Sup.buf->data[(NI)(pos + ((NI) 1))]) == (NU8)(47))) goto LA6_;
378 					pos += ((NI) 2);
379 					{
380 						while (1) {
381 							switch (((NU8)((*my).Sup.buf->data[pos]))) {
382 							case 0:
383 							{
384 								goto LA8;
385 							}
386 							break;
387 							case 13:
388 							{
389 								pos = handleCR__pureZlexbase_79(&my->Sup, pos);
390 								goto LA8;
391 							}
392 							break;
393 							case 10:
394 							{
395 								pos = handleLF__pureZlexbase_90(&my->Sup, pos);
396 								goto LA8;
397 							}
398 							break;
399 							default:
400 							{
401 								pos += ((NI) 1);
402 							}
403 							break;
404 							}
405 						}
406 					} LA8: ;
407 				}
408 				goto LA4_;
409 				LA6_: ;
410 				{
411 					if (!((NU8)((*my).Sup.buf->data[(NI)(pos + ((NI) 1))]) == (NU8)(42))) goto LA15_;
412 					pos += ((NI) 2);
413 					{
414 						while (1) {
415 							switch (((NU8)((*my).Sup.buf->data[pos]))) {
416 							case 0:
417 							{
418 								(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew) 8);
419 								goto LA17;
420 							}
421 							break;
422 							case 13:
423 							{
424 								pos = handleCR__pureZlexbase_79(&my->Sup, pos);
425 							}
426 							break;
427 							case 10:
428 							{
429 								pos = handleLF__pureZlexbase_90(&my->Sup, pos);
430 							}
431 							break;
432 							case 42:
433 							{
434 								pos += ((NI) 1);
435 								{
436 									if (!((NU8)((*my).Sup.buf->data[pos]) == (NU8)(47))) goto LA25_;
437 									pos += ((NI) 1);
438 									goto LA17;
439 								}
440 								LA25_: ;
441 							}
442 							break;
443 							default:
444 							{
445 								pos += ((NI) 1);
446 							}
447 							break;
448 							}
449 						}
450 					} LA17: ;
451 				}
452 				goto LA4_;
453 				LA15_: ;
454 				{
455 					goto LA1;
456 				}
457 				LA4_: ;
458 			}
459 			break;
460 			case 32:
461 			case 9:
462 			{
463 				pos += ((NI) 1);
464 			}
465 			break;
466 			case 13:
467 			{
468 				pos = handleCR__pureZlexbase_79(&my->Sup, pos);
469 			}
470 			break;
471 			case 10:
472 			{
473 				pos = handleLF__pureZlexbase_90(&my->Sup, pos);
474 			}
475 			break;
476 			default:
477 			{
478 				goto LA1;
479 			}
480 			break;
481 			}
482 		}
483 	} LA1: ;
484 	(*my).Sup.bufpos = pos;
485 }
N_INLINE(void,nimCopyMem)486 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
487 	void* T1_;
488 	T1_ = (void*)0;
489 	T1_ = memcpy(dest, source, ((size_t) (size)));
490 }
N_INLINE(void,copyMem__system_1727)491 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
492 	nimCopyMem(dest, source, size);
493 }
N_INLINE(void,appendString)494 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
495 	{
496 		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
497 		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
498 		(*dest).Sup.len += (*src).Sup.len;
499 	}
500 	LA3_: ;
501 }
N_NIMCALL(void,parseNumber__pureZparsejson_355)502 N_LIB_PRIVATE N_NIMCALL(void, parseNumber__pureZparsejson_355)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my) {
503 	NI pos;
504 	pos = (*my).Sup.bufpos;
505 	{
506 		if (!((NU8)((*my).Sup.buf->data[pos]) == (NU8)(45))) goto LA3_;
507 		unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, 45));
508 		pos += ((NI) 1);
509 	}
510 	LA3_: ;
511 	{
512 		if (!((NU8)((*my).Sup.buf->data[pos]) == (NU8)(46))) goto LA7_;
513 		unsureAsgnRef((void**) (&(*my).a), resizeString((*my).a, 2));
514 appendString((*my).a, ((NimStringDesc*) &TM__nIinruGrC8EPIfjL3PuTvA_16));
515 		pos += ((NI) 1);
516 	}
517 	goto LA5_;
518 	LA7_: ;
519 	{
520 		{
521 			while (1) {
522 				if (!(((NU8)((*my).Sup.buf->data[pos])) >= ((NU8)(48)) && ((NU8)((*my).Sup.buf->data[pos])) <= ((NU8)(57)))) goto LA11;
523 				unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, (*my).Sup.buf->data[pos]));
524 				pos += ((NI) 1);
525 			} LA11: ;
526 		}
527 		{
528 			if (!((NU8)((*my).Sup.buf->data[pos]) == (NU8)(46))) goto LA14_;
529 			unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, 46));
530 			pos += ((NI) 1);
531 		}
532 		LA14_: ;
533 	}
534 	LA5_: ;
535 	{
536 		while (1) {
537 			if (!(((NU8)((*my).Sup.buf->data[pos])) >= ((NU8)(48)) && ((NU8)((*my).Sup.buf->data[pos])) <= ((NU8)(57)))) goto LA17;
538 			unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, (*my).Sup.buf->data[pos]));
539 			pos += ((NI) 1);
540 		} LA17: ;
541 	}
542 	{
543 		if (!(((NU8)((*my).Sup.buf->data[pos])) == ((NU8)(69)) || ((NU8)((*my).Sup.buf->data[pos])) == ((NU8)(101)))) goto LA20_;
544 		unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, (*my).Sup.buf->data[pos]));
545 		pos += ((NI) 1);
546 		{
547 			if (!(((NU8)((*my).Sup.buf->data[pos])) == ((NU8)(43)) || ((NU8)((*my).Sup.buf->data[pos])) == ((NU8)(45)))) goto LA24_;
548 			unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, (*my).Sup.buf->data[pos]));
549 			pos += ((NI) 1);
550 		}
551 		LA24_: ;
552 		{
553 			while (1) {
554 				if (!(((NU8)((*my).Sup.buf->data[pos])) >= ((NU8)(48)) && ((NU8)((*my).Sup.buf->data[pos])) <= ((NU8)(57)))) goto LA27;
555 				unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, (*my).Sup.buf->data[pos]));
556 				pos += ((NI) 1);
557 			} LA27: ;
558 		}
559 	}
560 	LA20_: ;
561 	(*my).Sup.bufpos = pos;
562 }
N_INLINE(NIM_BOOL,handleHexChar__stdZprivateZdecode95helpers_1)563 static N_INLINE(NIM_BOOL, handleHexChar__stdZprivateZdecode95helpers_1)(NIM_CHAR c, NI* x) {
564 	NIM_BOOL result;
565 	result = (NIM_BOOL)0;
566 	result = NIM_TRUE;
567 	switch (((NU8)(c))) {
568 	case 48 ... 57:
569 	{
570 		(*x) = (NI)((NI)((NU32)((*x)) << (NU32)(((NI) 4))) | (NI)(((NU8)(c)) - ((NI) 48)));
571 	}
572 	break;
573 	case 97 ... 102:
574 	{
575 		(*x) = (NI)((NI)((NU32)((*x)) << (NU32)(((NI) 4))) | (NI)((NI)(((NU8)(c)) - ((NI) 97)) + ((NI) 10)));
576 	}
577 	break;
578 	case 65 ... 70:
579 	{
580 		(*x) = (NI)((NI)((NU32)((*x)) << (NU32)(((NI) 4))) | (NI)((NI)(((NU8)(c)) - ((NI) 65)) + ((NI) 10)));
581 	}
582 	break;
583 	default:
584 	{
585 		result = NIM_FALSE;
586 	}
587 	break;
588 	}
589 	return result;
590 }
N_NIMCALL(NI,parseEscapedUTF16__pureZparsejson_220)591 N_LIB_PRIVATE N_NIMCALL(NI, parseEscapedUTF16__pureZparsejson_220)(NCSTRING buf, NI* pos) {
592 	NI result;
593 {	result = (NI)0;
594 	result = ((NI) 0);
595 	{
596 		NI _;
597 		NI res;
598 		_ = (NI)0;
599 		res = ((NI) 0);
600 		{
601 			while (1) {
602 				if (!(res <= ((NI) 3))) goto LA3;
603 				_ = res;
604 				{
605 					NIM_BOOL T6_;
606 					T6_ = (NIM_BOOL)0;
607 					T6_ = handleHexChar__stdZprivateZdecode95helpers_1(buf[(*pos)], (&result));
608 					if (!T6_) goto LA7_;
609 					(*pos) += ((NI) 1);
610 				}
611 				goto LA4_;
612 				LA7_: ;
613 				{
614 					result = ((NI) -1);
615 					goto BeforeRet_;
616 				}
617 				LA4_: ;
618 				res += ((NI) 1);
619 			} LA3: ;
620 		}
621 	}
622 	}BeforeRet_: ;
623 	return result;
624 }
N_INLINE(NCSTRING,nimToCStringConv)625 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
626 	NCSTRING result;
627 	result = (NCSTRING)0;
628 	{
629 		NIM_BOOL T3_;
630 		T3_ = (NIM_BOOL)0;
631 		T3_ = (s == ((NimStringDesc*) NIM_NIL));
632 		if (T3_) goto LA4_;
633 		T3_ = ((*s).Sup.len == ((NI) 0));
634 		LA4_: ;
635 		if (!T3_) goto LA5_;
636 		result = "";
637 	}
638 	goto LA1_;
639 	LA5_: ;
640 	{
641 		result = ((NCSTRING) ((*s).data));
642 	}
643 	LA1_: ;
644 	return result;
645 }
N_NIMCALL(tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw,parseString__pureZparsejson_233)646 N_LIB_PRIVATE N_NIMCALL(tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw, parseString__pureZparsejson_233)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my) {
647 	tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw result;
648 	NI pos;
649 	result = (tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)0;
650 	result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 2);
651 	pos = (NI)((*my).Sup.bufpos + ((NI) 1));
652 	{
653 		if (!(*my).rawStringLiterals) goto LA3_;
654 		unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, 34));
655 	}
656 	LA3_: ;
657 	{
658 		while (1) {
659 			switch (((NU8)((*my).Sup.buf->data[pos]))) {
660 			case 0:
661 			{
662 				(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew) 7);
663 				result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 0);
664 				goto LA5;
665 			}
666 			break;
667 			case 34:
668 			{
669 				{
670 					if (!(*my).rawStringLiterals) goto LA11_;
671 					unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, 34));
672 				}
673 				LA11_: ;
674 				pos += ((NI) 1);
675 				goto LA5;
676 			}
677 			break;
678 			case 92:
679 			{
680 				{
681 					if (!(*my).rawStringLiterals) goto LA16_;
682 					unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, 92));
683 				}
684 				LA16_: ;
685 				switch (((NU8)((*my).Sup.buf->data[(NI)(pos + ((NI) 1))]))) {
686 				case 92:
687 				case 34:
688 				case 39:
689 				case 47:
690 				{
691 					unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, (*my).Sup.buf->data[(NI)(pos + ((NI) 1))]));
692 					pos += ((NI) 2);
693 				}
694 				break;
695 				case 98:
696 				{
697 					unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, 8));
698 					pos += ((NI) 2);
699 				}
700 				break;
701 				case 102:
702 				{
703 					unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, 12));
704 					pos += ((NI) 2);
705 				}
706 				break;
707 				case 110:
708 				{
709 					unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, 10));
710 					pos += ((NI) 2);
711 				}
712 				break;
713 				case 114:
714 				{
715 					unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, 13));
716 					pos += ((NI) 2);
717 				}
718 				break;
719 				case 116:
720 				{
721 					unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, 9));
722 					pos += ((NI) 2);
723 				}
724 				break;
725 				case 118:
726 				{
727 					unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, 11));
728 					pos += ((NI) 2);
729 				}
730 				break;
731 				case 117:
732 				{
733 					NI pos2;
734 					NI r;
735 					{
736 						if (!(*my).rawStringLiterals) goto LA28_;
737 						unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, 117));
738 					}
739 					LA28_: ;
740 					pos += ((NI) 2);
741 					pos2 = pos;
742 					r = parseEscapedUTF16__pureZparsejson_220(nimToCStringConv((*my).Sup.buf), (&pos));
743 					{
744 						if (!(r < ((NI) 0))) goto LA32_;
745 						(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew) 1);
746 						goto LA5;
747 					}
748 					LA32_: ;
749 					{
750 						NI s;
751 						if (!((NI)(r & ((NI) 64512)) == ((NI) 55296))) goto LA36_;
752 						{
753 							NIM_BOOL T40_;
754 							T40_ = (NIM_BOOL)0;
755 							T40_ = !(((NU8)((*my).Sup.buf->data[pos]) == (NU8)(92)));
756 							if (T40_) goto LA41_;
757 							T40_ = !(((NU8)((*my).Sup.buf->data[(NI)(pos + ((NI) 1))]) == (NU8)(117)));
758 							LA41_: ;
759 							if (!T40_) goto LA42_;
760 							(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew) 1);
761 							goto LA5;
762 						}
763 						LA42_: ;
764 						pos += ((NI) 2);
765 						s = parseEscapedUTF16__pureZparsejson_220(nimToCStringConv((*my).Sup.buf), (&pos));
766 						{
767 							NIM_BOOL T46_;
768 							T46_ = (NIM_BOOL)0;
769 							T46_ = ((NI)(s & ((NI) 64512)) == ((NI) 56320));
770 							if (!(T46_)) goto LA47_;
771 							T46_ = (((NI) 0) < s);
772 							LA47_: ;
773 							if (!T46_) goto LA48_;
774 							r = (NI)(((NI) 65536) + (NI)((NI)((NU32)((NI)(r - ((NI) 55296))) << (NU32)(((NI) 10))) | (NI)(s - ((NI) 56320))));
775 						}
776 						goto LA44_;
777 						LA48_: ;
778 						{
779 							(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew) 1);
780 							goto LA5;
781 						}
782 						LA44_: ;
783 					}
784 					LA36_: ;
785 					{
786 						NI length;
787 						if (!(*my).rawStringLiterals) goto LA53_;
788 						length = (NI)(pos - pos2);
789 						{
790 							NI i;
791 							NI res;
792 							i = (NI)0;
793 							res = ((NI) 1);
794 							{
795 								while (1) {
796 									if (!(res <= length)) goto LA57;
797 									i = res;
798 									{
799 										if (!(((NU8)((*my).Sup.buf->data[pos2])) >= ((NU8)(48)) && ((NU8)((*my).Sup.buf->data[pos2])) <= ((NU8)(57)) || ((NU8)((*my).Sup.buf->data[pos2])) >= ((NU8)(65)) && ((NU8)((*my).Sup.buf->data[pos2])) <= ((NU8)(70)) || ((NU8)((*my).Sup.buf->data[pos2])) >= ((NU8)(97)) && ((NU8)((*my).Sup.buf->data[pos2])) <= ((NU8)(102)))) goto LA60_;
800 										unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, (*my).Sup.buf->data[pos2]));
801 										pos2 += ((NI) 1);
802 									}
803 									goto LA58_;
804 									LA60_: ;
805 									{
806 										goto LA55;
807 									}
808 									LA58_: ;
809 									res += ((NI) 1);
810 								} LA57: ;
811 							}
812 						} LA55: ;
813 					}
814 					goto LA51_;
815 					LA53_: ;
816 					{
817 						NimStringDesc* T64_;
818 						T64_ = NIM_NIL;
819 						T64_ = nuctoUTF8(((NI32) (r)));
820 						unsureAsgnRef((void**) (&(*my).a), resizeString((*my).a, (T64_ ? T64_->Sup.len : 0) + 0));
821 appendString((*my).a, T64_);
822 					}
823 					LA51_: ;
824 				}
825 				break;
826 				default:
827 				{
828 					unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, (*my).Sup.buf->data[pos]));
829 					pos += ((NI) 1);
830 				}
831 				break;
832 				}
833 			}
834 			break;
835 			case 13:
836 			{
837 				pos = handleCR__pureZlexbase_79(&my->Sup, pos);
838 				unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, 13));
839 			}
840 			break;
841 			case 10:
842 			{
843 				pos = handleLF__pureZlexbase_90(&my->Sup, pos);
844 				unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, 10));
845 			}
846 			break;
847 			default:
848 			{
849 				unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, (*my).Sup.buf->data[pos]));
850 				pos += ((NI) 1);
851 			}
852 			break;
853 			}
854 		}
855 	} LA5: ;
856 	(*my).Sup.bufpos = pos;
857 	return result;
858 }
N_NIMCALL(void,parseName__pureZparsejson_410)859 N_LIB_PRIVATE N_NIMCALL(void, parseName__pureZparsejson_410)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my) {
860 	NI pos;
861 	pos = (*my).Sup.bufpos;
862 	{
863 		if (!(((NU8)((*my).Sup.buf->data[pos])) >= ((NU8)(97)) && ((NU8)((*my).Sup.buf->data[pos])) <= ((NU8)(122)) || ((NU8)((*my).Sup.buf->data[pos])) >= ((NU8)(65)) && ((NU8)((*my).Sup.buf->data[pos])) <= ((NU8)(90)) || ((NU8)((*my).Sup.buf->data[pos])) == ((NU8)(95)))) goto LA3_;
864 		{
865 			while (1) {
866 				if (!(((NU8)((*my).Sup.buf->data[pos])) >= ((NU8)(97)) && ((NU8)((*my).Sup.buf->data[pos])) <= ((NU8)(122)) || ((NU8)((*my).Sup.buf->data[pos])) >= ((NU8)(65)) && ((NU8)((*my).Sup.buf->data[pos])) <= ((NU8)(90)) || ((NU8)((*my).Sup.buf->data[pos])) >= ((NU8)(48)) && ((NU8)((*my).Sup.buf->data[pos])) <= ((NU8)(57)) || ((NU8)((*my).Sup.buf->data[pos])) == ((NU8)(95)))) goto LA6;
867 				unsureAsgnRef((void**) (&(*my).a), addChar((*my).a, (*my).Sup.buf->data[pos]));
868 				pos += ((NI) 1);
869 			} LA6: ;
870 		}
871 	}
872 	LA3_: ;
873 	(*my).Sup.bufpos = pos;
874 }
N_INLINE(int,nimCmpMem)875 static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
876 	int result;
877 	result = (int)0;
878 	result = memcmp(a, b, ((size_t) (size)));
879 	return result;
880 }
N_INLINE(NIM_BOOL,equalMem__system_1735)881 static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size) {
882 	NIM_BOOL result;
883 	int T1_;
884 	result = (NIM_BOOL)0;
885 	T1_ = (int)0;
886 	T1_ = nimCmpMem(a, b, size);
887 	result = (T1_ == ((NI32) 0));
888 	return result;
889 }
N_INLINE(NIM_BOOL,eqStrings)890 static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
891 	NIM_BOOL result;
892 	NI alen;
893 	NI blen;
894 {	result = (NIM_BOOL)0;
895 	alen = (a ? a->Sup.len : 0);
896 	blen = (b ? b->Sup.len : 0);
897 	{
898 		if (!(alen == blen)) goto LA3_;
899 		{
900 			if (!(alen == ((NI) 0))) goto LA7_;
901 			result = NIM_TRUE;
902 			goto BeforeRet_;
903 		}
904 		LA7_: ;
905 		result = equalMem__system_1735(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
906 		goto BeforeRet_;
907 	}
908 	LA3_: ;
909 	}BeforeRet_: ;
910 	return result;
911 }
N_NIMCALL(tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw,getTok__pureZparsejson_425)912 N_LIB_PRIVATE N_NIMCALL(tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw, getTok__pureZparsejson_425)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my) {
913 	tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw result;
914 	result = (tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)0;
915 	unsureAsgnRef((void**) (&(*my).a), setLengthStr((*my).a, ((NI) 0)));
916 	skip__pureZparsejson_324(my);
917 	switch (((NU8)((*my).Sup.buf->data[(*my).Sup.bufpos]))) {
918 	case 45:
919 	case 46:
920 	case 48 ... 57:
921 	{
922 		parseNumber__pureZparsejson_355(my);
923 		{
924 			NIM_BOOL T4_;
925 			T4_ = (NIM_BOOL)0;
926 			T4_ = contains__pureZstrutils_1635((*my).a, TM__nIinruGrC8EPIfjL3PuTvA_17);
927 			if (!T4_) goto LA5_;
928 			result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 4);
929 		}
930 		goto LA2_;
931 		LA5_: ;
932 		{
933 			result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 3);
934 		}
935 		LA2_: ;
936 	}
937 	break;
938 	case 34:
939 	{
940 		result = parseString__pureZparsejson_233(my);
941 	}
942 	break;
943 	case 91:
944 	{
945 		(*my).Sup.bufpos += ((NI) 1);
946 		result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 10);
947 	}
948 	break;
949 	case 123:
950 	{
951 		(*my).Sup.bufpos += ((NI) 1);
952 		result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 8);
953 	}
954 	break;
955 	case 93:
956 	{
957 		(*my).Sup.bufpos += ((NI) 1);
958 		result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 11);
959 	}
960 	break;
961 	case 125:
962 	{
963 		(*my).Sup.bufpos += ((NI) 1);
964 		result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 9);
965 	}
966 	break;
967 	case 44:
968 	{
969 		(*my).Sup.bufpos += ((NI) 1);
970 		result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 13);
971 	}
972 	break;
973 	case 58:
974 	{
975 		(*my).Sup.bufpos += ((NI) 1);
976 		result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 12);
977 	}
978 	break;
979 	case 0:
980 	{
981 		result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 1);
982 	}
983 	break;
984 	case 97 ... 122:
985 	case 65 ... 90:
986 	case 95:
987 	{
988 		parseName__pureZparsejson_410(my);
989 		if (eqStrings((*my).a, ((NimStringDesc*) &TM__nIinruGrC8EPIfjL3PuTvA_18))) goto LA17_;
990 		if (eqStrings((*my).a, ((NimStringDesc*) &TM__nIinruGrC8EPIfjL3PuTvA_19))) goto LA18_;
991 		if (eqStrings((*my).a, ((NimStringDesc*) &TM__nIinruGrC8EPIfjL3PuTvA_20))) goto LA19_;
992 		goto LA20_;
993 		LA17_: ;
994 		{
995 			result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 7);
996 		}
997 		goto LA21_;
998 		LA18_: ;
999 		{
1000 			result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 5);
1001 		}
1002 		goto LA21_;
1003 		LA19_: ;
1004 		{
1005 			result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 6);
1006 		}
1007 		goto LA21_;
1008 		LA20_: ;
1009 		{
1010 			result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 0);
1011 		}
1012 		LA21_: ;
1013 	}
1014 	break;
1015 	default:
1016 	{
1017 		(*my).Sup.bufpos += ((NI) 1);
1018 		result = ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 0);
1019 	}
1020 	break;
1021 	}
1022 	(*my).tok = result;
1023 	return result;
1024 }
N_INLINE(tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ,pop__pureZparsejson_504)1025 static N_INLINE(tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ, pop__pureZparsejson_504)(tySequence__Ih0V9cYug0VPJyBBGvgEH7Q** s) {
1026 	tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ result;
1027 	NI L;
1028 	NI T1_;
1029 	result = (tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)0;
1030 	T1_ = ((*s) ? (*s)->Sup.len : 0);
1031 	L = (NI)(T1_ - ((NI) 1));
1032 	result = (*s)->data[L];
1033 	unsureAsgnRef((void**) (&(*s)), (tySequence__Ih0V9cYug0VPJyBBGvgEH7Q*) setLengthSeqV2(&((*s))->Sup, (&NTIseqLparserstateT__Ih0V9cYug0VPJyBBGvgEH7Q_), ((NI) (L))));
1034 	return result;
1035 }
N_NIMCALL(void,next__pureZparsejson_456)1036 N_LIB_PRIVATE N_NIMCALL(void, next__pureZparsejson_456)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my) {
1037 	tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw tk;
1038 	NI i;
1039 	NI T1_;
1040 	tk = getTok__pureZparsejson_425(my);
1041 	T1_ = ((*my).state ? (*my).state->Sup.len : 0);
1042 	i = (NI)(T1_ - ((NI) 1));
1043 	switch ((*my).state->data[i]) {
1044 	case ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 0):
1045 	{
1046 		{
1047 			if (!(tk == ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 1))) goto LA5_;
1048 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) 1);
1049 		}
1050 		goto LA3_;
1051 		LA5_: ;
1052 		{
1053 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) 0);
1054 			(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew) 9);
1055 		}
1056 		LA3_: ;
1057 	}
1058 	break;
1059 	case ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 1):
1060 	{
1061 		switch (tk) {
1062 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 2):
1063 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 3):
1064 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 4):
1065 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 5):
1066 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 6):
1067 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 7):
1068 		{
1069 			(*my).state->data[i] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 0);
1070 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) (tk));
1071 		}
1072 		break;
1073 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 10):
1074 		{
1075 			NI T11_;
1076 			unsureAsgnRef((void**) (&(*my).state), (tySequence__Ih0V9cYug0VPJyBBGvgEH7Q*) incrSeqV3((TGenericSeq*)((*my).state), (&NTIseqLparserstateT__Ih0V9cYug0VPJyBBGvgEH7Q_)));
1077 			T11_ = (*my).state->Sup.len++;
1078 			(*my).state->data[T11_] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 3);
1079 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) 10);
1080 		}
1081 		break;
1082 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 8):
1083 		{
1084 			NI T13_;
1085 			unsureAsgnRef((void**) (&(*my).state), (tySequence__Ih0V9cYug0VPJyBBGvgEH7Q*) incrSeqV3((TGenericSeq*)((*my).state), (&NTIseqLparserstateT__Ih0V9cYug0VPJyBBGvgEH7Q_)));
1086 			T13_ = (*my).state->Sup.len++;
1087 			(*my).state->data[T13_] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 2);
1088 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) 8);
1089 		}
1090 		break;
1091 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 1):
1092 		{
1093 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) 1);
1094 		}
1095 		break;
1096 		default:
1097 		{
1098 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) 0);
1099 			(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew) 9);
1100 		}
1101 		break;
1102 		}
1103 	}
1104 	break;
1105 	case ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 2):
1106 	{
1107 		switch (tk) {
1108 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 2):
1109 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 3):
1110 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 4):
1111 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 5):
1112 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 6):
1113 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 7):
1114 		{
1115 			NI T18_;
1116 			unsureAsgnRef((void**) (&(*my).state), (tySequence__Ih0V9cYug0VPJyBBGvgEH7Q*) incrSeqV3((TGenericSeq*)((*my).state), (&NTIseqLparserstateT__Ih0V9cYug0VPJyBBGvgEH7Q_)));
1117 			T18_ = (*my).state->Sup.len++;
1118 			(*my).state->data[T18_] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 6);
1119 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) (tk));
1120 		}
1121 		break;
1122 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 10):
1123 		{
1124 			NI T20_;
1125 			NI T21_;
1126 			unsureAsgnRef((void**) (&(*my).state), (tySequence__Ih0V9cYug0VPJyBBGvgEH7Q*) incrSeqV3((TGenericSeq*)((*my).state), (&NTIseqLparserstateT__Ih0V9cYug0VPJyBBGvgEH7Q_)));
1127 			T20_ = (*my).state->Sup.len++;
1128 			(*my).state->data[T20_] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 6);
1129 			unsureAsgnRef((void**) (&(*my).state), (tySequence__Ih0V9cYug0VPJyBBGvgEH7Q*) incrSeqV3((TGenericSeq*)((*my).state), (&NTIseqLparserstateT__Ih0V9cYug0VPJyBBGvgEH7Q_)));
1130 			T21_ = (*my).state->Sup.len++;
1131 			(*my).state->data[T21_] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 3);
1132 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) 10);
1133 		}
1134 		break;
1135 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 8):
1136 		{
1137 			NI T23_;
1138 			NI T24_;
1139 			unsureAsgnRef((void**) (&(*my).state), (tySequence__Ih0V9cYug0VPJyBBGvgEH7Q*) incrSeqV3((TGenericSeq*)((*my).state), (&NTIseqLparserstateT__Ih0V9cYug0VPJyBBGvgEH7Q_)));
1140 			T23_ = (*my).state->Sup.len++;
1141 			(*my).state->data[T23_] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 6);
1142 			unsureAsgnRef((void**) (&(*my).state), (tySequence__Ih0V9cYug0VPJyBBGvgEH7Q*) incrSeqV3((TGenericSeq*)((*my).state), (&NTIseqLparserstateT__Ih0V9cYug0VPJyBBGvgEH7Q_)));
1143 			T24_ = (*my).state->Sup.len++;
1144 			(*my).state->data[T24_] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 2);
1145 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) 8);
1146 		}
1147 		break;
1148 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 9):
1149 		{
1150 			tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ T26_;
1151 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) 9);
1152 			T26_ = (tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)0;
1153 			T26_ = pop__pureZparsejson_504((&(*my).state));
1154 			(void)(T26_);
1155 		}
1156 		break;
1157 		default:
1158 		{
1159 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) 0);
1160 			(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew) 6);
1161 		}
1162 		break;
1163 		}
1164 	}
1165 	break;
1166 	case ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 3):
1167 	{
1168 		switch (tk) {
1169 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 2):
1170 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 3):
1171 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 4):
1172 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 5):
1173 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 6):
1174 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 7):
1175 		{
1176 			NI T30_;
1177 			unsureAsgnRef((void**) (&(*my).state), (tySequence__Ih0V9cYug0VPJyBBGvgEH7Q*) incrSeqV3((TGenericSeq*)((*my).state), (&NTIseqLparserstateT__Ih0V9cYug0VPJyBBGvgEH7Q_)));
1178 			T30_ = (*my).state->Sup.len++;
1179 			(*my).state->data[T30_] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 4);
1180 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) (tk));
1181 		}
1182 		break;
1183 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 10):
1184 		{
1185 			NI T32_;
1186 			NI T33_;
1187 			unsureAsgnRef((void**) (&(*my).state), (tySequence__Ih0V9cYug0VPJyBBGvgEH7Q*) incrSeqV3((TGenericSeq*)((*my).state), (&NTIseqLparserstateT__Ih0V9cYug0VPJyBBGvgEH7Q_)));
1188 			T32_ = (*my).state->Sup.len++;
1189 			(*my).state->data[T32_] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 4);
1190 			unsureAsgnRef((void**) (&(*my).state), (tySequence__Ih0V9cYug0VPJyBBGvgEH7Q*) incrSeqV3((TGenericSeq*)((*my).state), (&NTIseqLparserstateT__Ih0V9cYug0VPJyBBGvgEH7Q_)));
1191 			T33_ = (*my).state->Sup.len++;
1192 			(*my).state->data[T33_] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 3);
1193 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) 10);
1194 		}
1195 		break;
1196 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 8):
1197 		{
1198 			NI T35_;
1199 			NI T36_;
1200 			unsureAsgnRef((void**) (&(*my).state), (tySequence__Ih0V9cYug0VPJyBBGvgEH7Q*) incrSeqV3((TGenericSeq*)((*my).state), (&NTIseqLparserstateT__Ih0V9cYug0VPJyBBGvgEH7Q_)));
1201 			T35_ = (*my).state->Sup.len++;
1202 			(*my).state->data[T35_] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 4);
1203 			unsureAsgnRef((void**) (&(*my).state), (tySequence__Ih0V9cYug0VPJyBBGvgEH7Q*) incrSeqV3((TGenericSeq*)((*my).state), (&NTIseqLparserstateT__Ih0V9cYug0VPJyBBGvgEH7Q_)));
1204 			T36_ = (*my).state->Sup.len++;
1205 			(*my).state->data[T36_] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 2);
1206 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) 8);
1207 		}
1208 		break;
1209 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 11):
1210 		{
1211 			tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ T38_;
1212 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) 11);
1213 			T38_ = (tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)0;
1214 			T38_ = pop__pureZparsejson_504((&(*my).state));
1215 			(void)(T38_);
1216 		}
1217 		break;
1218 		default:
1219 		{
1220 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) 0);
1221 			(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew) 5);
1222 		}
1223 		break;
1224 		}
1225 	}
1226 	break;
1227 	case ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 4):
1228 	{
1229 		switch (tk) {
1230 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 13):
1231 		{
1232 			tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ T42_;
1233 			T42_ = (tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)0;
1234 			T42_ = pop__pureZparsejson_504((&(*my).state));
1235 			(void)(T42_);
1236 			next__pureZparsejson_456(my);
1237 		}
1238 		break;
1239 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 11):
1240 		{
1241 			tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ T44_;
1242 			tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ T45_;
1243 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) 11);
1244 			T44_ = (tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)0;
1245 			T44_ = pop__pureZparsejson_504((&(*my).state));
1246 			(void)(T44_);
1247 			T45_ = (tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)0;
1248 			T45_ = pop__pureZparsejson_504((&(*my).state));
1249 			(void)(T45_);
1250 		}
1251 		break;
1252 		default:
1253 		{
1254 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) 0);
1255 			(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew) 5);
1256 		}
1257 		break;
1258 		}
1259 	}
1260 	break;
1261 	case ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 5):
1262 	{
1263 		switch (tk) {
1264 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 13):
1265 		{
1266 			tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ T49_;
1267 			T49_ = (tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)0;
1268 			T49_ = pop__pureZparsejson_504((&(*my).state));
1269 			(void)(T49_);
1270 			next__pureZparsejson_456(my);
1271 		}
1272 		break;
1273 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 9):
1274 		{
1275 			tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ T51_;
1276 			tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ T52_;
1277 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) 9);
1278 			T51_ = (tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)0;
1279 			T51_ = pop__pureZparsejson_504((&(*my).state));
1280 			(void)(T51_);
1281 			T52_ = (tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ)0;
1282 			T52_ = pop__pureZparsejson_504((&(*my).state));
1283 			(void)(T52_);
1284 		}
1285 		break;
1286 		default:
1287 		{
1288 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) 0);
1289 			(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew) 6);
1290 		}
1291 		break;
1292 		}
1293 	}
1294 	break;
1295 	case ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 6):
1296 	{
1297 		switch (tk) {
1298 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 12):
1299 		{
1300 			(*my).state->data[i] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 7);
1301 			next__pureZparsejson_456(my);
1302 		}
1303 		break;
1304 		default:
1305 		{
1306 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) 0);
1307 			(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew) 3);
1308 		}
1309 		break;
1310 		}
1311 	}
1312 	break;
1313 	case ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 7):
1314 	{
1315 		switch (tk) {
1316 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 2):
1317 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 3):
1318 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 4):
1319 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 5):
1320 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 6):
1321 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 7):
1322 		{
1323 			(*my).state->data[i] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 5);
1324 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) (tk));
1325 		}
1326 		break;
1327 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 10):
1328 		{
1329 			NI T60_;
1330 			(*my).state->data[i] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 5);
1331 			unsureAsgnRef((void**) (&(*my).state), (tySequence__Ih0V9cYug0VPJyBBGvgEH7Q*) incrSeqV3((TGenericSeq*)((*my).state), (&NTIseqLparserstateT__Ih0V9cYug0VPJyBBGvgEH7Q_)));
1332 			T60_ = (*my).state->Sup.len++;
1333 			(*my).state->data[T60_] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 3);
1334 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) 10);
1335 		}
1336 		break;
1337 		case ((tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw) 8):
1338 		{
1339 			NI T62_;
1340 			(*my).state->data[i] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 5);
1341 			unsureAsgnRef((void**) (&(*my).state), (tySequence__Ih0V9cYug0VPJyBBGvgEH7Q*) incrSeqV3((TGenericSeq*)((*my).state), (&NTIseqLparserstateT__Ih0V9cYug0VPJyBBGvgEH7Q_)));
1342 			T62_ = (*my).state->Sup.len++;
1343 			(*my).state->data[T62_] = ((tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ) 2);
1344 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) 8);
1345 		}
1346 		break;
1347 		default:
1348 		{
1349 			(*my).kind = ((tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA) 0);
1350 			(*my).err = ((tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew) 10);
1351 		}
1352 		break;
1353 		}
1354 	}
1355 	break;
1356 	}
1357 }
N_NIMCALL(void,Marker_tyRef__PyuSdojUZWOAnzN7dInq1Q)1358 static N_NIMCALL(void, Marker_tyRef__PyuSdojUZWOAnzN7dInq1Q)(void* p, NI op) {
1359 	tyObject_JsonParsingError__XTejXaID1NT7KS9byQm3Jxg* a;
1360 	a = (tyObject_JsonParsingError__XTejXaID1NT7KS9byQm3Jxg*)p;
1361 	nimGCvisit((void*)(*a).Sup.Sup.Sup.parent, op);
1362 	nimGCvisit((void*)(*a).Sup.Sup.Sup.message, op);
1363 	nimGCvisit((void*)(*a).Sup.Sup.Sup.trace, op);
1364 	nimGCvisit((void*)(*a).Sup.Sup.Sup.up, op);
1365 }
N_INLINE(void,nimSetMem__systemZmemory_7)1366 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
1367 	void* T1_;
1368 	T1_ = (void*)0;
1369 	T1_ = memset(a, v, ((size_t) (size)));
1370 }
N_INLINE(void,nimZeroMem)1371 static N_INLINE(void, nimZeroMem)(void* p, NI size) {
1372 	nimSetMem__systemZmemory_7(p, ((int) 0), size);
1373 }
N_INLINE(NI,getLine__pureZparsejson_200)1374 static N_INLINE(NI, getLine__pureZparsejson_200)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my) {
1375 	NI result;
1376 	result = (NI)0;
1377 	result = (*my).Sup.lineNumber;
1378 	return result;
1379 }
N_INLINE(NI,getColumn__pureZparsejson_188)1380 static N_INLINE(NI, getColumn__pureZparsejson_188)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my) {
1381 	NI result;
1382 	result = (NI)0;
1383 	result = getColNumber__pureZlexbase_137((&(*my).Sup), (*my).Sup.bufpos);
1384 	return result;
1385 }
N_NIMCALL(NimStringDesc *,errorMsgExpected__pureZparsejson_216)1386 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, errorMsgExpected__pureZparsejson_216)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* my, NimStringDesc* e) {
1387 	NimStringDesc* result;
1388 	tyArray__sMpvt1sOxOJ3LFGulnbeMQ T1_;
1389 	NI T2_;
1390 	NI T3_;
1391 	NimStringDesc* T4_;
1392 	result = NIM_NIL;
1393 	nimZeroMem((void*)T1_, sizeof(tyArray__sMpvt1sOxOJ3LFGulnbeMQ));
1394 	T1_[0] = copyString((*my).filename);
1395 	T2_ = (NI)0;
1396 	T2_ = getLine__pureZparsejson_200(my);
1397 	T1_[1] = dollar___systemZdollars_3(T2_);
1398 	T3_ = (NI)0;
1399 	T3_ = getColumn__pureZparsejson_188(my);
1400 	T1_[2] = dollar___systemZdollars_3(T3_);
1401 	T4_ = NIM_NIL;
1402 	T4_ = rawNewString((e ? e->Sup.len : 0) + 9);
1403 appendString(T4_, e);
1404 appendString(T4_, ((NimStringDesc*) &TM__nIinruGrC8EPIfjL3PuTvA_22));
1405 	T1_[3] = T4_;
1406 	result = nsuFormatOpenArray(((NimStringDesc*) &TM__nIinruGrC8EPIfjL3PuTvA_21), T1_, 4);
1407 	return result;
1408 }
N_INLINE(NI,pluspercent___system_696)1409 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
1410 	NI result;
1411 	result = (NI)0;
1412 	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
1413 	return result;
1414 }
N_INLINE(void,incRef__system_5329)1415 static N_INLINE(void, incRef__system_5329)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
1416 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
1417 }
N_INLINE(NI,minuspercent___system_716)1418 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
1419 	NI result;
1420 	result = (NI)0;
1421 	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
1422 	return result;
1423 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5291)1424 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5291)(void* usr) {
1425 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
1426 	NI T1_;
1427 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
1428 	T1_ = (NI)0;
1429 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
1430 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
1431 	return result;
1432 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)1433 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
1434 	NIM_BOOL result;
1435 	result = (NIM_BOOL)0;
1436 	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
1437 	return result;
1438 }
N_INLINE(void,rtlAddZCT__system_5334)1439 static N_INLINE(void, rtlAddZCT__system_5334)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
1440 	addZCT__system_5285((&gch__system_5238.zct), c);
1441 }
N_INLINE(void,decRef__system_5336)1442 static N_INLINE(void, decRef__system_5336)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
1443 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
1444 	{
1445 		NIM_BOOL T3_;
1446 		T3_ = (NIM_BOOL)0;
1447 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
1448 		if (!T3_) goto LA4_;
1449 		rtlAddZCT__system_5334(c);
1450 	}
1451 	LA4_: ;
1452 }
N_INLINE(void,asgnRef)1453 static N_INLINE(void, asgnRef)(void** dest, void* src) {
1454 	{
1455 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
1456 		if (!!((src == NIM_NIL))) goto LA3_;
1457 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
1458 		T5_ = usrToCell__system_5291(src);
1459 		incRef__system_5329(T5_);
1460 	}
1461 	LA3_: ;
1462 	{
1463 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
1464 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
1465 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
1466 		T10_ = usrToCell__system_5291((*dest));
1467 		decRef__system_5336(T10_);
1468 	}
1469 	LA8_: ;
1470 	(*dest) = src;
1471 }
N_NOINLINE(void,raiseParseErr__pureZparsejson_580)1472 N_LIB_PRIVATE N_NOINLINE(void, raiseParseErr__pureZparsejson_580)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* p, NimStringDesc* msg) {
1473 	tyObject_JsonParsingError__XTejXaID1NT7KS9byQm3Jxg* T1_;
1474 	T1_ = NIM_NIL;
1475 	T1_ = (tyObject_JsonParsingError__XTejXaID1NT7KS9byQm3Jxg*) newObj((&NTIrefjsonparsingerror__PyuSdojUZWOAnzN7dInq1Q_), sizeof(tyObject_JsonParsingError__XTejXaID1NT7KS9byQm3Jxg));
1476 	(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIjsonparsingerror__XTejXaID1NT7KS9byQm3Jxg_);
1477 	(*T1_).Sup.Sup.Sup.name = "JsonParsingError";
1478 	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.message), errorMsgExpected__pureZparsejson_216(p, msg));
1479 	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.parent), ((Exception*) NIM_NIL));
1480 	raiseExceptionEx((Exception*)T1_, "JsonParsingError", "raiseParseErr", "parsejson.nim", 515);
1481 }
N_NIMCALL(void,Marker_tyRef__tn3kJ9cInprO2X2FSPir4WQ)1482 static N_NIMCALL(void, Marker_tyRef__tn3kJ9cInprO2X2FSPir4WQ)(void* p, NI op) {
1483 	tyObject_JsonKindError__GezlryuJLt9aOJ0RpuN6G8g* a;
1484 	a = (tyObject_JsonKindError__GezlryuJLt9aOJ0RpuN6G8g*)p;
1485 	nimGCvisit((void*)(*a).Sup.Sup.Sup.parent, op);
1486 	nimGCvisit((void*)(*a).Sup.Sup.Sup.message, op);
1487 	nimGCvisit((void*)(*a).Sup.Sup.Sup.trace, op);
1488 	nimGCvisit((void*)(*a).Sup.Sup.Sup.up, op);
1489 }
N_NIMCALL(void,eat__pureZparsejson_602)1490 N_LIB_PRIVATE N_NIMCALL(void, eat__pureZparsejson_602)(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ* p, tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw tok) {
1491 	{
1492 		tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw T5_;
1493 		if (!((*p).tok == tok)) goto LA3_;
1494 		T5_ = (tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw)0;
1495 		T5_ = getTok__pureZparsejson_425(p);
1496 		(void)(T5_);
1497 	}
1498 	goto LA1_;
1499 	LA3_: ;
1500 	{
1501 		raiseParseErr__pureZparsejson_580((&(*p)), tokToStr__pureZparsejson_78[(tok)- 0]);
1502 	}
1503 	LA1_: ;
1504 }
N_NIMCALL(void,stdlib_parsejsonDatInit000)1505 N_LIB_PRIVATE N_NIMCALL(void, stdlib_parsejsonDatInit000)(void) {
1506 static TNimNode* TM__nIinruGrC8EPIfjL3PuTvA_2_7[7];
1507 static TNimNode* TM__nIinruGrC8EPIfjL3PuTvA_3_14[14];
1508 NI TM__nIinruGrC8EPIfjL3PuTvA_5;
1509 static char* NIM_CONST TM__nIinruGrC8EPIfjL3PuTvA_4[14] = {
1510 "tkError",
1511 "tkEof",
1512 "tkString",
1513 "tkInt",
1514 "tkFloat",
1515 "tkTrue",
1516 "tkFalse",
1517 "tkNull",
1518 "tkCurlyLe",
1519 "tkCurlyRi",
1520 "tkBracketLe",
1521 "tkBracketRi",
1522 "tkColon",
1523 "tkComma"};
1524 static TNimNode* TM__nIinruGrC8EPIfjL3PuTvA_6_12[12];
1525 NI TM__nIinruGrC8EPIfjL3PuTvA_8;
1526 static char* NIM_CONST TM__nIinruGrC8EPIfjL3PuTvA_7[12] = {
1527 "jsonError",
1528 "jsonEof",
1529 "jsonString",
1530 "jsonInt",
1531 "jsonFloat",
1532 "jsonTrue",
1533 "jsonFalse",
1534 "jsonNull",
1535 "jsonObjectStart",
1536 "jsonObjectEnd",
1537 "jsonArrayStart",
1538 "jsonArrayEnd"};
1539 static TNimNode* TM__nIinruGrC8EPIfjL3PuTvA_9_11[11];
1540 NI TM__nIinruGrC8EPIfjL3PuTvA_11;
1541 static char* NIM_CONST TM__nIinruGrC8EPIfjL3PuTvA_10[11] = {
1542 "errNone",
1543 "errInvalidToken",
1544 "errStringExpected",
1545 "errColonExpected",
1546 "errCommaExpected",
1547 "errBracketRiExpected",
1548 "errCurlyRiExpected",
1549 "errQuoteExpected",
1550 "errEOC_Expected",
1551 "errEofExpected",
1552 "errExprExpected"};
1553 static TNimNode* TM__nIinruGrC8EPIfjL3PuTvA_12_8[8];
1554 NI TM__nIinruGrC8EPIfjL3PuTvA_14;
1555 static char* NIM_CONST TM__nIinruGrC8EPIfjL3PuTvA_13[8] = {
1556 "stateEof",
1557 "stateStart",
1558 "stateObject",
1559 "stateArray",
1560 "stateExpectArrayComma",
1561 "stateExpectObjectComma",
1562 "stateExpectColon",
1563 "stateExpectValue"};
1564 static TNimNode TM__nIinruGrC8EPIfjL3PuTvA_0[59];
1565 NTIjsonparser__KWIQnzXEOUqdWsnCUL9atyQ_.size = sizeof(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ);
1566 NTIjsonparser__KWIQnzXEOUqdWsnCUL9atyQ_.align = NIM_ALIGNOF(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ);
1567 NTIjsonparser__KWIQnzXEOUqdWsnCUL9atyQ_.kind = 17;
1568 NTIjsonparser__KWIQnzXEOUqdWsnCUL9atyQ_.base = (&NTIbaselexer__MAw8rJZtJ279bVV3TWMtXSg_);
1569 TM__nIinruGrC8EPIfjL3PuTvA_2_7[0] = &TM__nIinruGrC8EPIfjL3PuTvA_0[1];
1570 TM__nIinruGrC8EPIfjL3PuTvA_0[1].kind = 1;
1571 TM__nIinruGrC8EPIfjL3PuTvA_0[1].offset = offsetof(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ, a);
1572 TM__nIinruGrC8EPIfjL3PuTvA_0[1].typ = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
1573 TM__nIinruGrC8EPIfjL3PuTvA_0[1].name = "a";
1574 TM__nIinruGrC8EPIfjL3PuTvA_2_7[1] = &TM__nIinruGrC8EPIfjL3PuTvA_0[2];
1575 NTItokkind__Q9c4KaNqJU4PbXaGht0C7iw_.size = sizeof(tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw);
1576 NTItokkind__Q9c4KaNqJU4PbXaGht0C7iw_.align = NIM_ALIGNOF(tyEnum_TokKind__Q9c4KaNqJU4PbXaGht0C7iw);
1577 NTItokkind__Q9c4KaNqJU4PbXaGht0C7iw_.kind = 14;
1578 NTItokkind__Q9c4KaNqJU4PbXaGht0C7iw_.base = 0;
1579 NTItokkind__Q9c4KaNqJU4PbXaGht0C7iw_.flags = 3;
1580 for (TM__nIinruGrC8EPIfjL3PuTvA_5 = 0; TM__nIinruGrC8EPIfjL3PuTvA_5 < 14; TM__nIinruGrC8EPIfjL3PuTvA_5++) {
1581 TM__nIinruGrC8EPIfjL3PuTvA_0[TM__nIinruGrC8EPIfjL3PuTvA_5+3].kind = 1;
1582 TM__nIinruGrC8EPIfjL3PuTvA_0[TM__nIinruGrC8EPIfjL3PuTvA_5+3].offset = TM__nIinruGrC8EPIfjL3PuTvA_5;
1583 TM__nIinruGrC8EPIfjL3PuTvA_0[TM__nIinruGrC8EPIfjL3PuTvA_5+3].name = TM__nIinruGrC8EPIfjL3PuTvA_4[TM__nIinruGrC8EPIfjL3PuTvA_5];
1584 TM__nIinruGrC8EPIfjL3PuTvA_3_14[TM__nIinruGrC8EPIfjL3PuTvA_5] = &TM__nIinruGrC8EPIfjL3PuTvA_0[TM__nIinruGrC8EPIfjL3PuTvA_5+3];
1585 }
1586 TM__nIinruGrC8EPIfjL3PuTvA_0[17].len = 14; TM__nIinruGrC8EPIfjL3PuTvA_0[17].kind = 2; TM__nIinruGrC8EPIfjL3PuTvA_0[17].sons = &TM__nIinruGrC8EPIfjL3PuTvA_3_14[0];
1587 NTItokkind__Q9c4KaNqJU4PbXaGht0C7iw_.node = &TM__nIinruGrC8EPIfjL3PuTvA_0[17];
1588 TM__nIinruGrC8EPIfjL3PuTvA_0[2].kind = 1;
1589 TM__nIinruGrC8EPIfjL3PuTvA_0[2].offset = offsetof(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ, tok);
1590 TM__nIinruGrC8EPIfjL3PuTvA_0[2].typ = (&NTItokkind__Q9c4KaNqJU4PbXaGht0C7iw_);
1591 TM__nIinruGrC8EPIfjL3PuTvA_0[2].name = "tok";
1592 TM__nIinruGrC8EPIfjL3PuTvA_2_7[2] = &TM__nIinruGrC8EPIfjL3PuTvA_0[18];
1593 NTIjsoneventkind__0zjE9c54eTrq224F5wMcaFA_.size = sizeof(tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA);
1594 NTIjsoneventkind__0zjE9c54eTrq224F5wMcaFA_.align = NIM_ALIGNOF(tyEnum_JsonEventKind__0zjE9c54eTrq224F5wMcaFA);
1595 NTIjsoneventkind__0zjE9c54eTrq224F5wMcaFA_.kind = 14;
1596 NTIjsoneventkind__0zjE9c54eTrq224F5wMcaFA_.base = 0;
1597 NTIjsoneventkind__0zjE9c54eTrq224F5wMcaFA_.flags = 3;
1598 for (TM__nIinruGrC8EPIfjL3PuTvA_8 = 0; TM__nIinruGrC8EPIfjL3PuTvA_8 < 12; TM__nIinruGrC8EPIfjL3PuTvA_8++) {
1599 TM__nIinruGrC8EPIfjL3PuTvA_0[TM__nIinruGrC8EPIfjL3PuTvA_8+19].kind = 1;
1600 TM__nIinruGrC8EPIfjL3PuTvA_0[TM__nIinruGrC8EPIfjL3PuTvA_8+19].offset = TM__nIinruGrC8EPIfjL3PuTvA_8;
1601 TM__nIinruGrC8EPIfjL3PuTvA_0[TM__nIinruGrC8EPIfjL3PuTvA_8+19].name = TM__nIinruGrC8EPIfjL3PuTvA_7[TM__nIinruGrC8EPIfjL3PuTvA_8];
1602 TM__nIinruGrC8EPIfjL3PuTvA_6_12[TM__nIinruGrC8EPIfjL3PuTvA_8] = &TM__nIinruGrC8EPIfjL3PuTvA_0[TM__nIinruGrC8EPIfjL3PuTvA_8+19];
1603 }
1604 TM__nIinruGrC8EPIfjL3PuTvA_0[31].len = 12; TM__nIinruGrC8EPIfjL3PuTvA_0[31].kind = 2; TM__nIinruGrC8EPIfjL3PuTvA_0[31].sons = &TM__nIinruGrC8EPIfjL3PuTvA_6_12[0];
1605 NTIjsoneventkind__0zjE9c54eTrq224F5wMcaFA_.node = &TM__nIinruGrC8EPIfjL3PuTvA_0[31];
1606 TM__nIinruGrC8EPIfjL3PuTvA_0[18].kind = 1;
1607 TM__nIinruGrC8EPIfjL3PuTvA_0[18].offset = offsetof(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ, kind);
1608 TM__nIinruGrC8EPIfjL3PuTvA_0[18].typ = (&NTIjsoneventkind__0zjE9c54eTrq224F5wMcaFA_);
1609 TM__nIinruGrC8EPIfjL3PuTvA_0[18].name = "kind";
1610 TM__nIinruGrC8EPIfjL3PuTvA_2_7[3] = &TM__nIinruGrC8EPIfjL3PuTvA_0[32];
1611 NTIjsonerror__G9cw5MrJXJrcpID5JXaplew_.size = sizeof(tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew);
1612 NTIjsonerror__G9cw5MrJXJrcpID5JXaplew_.align = NIM_ALIGNOF(tyEnum_JsonError__G9cw5MrJXJrcpID5JXaplew);
1613 NTIjsonerror__G9cw5MrJXJrcpID5JXaplew_.kind = 14;
1614 NTIjsonerror__G9cw5MrJXJrcpID5JXaplew_.base = 0;
1615 NTIjsonerror__G9cw5MrJXJrcpID5JXaplew_.flags = 3;
1616 for (TM__nIinruGrC8EPIfjL3PuTvA_11 = 0; TM__nIinruGrC8EPIfjL3PuTvA_11 < 11; TM__nIinruGrC8EPIfjL3PuTvA_11++) {
1617 TM__nIinruGrC8EPIfjL3PuTvA_0[TM__nIinruGrC8EPIfjL3PuTvA_11+33].kind = 1;
1618 TM__nIinruGrC8EPIfjL3PuTvA_0[TM__nIinruGrC8EPIfjL3PuTvA_11+33].offset = TM__nIinruGrC8EPIfjL3PuTvA_11;
1619 TM__nIinruGrC8EPIfjL3PuTvA_0[TM__nIinruGrC8EPIfjL3PuTvA_11+33].name = TM__nIinruGrC8EPIfjL3PuTvA_10[TM__nIinruGrC8EPIfjL3PuTvA_11];
1620 TM__nIinruGrC8EPIfjL3PuTvA_9_11[TM__nIinruGrC8EPIfjL3PuTvA_11] = &TM__nIinruGrC8EPIfjL3PuTvA_0[TM__nIinruGrC8EPIfjL3PuTvA_11+33];
1621 }
1622 TM__nIinruGrC8EPIfjL3PuTvA_0[44].len = 11; TM__nIinruGrC8EPIfjL3PuTvA_0[44].kind = 2; TM__nIinruGrC8EPIfjL3PuTvA_0[44].sons = &TM__nIinruGrC8EPIfjL3PuTvA_9_11[0];
1623 NTIjsonerror__G9cw5MrJXJrcpID5JXaplew_.node = &TM__nIinruGrC8EPIfjL3PuTvA_0[44];
1624 TM__nIinruGrC8EPIfjL3PuTvA_0[32].kind = 1;
1625 TM__nIinruGrC8EPIfjL3PuTvA_0[32].offset = offsetof(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ, err);
1626 TM__nIinruGrC8EPIfjL3PuTvA_0[32].typ = (&NTIjsonerror__G9cw5MrJXJrcpID5JXaplew_);
1627 TM__nIinruGrC8EPIfjL3PuTvA_0[32].name = "err";
1628 TM__nIinruGrC8EPIfjL3PuTvA_2_7[4] = &TM__nIinruGrC8EPIfjL3PuTvA_0[45];
1629 NTIparserstate__Na0rM2Zdr3RpxeNeXbvLrQ_.size = sizeof(tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ);
1630 NTIparserstate__Na0rM2Zdr3RpxeNeXbvLrQ_.align = NIM_ALIGNOF(tyEnum_ParserState__Na0rM2Zdr3RpxeNeXbvLrQ);
1631 NTIparserstate__Na0rM2Zdr3RpxeNeXbvLrQ_.kind = 14;
1632 NTIparserstate__Na0rM2Zdr3RpxeNeXbvLrQ_.base = 0;
1633 NTIparserstate__Na0rM2Zdr3RpxeNeXbvLrQ_.flags = 3;
1634 for (TM__nIinruGrC8EPIfjL3PuTvA_14 = 0; TM__nIinruGrC8EPIfjL3PuTvA_14 < 8; TM__nIinruGrC8EPIfjL3PuTvA_14++) {
1635 TM__nIinruGrC8EPIfjL3PuTvA_0[TM__nIinruGrC8EPIfjL3PuTvA_14+46].kind = 1;
1636 TM__nIinruGrC8EPIfjL3PuTvA_0[TM__nIinruGrC8EPIfjL3PuTvA_14+46].offset = TM__nIinruGrC8EPIfjL3PuTvA_14;
1637 TM__nIinruGrC8EPIfjL3PuTvA_0[TM__nIinruGrC8EPIfjL3PuTvA_14+46].name = TM__nIinruGrC8EPIfjL3PuTvA_13[TM__nIinruGrC8EPIfjL3PuTvA_14];
1638 TM__nIinruGrC8EPIfjL3PuTvA_12_8[TM__nIinruGrC8EPIfjL3PuTvA_14] = &TM__nIinruGrC8EPIfjL3PuTvA_0[TM__nIinruGrC8EPIfjL3PuTvA_14+46];
1639 }
1640 TM__nIinruGrC8EPIfjL3PuTvA_0[54].len = 8; TM__nIinruGrC8EPIfjL3PuTvA_0[54].kind = 2; TM__nIinruGrC8EPIfjL3PuTvA_0[54].sons = &TM__nIinruGrC8EPIfjL3PuTvA_12_8[0];
1641 NTIparserstate__Na0rM2Zdr3RpxeNeXbvLrQ_.node = &TM__nIinruGrC8EPIfjL3PuTvA_0[54];
1642 NTIseqLparserstateT__Ih0V9cYug0VPJyBBGvgEH7Q_.size = sizeof(tySequence__Ih0V9cYug0VPJyBBGvgEH7Q*);
1643 NTIseqLparserstateT__Ih0V9cYug0VPJyBBGvgEH7Q_.align = NIM_ALIGNOF(tySequence__Ih0V9cYug0VPJyBBGvgEH7Q*);
1644 NTIseqLparserstateT__Ih0V9cYug0VPJyBBGvgEH7Q_.kind = 24;
1645 NTIseqLparserstateT__Ih0V9cYug0VPJyBBGvgEH7Q_.base = (&NTIparserstate__Na0rM2Zdr3RpxeNeXbvLrQ_);
1646 NTIseqLparserstateT__Ih0V9cYug0VPJyBBGvgEH7Q_.marker = Marker_tySequence__Ih0V9cYug0VPJyBBGvgEH7Q;
1647 TM__nIinruGrC8EPIfjL3PuTvA_0[45].kind = 1;
1648 TM__nIinruGrC8EPIfjL3PuTvA_0[45].offset = offsetof(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ, state);
1649 TM__nIinruGrC8EPIfjL3PuTvA_0[45].typ = (&NTIseqLparserstateT__Ih0V9cYug0VPJyBBGvgEH7Q_);
1650 TM__nIinruGrC8EPIfjL3PuTvA_0[45].name = "state";
1651 TM__nIinruGrC8EPIfjL3PuTvA_2_7[5] = &TM__nIinruGrC8EPIfjL3PuTvA_0[55];
1652 TM__nIinruGrC8EPIfjL3PuTvA_0[55].kind = 1;
1653 TM__nIinruGrC8EPIfjL3PuTvA_0[55].offset = offsetof(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ, filename);
1654 TM__nIinruGrC8EPIfjL3PuTvA_0[55].typ = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
1655 TM__nIinruGrC8EPIfjL3PuTvA_0[55].name = "filename";
1656 TM__nIinruGrC8EPIfjL3PuTvA_2_7[6] = &TM__nIinruGrC8EPIfjL3PuTvA_0[56];
1657 TM__nIinruGrC8EPIfjL3PuTvA_0[56].kind = 1;
1658 TM__nIinruGrC8EPIfjL3PuTvA_0[56].offset = offsetof(tyObject_JsonParser__KWIQnzXEOUqdWsnCUL9atyQ, rawStringLiterals);
1659 TM__nIinruGrC8EPIfjL3PuTvA_0[56].typ = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
1660 TM__nIinruGrC8EPIfjL3PuTvA_0[56].name = "rawStringLiterals";
1661 TM__nIinruGrC8EPIfjL3PuTvA_0[0].len = 7; TM__nIinruGrC8EPIfjL3PuTvA_0[0].kind = 2; TM__nIinruGrC8EPIfjL3PuTvA_0[0].sons = &TM__nIinruGrC8EPIfjL3PuTvA_2_7[0];
1662 NTIjsonparser__KWIQnzXEOUqdWsnCUL9atyQ_.node = &TM__nIinruGrC8EPIfjL3PuTvA_0[0];
1663 NTIjsonparsingerror__XTejXaID1NT7KS9byQm3Jxg_.size = sizeof(tyObject_JsonParsingError__XTejXaID1NT7KS9byQm3Jxg);
1664 NTIjsonparsingerror__XTejXaID1NT7KS9byQm3Jxg_.align = NIM_ALIGNOF(tyObject_JsonParsingError__XTejXaID1NT7KS9byQm3Jxg);
1665 NTIjsonparsingerror__XTejXaID1NT7KS9byQm3Jxg_.kind = 17;
1666 NTIjsonparsingerror__XTejXaID1NT7KS9byQm3Jxg_.base = (&NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_);
1667 TM__nIinruGrC8EPIfjL3PuTvA_0[57].len = 0; TM__nIinruGrC8EPIfjL3PuTvA_0[57].kind = 2;
1668 NTIjsonparsingerror__XTejXaID1NT7KS9byQm3Jxg_.node = &TM__nIinruGrC8EPIfjL3PuTvA_0[57];
1669 NTIrefjsonparsingerror__PyuSdojUZWOAnzN7dInq1Q_.size = sizeof(tyObject_JsonParsingError__XTejXaID1NT7KS9byQm3Jxg*);
1670 NTIrefjsonparsingerror__PyuSdojUZWOAnzN7dInq1Q_.align = NIM_ALIGNOF(tyObject_JsonParsingError__XTejXaID1NT7KS9byQm3Jxg*);
1671 NTIrefjsonparsingerror__PyuSdojUZWOAnzN7dInq1Q_.kind = 22;
1672 NTIrefjsonparsingerror__PyuSdojUZWOAnzN7dInq1Q_.base = (&NTIjsonparsingerror__XTejXaID1NT7KS9byQm3Jxg_);
1673 NTIrefjsonparsingerror__PyuSdojUZWOAnzN7dInq1Q_.marker = Marker_tyRef__PyuSdojUZWOAnzN7dInq1Q;
1674 NTIjsonkinderror__GezlryuJLt9aOJ0RpuN6G8g_.size = sizeof(tyObject_JsonKindError__GezlryuJLt9aOJ0RpuN6G8g);
1675 NTIjsonkinderror__GezlryuJLt9aOJ0RpuN6G8g_.align = NIM_ALIGNOF(tyObject_JsonKindError__GezlryuJLt9aOJ0RpuN6G8g);
1676 NTIjsonkinderror__GezlryuJLt9aOJ0RpuN6G8g_.kind = 17;
1677 NTIjsonkinderror__GezlryuJLt9aOJ0RpuN6G8g_.base = (&NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_);
1678 TM__nIinruGrC8EPIfjL3PuTvA_0[58].len = 0; TM__nIinruGrC8EPIfjL3PuTvA_0[58].kind = 2;
1679 NTIjsonkinderror__GezlryuJLt9aOJ0RpuN6G8g_.node = &TM__nIinruGrC8EPIfjL3PuTvA_0[58];
1680 NTIrefjsonkinderror__tn3kJ9cInprO2X2FSPir4WQ_.size = sizeof(tyObject_JsonKindError__GezlryuJLt9aOJ0RpuN6G8g*);
1681 NTIrefjsonkinderror__tn3kJ9cInprO2X2FSPir4WQ_.align = NIM_ALIGNOF(tyObject_JsonKindError__GezlryuJLt9aOJ0RpuN6G8g*);
1682 NTIrefjsonkinderror__tn3kJ9cInprO2X2FSPir4WQ_.kind = 22;
1683 NTIrefjsonkinderror__tn3kJ9cInprO2X2FSPir4WQ_.base = (&NTIjsonkinderror__GezlryuJLt9aOJ0RpuN6G8g_);
1684 NTIrefjsonkinderror__tn3kJ9cInprO2X2FSPir4WQ_.marker = Marker_tyRef__tn3kJ9cInprO2X2FSPir4WQ;
1685 }
1686 
1687