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 NimStringDesc NimStringDesc;
22 typedef struct TGenericSeq TGenericSeq;
23 typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
24 typedef struct tyObject_TType__facALICuu8zUj0hjvbTLFg tyObject_TType__facALICuu8zUj0hjvbTLFg;
25 typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
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 tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
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 struct TGenericSeq {
55 NI len;
56 NI reserved;
57 };
58 struct NimStringDesc {
59 TGenericSeq Sup;
60 NIM_CHAR data[SEQ_DECL_SIZE];
61 };
62 struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
63 NU16 line;
64 NI16 col;
65 NI32 fileIndex;
66 };
67 typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
68 typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
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 struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA {
90 NI id;
91 NimStringDesc* s;
92 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* next;
93 NI h;
94 };
95 typedef NU8 tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw;
96 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
97 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
98 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
99 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
100 struct TNimType {
101 NI size;
102 NI align;
103 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
104 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
105 TNimType* base;
106 TNimNode* node;
107 void* finalizer;
108 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
109 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
110 };
111 struct RootObj {
112 TNimType* m_type;
113 };
114 struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g {
115 NI32 module;
116 NI32 item;
117 };
118 struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w {
119 RootObj Sup;
120 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g itemId;
121 };
122 typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
123 typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
124 typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
125 typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
126 typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
127 typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
128 typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
129 struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
130 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
131 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
132 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
133 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
134 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
135 };
136 struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ {
137 tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
138 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
139 union{
140 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* gcUnsafetyReason;
141 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
142 } _kind_1;
143 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* guard;
144 NI bitsize;
145 NI alignment;
146 } _kind_2;
147 };
148 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
149 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
150 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name;
151 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
152 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
153 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
154 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
155 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
156 NI position;
157 NI offset;
158 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
159 tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
160 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
161 };
162 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
163 struct TNimNode {
164 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
165 NI offset;
166 TNimType* typ;
167 NCSTRING name;
168 NI len;
169 TNimNode** sons;
170 };
171 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
172 NI refcount;
173 TNimType* typ;
174 };
175 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
176 void* bottom;
177 };
178 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
179 NI len;
180 NI cap;
181 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
182 };
183 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
184 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
185 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
186 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
187 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
188 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
189 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
190 };
191 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
192 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
193 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
194 NI key;
195 NI upperBound;
196 NI level;
197 };
198 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
199 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
200 NI Field1;
201 };
202 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
203 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
204 NI len;
205 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
206 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
207 };
208 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
209 NI minLargeObj;
210 NI maxLargeObj;
211 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
212 NU32 flBitmap;
213 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
214 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
215 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
216 NI currMem;
217 NI maxMem;
218 NI freeMem;
219 NI occ;
220 NI lastSize;
221 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
222 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
223 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
224 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
225 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
226 NIM_BOOL locked;
227 NIM_BOOL blockChunkSizeIncrease;
228 NI nextChunkSize;
229 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
230 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
231 };
232 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
233 NI stackScans;
234 NI cycleCollections;
235 NI maxThreshold;
236 NI maxStackSize;
237 NI maxStackCells;
238 NI cycleTableSize;
239 NI64 maxPause;
240 };
241 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
242 NI counter;
243 NI max;
244 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
245 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
246 };
247 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
248 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
249 NI cycleThreshold;
250 NI zctThreshold;
251 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
252 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
253 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
254 NI recGcLock;
255 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
256 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
257 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
258 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
259 NI gcThreadId;
260 };
261 struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
262 TGenericSeq Sup;
263 NimStringDesc* data[SEQ_DECL_SIZE];
264 };
265 struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
266 TGenericSeq Sup;
267 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
268 };
269 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderPlainSymbolName__typesrenderer_6)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
270 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
271 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
272 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderDefinitionName__renderer_88)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, NIM_BOOL noQuotes);
273 N_LIB_PRIVATE N_NIMCALL(void, renderParamTypes__typesrenderer_123)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ** found, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
274 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderType__typesrenderer_15)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
275 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, typeToString__types_50)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
276 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
277 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
278 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
279 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
280 static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
281 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
282 static N_INLINE(void, X5BX5Deq___system_7376)(NimStringDesc** s, NI i, NIM_CHAR x);
283 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
284 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
285 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
286 static N_INLINE(void, nimGCunrefNoCycle)(void* p);
287 static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
288 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
289 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
290 static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
291 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5264)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
292 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr);
293 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___renderer_2106)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
294 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuJoinSep)(NimStringDesc** a, NI aLen_0, NimStringDesc* sep);
295 STRING_LITERAL(TM__SgHDIVcSir4dkKoe0Xsi0A_2, "var", 3);
296 STRING_LITERAL(TM__SgHDIVcSir4dkKoe0Xsi0A_3, "ref.", 4);
297 STRING_LITERAL(TM__SgHDIVcSir4dkKoe0Xsi0A_4, "ref", 3);
298 STRING_LITERAL(TM__SgHDIVcSir4dkKoe0Xsi0A_5, "ptr.", 4);
299 STRING_LITERAL(TM__SgHDIVcSir4dkKoe0Xsi0A_6, "ptr", 3);
300 STRING_LITERAL(TM__SgHDIVcSir4dkKoe0Xsi0A_7, "proc(", 5);
301 STRING_LITERAL(TM__SgHDIVcSir4dkKoe0Xsi0A_8, "proc", 4);
302 STRING_LITERAL(TM__SgHDIVcSir4dkKoe0Xsi0A_9, "tuple[", 6);
303 STRING_LITERAL(TM__SgHDIVcSir4dkKoe0Xsi0A_10, ", ", 2);
304 extern TNimType NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_;
305 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5217;
N_INLINE(NI,len__ast_3198)306 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
307 NI result;
308 NI T1_;
309 result = (NI)0;
310 T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
311 result = T1_;
312 return result;
313 }
N_NIMCALL(NimStringDesc *,renderPlainSymbolName__typesrenderer_6)314 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderPlainSymbolName__typesrenderer_6)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
315 NimStringDesc* result;
316 result = NIM_NIL;
317 switch ((*n).kind) {
318 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31):
319 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 53):
320 {
321 NI T2_;
322 T2_ = (NI)0;
323 T2_ = len__ast_3198(n);
324 result = renderPlainSymbolName__typesrenderer_6((*n)._kind_6.sons->data[(NI)(T2_ - ((NI) 1))]);
325 }
326 break;
327 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
328 {
329 result = copyString((*(*n)._kind_5.ident).s);
330 }
331 break;
332 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
333 {
334 result = renderDefinitionName__renderer_88((*n)._kind_4.sym, NIM_TRUE);
335 }
336 break;
337 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 43):
338 {
339 result = renderPlainSymbolName__typesrenderer_6((*n)._kind_6.sons->data[((NI) 0)]);
340 }
341 break;
342 default:
343 {
344 result = ((NimStringDesc*) NIM_NIL);
345 }
346 break;
347 }
348 return result;
349 }
N_INLINE(void,nimCopyMem)350 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
351 void* T1_;
352 T1_ = (void*)0;
353 T1_ = memcpy(dest, source, ((size_t) (size)));
354 }
N_INLINE(void,copyMem__system_1727)355 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
356 nimCopyMem(dest, source, size);
357 }
N_INLINE(void,appendString)358 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
359 {
360 if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
361 copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
362 (*dest).Sup.len += (*src).Sup.len;
363 }
364 LA3_: ;
365 }
N_INLINE(void,appendChar)366 static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c) {
367 (*dest).data[(*dest).Sup.len] = c;
368 (*dest).data[(NI)((*dest).Sup.len + ((NI) 1))] = 0;
369 (*dest).Sup.len += ((NI) 1);
370 }
N_INLINE(void,X5BX5Deq___system_7376)371 static N_INLINE(void, X5BX5Deq___system_7376)(NimStringDesc** s, NI i, NIM_CHAR x) {
372 (*s)->data[(NI)(((*s) ? (*s)->Sup.len : 0) - i)] = x;
373 }
N_NIMCALL(NimStringDesc *,renderType__typesrenderer_15)374 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderType__typesrenderer_15)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
375 NimStringDesc* result;
376 result = NIM_NIL;
377 switch ((*n).kind) {
378 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
379 {
380 result = copyString((*(*n)._kind_5.ident).s);
381 }
382 break;
383 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
384 {
385 result = typeToString__types_50((*(*n)._kind_4.sym).typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
386 }
387 break;
388 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 143):
389 {
390 {
391 NI T6_;
392 T6_ = (NI)0;
393 T6_ = len__ast_3198(n);
394 if (!(T6_ == ((NI) 1))) goto LA7_;
395 result = renderType__typesrenderer_15((*n)._kind_6.sons->data[((NI) 0)]);
396 }
397 goto LA4_;
398 LA7_: ;
399 {
400 result = copyString(((NimStringDesc*) &TM__SgHDIVcSir4dkKoe0Xsi0A_2));
401 }
402 LA4_: ;
403 }
404 break;
405 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 141):
406 {
407 {
408 NI T13_;
409 NimStringDesc* T16_;
410 NimStringDesc* T17_;
411 T13_ = (NI)0;
412 T13_ = len__ast_3198(n);
413 if (!(T13_ == ((NI) 1))) goto LA14_;
414 T16_ = NIM_NIL;
415 T17_ = NIM_NIL;
416 T17_ = renderType__typesrenderer_15((*n)._kind_6.sons->data[((NI) 0)]);
417 T16_ = rawNewString((T17_ ? T17_->Sup.len : 0) + 4);
418 appendString(T16_, ((NimStringDesc*) &TM__SgHDIVcSir4dkKoe0Xsi0A_3));
419 appendString(T16_, T17_);
420 result = T16_;
421 }
422 goto LA11_;
423 LA14_: ;
424 {
425 result = copyString(((NimStringDesc*) &TM__SgHDIVcSir4dkKoe0Xsi0A_4));
426 }
427 LA11_: ;
428 }
429 break;
430 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 142):
431 {
432 {
433 NI T22_;
434 NimStringDesc* T25_;
435 NimStringDesc* T26_;
436 T22_ = (NI)0;
437 T22_ = len__ast_3198(n);
438 if (!(T22_ == ((NI) 1))) goto LA23_;
439 T25_ = NIM_NIL;
440 T26_ = NIM_NIL;
441 T26_ = renderType__typesrenderer_15((*n)._kind_6.sons->data[((NI) 0)]);
442 T25_ = rawNewString((T26_ ? T26_->Sup.len : 0) + 4);
443 appendString(T25_, ((NimStringDesc*) &TM__SgHDIVcSir4dkKoe0Xsi0A_5));
444 appendString(T25_, T26_);
445 result = T25_;
446 }
447 goto LA20_;
448 LA23_: ;
449 {
450 result = copyString(((NimStringDesc*) &TM__SgHDIVcSir4dkKoe0Xsi0A_6));
451 }
452 LA20_: ;
453 }
454 break;
455 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 147):
456 {
457 {
458 NI T31_;
459 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* params;
460 T31_ = (NI)0;
461 T31_ = len__ast_3198(n);
462 if (!(((NI) 1) < T31_)) goto LA32_;
463 params = (*n)._kind_6.sons->data[((NI) 0)];
464 result = copyString(((NimStringDesc*) &TM__SgHDIVcSir4dkKoe0Xsi0A_7));
465 {
466 NI i;
467 NI colontmp_;
468 NI i_2;
469 i = (NI)0;
470 colontmp_ = (NI)0;
471 colontmp_ = len__ast_3198(params);
472 i_2 = ((NI) 1);
473 {
474 while (1) {
475 NimStringDesc* T37_;
476 NimStringDesc* T38_;
477 if (!(i_2 < colontmp_)) goto LA36;
478 i = i_2;
479 T37_ = NIM_NIL;
480 T38_ = NIM_NIL;
481 T38_ = renderType__typesrenderer_15((*params)._kind_6.sons->data[i]);
482 T37_ = rawNewString((T38_ ? T38_->Sup.len : 0) + 1);
483 appendString(T37_, T38_);
484 appendChar(T37_, 44);
485 result = resizeString(result, (T37_ ? T37_->Sup.len : 0) + 0);
486 appendString(result, T37_);
487 i_2 += ((NI) 1);
488 } LA36: ;
489 }
490 }
491 X5BX5Deq___system_7376((&result), ((NI) 1), 41);
492 }
493 goto LA29_;
494 LA32_: ;
495 {
496 result = copyString(((NimStringDesc*) &TM__SgHDIVcSir4dkKoe0Xsi0A_8));
497 }
498 LA29_: ;
499 }
500 break;
501 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35):
502 {
503 NI typePos;
504 NI T41_;
505 NimStringDesc* typeStr;
506 T41_ = (NI)0;
507 T41_ = len__ast_3198(n);
508 typePos = (NI)(T41_ - ((NI) 2));
509 typeStr = renderType__typesrenderer_15((*n)._kind_6.sons->data[typePos]);
510 result = copyString(typeStr);
511 {
512 NI i_3;
513 NI i_4;
514 i_3 = (NI)0;
515 i_4 = ((NI) 1);
516 {
517 while (1) {
518 NimStringDesc* T45_;
519 if (!(i_4 < typePos)) goto LA44;
520 i_3 = i_4;
521 T45_ = NIM_NIL;
522 T45_ = rawNewString((typeStr ? typeStr->Sup.len : 0) + 1);
523 appendChar(T45_, 44);
524 appendString(T45_, typeStr);
525 result = resizeString(result, (T45_ ? T45_->Sup.len : 0) + 0);
526 appendString(result, T45_);
527 i_4 += ((NI) 1);
528 } LA44: ;
529 }
530 }
531 }
532 break;
533 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 134):
534 {
535 result = copyString(((NimStringDesc*) &TM__SgHDIVcSir4dkKoe0Xsi0A_9));
536 {
537 NI i_5;
538 NI colontmp__2;
539 NI i_6;
540 i_5 = (NI)0;
541 colontmp__2 = (NI)0;
542 colontmp__2 = len__ast_3198(n);
543 i_6 = ((NI) 0);
544 {
545 while (1) {
546 NimStringDesc* T50_;
547 NimStringDesc* T51_;
548 if (!(i_6 < colontmp__2)) goto LA49;
549 i_5 = i_6;
550 T50_ = NIM_NIL;
551 T51_ = NIM_NIL;
552 T51_ = renderType__typesrenderer_15((*n)._kind_6.sons->data[i_5]);
553 T50_ = rawNewString((T51_ ? T51_->Sup.len : 0) + 1);
554 appendString(T50_, T51_);
555 appendChar(T50_, 44);
556 result = resizeString(result, (T50_ ? T50_->Sup.len : 0) + 0);
557 appendString(result, T50_);
558 i_6 += ((NI) 1);
559 } LA49: ;
560 }
561 }
562 X5BX5Deq___system_7376((&result), ((NI) 1), 93);
563 }
564 break;
565 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
566 {
567 NimStringDesc* T53_;
568 NimStringDesc* T54_;
569 T53_ = NIM_NIL;
570 T54_ = NIM_NIL;
571 T54_ = renderType__typesrenderer_15((*n)._kind_6.sons->data[((NI) 0)]);
572 T53_ = rawNewString((T54_ ? T54_->Sup.len : 0) + 1);
573 appendString(T53_, T54_);
574 appendChar(T53_, 91);
575 result = T53_;
576 {
577 NI i_7;
578 NI colontmp__3;
579 NI i_8;
580 i_7 = (NI)0;
581 colontmp__3 = (NI)0;
582 colontmp__3 = len__ast_3198(n);
583 i_8 = ((NI) 1);
584 {
585 while (1) {
586 NimStringDesc* T58_;
587 NimStringDesc* T59_;
588 if (!(i_8 < colontmp__3)) goto LA57;
589 i_7 = i_8;
590 T58_ = NIM_NIL;
591 T59_ = NIM_NIL;
592 T59_ = renderType__typesrenderer_15((*n)._kind_6.sons->data[i_7]);
593 T58_ = rawNewString((T59_ ? T59_->Sup.len : 0) + 1);
594 appendString(T58_, T59_);
595 appendChar(T58_, 44);
596 result = resizeString(result, (T58_ ? T58_->Sup.len : 0) + 0);
597 appendString(result, T58_);
598 i_8 += ((NI) 1);
599 } LA57: ;
600 }
601 }
602 X5BX5Deq___system_7376((&result), ((NI) 1), 93);
603 }
604 break;
605 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26):
606 {
607 result = renderType__typesrenderer_15((*n)._kind_6.sons->data[((NI) 0)]);
608 {
609 NI i_9;
610 NI colontmp__4;
611 NI i_10;
612 i_9 = (NI)0;
613 colontmp__4 = (NI)0;
614 colontmp__4 = len__ast_3198(n);
615 i_10 = ((NI) 1);
616 {
617 while (1) {
618 NimStringDesc* T68_;
619 if (!(i_10 < colontmp__4)) goto LA63;
620 i_9 = i_10;
621 {
622 if (!(((NI) 1) < i_9)) goto LA66_;
623 result = resizeString(result, 2);
624 appendString(result, ((NimStringDesc*) &TM__SgHDIVcSir4dkKoe0Xsi0A_10));
625 }
626 LA66_: ;
627 T68_ = NIM_NIL;
628 T68_ = renderType__typesrenderer_15((*n)._kind_6.sons->data[i_9]);
629 result = resizeString(result, (T68_ ? T68_->Sup.len : 0) + 0);
630 appendString(result, T68_);
631 i_10 += ((NI) 1);
632 } LA63: ;
633 }
634 }
635 }
636 break;
637 default:
638 {
639 result = ((NimStringDesc*) NIM_NIL);
640 }
641 break;
642 }
643 return result;
644 }
N_INLINE(NI,minuspercent___system_716)645 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
646 NI result;
647 result = (NI)0;
648 result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
649 return result;
650 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)651 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
652 NIM_BOOL result;
653 result = (NIM_BOOL)0;
654 result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
655 return result;
656 }
N_INLINE(void,rtlAddZCT__system_5313)657 static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
658 addZCT__system_5264((&gch__system_5217.zct), c);
659 }
N_INLINE(void,decRef__system_5315)660 static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
661 (*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
662 {
663 NIM_BOOL T3_;
664 T3_ = (NIM_BOOL)0;
665 T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
666 if (!T3_) goto LA4_;
667 rtlAddZCT__system_5313(c);
668 }
669 LA4_: ;
670 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5270)671 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr) {
672 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
673 NI T1_;
674 result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
675 T1_ = (NI)0;
676 T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
677 result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
678 return result;
679 }
N_INLINE(void,nimGCunrefNoCycle)680 static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
681 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
682 T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
683 T1_ = usrToCell__system_5270(p);
684 decRef__system_5315(T1_);
685 }
N_NIMCALL(void,renderParamTypes__typesrenderer_123)686 N_LIB_PRIVATE N_NIMCALL(void, renderParamTypes__typesrenderer_123)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ** found, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
687 { switch ((*n).kind) {
688 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 76):
689 {
690 {
691 NI i;
692 NI colontmp_;
693 NI i_2;
694 i = (NI)0;
695 colontmp_ = (NI)0;
696 colontmp_ = len__ast_3198(n);
697 i_2 = ((NI) 1);
698 {
699 while (1) {
700 if (!(i_2 < colontmp_)) goto LA4;
701 i = i_2;
702 renderParamTypes__typesrenderer_123(found, (*n)._kind_6.sons->data[i]);
703 i_2 += ((NI) 1);
704 } LA4: ;
705 }
706 }
707 }
708 break;
709 case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35):
710 {
711 NI typePos;
712 NI T6_;
713 NimStringDesc* typeStr;
714 T6_ = (NI)0;
715 T6_ = len__ast_3198(n);
716 typePos = (NI)(T6_ - ((NI) 2));
717 typeStr = renderType__typesrenderer_15((*n)._kind_6.sons->data[typePos]);
718 {
719 NIM_BOOL T9_;
720 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
721 T9_ = (NIM_BOOL)0;
722 T9_ = ((typeStr ? typeStr->Sup.len : 0) < ((NI) 1));
723 if (!(T9_)) goto LA10_;
724 T9_ = !(((*(*n)._kind_6.sons->data[(NI)(typePos + ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)));
725 LA10_: ;
726 if (!T9_) goto LA11_;
727 typ = (*(*n)._kind_6.sons->data[(NI)(typePos + ((NI) 1))]).typ;
728 {
729 if (!!((typ == 0))) goto LA15_;
730 typeStr = typeToString__types_50(typ, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 2));
731 }
732 LA15_: ;
733 {
734 if (!((typeStr ? typeStr->Sup.len : 0) < ((NI) 1))) goto LA19_;
735 goto BeforeRet_;
736 }
737 LA19_: ;
738 }
739 LA11_: ;
740 {
741 NI i_3;
742 NI i_4;
743 i_3 = (NI)0;
744 i_4 = ((NI) 0);
745 {
746 while (1) {
747 NI T24_;
748 NimStringDesc* T25_;
749 if (!(i_4 < typePos)) goto LA23;
750 i_3 = i_4;
751 unsureAsgnRef((void**) (&(*found)), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)((*found)), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_)));
752 T24_ = (*found)->Sup.len++;
753 T25_ = NIM_NIL;
754 T25_ = (*found)->data[T24_]; (*found)->data[T24_] = copyStringRC1(typeStr);
755 if (T25_) nimGCunrefNoCycle(T25_);
756 i_4 += ((NI) 1);
757 } LA23: ;
758 }
759 }
760 }
761 break;
762 default:
763 {
764 NimStringDesc* T27_;
765 NI T28_;
766 NimStringDesc* T29_;
767 T27_ = NIM_NIL;
768 T27_ = dollar___renderer_2106(n);
769 unsureAsgnRef((void**) (&(*found)), (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)((*found)), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_)));
770 T28_ = (*found)->Sup.len++;
771 T29_ = NIM_NIL;
772 T29_ = (*found)->data[T28_]; (*found)->data[T28_] = copyStringRC1(T27_);
773 if (T29_) nimGCunrefNoCycle(T29_);
774 }
775 break;
776 }
777 }BeforeRet_: ;
778 }
N_NIMCALL(NimStringDesc *,renderParamTypes__typesrenderer_167)779 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, renderParamTypes__typesrenderer_167)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NimStringDesc* sep) {
780 NimStringDesc* result;
781 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* found;
782 result = NIM_NIL;
783 result = ((NimStringDesc*) NIM_NIL);
784 found = NIM_NIL;
785 renderParamTypes__typesrenderer_123((&found), n);
786 {
787 NI T3_;
788 T3_ = (found ? found->Sup.len : 0);
789 if (!(((NI) 0) < T3_)) goto LA4_;
790 result = nsuJoinSep(found->data, (found ? found->Sup.len : 0), sep);
791 }
792 LA4_: ;
793 return result;
794 }
795