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