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