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