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 tySequence__6H5Oh5UUvVCLiakt9aTwtUQ tySequence__6H5Oh5UUvVCLiakt9aTwtUQ;
21 typedef struct TGenericSeq TGenericSeq;
22 typedef struct TNimType TNimType;
23 typedef struct TNimNode TNimNode;
24 struct TGenericSeq {
25 NI len;
26 NI reserved;
27 };
28 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
29 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
30 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
31 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
32 struct TNimType {
33 NI size;
34 NI align;
35 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
36 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
37 TNimType* base;
38 TNimNode* node;
39 void* finalizer;
40 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
41 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
42 };
43 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
44 struct TNimNode {
45 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
46 NI offset;
47 TNimType* typ;
48 NCSTRING name;
49 NI len;
50 TNimNode** sons;
51 };
52 typedef NU8 tyArray__PgpowgA9aFQHq0cr9b7SoUgw[256];
53 struct tySequence__6H5Oh5UUvVCLiakt9aTwtUQ {
54   TGenericSeq Sup;
55   NU8 data[SEQ_DECL_SIZE];
56 };
57 N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
58 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
59 extern TNimType NTIseqLbyteT__6H5Oh5UUvVCLiakt9aTwtUQ_;
60 N_LIB_PRIVATE NIM_CONST tyArray__PgpowgA9aFQHq0cr9b7SoUgw populationCount__bitsets_212 = {((NU8) 0),
61 ((NU8) 1),
62 ((NU8) 1),
63 ((NU8) 2),
64 ((NU8) 1),
65 ((NU8) 2),
66 ((NU8) 2),
67 ((NU8) 3),
68 ((NU8) 1),
69 ((NU8) 2),
70 ((NU8) 2),
71 ((NU8) 3),
72 ((NU8) 2),
73 ((NU8) 3),
74 ((NU8) 3),
75 ((NU8) 4),
76 ((NU8) 1),
77 ((NU8) 2),
78 ((NU8) 2),
79 ((NU8) 3),
80 ((NU8) 2),
81 ((NU8) 3),
82 ((NU8) 3),
83 ((NU8) 4),
84 ((NU8) 2),
85 ((NU8) 3),
86 ((NU8) 3),
87 ((NU8) 4),
88 ((NU8) 3),
89 ((NU8) 4),
90 ((NU8) 4),
91 ((NU8) 5),
92 ((NU8) 1),
93 ((NU8) 2),
94 ((NU8) 2),
95 ((NU8) 3),
96 ((NU8) 2),
97 ((NU8) 3),
98 ((NU8) 3),
99 ((NU8) 4),
100 ((NU8) 2),
101 ((NU8) 3),
102 ((NU8) 3),
103 ((NU8) 4),
104 ((NU8) 3),
105 ((NU8) 4),
106 ((NU8) 4),
107 ((NU8) 5),
108 ((NU8) 2),
109 ((NU8) 3),
110 ((NU8) 3),
111 ((NU8) 4),
112 ((NU8) 3),
113 ((NU8) 4),
114 ((NU8) 4),
115 ((NU8) 5),
116 ((NU8) 3),
117 ((NU8) 4),
118 ((NU8) 4),
119 ((NU8) 5),
120 ((NU8) 4),
121 ((NU8) 5),
122 ((NU8) 5),
123 ((NU8) 6),
124 ((NU8) 1),
125 ((NU8) 2),
126 ((NU8) 2),
127 ((NU8) 3),
128 ((NU8) 2),
129 ((NU8) 3),
130 ((NU8) 3),
131 ((NU8) 4),
132 ((NU8) 2),
133 ((NU8) 3),
134 ((NU8) 3),
135 ((NU8) 4),
136 ((NU8) 3),
137 ((NU8) 4),
138 ((NU8) 4),
139 ((NU8) 5),
140 ((NU8) 2),
141 ((NU8) 3),
142 ((NU8) 3),
143 ((NU8) 4),
144 ((NU8) 3),
145 ((NU8) 4),
146 ((NU8) 4),
147 ((NU8) 5),
148 ((NU8) 3),
149 ((NU8) 4),
150 ((NU8) 4),
151 ((NU8) 5),
152 ((NU8) 4),
153 ((NU8) 5),
154 ((NU8) 5),
155 ((NU8) 6),
156 ((NU8) 2),
157 ((NU8) 3),
158 ((NU8) 3),
159 ((NU8) 4),
160 ((NU8) 3),
161 ((NU8) 4),
162 ((NU8) 4),
163 ((NU8) 5),
164 ((NU8) 3),
165 ((NU8) 4),
166 ((NU8) 4),
167 ((NU8) 5),
168 ((NU8) 4),
169 ((NU8) 5),
170 ((NU8) 5),
171 ((NU8) 6),
172 ((NU8) 3),
173 ((NU8) 4),
174 ((NU8) 4),
175 ((NU8) 5),
176 ((NU8) 4),
177 ((NU8) 5),
178 ((NU8) 5),
179 ((NU8) 6),
180 ((NU8) 4),
181 ((NU8) 5),
182 ((NU8) 5),
183 ((NU8) 6),
184 ((NU8) 5),
185 ((NU8) 6),
186 ((NU8) 6),
187 ((NU8) 7),
188 ((NU8) 1),
189 ((NU8) 2),
190 ((NU8) 2),
191 ((NU8) 3),
192 ((NU8) 2),
193 ((NU8) 3),
194 ((NU8) 3),
195 ((NU8) 4),
196 ((NU8) 2),
197 ((NU8) 3),
198 ((NU8) 3),
199 ((NU8) 4),
200 ((NU8) 3),
201 ((NU8) 4),
202 ((NU8) 4),
203 ((NU8) 5),
204 ((NU8) 2),
205 ((NU8) 3),
206 ((NU8) 3),
207 ((NU8) 4),
208 ((NU8) 3),
209 ((NU8) 4),
210 ((NU8) 4),
211 ((NU8) 5),
212 ((NU8) 3),
213 ((NU8) 4),
214 ((NU8) 4),
215 ((NU8) 5),
216 ((NU8) 4),
217 ((NU8) 5),
218 ((NU8) 5),
219 ((NU8) 6),
220 ((NU8) 2),
221 ((NU8) 3),
222 ((NU8) 3),
223 ((NU8) 4),
224 ((NU8) 3),
225 ((NU8) 4),
226 ((NU8) 4),
227 ((NU8) 5),
228 ((NU8) 3),
229 ((NU8) 4),
230 ((NU8) 4),
231 ((NU8) 5),
232 ((NU8) 4),
233 ((NU8) 5),
234 ((NU8) 5),
235 ((NU8) 6),
236 ((NU8) 3),
237 ((NU8) 4),
238 ((NU8) 4),
239 ((NU8) 5),
240 ((NU8) 4),
241 ((NU8) 5),
242 ((NU8) 5),
243 ((NU8) 6),
244 ((NU8) 4),
245 ((NU8) 5),
246 ((NU8) 5),
247 ((NU8) 6),
248 ((NU8) 5),
249 ((NU8) 6),
250 ((NU8) 6),
251 ((NU8) 7),
252 ((NU8) 2),
253 ((NU8) 3),
254 ((NU8) 3),
255 ((NU8) 4),
256 ((NU8) 3),
257 ((NU8) 4),
258 ((NU8) 4),
259 ((NU8) 5),
260 ((NU8) 3),
261 ((NU8) 4),
262 ((NU8) 4),
263 ((NU8) 5),
264 ((NU8) 4),
265 ((NU8) 5),
266 ((NU8) 5),
267 ((NU8) 6),
268 ((NU8) 3),
269 ((NU8) 4),
270 ((NU8) 4),
271 ((NU8) 5),
272 ((NU8) 4),
273 ((NU8) 5),
274 ((NU8) 5),
275 ((NU8) 6),
276 ((NU8) 4),
277 ((NU8) 5),
278 ((NU8) 5),
279 ((NU8) 6),
280 ((NU8) 5),
281 ((NU8) 6),
282 ((NU8) 6),
283 ((NU8) 7),
284 ((NU8) 3),
285 ((NU8) 4),
286 ((NU8) 4),
287 ((NU8) 5),
288 ((NU8) 4),
289 ((NU8) 5),
290 ((NU8) 5),
291 ((NU8) 6),
292 ((NU8) 4),
293 ((NU8) 5),
294 ((NU8) 5),
295 ((NU8) 6),
296 ((NU8) 5),
297 ((NU8) 6),
298 ((NU8) 6),
299 ((NU8) 7),
300 ((NU8) 4),
301 ((NU8) 5),
302 ((NU8) 5),
303 ((NU8) 6),
304 ((NU8) 5),
305 ((NU8) 6),
306 ((NU8) 6),
307 ((NU8) 7),
308 ((NU8) 5),
309 ((NU8) 6),
310 ((NU8) 6),
311 ((NU8) 7),
312 ((NU8) 6),
313 ((NU8) 7),
314 ((NU8) 7),
315 ((NU8) 8)}
316 ;
N_NIMCALL(void,bitSetInit__bitsets_10)317 N_LIB_PRIVATE N_NIMCALL(void, bitSetInit__bitsets_10)(tySequence__6H5Oh5UUvVCLiakt9aTwtUQ** b, NI length) {
318 	unsureAsgnRef((void**) (&(*b)), (tySequence__6H5Oh5UUvVCLiakt9aTwtUQ*) newSeq((&NTIseqLbyteT__6H5Oh5UUvVCLiakt9aTwtUQ_), ((NI) (length))));
319 }
N_NIMCALL(void,bitSetIncl__bitsets_25)320 N_LIB_PRIVATE N_NIMCALL(void, bitSetIncl__bitsets_25)(tySequence__6H5Oh5UUvVCLiakt9aTwtUQ** x, NI64 elem) {
321 	(*x)->data[(NI64)((NI64)(elem) >> (NU64)(((NI) 3)))] = (NU8)((*x)->data[(NI64)((NI64)(elem) >> (NU64)(((NI) 3)))] | (NU8)((NU64)(((NU8) 1)) << (NU64)((NI64)(elem & IL64(7)))));
322 }
N_NIMCALL(NI64,bitSetCard__bitsets_40)323 N_LIB_PRIVATE N_NIMCALL(NI64, bitSetCard__bitsets_40)(tySequence__6H5Oh5UUvVCLiakt9aTwtUQ* x) {
324 	NI64 result;
325 	result = (NI64)0;
326 	{
327 		NU8* it;
328 		NI i;
329 		NI L;
330 		NI T2_;
331 		it = (NU8*)0;
332 		i = ((NI) 0);
333 		T2_ = (x ? x->Sup.len : 0);
334 		L = T2_;
335 		{
336 			while (1) {
337 				if (!(i < L)) goto LA4;
338 				it = (&x->data[i]);
339 				result += ((NI) (populationCount__bitsets_212[((*it))- 0]));
340 				i += ((NI) 1);
341 			} LA4: ;
342 		}
343 	}
344 	return result;
345 }
N_NIMCALL(NIM_BOOL,bitSetContains__bitsets_37)346 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, bitSetContains__bitsets_37)(tySequence__6H5Oh5UUvVCLiakt9aTwtUQ* x, tySequence__6H5Oh5UUvVCLiakt9aTwtUQ* y) {
347 	NIM_BOOL result;
348 {	result = (NIM_BOOL)0;
349 	{
350 		NI i;
351 		NI colontmp_;
352 		NI T2_;
353 		NI res;
354 		i = (NI)0;
355 		colontmp_ = (NI)0;
356 		T2_ = ((x ? x->Sup.len : 0)-1);
357 		colontmp_ = T2_;
358 		res = ((NI) 0);
359 		{
360 			while (1) {
361 				if (!(res <= colontmp_)) goto LA4;
362 				i = res;
363 				{
364 					if (!!(((NU8)(x->data[i] & (NU8)((NU8) ~(y->data[i]))) == ((NU8) 0)))) goto LA7_;
365 					result = NIM_FALSE;
366 					goto BeforeRet_;
367 				}
368 				LA7_: ;
369 				res += ((NI) 1);
370 			} LA4: ;
371 		}
372 	}
373 	result = NIM_TRUE;
374 	}BeforeRet_: ;
375 	return result;
376 }
N_NIMCALL(NIM_BOOL,bitSetEquals__bitsets_34)377 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, bitSetEquals__bitsets_34)(tySequence__6H5Oh5UUvVCLiakt9aTwtUQ* x, tySequence__6H5Oh5UUvVCLiakt9aTwtUQ* y) {
378 	NIM_BOOL result;
379 {	result = (NIM_BOOL)0;
380 	{
381 		NI i;
382 		NI colontmp_;
383 		NI T2_;
384 		NI res;
385 		i = (NI)0;
386 		colontmp_ = (NI)0;
387 		T2_ = ((x ? x->Sup.len : 0)-1);
388 		colontmp_ = T2_;
389 		res = ((NI) 0);
390 		{
391 			while (1) {
392 				if (!(res <= colontmp_)) goto LA4;
393 				i = res;
394 				{
395 					if (!!((x->data[i] == y->data[i]))) goto LA7_;
396 					result = NIM_FALSE;
397 					goto BeforeRet_;
398 				}
399 				LA7_: ;
400 				res += ((NI) 1);
401 			} LA4: ;
402 		}
403 	}
404 	result = NIM_TRUE;
405 	}BeforeRet_: ;
406 	return result;
407 }
N_NIMCALL(void,bitSetIntersect__bitsets_22)408 N_LIB_PRIVATE N_NIMCALL(void, bitSetIntersect__bitsets_22)(tySequence__6H5Oh5UUvVCLiakt9aTwtUQ** x, tySequence__6H5Oh5UUvVCLiakt9aTwtUQ* y) {
409 	{
410 		NI i;
411 		NI colontmp_;
412 		NI T2_;
413 		NI res;
414 		i = (NI)0;
415 		colontmp_ = (NI)0;
416 		T2_ = (((*x) ? (*x)->Sup.len : 0)-1);
417 		colontmp_ = T2_;
418 		res = ((NI) 0);
419 		{
420 			while (1) {
421 				if (!(res <= colontmp_)) goto LA4;
422 				i = res;
423 				(*x)->data[i] = (NU8)((*x)->data[i] & y->data[i]);
424 				res += ((NI) 1);
425 			} LA4: ;
426 		}
427 	}
428 }
N_NIMCALL(NIM_BOOL,bitSetIn__bitsets_31)429 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, bitSetIn__bitsets_31)(tySequence__6H5Oh5UUvVCLiakt9aTwtUQ* x, NI64 e) {
430 	NIM_BOOL result;
431 	result = (NIM_BOOL)0;
432 	result = !(((NU8)(x->data[(NI64)((NI64)(e) >> (NU64)(((NI) 3)))] & (NU8)((NU64)(((NU8) 1)) << (NU64)((NI64)(e & IL64(7))))) == ((NU8) 0)));
433 	return result;
434 }
N_NIMCALL(void,bitSetUnion__bitsets_13)435 N_LIB_PRIVATE N_NIMCALL(void, bitSetUnion__bitsets_13)(tySequence__6H5Oh5UUvVCLiakt9aTwtUQ** x, tySequence__6H5Oh5UUvVCLiakt9aTwtUQ* y) {
436 	{
437 		NI i;
438 		NI colontmp_;
439 		NI T2_;
440 		NI res;
441 		i = (NI)0;
442 		colontmp_ = (NI)0;
443 		T2_ = (((*x) ? (*x)->Sup.len : 0)-1);
444 		colontmp_ = T2_;
445 		res = ((NI) 0);
446 		{
447 			while (1) {
448 				if (!(res <= colontmp_)) goto LA4;
449 				i = res;
450 				(*x)->data[i] = (NU8)((*x)->data[i] | y->data[i]);
451 				res += ((NI) 1);
452 			} LA4: ;
453 		}
454 	}
455 }
N_NIMCALL(void,bitSetDiff__bitsets_16)456 N_LIB_PRIVATE N_NIMCALL(void, bitSetDiff__bitsets_16)(tySequence__6H5Oh5UUvVCLiakt9aTwtUQ** x, tySequence__6H5Oh5UUvVCLiakt9aTwtUQ* y) {
457 	{
458 		NI i;
459 		NI colontmp_;
460 		NI T2_;
461 		NI res;
462 		i = (NI)0;
463 		colontmp_ = (NI)0;
464 		T2_ = (((*x) ? (*x)->Sup.len : 0)-1);
465 		colontmp_ = T2_;
466 		res = ((NI) 0);
467 		{
468 			while (1) {
469 				if (!(res <= colontmp_)) goto LA4;
470 				i = res;
471 				(*x)->data[i] = (NU8)((*x)->data[i] & (NU8)((NU8) ~(y->data[i])));
472 				res += ((NI) 1);
473 			} LA4: ;
474 		}
475 	}
476 }
477