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 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA;
22 typedef struct NimStringDesc NimStringDesc;
23 typedef struct TGenericSeq TGenericSeq;
24 typedef struct TNimType TNimType;
25 typedef struct TNimNode TNimNode;
26 typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
27 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
28 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
29 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
30 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
31 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
32 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
33 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
34 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
35 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
36 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
37 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
38 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
39 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
40 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
41 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
42 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
43 struct TGenericSeq {
44 NI len;
45 NI reserved;
46 };
47 struct NimStringDesc {
48   TGenericSeq Sup;
49 NIM_CHAR data[SEQ_DECL_SIZE];
50 };
51 struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA {
52 NI id;
53 NimStringDesc* s;
54 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* next;
55 NI h;
56 };
57 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
58 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
59 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
60 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
61 struct TNimType {
62 NI size;
63 NI align;
64 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
65 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
66 TNimType* base;
67 TNimNode* node;
68 void* finalizer;
69 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
70 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
71 };
72 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
73 struct TNimNode {
74 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
75 NI offset;
76 TNimType* typ;
77 NCSTRING name;
78 NI len;
79 TNimNode** sons;
80 };
81 typedef tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* tyArray__O7BaHX6ctEz6BpjFNHWCFQ[8192];
82 struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw {
83 tyArray__O7BaHX6ctEz6BpjFNHWCFQ buckets;
84 NI wordCounter;
85 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* idAnon;
86 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* idDelegator;
87 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* emptyIdent;
88 };
89 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
90 NI refcount;
91 TNimType* typ;
92 };
93 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
94 void* bottom;
95 };
96 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
97 NI len;
98 NI cap;
99 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
100 };
101 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
102 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
103 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
104 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
105 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
106 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
107 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
108 };
109 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
110 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
111 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
112 NI key;
113 NI upperBound;
114 NI level;
115 };
116 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
117 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
118 NI Field1;
119 };
120 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
121 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
122 NI len;
123 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
124 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
125 };
126 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
127 NI minLargeObj;
128 NI maxLargeObj;
129 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
130 NU32 flBitmap;
131 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
132 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
133 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
134 NI currMem;
135 NI maxMem;
136 NI freeMem;
137 NI occ;
138 NI lastSize;
139 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
140 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
141 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
142 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
143 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
144 NIM_BOOL locked;
145 NIM_BOOL blockChunkSizeIncrease;
146 NI nextChunkSize;
147 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
148 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
149 };
150 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
151 NI stackScans;
152 NI cycleCollections;
153 NI maxThreshold;
154 NI maxStackSize;
155 NI maxStackCells;
156 NI cycleTableSize;
157 NI64 maxPause;
158 };
159 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
160 NI counter;
161 NI max;
162 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
163 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
164 };
165 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
166 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
167 NI cycleThreshold;
168 NI zctThreshold;
169 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
170 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
171 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
172 NI recGcLock;
173 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
174 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
175 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
176 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
177 NI gcThreadId;
178 };
179 typedef NU16 tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw;
180 N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
181 static N_NIMCALL(void, Marker_tyRef__EiGmNYVHiKeimIyQkW82mg)(void* p, NI op);
182 static N_NIMCALL(void, Marker_tyRef__lnkYNZP9asc88UfiEGjLrbA)(void* p, NI op);
183 N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*, getIdent__idents_89)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NCSTRING identifier, NI length, NI h);
184 N_LIB_PRIVATE N_NIMCALL(NI, cmpExact__idents_66)(NCSTRING a, NCSTRING b, NI blen);
185 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
186 static N_INLINE(void, asgnRef)(void** dest, void* src);
187 static N_INLINE(void, incRef__system_5338)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
188 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
189 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr);
190 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
191 static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
192 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
193 static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
194 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5294)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
195 N_LIB_PRIVATE N_NIMCALL(NI, cmpIgnoreStyle__idents_17)(NCSTRING a, NCSTRING b, NI blen);
196 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
197 N_NIMCALL(NimStringDesc*, mnewString)(NI len);
198 N_LIB_PRIVATE N_NIMCALL(NI, hashIgnoreStyle__pureZhashes_290)(NimStringDesc* x);
199 N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*, getIdent__idents_143)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NimStringDesc* identifier);
200 N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*, getIdent__idents_147)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NimStringDesc* identifier, NI h);
201 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
202 N_LIB_PRIVATE TNimType NTItident__1LTsGP7bSxg45u9aHcxh6OA_;
203 extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
204 extern TNimType NTIstring__77mFvmsOLKik79ci2hXkHEg_;
205 N_LIB_PRIVATE TNimType NTIpident__EiGmNYVHiKeimIyQkW82mg_;
206 N_LIB_PRIVATE TNimType NTIidentcache58objecttype__TzLHS09bRH9a0TYLs39cqcNaw_;
207 N_LIB_PRIVATE TNimType NTIarrayL48OO56495749_pidentT__O7BaHX6ctEz6BpjFNHWCFQ_;
208 N_LIB_PRIVATE TNimType NTIidentcache__lnkYNZP9asc88UfiEGjLrbA_;
209 STRING_LITERAL(TM__L3r6bVdeFMiI9cwmLpWIeKw_4, ":anonymous", 10);
210 STRING_LITERAL(TM__L3r6bVdeFMiI9cwmLpWIeKw_5, ":delegator", 10);
211 extern TNimType NTItspecialword__ycbpMCRV6Cd2eBh3X9biEiw_;
212 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5247;
N_NIMCALL(void,Marker_tyRef__EiGmNYVHiKeimIyQkW82mg)213 static N_NIMCALL(void, Marker_tyRef__EiGmNYVHiKeimIyQkW82mg)(void* p, NI op) {
214 	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* a;
215 	a = (tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*)p;
216 	nimGCvisit((void*)(*a).s, op);
217 	nimGCvisit((void*)(*a).next, op);
218 }
N_NIMCALL(void,Marker_tyRef__lnkYNZP9asc88UfiEGjLrbA)219 static N_NIMCALL(void, Marker_tyRef__lnkYNZP9asc88UfiEGjLrbA)(void* p, NI op) {
220 	tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* a;
221 	NI T1_;
222 	a = (tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw*)p;
223 	T1_ = (NI)0;
224 	for (T1_ = 0; T1_ < 8192; T1_++) {
225 	nimGCvisit((void*)(*a).buckets[T1_], op);
226 	}
227 	nimGCvisit((void*)(*a).idAnon, op);
228 	nimGCvisit((void*)(*a).idDelegator, op);
229 	nimGCvisit((void*)(*a).emptyIdent, op);
230 }
N_NIMCALL(NI,cmpExact__idents_66)231 N_LIB_PRIVATE N_NIMCALL(NI, cmpExact__idents_66)(NCSTRING a, NCSTRING b, NI blen) {
232 	NI result;
233 	NI i;
234 	NI j;
235 	result = (NI)0;
236 	i = ((NI) 0);
237 	j = ((NI) 0);
238 	result = ((NI) 1);
239 	{
240 		while (1) {
241 			NIM_CHAR aa;
242 			NIM_CHAR bb;
243 			if (!(j < blen)) goto LA2;
244 			aa = a[i];
245 			bb = b[j];
246 			result = (NI)(((NU8)(aa)) - ((NU8)(bb)));
247 			{
248 				NIM_BOOL T5_;
249 				T5_ = (NIM_BOOL)0;
250 				T5_ = !((result == ((NI) 0)));
251 				if (T5_) goto LA6_;
252 				T5_ = ((NU8)(aa) == (NU8)(0));
253 				LA6_: ;
254 				if (!T5_) goto LA7_;
255 				goto LA1;
256 			}
257 			LA7_: ;
258 			i += ((NI) 1);
259 			j += ((NI) 1);
260 		} LA2: ;
261 	} LA1: ;
262 	{
263 		if (!(result == ((NI) 0))) goto LA11_;
264 		{
265 			if (!!(((NU8)(a[i]) == (NU8)(0)))) goto LA15_;
266 			result = ((NI) 1);
267 		}
268 		LA15_: ;
269 	}
270 	LA11_: ;
271 	return result;
272 }
N_INLINE(NCSTRING,nimToCStringConv)273 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
274 	NCSTRING result;
275 	result = (NCSTRING)0;
276 	{
277 		NIM_BOOL T3_;
278 		T3_ = (NIM_BOOL)0;
279 		T3_ = (s == ((NimStringDesc*) NIM_NIL));
280 		if (T3_) goto LA4_;
281 		T3_ = ((*s).Sup.len == ((NI) 0));
282 		LA4_: ;
283 		if (!T3_) goto LA5_;
284 		result = "";
285 	}
286 	goto LA1_;
287 	LA5_: ;
288 	{
289 		result = ((NCSTRING) ((*s).data));
290 	}
291 	LA1_: ;
292 	return result;
293 }
N_INLINE(NI,pluspercent___system_696)294 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
295 	NI result;
296 	result = (NI)0;
297 	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
298 	return result;
299 }
N_INLINE(void,incRef__system_5338)300 static N_INLINE(void, incRef__system_5338)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
301 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
302 }
N_INLINE(NI,minuspercent___system_716)303 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
304 	NI result;
305 	result = (NI)0;
306 	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
307 	return result;
308 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5300)309 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr) {
310 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
311 	NI T1_;
312 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
313 	T1_ = (NI)0;
314 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
315 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
316 	return result;
317 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)318 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
319 	NIM_BOOL result;
320 	result = (NIM_BOOL)0;
321 	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
322 	return result;
323 }
N_INLINE(void,rtlAddZCT__system_5343)324 static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
325 	addZCT__system_5294((&gch__system_5247.zct), c);
326 }
N_INLINE(void,decRef__system_5345)327 static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
328 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
329 	{
330 		NIM_BOOL T3_;
331 		T3_ = (NIM_BOOL)0;
332 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
333 		if (!T3_) goto LA4_;
334 		rtlAddZCT__system_5343(c);
335 	}
336 	LA4_: ;
337 }
N_INLINE(void,asgnRef)338 static N_INLINE(void, asgnRef)(void** dest, void* src) {
339 	{
340 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
341 		if (!!((src == NIM_NIL))) goto LA3_;
342 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
343 		T5_ = usrToCell__system_5300(src);
344 		incRef__system_5338(T5_);
345 	}
346 	LA3_: ;
347 	{
348 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
349 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
350 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
351 		T10_ = usrToCell__system_5300((*dest));
352 		decRef__system_5345(T10_);
353 	}
354 	LA8_: ;
355 	(*dest) = src;
356 }
N_NIMCALL(NI,cmpIgnoreStyle__idents_17)357 N_LIB_PRIVATE N_NIMCALL(NI, cmpIgnoreStyle__idents_17)(NCSTRING a, NCSTRING b, NI blen) {
358 	NI result;
359 	NI i;
360 	NI j;
361 {	result = (NI)0;
362 	{
363 		if (!!(((NU8)(a[((NI) 0)]) == (NU8)(b[((NI) 0)])))) goto LA3_;
364 		result = ((NI) 1);
365 		goto BeforeRet_;
366 	}
367 	LA3_: ;
368 	i = ((NI) 0);
369 	j = ((NI) 0);
370 	result = ((NI) 1);
371 	{
372 		while (1) {
373 			NIM_CHAR aa;
374 			NIM_CHAR bb;
375 			if (!(j < blen)) goto LA6;
376 			{
377 				while (1) {
378 					if (!((NU8)(a[i]) == (NU8)(95))) goto LA8;
379 					i += ((NI) 1);
380 				} LA8: ;
381 			}
382 			{
383 				while (1) {
384 					if (!((NU8)(b[j]) == (NU8)(95))) goto LA10;
385 					j += ((NI) 1);
386 				} LA10: ;
387 			}
388 			aa = a[i];
389 			bb = b[j];
390 			{
391 				NIM_BOOL T13_;
392 				T13_ = (NIM_BOOL)0;
393 				T13_ = ((NU8)(65) <= (NU8)(aa));
394 				if (!(T13_)) goto LA14_;
395 				T13_ = ((NU8)(aa) <= (NU8)(90));
396 				LA14_: ;
397 				if (!T13_) goto LA15_;
398 				aa = ((NIM_CHAR) (((NI) ((NI)(((NU8)(aa)) + ((NI) 32))))));
399 			}
400 			LA15_: ;
401 			{
402 				NIM_BOOL T19_;
403 				T19_ = (NIM_BOOL)0;
404 				T19_ = ((NU8)(65) <= (NU8)(bb));
405 				if (!(T19_)) goto LA20_;
406 				T19_ = ((NU8)(bb) <= (NU8)(90));
407 				LA20_: ;
408 				if (!T19_) goto LA21_;
409 				bb = ((NIM_CHAR) (((NI) ((NI)(((NU8)(bb)) + ((NI) 32))))));
410 			}
411 			LA21_: ;
412 			result = (NI)(((NU8)(aa)) - ((NU8)(bb)));
413 			{
414 				NIM_BOOL T25_;
415 				T25_ = (NIM_BOOL)0;
416 				T25_ = !((result == ((NI) 0)));
417 				if (T25_) goto LA26_;
418 				T25_ = ((NU8)(aa) == (NU8)(0));
419 				LA26_: ;
420 				if (!T25_) goto LA27_;
421 				goto LA5;
422 			}
423 			LA27_: ;
424 			i += ((NI) 1);
425 			j += ((NI) 1);
426 		} LA6: ;
427 	} LA5: ;
428 	{
429 		if (!(result == ((NI) 0))) goto LA31_;
430 		{
431 			if (!!(((NU8)(a[i]) == (NU8)(0)))) goto LA35_;
432 			result = ((NI) 1);
433 		}
434 		LA35_: ;
435 	}
436 	LA31_: ;
437 	}BeforeRet_: ;
438 	return result;
439 }
N_NIMCALL(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA *,getIdent__idents_89)440 N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*, getIdent__idents_89)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NCSTRING identifier, NI length, NI h) {
441 	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* result;
442 	NI idx;
443 	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* last;
444 	NI id;
445 {	result = NIM_NIL;
446 	idx = (NI)(h & ((NI) 8191));
447 	result = (*ic).buckets[(idx)- 0];
448 	last = ((tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*) NIM_NIL);
449 	id = ((NI) 0);
450 	{
451 		while (1) {
452 			if (!!((result == ((tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*) NIM_NIL)))) goto LA2;
453 			{
454 				NI T5_;
455 				T5_ = (NI)0;
456 				T5_ = cmpExact__idents_66(nimToCStringConv((*result).s), identifier, length);
457 				if (!(T5_ == ((NI) 0))) goto LA6_;
458 				{
459 					if (!!((last == ((tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*) NIM_NIL)))) goto LA10_;
460 					asgnRef((void**) (&(*last).next), (*result).next);
461 					asgnRef((void**) (&(*result).next), (*ic).buckets[(idx)- 0]);
462 					asgnRef((void**) (&(*ic).buckets[(idx)- 0]), result);
463 				}
464 				LA10_: ;
465 				goto BeforeRet_;
466 			}
467 			goto LA3_;
468 			LA6_: ;
469 			{
470 				NI T13_;
471 				T13_ = (NI)0;
472 				T13_ = cmpIgnoreStyle__idents_17(nimToCStringConv((*result).s), identifier, length);
473 				if (!(T13_ == ((NI) 0))) goto LA14_;
474 				id = (*result).id;
475 			}
476 			goto LA3_;
477 			LA14_: ;
478 			LA3_: ;
479 			last = result;
480 			result = (*result).next;
481 		} LA2: ;
482 	}
483 	result = (tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*) newObj((&NTIpident__EiGmNYVHiKeimIyQkW82mg_), sizeof(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA));
484 	(*result).h = h;
485 	asgnRef((void**) (&(*result).s), mnewString(((NI) (length))));
486 	{
487 		NI i;
488 		NI i_2;
489 		i = (NI)0;
490 		i_2 = ((NI) 0);
491 		{
492 			while (1) {
493 				if (!(i_2 < length)) goto LA18;
494 				i = i_2;
495 				(*result).s->data[i] = identifier[i];
496 				i_2 += ((NI) 1);
497 			} LA18: ;
498 		}
499 	}
500 	asgnRef((void**) (&(*result).next), (*ic).buckets[(idx)- 0]);
501 	asgnRef((void**) (&(*ic).buckets[(idx)- 0]), result);
502 	{
503 		if (!(id == ((NI) 0))) goto LA21_;
504 		(*ic).wordCounter += ((NI) 1);
505 		(*result).id = ((NI64)-((*ic).wordCounter));
506 	}
507 	goto LA19_;
508 	LA21_: ;
509 	{
510 		(*result).id = id;
511 	}
512 	LA19_: ;
513 	}BeforeRet_: ;
514 	return result;
515 }
N_NIMCALL(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA *,getIdent__idents_143)516 N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*, getIdent__idents_143)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NimStringDesc* identifier) {
517 	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* result;
518 	NI T1_;
519 	result = NIM_NIL;
520 	T1_ = (NI)0;
521 	T1_ = hashIgnoreStyle__pureZhashes_290(identifier);
522 	result = getIdent__idents_89(ic, nimToCStringConv(identifier), (identifier ? identifier->Sup.len : 0), T1_);
523 	return result;
524 }
N_NIMCALL(tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw,whichKeyword__idents_214)525 N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw, whichKeyword__idents_214)(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* id) {
526 	tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw result;
527 	result = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
528 	{
529 		if (!((*id).id < ((NI) 0))) goto LA3_;
530 		result = ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 0);
531 	}
532 	goto LA1_;
533 	LA3_: ;
534 	{
535 		result = ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) ((*id).id));
536 	}
537 	LA1_: ;
538 	return result;
539 }
N_NIMCALL(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA *,getIdent__idents_147)540 N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*, getIdent__idents_147)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NimStringDesc* identifier, NI h) {
541 	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* result;
542 	result = NIM_NIL;
543 	result = getIdent__idents_89(ic, nimToCStringConv(identifier), (identifier ? identifier->Sup.len : 0), h);
544 	return result;
545 }
N_NIMCALL(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw *,newIdentCache__idents_152)546 N_LIB_PRIVATE N_NIMCALL(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw*, newIdentCache__idents_152)(void) {
547 	tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* result;
548 	tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* T1_;
549 	result = NIM_NIL;
550 	T1_ = NIM_NIL;
551 	T1_ = (tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw*) newObj((&NTIidentcache__lnkYNZP9asc88UfiEGjLrbA_), sizeof(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw));
552 	result = T1_;
553 	asgnRef((void**) (&(*result).idAnon), getIdent__idents_143(result, ((NimStringDesc*) &TM__L3r6bVdeFMiI9cwmLpWIeKw_4)));
554 	(*result).wordCounter = ((NI) 1);
555 	asgnRef((void**) (&(*result).idDelegator), getIdent__idents_143(result, ((NimStringDesc*) &TM__L3r6bVdeFMiI9cwmLpWIeKw_5)));
556 	asgnRef((void**) (&(*result).emptyIdent), getIdent__idents_143(result, ((NimStringDesc*) NIM_NIL)));
557 	{
558 		tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw s;
559 		NI res;
560 		s = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
561 		res = ((NI) 1);
562 		{
563 			while (1) {
564 				NI T5_;
565 				tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T6_;
566 				if (!(res <= ((NI) 293))) goto LA4;
567 				s = ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) (res));
568 				T5_ = (NI)0;
569 				T5_ = hashIgnoreStyle__pureZhashes_290(reprEnum((NI)s, (&NTItspecialword__ycbpMCRV6Cd2eBh3X9biEiw_)));
570 				T6_ = NIM_NIL;
571 				T6_ = getIdent__idents_147(result, reprEnum((NI)s, (&NTItspecialword__ycbpMCRV6Cd2eBh3X9biEiw_)), T5_);
572 				(*T6_).id = s;
573 				res += ((NI) 1);
574 			} LA4: ;
575 		}
576 	}
577 	return result;
578 }
N_NIMCALL(void,compiler_identsDatInit000)579 N_LIB_PRIVATE N_NIMCALL(void, compiler_identsDatInit000)(void) {
580 static TNimNode* TM__L3r6bVdeFMiI9cwmLpWIeKw_2_4[4];
581 static TNimNode* TM__L3r6bVdeFMiI9cwmLpWIeKw_3_5[5];
582 static TNimNode TM__L3r6bVdeFMiI9cwmLpWIeKw_0[11];
583 NTItident__1LTsGP7bSxg45u9aHcxh6OA_.size = sizeof(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA);
584 NTItident__1LTsGP7bSxg45u9aHcxh6OA_.align = NIM_ALIGNOF(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA);
585 NTItident__1LTsGP7bSxg45u9aHcxh6OA_.kind = 18;
586 NTItident__1LTsGP7bSxg45u9aHcxh6OA_.base = 0;
587 NTItident__1LTsGP7bSxg45u9aHcxh6OA_.flags = 2;
588 TM__L3r6bVdeFMiI9cwmLpWIeKw_2_4[0] = &TM__L3r6bVdeFMiI9cwmLpWIeKw_0[1];
589 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[1].kind = 1;
590 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[1].offset = offsetof(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA, id);
591 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[1].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
592 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[1].name = "id";
593 TM__L3r6bVdeFMiI9cwmLpWIeKw_2_4[1] = &TM__L3r6bVdeFMiI9cwmLpWIeKw_0[2];
594 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[2].kind = 1;
595 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[2].offset = offsetof(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA, s);
596 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[2].typ = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
597 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[2].name = "s";
598 TM__L3r6bVdeFMiI9cwmLpWIeKw_2_4[2] = &TM__L3r6bVdeFMiI9cwmLpWIeKw_0[3];
599 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[3].kind = 1;
600 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[3].offset = offsetof(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA, next);
601 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[3].typ = (&NTIpident__EiGmNYVHiKeimIyQkW82mg_);
602 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[3].name = "next";
603 TM__L3r6bVdeFMiI9cwmLpWIeKw_2_4[3] = &TM__L3r6bVdeFMiI9cwmLpWIeKw_0[4];
604 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[4].kind = 1;
605 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[4].offset = offsetof(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA, h);
606 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[4].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
607 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[4].name = "h";
608 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[0].len = 4; TM__L3r6bVdeFMiI9cwmLpWIeKw_0[0].kind = 2; TM__L3r6bVdeFMiI9cwmLpWIeKw_0[0].sons = &TM__L3r6bVdeFMiI9cwmLpWIeKw_2_4[0];
609 NTItident__1LTsGP7bSxg45u9aHcxh6OA_.node = &TM__L3r6bVdeFMiI9cwmLpWIeKw_0[0];
610 NTIpident__EiGmNYVHiKeimIyQkW82mg_.size = sizeof(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*);
611 NTIpident__EiGmNYVHiKeimIyQkW82mg_.align = NIM_ALIGNOF(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*);
612 NTIpident__EiGmNYVHiKeimIyQkW82mg_.kind = 22;
613 NTIpident__EiGmNYVHiKeimIyQkW82mg_.base = (&NTItident__1LTsGP7bSxg45u9aHcxh6OA_);
614 NTIpident__EiGmNYVHiKeimIyQkW82mg_.marker = Marker_tyRef__EiGmNYVHiKeimIyQkW82mg;
615 NTIidentcache58objecttype__TzLHS09bRH9a0TYLs39cqcNaw_.size = sizeof(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw);
616 NTIidentcache58objecttype__TzLHS09bRH9a0TYLs39cqcNaw_.align = NIM_ALIGNOF(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw);
617 NTIidentcache58objecttype__TzLHS09bRH9a0TYLs39cqcNaw_.kind = 18;
618 NTIidentcache58objecttype__TzLHS09bRH9a0TYLs39cqcNaw_.base = 0;
619 TM__L3r6bVdeFMiI9cwmLpWIeKw_3_5[0] = &TM__L3r6bVdeFMiI9cwmLpWIeKw_0[6];
620 NTIarrayL48OO56495749_pidentT__O7BaHX6ctEz6BpjFNHWCFQ_.size = sizeof(tyArray__O7BaHX6ctEz6BpjFNHWCFQ);
621 NTIarrayL48OO56495749_pidentT__O7BaHX6ctEz6BpjFNHWCFQ_.align = NIM_ALIGNOF(tyArray__O7BaHX6ctEz6BpjFNHWCFQ);
622 NTIarrayL48OO56495749_pidentT__O7BaHX6ctEz6BpjFNHWCFQ_.kind = 16;
623 NTIarrayL48OO56495749_pidentT__O7BaHX6ctEz6BpjFNHWCFQ_.base = (&NTIpident__EiGmNYVHiKeimIyQkW82mg_);
624 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[6].kind = 1;
625 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[6].offset = offsetof(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw, buckets);
626 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[6].typ = (&NTIarrayL48OO56495749_pidentT__O7BaHX6ctEz6BpjFNHWCFQ_);
627 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[6].name = "buckets";
628 TM__L3r6bVdeFMiI9cwmLpWIeKw_3_5[1] = &TM__L3r6bVdeFMiI9cwmLpWIeKw_0[7];
629 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[7].kind = 1;
630 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[7].offset = offsetof(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw, wordCounter);
631 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[7].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
632 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[7].name = "wordCounter";
633 TM__L3r6bVdeFMiI9cwmLpWIeKw_3_5[2] = &TM__L3r6bVdeFMiI9cwmLpWIeKw_0[8];
634 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[8].kind = 1;
635 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[8].offset = offsetof(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw, idAnon);
636 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[8].typ = (&NTIpident__EiGmNYVHiKeimIyQkW82mg_);
637 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[8].name = "idAnon";
638 TM__L3r6bVdeFMiI9cwmLpWIeKw_3_5[3] = &TM__L3r6bVdeFMiI9cwmLpWIeKw_0[9];
639 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[9].kind = 1;
640 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[9].offset = offsetof(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw, idDelegator);
641 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[9].typ = (&NTIpident__EiGmNYVHiKeimIyQkW82mg_);
642 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[9].name = "idDelegator";
643 TM__L3r6bVdeFMiI9cwmLpWIeKw_3_5[4] = &TM__L3r6bVdeFMiI9cwmLpWIeKw_0[10];
644 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[10].kind = 1;
645 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[10].offset = offsetof(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw, emptyIdent);
646 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[10].typ = (&NTIpident__EiGmNYVHiKeimIyQkW82mg_);
647 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[10].name = "emptyIdent";
648 TM__L3r6bVdeFMiI9cwmLpWIeKw_0[5].len = 5; TM__L3r6bVdeFMiI9cwmLpWIeKw_0[5].kind = 2; TM__L3r6bVdeFMiI9cwmLpWIeKw_0[5].sons = &TM__L3r6bVdeFMiI9cwmLpWIeKw_3_5[0];
649 NTIidentcache58objecttype__TzLHS09bRH9a0TYLs39cqcNaw_.node = &TM__L3r6bVdeFMiI9cwmLpWIeKw_0[5];
650 NTIidentcache__lnkYNZP9asc88UfiEGjLrbA_.size = sizeof(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw*);
651 NTIidentcache__lnkYNZP9asc88UfiEGjLrbA_.align = NIM_ALIGNOF(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw*);
652 NTIidentcache__lnkYNZP9asc88UfiEGjLrbA_.kind = 22;
653 NTIidentcache__lnkYNZP9asc88UfiEGjLrbA_.base = (&NTIidentcache58objecttype__TzLHS09bRH9a0TYLs39cqcNaw_);
654 NTIidentcache__lnkYNZP9asc88UfiEGjLrbA_.marker = Marker_tyRef__lnkYNZP9asc88UfiEGjLrbA;
655 }
656 
657