1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 64
3 #define NIM_EmulateOverflowChecks
4 
5 #include "nimbase.h"
6 #include <string.h>
7 #undef LANGUAGE_C
8 #undef MIPSEB
9 #undef MIPSEL
10 #undef PPC
11 #undef R3000
12 #undef R4000
13 #undef i386
14 #undef linux
15 #undef mips
16 #undef near
17 #undef far
18 #undef powerpc
19 #undef unix
20 #define nimfr_(x, y)
21 #define nimln_(x, y)
22 typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
23 typedef struct tyObject_TType__facALICuu8zUj0hjvbTLFg tyObject_TType__facALICuu8zUj0hjvbTLFg;
24 typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
25 typedef struct NimStringDesc NimStringDesc;
26 typedef struct TGenericSeq TGenericSeq;
27 typedef struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ;
28 typedef struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA;
29 typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
30 typedef struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w;
31 typedef struct RootObj RootObj;
32 typedef struct TNimType TNimType;
33 typedef struct TNimNode TNimNode;
34 typedef struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g;
35 typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
36 typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
37 typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
38 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
39 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
40 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
41 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
42 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
43 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
44 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
45 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
46 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
47 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
48 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
49 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
50 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
51 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
52 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
53 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
54 typedef struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A;
55 struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
56 NU16 line;
57 NI16 col;
58 NI32 fileIndex;
59 };
60 typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
61 typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
62 struct TGenericSeq {
63 NI len;
64 NI reserved;
65 };
66 struct NimStringDesc {
67   TGenericSeq Sup;
68 NIM_CHAR data[SEQ_DECL_SIZE];
69 };
70 struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
71 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
72 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
73 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
74 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
75 union{
76 struct {NI64 intVal;
77 } _kind_1;
78 struct {NF floatVal;
79 } _kind_2;
80 struct {NimStringDesc* strVal;
81 } _kind_3;
82 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
83 } _kind_4;
84 struct {tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
85 } _kind_5;
86 struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
87 } _kind_6;
88 };
89 };
90 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
91 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
92 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
93 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
94 struct TNimType {
95 NI size;
96 NI align;
97 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
98 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
99 TNimType* base;
100 TNimNode* node;
101 void* finalizer;
102 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
103 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
104 };
105 struct RootObj {
106 TNimType* m_type;
107 };
108 struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g {
109 NI32 module;
110 NI32 item;
111 };
112 struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w {
113   RootObj Sup;
114 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g itemId;
115 };
116 typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
117 typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
118 typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
119 typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
120 typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
121 typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
122 typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
123 struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
124 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
125 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
126 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
127 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
128 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
129 };
130 struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ {
131   tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
132 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
133 union{
134 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* gcUnsafetyReason;
135 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
136 } _kind_1;
137 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* guard;
138 NI bitsize;
139 NI alignment;
140 } _kind_2;
141 };
142 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
143 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
144 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name;
145 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
146 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
147 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
148 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
149 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
150 NI position;
151 NI offset;
152 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
153 tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
154 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
155 };
156 struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA {
157 NI id;
158 NimStringDesc* s;
159 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* next;
160 NI h;
161 };
162 typedef NU16 tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw;
163 typedef NU8 tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
164 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
165 struct TNimNode {
166 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
167 NI offset;
168 TNimType* typ;
169 NCSTRING name;
170 NI len;
171 TNimNode** sons;
172 };
173 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
174 NI refcount;
175 TNimType* typ;
176 };
177 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
178 void* bottom;
179 };
180 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
181 NI len;
182 NI cap;
183 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
184 };
185 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
186 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
187 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
188 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
189 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
190 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
191 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
192 };
193 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
194 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
195 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
196 NI key;
197 NI upperBound;
198 NI level;
199 };
200 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
201 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
202 NI Field1;
203 };
204 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
205 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
206 NI len;
207 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
208 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
209 };
210 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
211 NI minLargeObj;
212 NI maxLargeObj;
213 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
214 NU32 flBitmap;
215 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
216 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
217 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
218 NI currMem;
219 NI maxMem;
220 NI freeMem;
221 NI occ;
222 NI lastSize;
223 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
224 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
225 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
226 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
227 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
228 NIM_BOOL locked;
229 NIM_BOOL blockChunkSizeIncrease;
230 NI nextChunkSize;
231 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
232 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
233 };
234 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
235 NI stackScans;
236 NI cycleCollections;
237 NI maxThreshold;
238 NI maxStackSize;
239 NI maxStackCells;
240 NI cycleTableSize;
241 NI64 maxPause;
242 };
243 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
244 NI counter;
245 NI max;
246 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
247 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
248 };
249 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
250 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
251 NI cycleThreshold;
252 NI zctThreshold;
253 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
254 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
255 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
256 NI recGcLock;
257 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
258 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
259 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
260 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
261 NI gcThreadId;
262 };
263 typedef NU8 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag[9];
264 typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
265 typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
266 typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
267 struct tyObject_TType__facALICuu8zUj0hjvbTLFg {
268   tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
269 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
270 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
271 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
272 tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* sons;
273 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
274 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
275 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
276 NI64 size;
277 NI16 align;
278 NI16 paddingAtEnd;
279 NI16 lockLevel;
280 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
281 tyObject_TType__facALICuu8zUj0hjvbTLFg* typeInst;
282 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g uniqueId;
283 };
284 typedef NU8 tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
285 struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
286   TGenericSeq Sup;
287   tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
288 };
289 struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A {
290   TGenericSeq Sup;
291   tyObject_TType__facALICuu8zUj0hjvbTLFg* data[SEQ_DECL_SIZE];
292 };
293 static N_INLINE(NIM_BOOL, sameFloatIgnoreNan__trees_52)(NF a, NF b);
294 static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
295 static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size);
296 static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
297 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, comment__ast_993)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
298 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
299 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, exprStructuralEquivalent__trees_56)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, NIM_BOOL strictSymEquality);
300 N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw, whichPragma__trees_244)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
301 N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw, whichKeyword__idents_214)(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* id);
302 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__ast_3356)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
303 N_LIB_PRIVATE N_NIMCALL(void, add__ast_4797)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
304 static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
305 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCaseObj__trees_158)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
306 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cyclicTreeAux__trees_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** visited);
307 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
308 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
309 static N_INLINE(void, asgnRef)(void** dest, void* src);
310 static N_INLINE(void, incRef__system_5338)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
311 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
312 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr);
313 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
314 static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
315 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
316 static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
317 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5294)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
318 static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pop__trees_32)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** s);
319 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
320 N_LIB_PRIVATE N_NIMCALL(void, unnestStmts__trees_339)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result);
321 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__ast_3360)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NI children);
322 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDeepConstExpr__trees_171)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL preventInheritance);
323 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipTypes__ast_3735)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
324 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getRoot__trees_390)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
325 N_LIB_PRIVATE N_NIMCALL(tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg, getMagic__trees_137)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* op);
326 extern TNimType NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_;
327 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__YXYgefJuEvycsGrI1dEbqg_2 = {
328 0x10, 0x28, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00,
329 0x00}
330 ;
331 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5247;
N_INLINE(NIM_BOOL,sameFloatIgnoreNan__trees_52)332 static N_INLINE(NIM_BOOL, sameFloatIgnoreNan__trees_52)(NF a, NF b) {
333 	NIM_BOOL result;
334 	NIM_BOOL T1_;
335 	union { NF source; NU64 dest; } LOC2;
336 	union { NF source; NU64 dest; } LOC3;
337 	result = (NIM_BOOL)0;
338 	T1_ = (NIM_BOOL)0;
339 	LOC2.source = a;
340 	LOC3.source = b;
341 	T1_ = (LOC2.dest == LOC3.dest);
342 	if (T1_) goto LA4_;
343 	T1_ = (a == b);
344 	LA4_: ;
345 	result = T1_;
346 	return result;
347 }
N_INLINE(int,nimCmpMem)348 static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
349 	int result;
350 	result = (int)0;
351 	result = memcmp(a, b, ((size_t) (size)));
352 	return result;
353 }
N_INLINE(NIM_BOOL,equalMem__system_1735)354 static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size) {
355 	NIM_BOOL result;
356 	int T1_;
357 	result = (NIM_BOOL)0;
358 	T1_ = (int)0;
359 	T1_ = nimCmpMem(a, b, size);
360 	result = (T1_ == ((NI32) 0));
361 	return result;
362 }
N_INLINE(NIM_BOOL,eqStrings)363 static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
364 	NIM_BOOL result;
365 	NI alen;
366 	NI blen;
367 {	result = (NIM_BOOL)0;
368 	alen = (a ? a->Sup.len : 0);
369 	blen = (b ? b->Sup.len : 0);
370 	{
371 		if (!(alen == blen)) goto LA3_;
372 		{
373 			if (!(alen == ((NI) 0))) goto LA7_;
374 			result = NIM_TRUE;
375 			goto BeforeRet_;
376 		}
377 		LA7_: ;
378 		result = equalMem__system_1735(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
379 		goto BeforeRet_;
380 	}
381 	LA3_: ;
382 	}BeforeRet_: ;
383 	return result;
384 }
N_INLINE(NI,len__ast_3198)385 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
386 	NI result;
387 	NI T1_;
388 	result = (NI)0;
389 	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
390 	result = T1_;
391 	return result;
392 }
N_NIMCALL(NIM_BOOL,exprStructuralEquivalent__trees_56)393 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, exprStructuralEquivalent__trees_56)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b, NIM_BOOL strictSymEquality) {
394 	NIM_BOOL result;
395 {	result = (NIM_BOOL)0;
396 	{
397 		if (!(a == b)) goto LA3_;
398 		result = NIM_TRUE;
399 	}
400 	goto LA1_;
401 	LA3_: ;
402 	{
403 		NIM_BOOL T6_;
404 		NIM_BOOL T7_;
405 		T6_ = (NIM_BOOL)0;
406 		T7_ = (NIM_BOOL)0;
407 		T7_ = !((a == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
408 		if (!(T7_)) goto LA8_;
409 		T7_ = !((b == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
410 		LA8_: ;
411 		T6_ = T7_;
412 		if (!(T6_)) goto LA9_;
413 		T6_ = ((*a).kind == (*b).kind);
414 		LA9_: ;
415 		if (!T6_) goto LA10_;
416 		switch ((*a).kind) {
417 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
418 		{
419 			{
420 				if (!strictSymEquality) goto LA15_;
421 				result = ((*a)._kind_4.sym == (*b)._kind_4.sym);
422 			}
423 			goto LA13_;
424 			LA15_: ;
425 			{
426 				result = ((*(*(*a)._kind_4.sym).name).id == (*(*(*b)._kind_4.sym).name).id);
427 			}
428 			LA13_: ;
429 		}
430 		break;
431 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
432 		{
433 			result = ((*(*a)._kind_5.ident).id == (*(*b)._kind_5.ident).id);
434 		}
435 		break;
436 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 15):
437 		{
438 			result = ((*a)._kind_1.intVal == (*b)._kind_1.intVal);
439 		}
440 		break;
441 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 16) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 18):
442 		{
443 			result = sameFloatIgnoreNan__trees_52((*a)._kind_2.floatVal, (*b)._kind_2.floatVal);
444 		}
445 		break;
446 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 20) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 22):
447 		{
448 			result = eqStrings((*a)._kind_3.strVal, (*b)._kind_3.strVal);
449 		}
450 		break;
451 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
452 		{
453 			NimStringDesc* T23_;
454 			NimStringDesc* T24_;
455 			T23_ = NIM_NIL;
456 			T23_ = comment__ast_993(a);
457 			T24_ = NIM_NIL;
458 			T24_ = comment__ast_993(b);
459 			result = eqStrings(T23_, T24_);
460 		}
461 		break;
462 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1):
463 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
464 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4):
465 		{
466 			result = NIM_TRUE;
467 		}
468 		break;
469 		default:
470 		{
471 			{
472 				NI T29_;
473 				NI T30_;
474 				T29_ = (NI)0;
475 				T29_ = len__ast_3198(a);
476 				T30_ = (NI)0;
477 				T30_ = len__ast_3198(b);
478 				if (!(T29_ == T30_)) goto LA31_;
479 				{
480 					NI i;
481 					NI colontmp_;
482 					NI i_2;
483 					i = (NI)0;
484 					colontmp_ = (NI)0;
485 					colontmp_ = len__ast_3198(a);
486 					i_2 = ((NI) 0);
487 					{
488 						while (1) {
489 							if (!(i_2 < colontmp_)) goto LA35;
490 							i = i_2;
491 							{
492 								NIM_BOOL T38_;
493 								T38_ = (NIM_BOOL)0;
494 								T38_ = exprStructuralEquivalent__trees_56((*a)._kind_6.sons->data[i], (*b)._kind_6.sons->data[i], strictSymEquality);
495 								if (!!(T38_)) goto LA39_;
496 								goto BeforeRet_;
497 							}
498 							LA39_: ;
499 							i_2 += ((NI) 1);
500 						} LA35: ;
501 					}
502 				}
503 				result = NIM_TRUE;
504 			}
505 			LA31_: ;
506 		}
507 		break;
508 		}
509 	}
510 	goto LA1_;
511 	LA10_: ;
512 	LA1_: ;
513 	}BeforeRet_: ;
514 	return result;
515 }
N_NIMCALL(tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw,whichPragma__trees_244)516 N_LIB_PRIVATE N_NIMCALL(tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw, whichPragma__trees_244)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
517 	tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw result;
518 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key;
519 	result = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
520 	{
521 		NIM_BOOL T3_;
522 		NI T5_;
523 		T3_ = (NIM_BOOL)0;
524 		T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28));
525 		if (!(T3_)) goto LA4_;
526 		T5_ = (NI)0;
527 		T5_ = len__ast_3198(n);
528 		T3_ = (((NI) 0) < T5_);
529 		LA4_: ;
530 		if (!T3_) goto LA6_;
531 		key = (*n)._kind_6.sons->data[((NI) 0)];
532 	}
533 	goto LA1_;
534 	LA6_: ;
535 	{
536 		key = n;
537 	}
538 	LA1_: ;
539 	switch ((*key).kind) {
540 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
541 	{
542 		result = whichKeyword__idents_214((*key)._kind_5.ident);
543 	}
544 	break;
545 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
546 	{
547 		result = whichKeyword__idents_214((*(*key)._kind_4.sym).name);
548 	}
549 	break;
550 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61):
551 	{
552 		result = ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 9);
553 	}
554 	break;
555 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 56):
556 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 57):
557 	{
558 		result = whichPragma__trees_244((*key)._kind_6.sons->data[((NI) 0)]);
559 	}
560 	break;
561 	default:
562 	{
563 		result = ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 0);
564 	}
565 	break;
566 	}
567 	return result;
568 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,effectSpec__trees_284)569 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, effectSpec__trees_284)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw effectType) {
570 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
571 {	result = NIM_NIL;
572 	{
573 		NI i;
574 		NI colontmp_;
575 		NI i_2;
576 		i = (NI)0;
577 		colontmp_ = (NI)0;
578 		colontmp_ = len__ast_3198(n);
579 		i_2 = ((NI) 0);
580 		{
581 			while (1) {
582 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
583 				if (!(i_2 < colontmp_)) goto LA3;
584 				i = i_2;
585 				it = (*n)._kind_6.sons->data[i];
586 				{
587 					NIM_BOOL T6_;
588 					tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw T8_;
589 					T6_ = (NIM_BOOL)0;
590 					T6_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34));
591 					if (!(T6_)) goto LA7_;
592 					T8_ = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
593 					T8_ = whichPragma__trees_244(it);
594 					T6_ = (T8_ == effectType);
595 					LA7_: ;
596 					if (!T6_) goto LA9_;
597 					result = (*it)._kind_6.sons->data[((NI) 1)];
598 					{
599 						if (!!(((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41)))) goto LA13_;
600 						result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39), (*result).info);
601 						add__ast_4797(result, (*it)._kind_6.sons->data[((NI) 1)]);
602 					}
603 					LA13_: ;
604 					goto BeforeRet_;
605 				}
606 				LA9_: ;
607 				i_2 += ((NI) 1);
608 			} LA3: ;
609 		}
610 	}
611 	}BeforeRet_: ;
612 	return result;
613 }
N_NIMCALL(tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg,getMagic__trees_137)614 N_LIB_PRIVATE N_NIMCALL(tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg, getMagic__trees_137)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* op) {
615 	tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg result;
616 {	result = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
617 	{
618 		if (!(op == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA3_;
619 		result = ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0);
620 		goto BeforeRet_;
621 	}
622 	LA3_: ;
623 	switch ((*op).kind) {
624 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
625 	{
626 		switch ((*(*op)._kind_6.sons->data[((NI) 0)]).kind) {
627 		case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
628 		{
629 			result = (*(*(*op)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic;
630 		}
631 		break;
632 		default:
633 		{
634 			result = ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0);
635 		}
636 		break;
637 		}
638 	}
639 	break;
640 	default:
641 	{
642 		result = ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 0);
643 	}
644 	break;
645 	}
646 	}BeforeRet_: ;
647 	return result;
648 }
N_INLINE(NI,safeLen__ast_3191)649 static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
650 	NI result;
651 	result = (NI)0;
652 	{
653 		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
654 		result = ((NI) 0);
655 	}
656 	goto LA1_;
657 	LA3_: ;
658 	{
659 		result = len__ast_3198(n);
660 	}
661 	LA1_: ;
662 	return result;
663 }
N_NIMCALL(NIM_BOOL,isCaseObj__trees_158)664 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCaseObj__trees_158)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
665 	NIM_BOOL result;
666 {	result = (NIM_BOOL)0;
667 	{
668 		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139))) goto LA3_;
669 		result = NIM_TRUE;
670 		goto BeforeRet_;
671 	}
672 	LA3_: ;
673 	{
674 		NI i;
675 		NI colontmp_;
676 		NI i_2;
677 		i = (NI)0;
678 		colontmp_ = (NI)0;
679 		colontmp_ = safeLen__ast_3191(n);
680 		i_2 = ((NI) 0);
681 		{
682 			while (1) {
683 				if (!(i_2 < colontmp_)) goto LA7;
684 				i = i_2;
685 				{
686 					NIM_BOOL T10_;
687 					T10_ = (NIM_BOOL)0;
688 					T10_ = isCaseObj__trees_158((*n)._kind_6.sons->data[i]);
689 					if (!T10_) goto LA11_;
690 					result = NIM_TRUE;
691 					goto BeforeRet_;
692 				}
693 				LA11_: ;
694 				i_2 += ((NI) 1);
695 			} LA7: ;
696 		}
697 	}
698 	}BeforeRet_: ;
699 	return result;
700 }
N_NIMCALL(NIM_BOOL,isConstExpr__trees_146)701 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isConstExpr__trees_146)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
702 	NIM_BOOL result;
703 	NIM_BOOL T1_;
704 	result = (NIM_BOOL)0;
705 	T1_ = (NIM_BOOL)0;
706 	T1_ = ((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23));
707 	if (T1_) goto LA2_;
708 	T1_ = (((*n).flags &((NU32)1<<((NU)(((tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg) 4))&31U)))!=0);
709 	LA2_: ;
710 	result = T1_;
711 	return result;
712 }
N_INLINE(NI,pluspercent___system_696)713 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
714 	NI result;
715 	result = (NI)0;
716 	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
717 	return result;
718 }
N_INLINE(void,incRef__system_5338)719 static N_INLINE(void, incRef__system_5338)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
720 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
721 }
N_INLINE(NI,minuspercent___system_716)722 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
723 	NI result;
724 	result = (NI)0;
725 	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
726 	return result;
727 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5300)728 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr) {
729 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
730 	NI T1_;
731 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
732 	T1_ = (NI)0;
733 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
734 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
735 	return result;
736 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)737 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
738 	NIM_BOOL result;
739 	result = (NIM_BOOL)0;
740 	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
741 	return result;
742 }
N_INLINE(void,rtlAddZCT__system_5343)743 static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
744 	addZCT__system_5294((&gch__system_5247.zct), c);
745 }
N_INLINE(void,decRef__system_5345)746 static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
747 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
748 	{
749 		NIM_BOOL T3_;
750 		T3_ = (NIM_BOOL)0;
751 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
752 		if (!T3_) goto LA4_;
753 		rtlAddZCT__system_5343(c);
754 	}
755 	LA4_: ;
756 }
N_INLINE(void,asgnRef)757 static N_INLINE(void, asgnRef)(void** dest, void* src) {
758 	{
759 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
760 		if (!!((src == NIM_NIL))) goto LA3_;
761 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
762 		T5_ = usrToCell__system_5300(src);
763 		incRef__system_5338(T5_);
764 	}
765 	LA3_: ;
766 	{
767 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
768 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
769 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
770 		T10_ = usrToCell__system_5300((*dest));
771 		decRef__system_5345(T10_);
772 	}
773 	LA8_: ;
774 	(*dest) = src;
775 }
N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,pop__trees_32)776 static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pop__trees_32)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** s) {
777 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
778 	NI L;
779 	NI T1_;
780 	result = NIM_NIL;
781 	T1_ = ((*s) ? (*s)->Sup.len : 0);
782 	L = (NI)(T1_ - ((NI) 1));
783 	result = (*s)->data[L];
784 	unsureAsgnRef((void**) (&(*s)), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) setLengthSeqV2(&((*s))->Sup, (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_), ((NI) (L))));
785 	return result;
786 }
N_NIMCALL(NIM_BOOL,cyclicTreeAux__trees_4)787 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cyclicTreeAux__trees_4)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** visited) {
788 	NIM_BOOL result;
789 {	result = (NIM_BOOL)0;
790 	{
791 		if (!(n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL))) goto LA3_;
792 		goto BeforeRet_;
793 	}
794 	LA3_: ;
795 	{
796 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** v;
797 		NI i;
798 		NI L;
799 		NI T6_;
800 		v = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
801 		i = ((NI) 0);
802 		T6_ = ((*visited) ? (*visited)->Sup.len : 0);
803 		L = T6_;
804 		{
805 			while (1) {
806 				if (!(i < L)) goto LA8;
807 				v = &(*visited)->data[i];
808 				{
809 					if (!((*v) == n)) goto LA11_;
810 					result = NIM_TRUE;
811 					goto BeforeRet_;
812 				}
813 				LA11_: ;
814 				i += ((NI) 1);
815 			} LA8: ;
816 		}
817 	}
818 	{
819 		NI T17_;
820 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
821 		if (!!(((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23)))) goto LA15_;
822 		unsureAsgnRef((void**) (&(*visited)), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*visited)), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
823 		T17_ = (*visited)->Sup.len++;
824 		asgnRef((void**) (&(*visited)->data[T17_]), n);
825 		{
826 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** nSon;
827 			tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* colontmp_;
828 			NI i_2;
829 			NI L_2;
830 			NI T19_;
831 			nSon = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
832 			colontmp_ = NIM_NIL;
833 			colontmp_ = (*n)._kind_6.sons;
834 			i_2 = ((NI) 0);
835 			T19_ = (colontmp_ ? colontmp_->Sup.len : 0);
836 			L_2 = T19_;
837 			{
838 				while (1) {
839 					if (!(i_2 < L_2)) goto LA21;
840 					nSon = &colontmp_->data[i_2];
841 					{
842 						NIM_BOOL T24_;
843 						T24_ = (NIM_BOOL)0;
844 						T24_ = cyclicTreeAux__trees_4((*nSon), visited);
845 						if (!T24_) goto LA25_;
846 						result = NIM_TRUE;
847 						goto BeforeRet_;
848 					}
849 					LA25_: ;
850 					i_2 += ((NI) 1);
851 				} LA21: ;
852 			}
853 		}
854 		T27_ = NIM_NIL;
855 		T27_ = pop__trees_32(visited);
856 		(void)(T27_);
857 	}
858 	LA15_: ;
859 	}BeforeRet_: ;
860 	return result;
861 }
N_NIMCALL(NIM_BOOL,cyclicTree__trees_44)862 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cyclicTree__trees_44)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
863 	NIM_BOOL result;
864 	tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* visited;
865 	result = (NIM_BOOL)0;
866 	visited = NIM_NIL;
867 	result = cyclicTreeAux__trees_4(n, (&visited));
868 	return result;
869 }
N_NIMCALL(void,unnestStmts__trees_339)870 N_LIB_PRIVATE N_NIMCALL(void, unnestStmts__trees_339)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result) {
871 	{
872 		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115))) goto LA3_;
873 		{
874 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
875 			x = NIM_NIL;
876 			{
877 				NI i;
878 				NI colontmp_;
879 				NI i_2;
880 				i = (NI)0;
881 				colontmp_ = (NI)0;
882 				colontmp_ = safeLen__ast_3191(n);
883 				i_2 = ((NI) 0);
884 				{
885 					while (1) {
886 						if (!(i_2 < colontmp_)) goto LA8;
887 						i = i_2;
888 						x = (*n)._kind_6.sons->data[i];
889 						unnestStmts__trees_339(x, result);
890 						i_2 += ((NI) 1);
891 					} LA8: ;
892 				}
893 			}
894 		}
895 	}
896 	goto LA1_;
897 	LA3_: ;
898 	{
899 		if (!!(((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23)))) goto LA10_;
900 		add__ast_4797(result, n);
901 	}
902 	goto LA1_;
903 	LA10_: ;
904 	LA1_: ;
905 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,flattenStmts__trees_355)906 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, flattenStmts__trees_355)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
907 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
908 	result = NIM_NIL;
909 	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
910 	unnestStmts__trees_339(n, result);
911 	{
912 		NI T3_;
913 		T3_ = (NI)0;
914 		T3_ = len__ast_3198(result);
915 		if (!(T3_ == ((NI) 1))) goto LA4_;
916 		result = (*result)._kind_6.sons->data[((NI) 0)];
917 	}
918 	LA4_: ;
919 	return result;
920 }
N_NIMCALL(NIM_BOOL,stupidStmtListExpr__trees_404)921 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, stupidStmtListExpr__trees_404)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
922 	NIM_BOOL result;
923 {	result = (NIM_BOOL)0;
924 	{
925 		NI i;
926 		NI colontmp_;
927 		NI T2_;
928 		NI i_2;
929 		i = (NI)0;
930 		colontmp_ = (NI)0;
931 		T2_ = (NI)0;
932 		T2_ = len__ast_3198(n);
933 		colontmp_ = (NI)(T2_ - ((NI) 1));
934 		i_2 = ((NI) 0);
935 		{
936 			while (1) {
937 				if (!(i_2 < colontmp_)) goto LA4;
938 				i = i_2;
939 				{
940 					if (!!(((*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) || (*(*n)._kind_6.sons->data[i]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125)))) goto LA7_;
941 					result = NIM_FALSE;
942 					goto BeforeRet_;
943 				}
944 				LA7_: ;
945 				i_2 += ((NI) 1);
946 			} LA4: ;
947 		}
948 	}
949 	result = NIM_TRUE;
950 	}BeforeRet_: ;
951 	return result;
952 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,propSpec__trees_316)953 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, propSpec__trees_316)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw effectType) {
954 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
955 {	result = NIM_NIL;
956 	{
957 		NI i;
958 		NI colontmp_;
959 		NI i_2;
960 		i = (NI)0;
961 		colontmp_ = (NI)0;
962 		colontmp_ = len__ast_3198(n);
963 		i_2 = ((NI) 0);
964 		{
965 			while (1) {
966 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
967 				if (!(i_2 < colontmp_)) goto LA3;
968 				i = i_2;
969 				it = (*n)._kind_6.sons->data[i];
970 				{
971 					NIM_BOOL T6_;
972 					tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw T8_;
973 					T6_ = (NIM_BOOL)0;
974 					T6_ = ((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34));
975 					if (!(T6_)) goto LA7_;
976 					T8_ = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
977 					T8_ = whichPragma__trees_244(it);
978 					T6_ = (T8_ == effectType);
979 					LA7_: ;
980 					if (!T6_) goto LA9_;
981 					result = (*it)._kind_6.sons->data[((NI) 1)];
982 					goto BeforeRet_;
983 				}
984 				LA9_: ;
985 				i_2 += ((NI) 1);
986 			} LA3: ;
987 		}
988 	}
989 	}BeforeRet_: ;
990 	return result;
991 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,extractRange__trees_362)992 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, extractRange__trees_362)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw k, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI a, NI b) {
993 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
994 	result = NIM_NIL;
995 	result = newNodeI__ast_3360(k, (*n).info, (NI)((NI)(b - a) + ((NI) 1)));
996 	{
997 		NI i;
998 		NI colontmp_;
999 		NI res;
1000 		i = (NI)0;
1001 		colontmp_ = (NI)0;
1002 		colontmp_ = (NI)(b - a);
1003 		res = ((NI) 0);
1004 		{
1005 			while (1) {
1006 				if (!(res <= colontmp_)) goto LA3;
1007 				i = res;
1008 				asgnRef((void**) (&(*result)._kind_6.sons->data[i]), (*n)._kind_6.sons->data[(NI)(i + a)]);
1009 				res += ((NI) 1);
1010 			} LA3: ;
1011 		}
1012 	}
1013 	return result;
1014 }
N_NIMCALL(NIM_BOOL,isDeepConstExpr__trees_171)1015 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isDeepConstExpr__trees_171)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL preventInheritance) {
1016 	NIM_BOOL result;
1017 {	result = (NIM_BOOL)0;
1018 	switch ((*n).kind) {
1019 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 5) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
1020 	{
1021 		result = NIM_TRUE;
1022 	}
1023 	break;
1024 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 33):
1025 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34):
1026 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
1027 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
1028 	{
1029 		result = isDeepConstExpr__trees_171((*n)._kind_6.sons->data[((NI) 1)], preventInheritance);
1030 	}
1031 	break;
1032 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 39):
1033 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
1034 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
1035 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
1036 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
1037 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 155):
1038 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44):
1039 	{
1040 		{
1041 			NI i;
1042 			NI colontmp_;
1043 			NI colontmp__2;
1044 			NI i_2;
1045 			i = (NI)0;
1046 			colontmp_ = (NI)0;
1047 			colontmp__2 = (NI)0;
1048 			colontmp_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38));
1049 			colontmp__2 = len__ast_3198(n);
1050 			i_2 = colontmp_;
1051 			{
1052 				while (1) {
1053 					if (!(i_2 < colontmp__2)) goto LA6;
1054 					i = i_2;
1055 					{
1056 						NIM_BOOL T9_;
1057 						T9_ = (NIM_BOOL)0;
1058 						T9_ = isDeepConstExpr__trees_171((*n)._kind_6.sons->data[i], preventInheritance);
1059 						if (!!(T9_)) goto LA10_;
1060 						result = NIM_FALSE;
1061 						goto BeforeRet_;
1062 					}
1063 					LA10_: ;
1064 					i_2 += ((NI) 1);
1065 				} LA6: ;
1066 			}
1067 		}
1068 		{
1069 			if (!((*n).typ == 0)) goto LA14_;
1070 			result = NIM_TRUE;
1071 		}
1072 		goto LA12_;
1073 		LA14_: ;
1074 		{
1075 			tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
1076 			t = skipTypes__ast_3735((*n).typ, TM__YXYgefJuEvycsGrI1dEbqg_2);
1077 			{
1078 				NIM_BOOL T19_;
1079 				T19_ = (NIM_BOOL)0;
1080 				T19_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21));
1081 				if (T19_) goto LA20_;
1082 				T19_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 1))&63U)))!=0);
1083 				LA20_: ;
1084 				if (!T19_) goto LA21_;
1085 				result = NIM_FALSE;
1086 				goto BeforeRet_;
1087 			}
1088 			LA21_: ;
1089 			{
1090 				if (!((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17))) goto LA25_;
1091 				{
1092 					NIM_BOOL T29_;
1093 					T29_ = (NIM_BOOL)0;
1094 					T29_ = preventInheritance;
1095 					if (!(T29_)) goto LA30_;
1096 					T29_ = !(((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
1097 					LA30_: ;
1098 					if (!T29_) goto LA31_;
1099 					result = NIM_FALSE;
1100 				}
1101 				goto LA27_;
1102 				LA31_: ;
1103 				{
1104 					NIM_BOOL T34_;
1105 					T34_ = (NIM_BOOL)0;
1106 					T34_ = isCaseObj__trees_158((*t).n);
1107 					if (!T34_) goto LA35_;
1108 					result = NIM_FALSE;
1109 				}
1110 				goto LA27_;
1111 				LA35_: ;
1112 				{
1113 					result = NIM_TRUE;
1114 				}
1115 				LA27_: ;
1116 			}
1117 			goto LA23_;
1118 			LA25_: ;
1119 			{
1120 				result = NIM_TRUE;
1121 			}
1122 			LA23_: ;
1123 		}
1124 		LA12_: ;
1125 	}
1126 	break;
1127 	default:
1128 	{
1129 	}
1130 	break;
1131 	}
1132 	}BeforeRet_: ;
1133 	return result;
1134 }
N_NIMCALL(NIM_BOOL,isTrue__trees_375)1135 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isTrue__trees_375)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
1136 	NIM_BOOL result;
1137 	NIM_BOOL T1_;
1138 	NIM_BOOL T2_;
1139 	NIM_BOOL T3_;
1140 	NIM_BOOL T7_;
1141 	result = (NIM_BOOL)0;
1142 	T1_ = (NIM_BOOL)0;
1143 	T2_ = (NIM_BOOL)0;
1144 	T3_ = (NIM_BOOL)0;
1145 	T3_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
1146 	if (!(T3_)) goto LA4_;
1147 	T3_ = ((*(*n)._kind_4.sym).kind == ((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 20));
1148 	LA4_: ;
1149 	T2_ = T3_;
1150 	if (!(T2_)) goto LA5_;
1151 	T2_ = !(((*(*n)._kind_4.sym).position == ((NI) 0)));
1152 	LA5_: ;
1153 	T1_ = T2_;
1154 	if (T1_) goto LA6_;
1155 	T7_ = (NIM_BOOL)0;
1156 	T7_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6));
1157 	if (!(T7_)) goto LA8_;
1158 	T7_ = !(((*n)._kind_1.intVal == IL64(0)));
1159 	LA8_: ;
1160 	T1_ = T7_;
1161 	LA6_: ;
1162 	result = T1_;
1163 	return result;
1164 }
N_NIMCALL(NIM_BOOL,isNoSideEffectPragma__trees_257)1165 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isNoSideEffectPragma__trees_257)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
1166 	NIM_BOOL result;
1167 	tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw k;
1168 	result = (NIM_BOOL)0;
1169 	k = whichPragma__trees_244(n);
1170 	{
1171 		if (!(k == ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 9))) goto LA3_;
1172 		k = whichPragma__trees_244((*n)._kind_6.sons->data[((NI) 1)]);
1173 	}
1174 	LA3_: ;
1175 	result = (k == ((tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw) 109));
1176 	return result;
1177 }
N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ *,getRoot__trees_390)1178 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getRoot__trees_390)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
1179 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
1180 	result = NIM_NIL;
1181 	switch ((*n).kind) {
1182 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
1183 	{
1184 		{
1185 			if (!((2100008 &((NU32)1<<((NU)((*(*n)._kind_4.sym).kind)&31U)))!=0)) goto LA4_;
1186 			result = (*n)._kind_4.sym;
1187 		}
1188 		LA4_: ;
1189 	}
1190 	break;
1191 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
1192 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
1193 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
1194 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
1195 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 67):
1196 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
1197 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
1198 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64):
1199 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63):
1200 	{
1201 		result = getRoot__trees_390((*n)._kind_6.sons->data[((NI) 0)]);
1202 	}
1203 	break;
1204 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
1205 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
1206 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
1207 	{
1208 		result = getRoot__trees_390((*n)._kind_6.sons->data[((NI) 1)]);
1209 	}
1210 	break;
1211 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
1212 	{
1213 		{
1214 			tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg T11_;
1215 			T11_ = (tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg)0;
1216 			T11_ = getMagic__trees_137(n);
1217 			if (!(T11_ == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 126))) goto LA12_;
1218 			result = getRoot__trees_390((*n)._kind_6.sons->data[((NI) 1)]);
1219 		}
1220 		LA12_: ;
1221 	}
1222 	break;
1223 	default:
1224 	{
1225 	}
1226 	break;
1227 	}
1228 	return result;
1229 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,findPragma__trees_271)1230 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, findPragma__trees_271)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw which) {
1231 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
1232 {	result = NIM_NIL;
1233 	{
1234 		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 90))) goto LA3_;
1235 		{
1236 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son;
1237 			son = NIM_NIL;
1238 			{
1239 				NI i;
1240 				NI colontmp_;
1241 				NI i_2;
1242 				i = (NI)0;
1243 				colontmp_ = (NI)0;
1244 				colontmp_ = safeLen__ast_3191(n);
1245 				i_2 = ((NI) 0);
1246 				{
1247 					while (1) {
1248 						if (!(i_2 < colontmp_)) goto LA8;
1249 						i = i_2;
1250 						son = (*n)._kind_6.sons->data[i];
1251 						{
1252 							tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw T11_;
1253 							T11_ = (tyEnum_TSpecialWord__ycbpMCRV6Cd2eBh3X9biEiw)0;
1254 							T11_ = whichPragma__trees_244(son);
1255 							if (!(T11_ == which)) goto LA12_;
1256 							result = son;
1257 							goto BeforeRet_;
1258 						}
1259 						LA12_: ;
1260 						i_2 += ((NI) 1);
1261 					} LA8: ;
1262 				}
1263 			}
1264 		}
1265 	}
1266 	LA3_: ;
1267 	}BeforeRet_: ;
1268 	return result;
1269 }
1270