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