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