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