1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 32
3 
4 #include "nimbase.h"
5 #undef LANGUAGE_C
6 #undef MIPSEB
7 #undef MIPSEL
8 #undef PPC
9 #undef R3000
10 #undef R4000
11 #undef i386
12 #undef linux
13 #undef mips
14 #undef near
15 #undef far
16 #undef powerpc
17 #undef unix
18 #define nimfr_(x, y)
19 #define nimln_(x, y)
20 typedef struct NimStringDesc NimStringDesc;
21 typedef struct TGenericSeq TGenericSeq;
22 typedef struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw;
23 typedef struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA;
24 typedef struct Exception Exception;
25 typedef struct RootObj RootObj;
26 typedef struct TNimType TNimType;
27 typedef struct TNimNode TNimNode;
28 typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
29 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
30 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
31 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
32 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
33 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
34 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
35 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
36 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
37 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
38 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
39 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
40 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
41 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
42 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
43 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
44 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
45 typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
46 struct TGenericSeq {
47 NI len;
48 NI reserved;
49 };
50 struct NimStringDesc {
51   TGenericSeq Sup;
52 NIM_CHAR data[SEQ_DECL_SIZE];
53 };
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 struct RootObj {
70 TNimType* m_type;
71 };
72 struct Exception {
73   RootObj Sup;
74 Exception* parent;
75 NCSTRING name;
76 NimStringDesc* message;
77 tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
78 Exception* up;
79 };
80 struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA {
81   Exception Sup;
82 };
83 struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw {
84   tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
85 };
86 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
87 struct TNimNode {
88 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
89 NI offset;
90 TNimType* typ;
91 NCSTRING name;
92 NI len;
93 TNimNode** sons;
94 };
95 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
96 NI refcount;
97 TNimType* typ;
98 };
99 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
100 void* bottom;
101 };
102 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
103 NI len;
104 NI cap;
105 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
106 };
107 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
108 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
109 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
110 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
111 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
112 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
113 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
114 };
115 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
116 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
117 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
118 NI key;
119 NI upperBound;
120 NI level;
121 };
122 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
123 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
124 NI Field1;
125 };
126 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
127 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
128 NI len;
129 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
130 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
131 };
132 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
133 NI minLargeObj;
134 NI maxLargeObj;
135 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
136 NU32 flBitmap;
137 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
138 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
139 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
140 NI currMem;
141 NI maxMem;
142 NI freeMem;
143 NI occ;
144 NI lastSize;
145 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
146 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
147 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
148 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
149 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
150 NIM_BOOL locked;
151 NIM_BOOL blockChunkSizeIncrease;
152 NI nextChunkSize;
153 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
154 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
155 };
156 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
157 NI stackScans;
158 NI cycleCollections;
159 NI maxThreshold;
160 NI maxStackSize;
161 NI maxStackCells;
162 NI cycleTableSize;
163 NI64 maxPause;
164 };
165 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
166 NI counter;
167 NI max;
168 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
169 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
170 };
171 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
172 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
173 NI cycleThreshold;
174 NI zctThreshold;
175 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
176 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
177 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
178 NI recGcLock;
179 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
180 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
181 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
182 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
183 NI gcThreadId;
184 };
185 struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
186 NCSTRING procname;
187 NI line;
188 NCSTRING filename;
189 };
190 struct tySequence__uB9b75OUPRENsBAu4AnoePA {
191   TGenericSeq Sup;
192   tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
193 };
194 N_LIB_PRIVATE N_NIMCALL(NI, npuParseBiggestInt)(NimStringDesc* s, NI64* number, NI start);
195 N_LIB_PRIVATE N_NIMCALL(NI, rawParseInt__pureZparseutils_268)(NimStringDesc* s, NI64* b, NI start);
196 N_LIB_PRIVATE N_NOINLINE(void, integerOutOfRangeError__pureZparseutils_248)(void);
197 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
198 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
199 static N_INLINE(void, nimGCunrefNoCycle)(void* p);
200 static N_INLINE(void, decRef__system_5370)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
201 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
202 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
203 static N_INLINE(void, rtlAddZCT__system_5368)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
204 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5319)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
205 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5325)(void* usr);
206 static N_INLINE(void, asgnRef)(void** dest, void* src);
207 static N_INLINE(void, incRef__system_5363)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
208 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
209 N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
210 N_NIMCALL(NI, nimParseBiggestFloat)(NimStringDesc* s, NF* number, NI start);
211 N_LIB_PRIVATE N_NIMCALL(NI, rawParseUInt__pureZparseutils_375)(NimStringDesc* s, NU64* b, NI start);
212 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
213 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
214 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7798)(NimStringDesc* s, NI first, NI last);
215 extern TNimType NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_;
216 extern TNimType NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_;
217 STRING_LITERAL(TM__vI9aZNKIcImom6dDyKXW1ZA_2, "Parsed integer outside of valid range", 37);
218 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5272;
N_INLINE(NI,minuspercent___system_716)219 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
220 	NI result;
221 	result = (NI)0;
222 	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
223 	return result;
224 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)225 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
226 	NIM_BOOL result;
227 	result = (NIM_BOOL)0;
228 	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
229 	return result;
230 }
N_INLINE(void,rtlAddZCT__system_5368)231 static N_INLINE(void, rtlAddZCT__system_5368)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
232 	addZCT__system_5319((&gch__system_5272.zct), c);
233 }
N_INLINE(void,decRef__system_5370)234 static N_INLINE(void, decRef__system_5370)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
235 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
236 	{
237 		NIM_BOOL T3_;
238 		T3_ = (NIM_BOOL)0;
239 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
240 		if (!T3_) goto LA4_;
241 		rtlAddZCT__system_5368(c);
242 	}
243 	LA4_: ;
244 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5325)245 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5325)(void* usr) {
246 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
247 	NI T1_;
248 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
249 	T1_ = (NI)0;
250 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
251 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
252 	return result;
253 }
N_INLINE(void,nimGCunrefNoCycle)254 static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
255 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
256 	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
257 	T1_ = usrToCell__system_5325(p);
258 	decRef__system_5370(T1_);
259 }
N_INLINE(NI,pluspercent___system_696)260 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
261 	NI result;
262 	result = (NI)0;
263 	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
264 	return result;
265 }
N_INLINE(void,incRef__system_5363)266 static N_INLINE(void, incRef__system_5363)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
267 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
268 }
N_INLINE(void,asgnRef)269 static N_INLINE(void, asgnRef)(void** dest, void* src) {
270 	{
271 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
272 		if (!!((src == NIM_NIL))) goto LA3_;
273 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
274 		T5_ = usrToCell__system_5325(src);
275 		incRef__system_5363(T5_);
276 	}
277 	LA3_: ;
278 	{
279 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
280 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
281 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
282 		T10_ = usrToCell__system_5325((*dest));
283 		decRef__system_5370(T10_);
284 	}
285 	LA8_: ;
286 	(*dest) = src;
287 }
N_NOINLINE(void,integerOutOfRangeError__pureZparseutils_248)288 N_LIB_PRIVATE N_NOINLINE(void, integerOutOfRangeError__pureZparseutils_248)(void) {
289 	tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw* T1_;
290 	NimStringDesc* T2_;
291 	T1_ = NIM_NIL;
292 	T1_ = (tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw*) newObj((&NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_), sizeof(tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw));
293 	(*T1_).Sup.Sup.Sup.m_type = (&NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_);
294 	(*T1_).Sup.Sup.name = "ValueError";
295 	T2_ = NIM_NIL;
296 	T2_ = (*T1_).Sup.Sup.message; (*T1_).Sup.Sup.message = copyStringRC1(((NimStringDesc*) &TM__vI9aZNKIcImom6dDyKXW1ZA_2));
297 	if (T2_) nimGCunrefNoCycle(T2_);
298 	asgnRef((void**) (&(*T1_).Sup.Sup.parent), ((Exception*) NIM_NIL));
299 	raiseExceptionEx((Exception*)T1_, "ValueError", "integerOutOfRangeError", "parseutils.nim", 426);
300 }
N_NIMCALL(NI,rawParseInt__pureZparseutils_268)301 N_LIB_PRIVATE N_NIMCALL(NI, rawParseInt__pureZparseutils_268)(NimStringDesc* s, NI64* b, NI start) {
302 	NI result;
303 	NI64 sign;
304 	NI i;
305 	result = (NI)0;
306 	sign = IL64(-1);
307 	i = start;
308 	{
309 		if (!(i < (s ? s->Sup.len : 0))) goto LA3_;
310 		{
311 			if (!((NU8)(s->data[i]) == (NU8)(43))) goto LA7_;
312 			i += ((NI) 1);
313 		}
314 		goto LA5_;
315 		LA7_: ;
316 		{
317 			if (!((NU8)(s->data[i]) == (NU8)(45))) goto LA10_;
318 			i += ((NI) 1);
319 			sign = IL64(1);
320 		}
321 		goto LA5_;
322 		LA10_: ;
323 		LA5_: ;
324 	}
325 	LA3_: ;
326 	{
327 		NIM_BOOL T14_;
328 		T14_ = (NIM_BOOL)0;
329 		T14_ = (i < (s ? s->Sup.len : 0));
330 		if (!(T14_)) goto LA15_;
331 		T14_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
332 		LA15_: ;
333 		if (!T14_) goto LA16_;
334 		(*b) = IL64(0);
335 		{
336 			while (1) {
337 				NIM_BOOL T20_;
338 				NI c;
339 				T20_ = (NIM_BOOL)0;
340 				T20_ = (i < (s ? s->Sup.len : 0));
341 				if (!(T20_)) goto LA21_;
342 				T20_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
343 				LA21_: ;
344 				if (!T20_) goto LA19;
345 				c = (NI)(((NU8)(s->data[i])) - ((NI) 48));
346 				{
347 					if (!((NI64)((NI64)((IL64(-9223372036854775807) - IL64(1)) + ((NI64) (c))) / IL64(10)) <= (*b))) goto LA24_;
348 					(*b) = (NI64)((NI64)((*b) * IL64(10)) - ((NI64) (c)));
349 				}
350 				goto LA22_;
351 				LA24_: ;
352 				{
353 					integerOutOfRangeError__pureZparseutils_248();
354 				}
355 				LA22_: ;
356 				i += ((NI) 1);
357 				{
358 					while (1) {
359 						NIM_BOOL T29_;
360 						T29_ = (NIM_BOOL)0;
361 						T29_ = (i < (s ? s->Sup.len : 0));
362 						if (!(T29_)) goto LA30_;
363 						T29_ = ((NU8)(s->data[i]) == (NU8)(95));
364 						LA30_: ;
365 						if (!T29_) goto LA28;
366 						i += ((NI) 1);
367 					} LA28: ;
368 				}
369 			} LA19: ;
370 		}
371 		{
372 			NIM_BOOL T33_;
373 			T33_ = (NIM_BOOL)0;
374 			T33_ = (sign == IL64(-1));
375 			if (!(T33_)) goto LA34_;
376 			T33_ = ((*b) == (IL64(-9223372036854775807) - IL64(1)));
377 			LA34_: ;
378 			if (!T33_) goto LA35_;
379 			integerOutOfRangeError__pureZparseutils_248();
380 		}
381 		goto LA31_;
382 		LA35_: ;
383 		{
384 			(*b) = (NI64)((*b) * sign);
385 			result = (NI)(i - start);
386 		}
387 		LA31_: ;
388 	}
389 	LA16_: ;
390 	return result;
391 }
N_NIMCALL(NI,npuParseBiggestInt)392 N_LIB_PRIVATE N_NIMCALL(NI, npuParseBiggestInt)(NimStringDesc* s, NI64* number, NI start) {
393 	NI result;
394 	NI64 res;
395 	result = (NI)0;
396 	res = IL64(0);
397 	result = rawParseInt__pureZparseutils_268(s, (&res), start);
398 	{
399 		if (!!((result == ((NI) 0)))) goto LA3_;
400 		(*number) = res;
401 	}
402 	LA3_: ;
403 	return result;
404 }
N_NIMCALL(NI,npuParseInt)405 N_LIB_PRIVATE N_NIMCALL(NI, npuParseInt)(NimStringDesc* s, NI* number, NI start) {
406 	NI result;
407 	NI64 res;
408 	result = (NI)0;
409 	res = IL64(0);
410 	result = npuParseBiggestInt(s, (&res), start);
411 	{
412 		NIM_BOOL T3_;
413 		T3_ = (NIM_BOOL)0;
414 		T3_ = (res < IL64(-2147483648));
415 		if (T3_) goto LA4_;
416 		T3_ = (IL64(2147483647) < res);
417 		LA4_: ;
418 		if (!T3_) goto LA5_;
419 		integerOutOfRangeError__pureZparseutils_248();
420 	}
421 	LA5_: ;
422 	{
423 		if (!!((result == ((NI) 0)))) goto LA9_;
424 		(*number) = ((NI) (res));
425 	}
426 	LA9_: ;
427 	return result;
428 }
N_NIMCALL(NI,npuParseFloat)429 N_LIB_PRIVATE N_NIMCALL(NI, npuParseFloat)(NimStringDesc* s, NF* number, NI start) {
430 	NI result;
431 	NF bf;
432 	result = (NI)0;
433 	bf = 0.0;
434 	result = nimParseBiggestFloat(s, (&bf), start);
435 	{
436 		if (!!((result == ((NI) 0)))) goto LA3_;
437 		(*number) = bf;
438 	}
439 	LA3_: ;
440 	return result;
441 }
N_NIMCALL(NI,rawParseUInt__pureZparseutils_375)442 N_LIB_PRIVATE N_NIMCALL(NI, rawParseUInt__pureZparseutils_375)(NimStringDesc* s, NU64* b, NI start) {
443 	NI result;
444 	NU64 res;
445 	NU64 prev;
446 	NI i;
447 	result = (NI)0;
448 	res = 0ULL;
449 	prev = 0ULL;
450 	i = start;
451 	{
452 		NIM_BOOL T3_;
453 		NIM_BOOL T4_;
454 		T3_ = (NIM_BOOL)0;
455 		T4_ = (NIM_BOOL)0;
456 		T4_ = (i < (NI)((s ? s->Sup.len : 0) - ((NI) 1)));
457 		if (!(T4_)) goto LA5_;
458 		T4_ = ((NU8)(s->data[i]) == (NU8)(45));
459 		LA5_: ;
460 		T3_ = T4_;
461 		if (!(T3_)) goto LA6_;
462 		T3_ = (((NU8)(s->data[(NI)(i + ((NI) 1))])) >= ((NU8)(48)) && ((NU8)(s->data[(NI)(i + ((NI) 1))])) <= ((NU8)(57)));
463 		LA6_: ;
464 		if (!T3_) goto LA7_;
465 		integerOutOfRangeError__pureZparseutils_248();
466 	}
467 	LA7_: ;
468 	{
469 		NIM_BOOL T11_;
470 		T11_ = (NIM_BOOL)0;
471 		T11_ = (i < (s ? s->Sup.len : 0));
472 		if (!(T11_)) goto LA12_;
473 		T11_ = ((NU8)(s->data[i]) == (NU8)(43));
474 		LA12_: ;
475 		if (!T11_) goto LA13_;
476 		i += ((NI) 1);
477 	}
478 	LA13_: ;
479 	{
480 		NIM_BOOL T17_;
481 		T17_ = (NIM_BOOL)0;
482 		T17_ = (i < (s ? s->Sup.len : 0));
483 		if (!(T17_)) goto LA18_;
484 		T17_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
485 		LA18_: ;
486 		if (!T17_) goto LA19_;
487 		(*b) = 0ULL;
488 		{
489 			while (1) {
490 				NIM_BOOL T23_;
491 				T23_ = (NIM_BOOL)0;
492 				T23_ = (i < (s ? s->Sup.len : 0));
493 				if (!(T23_)) goto LA24_;
494 				T23_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
495 				LA24_: ;
496 				if (!T23_) goto LA22;
497 				prev = res;
498 				res = (NU64)((NU64)((NU64)((NU64)(res) * (NU64)(10ULL))) + (NU64)(((NU64) ((NI)(((NU8)(s->data[i])) - ((NI) 48))))));
499 				{
500 					if (!((NU64)(res) < (NU64)(prev))) goto LA27_;
501 					integerOutOfRangeError__pureZparseutils_248();
502 				}
503 				LA27_: ;
504 				i += ((NI) 1);
505 				{
506 					while (1) {
507 						NIM_BOOL T31_;
508 						T31_ = (NIM_BOOL)0;
509 						T31_ = (i < (s ? s->Sup.len : 0));
510 						if (!(T31_)) goto LA32_;
511 						T31_ = ((NU8)(s->data[i]) == (NU8)(95));
512 						LA32_: ;
513 						if (!T31_) goto LA30;
514 						i += ((NI) 1);
515 					} LA30: ;
516 				}
517 			} LA22: ;
518 		}
519 		(*b) = res;
520 		result = (NI)(i - start);
521 	}
522 	LA19_: ;
523 	return result;
524 }
N_NIMCALL(NI,npuParseBiggestUInt)525 N_LIB_PRIVATE N_NIMCALL(NI, npuParseBiggestUInt)(NimStringDesc* s, NU64* number, NI start) {
526 	NI result;
527 	NU64 res;
528 	result = (NI)0;
529 	res = 0ULL;
530 	result = rawParseUInt__pureZparseutils_375(s, (&res), start);
531 	{
532 		if (!!((result == ((NI) 0)))) goto LA3_;
533 		(*number) = res;
534 	}
535 	LA3_: ;
536 	return result;
537 }
N_NIMCALL(void,fastSubstr__pureZparseutils_170)538 N_LIB_PRIVATE N_NIMCALL(void, fastSubstr__pureZparseutils_170)(NimStringDesc* s, NimStringDesc** token, NI start, NI length) {
539 	unsureAsgnRef((void**) (&(*token)), setLengthStr((*token), ((NI) (length))));
540 	{
541 		NI i;
542 		NI i_2;
543 		i = (NI)0;
544 		i_2 = ((NI) 0);
545 		{
546 			while (1) {
547 				if (!(i_2 < length)) goto LA3;
548 				i = i_2;
549 				(*token)->data[i] = s->data[(NI)(i + start)];
550 				i_2 += ((NI) 1);
551 			} LA3: ;
552 		}
553 	}
554 }
N_NIMCALL(NI,parseSaturatedNatural__pureZparseutils_334)555 N_LIB_PRIVATE N_NIMCALL(NI, parseSaturatedNatural__pureZparseutils_334)(NimStringDesc* s, NI* b, NI start) {
556 	NI result;
557 	NI i;
558 	result = (NI)0;
559 	i = start;
560 	{
561 		NIM_BOOL T3_;
562 		T3_ = (NIM_BOOL)0;
563 		T3_ = (i < (s ? s->Sup.len : 0));
564 		if (!(T3_)) goto LA4_;
565 		T3_ = ((NU8)(s->data[i]) == (NU8)(43));
566 		LA4_: ;
567 		if (!T3_) goto LA5_;
568 		i += ((NI) 1);
569 	}
570 	LA5_: ;
571 	{
572 		NIM_BOOL T9_;
573 		T9_ = (NIM_BOOL)0;
574 		T9_ = (i < (s ? s->Sup.len : 0));
575 		if (!(T9_)) goto LA10_;
576 		T9_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
577 		LA10_: ;
578 		if (!T9_) goto LA11_;
579 		(*b) = ((NI) 0);
580 		{
581 			while (1) {
582 				NIM_BOOL T15_;
583 				NI c;
584 				T15_ = (NIM_BOOL)0;
585 				T15_ = (i < (s ? s->Sup.len : 0));
586 				if (!(T15_)) goto LA16_;
587 				T15_ = (((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)));
588 				LA16_: ;
589 				if (!T15_) goto LA14;
590 				c = (NI)(((NU8)(s->data[i])) - ((NI) 48));
591 				{
592 					if (!((*b) <= (NI)((NI)(((NI) 2147483647) - c) / ((NI) 10)))) goto LA19_;
593 					(*b) = (NI)((NI)((*b) * ((NI) 10)) + c);
594 				}
595 				goto LA17_;
596 				LA19_: ;
597 				{
598 					(*b) = ((NI) 2147483647);
599 				}
600 				LA17_: ;
601 				i += ((NI) 1);
602 				{
603 					while (1) {
604 						NIM_BOOL T24_;
605 						T24_ = (NIM_BOOL)0;
606 						T24_ = (i < (s ? s->Sup.len : 0));
607 						if (!(T24_)) goto LA25_;
608 						T24_ = ((NU8)(s->data[i]) == (NU8)(95));
609 						LA25_: ;
610 						if (!T24_) goto LA23;
611 						i += ((NI) 1);
612 					} LA23: ;
613 				}
614 			} LA14: ;
615 		}
616 		result = (NI)(i - start);
617 	}
618 	LA11_: ;
619 	return result;
620 }
N_NIMCALL(NI,parseIdent__pureZparseutils_57)621 N_LIB_PRIVATE N_NIMCALL(NI, parseIdent__pureZparseutils_57)(NimStringDesc* s, NimStringDesc** ident, NI start) {
622 	NI result;
623 	NI i;
624 	result = (NI)0;
625 	i = start;
626 	{
627 		NIM_BOOL T3_;
628 		T3_ = (NIM_BOOL)0;
629 		T3_ = (i < (s ? s->Sup.len : 0));
630 		if (!(T3_)) goto LA4_;
631 		T3_ = (((NU8)(s->data[i])) >= ((NU8)(97)) && ((NU8)(s->data[i])) <= ((NU8)(122)) || ((NU8)(s->data[i])) >= ((NU8)(65)) && ((NU8)(s->data[i])) <= ((NU8)(90)) || ((NU8)(s->data[i])) == ((NU8)(95)));
632 		LA4_: ;
633 		if (!T3_) goto LA5_;
634 		i += ((NI) 1);
635 		{
636 			while (1) {
637 				NIM_BOOL T9_;
638 				T9_ = (NIM_BOOL)0;
639 				T9_ = (i < (s ? s->Sup.len : 0));
640 				if (!(T9_)) goto LA10_;
641 				T9_ = (((NU8)(s->data[i])) >= ((NU8)(97)) && ((NU8)(s->data[i])) <= ((NU8)(122)) || ((NU8)(s->data[i])) >= ((NU8)(65)) && ((NU8)(s->data[i])) <= ((NU8)(90)) || ((NU8)(s->data[i])) >= ((NU8)(48)) && ((NU8)(s->data[i])) <= ((NU8)(57)) || ((NU8)(s->data[i])) == ((NU8)(95)));
642 				LA10_: ;
643 				if (!T9_) goto LA8;
644 				i += ((NI) 1);
645 			} LA8: ;
646 		}
647 		unsureAsgnRef((void**) (&(*ident)), substr__system_7798(s, start, (NI)(i - ((NI) 1))));
648 		result = (NI)(i - start);
649 	}
650 	LA5_: ;
651 	return result;
652 }
653