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