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