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 #include <stdio.h>
8 #undef LANGUAGE_C
9 #undef MIPSEB
10 #undef MIPSEL
11 #undef PPC
12 #undef R3000
13 #undef R4000
14 #undef i386
15 #undef linux
16 #undef mips
17 #undef near
18 #undef far
19 #undef powerpc
20 #undef unix
21 #define nimfr_(x, y)
22 #define nimln_(x, y)
23 typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
24 typedef struct TNimType TNimType;
25 typedef struct TNimNode TNimNode;
26 typedef struct RootObj RootObj;
27 typedef struct NimStringDesc NimStringDesc;
28 typedef struct TGenericSeq TGenericSeq;
29 typedef struct tySequence__WwUFq9cJ2xKRlsAWVEHyPRg tySequence__WwUFq9cJ2xKRlsAWVEHyPRg;
30 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
31 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
32 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
33 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
34 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
35 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
36 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
37 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
38 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
39 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
40 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
41 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
42 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
43 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
44 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
45 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
46 typedef tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* tyArray__USLYl0Lpkimm4FABiJ3ldA[4096];
47 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
48 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
49 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
50 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
51 struct TNimType {
52 NI size;
53 NI align;
54 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
55 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
56 TNimType* base;
57 TNimNode* node;
58 void* finalizer;
59 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
60 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
61 };
62 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
63 struct TNimNode {
64 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
65 NI offset;
66 TNimType* typ;
67 NCSTRING name;
68 NI len;
69 TNimNode** sons;
70 };
71 struct RootObj {
72 TNimType* m_type;
73 };
74 struct TGenericSeq {
75 NI len;
76 NI reserved;
77 };
78 struct NimStringDesc {
79 TGenericSeq Sup;
80 NIM_CHAR data[SEQ_DECL_SIZE];
81 };
82 struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA {
83 RootObj Sup;
84 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* left;
85 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* right;
86 NI L;
87 NimStringDesc* data;
88 };
89 typedef N_NIMCALL_PTR(void, tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
90 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
91 NI refcount;
92 TNimType* typ;
93 };
94 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
95 void* bottom;
96 };
97 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
98 NI len;
99 NI cap;
100 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
101 };
102 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
103 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
104 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
105 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
106 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
107 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
108 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
109 };
110 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
111 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
112 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
113 NI key;
114 NI upperBound;
115 NI level;
116 };
117 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
118 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
119 NI Field1;
120 };
121 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
122 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
123 NI len;
124 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
125 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
126 };
127 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
128 NI minLargeObj;
129 NI maxLargeObj;
130 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
131 NU32 flBitmap;
132 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
133 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
134 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
135 NI currMem;
136 NI maxMem;
137 NI freeMem;
138 NI occ;
139 NI lastSize;
140 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
141 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
142 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
143 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
144 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
145 NIM_BOOL locked;
146 NIM_BOOL blockChunkSizeIncrease;
147 NI nextChunkSize;
148 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
149 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
150 };
151 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
152 NI stackScans;
153 NI cycleCollections;
154 NI maxThreshold;
155 NI maxStackSize;
156 NI maxStackCells;
157 NI cycleTableSize;
158 NI64 maxPause;
159 };
160 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
161 NI counter;
162 NI max;
163 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
164 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
165 };
166 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
167 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
168 NI cycleThreshold;
169 NI zctThreshold;
170 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
171 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
172 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
173 NI recGcLock;
174 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
175 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
176 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
177 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
178 NI gcThreadId;
179 };
180 typedef NU8 tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg;
181 typedef NIM_CHAR tyArray__9bKy7UA2LOi2vzOViufaW1Q[1024];
182 struct tySequence__WwUFq9cJ2xKRlsAWVEHyPRg {
183 TGenericSeq Sup;
184 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* data[SEQ_DECL_SIZE];
185 };
186 N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
187 static N_NIMCALL(void, Marker_tyRef__4hi0XQqK9aLiPuWT9acsXm9aQ)(void* p, NI op);
188 static N_NIMCALL(void, TM__Vw9cfUOQOae9b9bzZBlucMZQg_3)(void);
189 N_LIB_PRIVATE N_NIMCALL(void, nimRegisterGlobalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc);
190 N_NIMCALL(NimStringDesc*, mnewString)(NI len);
191 N_LIB_PRIVATE N_NIMCALL(NI, len__ropes_10)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* a);
192 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
193 N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
194 static N_NIMCALL(void, Marker_tySequence__WwUFq9cJ2xKRlsAWVEHyPRg)(void* p, NI op);
195 static N_INLINE(void, asgnRef)(void** dest, void* src);
196 static N_INLINE(void, incRef__system_5338)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
197 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
198 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr);
199 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
200 static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
201 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
202 static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
203 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5294)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
204 static N_INLINE(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, pop__ropes_180)(tySequence__WwUFq9cJ2xKRlsAWVEHyPRg** s);
205 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
206 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
207 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
208 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
209 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
210 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
211 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
212 N_LIB_PRIVATE N_NIMCALL(void, add__ropes_162)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** a, NimStringDesc* b);
213 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, amp___ropes_140)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* a, NimStringDesc* b);
214 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, amp___ropes_128)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* a, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* b);
215 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, newRope__ropes_17)(NimStringDesc* data);
216 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
217 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
218 static N_INLINE(void, nimGCunrefNoCycle)(void* p);
219 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, rope__ropes_109)(NimStringDesc* s);
220 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, insertInCache__ropes_90)(NimStringDesc* s);
221 N_LIB_PRIVATE N_NIMCALL(NI, hash__pureZhashes_279)(NimStringDesc* x);
222 static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
223 static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size);
224 static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
225 N_LIB_PRIVATE N_NIMCALL(void, add__ropes_159)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** a, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* b);
226 N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__systemZassertions_56)(NimStringDesc* msg);
227 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
228 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7773)(NimStringDesc* s, NI first, NI last);
229 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_6)(NI64 x);
230 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, open__systemZio_389)(FILE** f, NimStringDesc* filename, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg mode, NI bufSize);
231 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, equalsFile__ropes_385)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r, FILE* f);
232 static N_INLINE(void, nimZeroMem)(void* p, NI size);
233 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
234 N_LIB_PRIVATE N_NIMCALL(NI, readBuffer__systemZio_144)(FILE* f, void* buffer, NI len);
235 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
236 N_LIB_PRIVATE N_NIMCALL(void, close__systemZio_217)(FILE* f);
237 N_LIB_PRIVATE N_NIMCALL(void, writeRope__ropes_237)(FILE* f, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r);
238 N_LIB_PRIVATE N_NIMCALL(void, write__systemZio_205)(FILE* f, NimStringDesc* s);
239 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, equalsFile__ropes_453)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r, NimStringDesc* filename);
240 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, writeRope__ropes_241)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* head, NimStringDesc* filename);
241 extern TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_;
242 N_LIB_PRIVATE TNimType NTIropeobj__OFzf0kSiPTcNreUIeJgWVA_;
243 extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
244 extern TNimType NTIstring__77mFvmsOLKik79ci2hXkHEg_;
245 N_LIB_PRIVATE TNimType NTIrope__4hi0XQqK9aLiPuWT9acsXm9aQ_;
246 N_LIB_PRIVATE TNimType NTIarrayL48OO52485753_ropeT__USLYl0Lpkimm4FABiJ3ldA_;
247 N_LIB_PRIVATE TNimType NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_;
248 STRING_LITERAL(TM__Vw9cfUOQOae9b9bzZBlucMZQg_4, "$", 1);
249 STRING_LITERAL(TM__Vw9cfUOQOae9b9bzZBlucMZQg_5, "ropes.nim(237, 20) `false` invalid format string: ", 50);
250 STRING_LITERAL(TM__Vw9cfUOQOae9b9bzZBlucMZQg_6, "ropes.nim(249, 20) `false` invalid format string: ", 50);
251 STRING_LITERAL(TM__Vw9cfUOQOae9b9bzZBlucMZQg_7, "ropes.nim(252, 20) `false` invalid format string: ", 50);
252 STRING_LITERAL(TM__Vw9cfUOQOae9b9bzZBlucMZQg_8, "\012", 1);
253 STRING_LITERAL(TM__Vw9cfUOQOae9b9bzZBlucMZQg_9, "ropes.nim(262, 18) `false` invalid format string: ", 50);
254 N_LIB_PRIVATE tyArray__USLYl0Lpkimm4FABiJ3ldA cache__ropes_41;
255 N_LIB_PRIVATE NI gCacheTries__ropes_87 = ((NI) 0);
256 N_LIB_PRIVATE NI gCacheMisses__ropes_88 = ((NI) 0);
257 N_LIB_PRIVATE NI gCacheIntTries__ropes_89 = ((NI) 0);
258 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5247;
N_NIMCALL(void,Marker_tyRef__4hi0XQqK9aLiPuWT9acsXm9aQ)259 static N_NIMCALL(void, Marker_tyRef__4hi0XQqK9aLiPuWT9acsXm9aQ)(void* p, NI op) {
260 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* a;
261 a = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*)p;
262 nimGCvisit((void*)(*a).left, op);
263 nimGCvisit((void*)(*a).right, op);
264 nimGCvisit((void*)(*a).data, op);
265 }
N_NIMCALL(void,TM__Vw9cfUOQOae9b9bzZBlucMZQg_3)266 static N_NIMCALL(void, TM__Vw9cfUOQOae9b9bzZBlucMZQg_3)(void) {
267 NI T1_;
268 T1_ = (NI)0;
269 for (T1_ = 0; T1_ < 4096; T1_++) {
270 nimGCvisit((void*)cache__ropes_41[T1_], 0);
271 }
272 }
N_NIMCALL(NI,len__ropes_10)273 N_LIB_PRIVATE N_NIMCALL(NI, len__ropes_10)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* a) {
274 NI result;
275 result = (NI)0;
276 {
277 if (!(a == ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL))) goto LA3_;
278 result = ((NI) 0);
279 }
280 goto LA1_;
281 LA3_: ;
282 {
283 result = ((*a).L > 0? ((*a).L) : -((*a).L));
284 }
285 LA1_: ;
286 return result;
287 }
N_NIMCALL(void,Marker_tySequence__WwUFq9cJ2xKRlsAWVEHyPRg)288 static N_NIMCALL(void, Marker_tySequence__WwUFq9cJ2xKRlsAWVEHyPRg)(void* p, NI op) {
289 tySequence__WwUFq9cJ2xKRlsAWVEHyPRg* a;
290 NI T1_;
291 a = (tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*)p;
292 T1_ = (NI)0;
293 for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
294 nimGCvisit((void*)a->data[T1_], op);
295 }
296 }
N_INLINE(NI,pluspercent___system_696)297 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
298 NI result;
299 result = (NI)0;
300 result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
301 return result;
302 }
N_INLINE(void,incRef__system_5338)303 static N_INLINE(void, incRef__system_5338)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
304 (*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
305 }
N_INLINE(NI,minuspercent___system_716)306 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
307 NI result;
308 result = (NI)0;
309 result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
310 return result;
311 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5300)312 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr) {
313 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
314 NI T1_;
315 result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
316 T1_ = (NI)0;
317 T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
318 result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
319 return result;
320 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)321 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
322 NIM_BOOL result;
323 result = (NIM_BOOL)0;
324 result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
325 return result;
326 }
N_INLINE(void,rtlAddZCT__system_5343)327 static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
328 addZCT__system_5294((&gch__system_5247.zct), c);
329 }
N_INLINE(void,decRef__system_5345)330 static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
331 (*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
332 {
333 NIM_BOOL T3_;
334 T3_ = (NIM_BOOL)0;
335 T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
336 if (!T3_) goto LA4_;
337 rtlAddZCT__system_5343(c);
338 }
339 LA4_: ;
340 }
N_INLINE(void,asgnRef)341 static N_INLINE(void, asgnRef)(void** dest, void* src) {
342 {
343 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
344 if (!!((src == NIM_NIL))) goto LA3_;
345 T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
346 T5_ = usrToCell__system_5300(src);
347 incRef__system_5338(T5_);
348 }
349 LA3_: ;
350 {
351 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
352 if (!!(((*dest) == NIM_NIL))) goto LA8_;
353 T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
354 T10_ = usrToCell__system_5300((*dest));
355 decRef__system_5345(T10_);
356 }
357 LA8_: ;
358 (*dest) = src;
359 }
N_INLINE(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA *,pop__ropes_180)360 static N_INLINE(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, pop__ropes_180)(tySequence__WwUFq9cJ2xKRlsAWVEHyPRg** s) {
361 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
362 NI L;
363 NI T1_;
364 result = NIM_NIL;
365 T1_ = ((*s) ? (*s)->Sup.len : 0);
366 L = (NI)(T1_ - ((NI) 1));
367 result = (*s)->data[L];
368 unsureAsgnRef((void**) (&(*s)), (tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*) setLengthSeqV2(&((*s))->Sup, (&NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_), ((NI) (L))));
369 return result;
370 }
N_INLINE(void,nimCopyMem)371 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
372 void* T1_;
373 T1_ = (void*)0;
374 T1_ = memcpy(dest, source, ((size_t) (size)));
375 }
N_INLINE(void,copyMem__system_1727)376 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
377 nimCopyMem(dest, source, size);
378 }
N_INLINE(void,appendString)379 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
380 {
381 if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
382 copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
383 (*dest).Sup.len += (*src).Sup.len;
384 }
385 LA3_: ;
386 }
N_NIMCALL(NimStringDesc *,dollar___ropes_250)387 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___ropes_250)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r) {
388 NimStringDesc* result;
389 NI T1_;
390 result = NIM_NIL;
391 T1_ = (NI)0;
392 T1_ = len__ropes_10(r);
393 result = mnewString(((NI) (T1_)));
394 result = setLengthStr(result, ((NI) 0));
395 {
396 NimStringDesc* s;
397 s = NIM_NIL;
398 {
399 tySequence__WwUFq9cJ2xKRlsAWVEHyPRg* stack;
400 if (!!((r == ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL)))) goto LA5_;
401 stack = (tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*) newSeq((&NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_), 1);
402 asgnRef((void**) (&stack->data[0]), r);
403 {
404 while (1) {
405 NI T9_;
406 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* it;
407 T9_ = (stack ? stack->Sup.len : 0);
408 if (!(((NI) 0) < T9_)) goto LA8;
409 it = pop__ropes_180((&stack));
410 {
411 while (1) {
412 NI T12_;
413 if (!!(((*it).left == ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL)))) goto LA11;
414 stack = (tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*) incrSeqV3((TGenericSeq*)(stack), (&NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_));
415 T12_ = stack->Sup.len++;
416 asgnRef((void**) (&stack->data[T12_]), (*it).right);
417 it = (*it).left;
418 } LA11: ;
419 }
420 s = (*it).data;
421 result = resizeString(result, (s ? s->Sup.len : 0) + 0);
422 appendString(result, s);
423 } LA8: ;
424 }
425 }
426 LA5_: ;
427 }
428 return result;
429 }
N_INLINE(void,nimGCunrefNoCycle)430 static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
431 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
432 T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
433 T1_ = usrToCell__system_5300(p);
434 decRef__system_5345(T1_);
435 }
N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA *,newRope__ropes_17)436 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, newRope__ropes_17)(NimStringDesc* data) {
437 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
438 NimStringDesc* T1_;
439 result = NIM_NIL;
440 result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) newObj((&NTIrope__4hi0XQqK9aLiPuWT9acsXm9aQ_), sizeof(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA));
441 (*result).Sup.m_type = (&NTIropeobj__OFzf0kSiPTcNreUIeJgWVA_);
442 (*result).L = ((NI64)-((data ? data->Sup.len : 0)));
443 T1_ = NIM_NIL;
444 T1_ = (*result).data; (*result).data = copyStringRC1(data);
445 if (T1_) nimGCunrefNoCycle(T1_);
446 return result;
447 }
N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA *,amp___ropes_128)448 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, amp___ropes_128)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* a, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* b) {
449 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
450 result = NIM_NIL;
451 {
452 if (!(a == ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL))) goto LA3_;
453 result = b;
454 }
455 goto LA1_;
456 LA3_: ;
457 {
458 if (!(b == ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL))) goto LA6_;
459 result = a;
460 }
461 goto LA1_;
462 LA6_: ;
463 {
464 result = newRope__ropes_17(((NimStringDesc*) NIM_NIL));
465 (*result).L = (NI)(((*a).L > 0? ((*a).L) : -((*a).L)) + ((*b).L > 0? ((*b).L) : -((*b).L)));
466 asgnRef((void**) (&(*result).left), a);
467 asgnRef((void**) (&(*result).right), b);
468 }
469 LA1_: ;
470 return result;
471 }
N_INLINE(int,nimCmpMem)472 static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
473 int result;
474 result = (int)0;
475 result = memcmp(a, b, ((size_t) (size)));
476 return result;
477 }
N_INLINE(NIM_BOOL,equalMem__system_1735)478 static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size) {
479 NIM_BOOL result;
480 int T1_;
481 result = (NIM_BOOL)0;
482 T1_ = (int)0;
483 T1_ = nimCmpMem(a, b, size);
484 result = (T1_ == ((NI32) 0));
485 return result;
486 }
N_INLINE(NIM_BOOL,eqStrings)487 static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
488 NIM_BOOL result;
489 NI alen;
490 NI blen;
491 { result = (NIM_BOOL)0;
492 alen = (a ? a->Sup.len : 0);
493 blen = (b ? b->Sup.len : 0);
494 {
495 if (!(alen == blen)) goto LA3_;
496 {
497 if (!(alen == ((NI) 0))) goto LA7_;
498 result = NIM_TRUE;
499 goto BeforeRet_;
500 }
501 LA7_: ;
502 result = equalMem__system_1735(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
503 goto BeforeRet_;
504 }
505 LA3_: ;
506 }BeforeRet_: ;
507 return result;
508 }
N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA *,insertInCache__ropes_90)509 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, insertInCache__ropes_90)(NimStringDesc* s) {
510 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
511 NI h;
512 NI T1_;
513 result = NIM_NIL;
514 gCacheTries__ropes_87 += ((NI) 1);
515 T1_ = (NI)0;
516 T1_ = hash__pureZhashes_279(s);
517 h = (NI)(T1_ & ((NI) 4095));
518 result = cache__ropes_41[(h)- 0];
519 {
520 NIM_BOOL T4_;
521 T4_ = (NIM_BOOL)0;
522 T4_ = (result == 0);
523 if (T4_) goto LA5_;
524 T4_ = !(eqStrings((*result).data, s));
525 LA5_: ;
526 if (!T4_) goto LA6_;
527 gCacheMisses__ropes_88 += ((NI) 1);
528 result = newRope__ropes_17(s);
529 asgnRef((void**) (&cache__ropes_41[(h)- 0]), result);
530 }
531 LA6_: ;
532 return result;
533 }
N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA *,rope__ropes_109)534 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, rope__ropes_109)(NimStringDesc* s) {
535 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
536 result = NIM_NIL;
537 {
538 if (!((s ? s->Sup.len : 0) == ((NI) 0))) goto LA3_;
539 result = ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL);
540 }
541 goto LA1_;
542 LA3_: ;
543 {
544 result = insertInCache__ropes_90(s);
545 }
546 LA1_: ;
547 return result;
548 }
N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA *,amp___ropes_140)549 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, amp___ropes_140)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* a, NimStringDesc* b) {
550 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
551 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T1_;
552 result = NIM_NIL;
553 T1_ = NIM_NIL;
554 T1_ = rope__ropes_109(b);
555 result = amp___ropes_128(a, T1_);
556 return result;
557 }
N_NIMCALL(void,add__ropes_162)558 N_LIB_PRIVATE N_NIMCALL(void, add__ropes_162)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** a, NimStringDesc* b) {
559 unsureAsgnRef((void**) (&(*a)), amp___ropes_140((*a), b));
560 }
N_NIMCALL(void,add__ropes_159)561 N_LIB_PRIVATE N_NIMCALL(void, add__ropes_159)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** a, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* b) {
562 unsureAsgnRef((void**) (&(*a)), amp___ropes_128((*a), b));
563 }
N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA *,runtimeFormat__ropes_271)564 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, runtimeFormat__ropes_271)(NimStringDesc* frmt, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** args, NI argsLen_0) {
565 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
566 NI i;
567 NI num;
568 result = NIM_NIL;
569 i = ((NI) 0);
570 result = ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL);
571 num = ((NI) 0);
572 {
573 while (1) {
574 NI start;
575 if (!(i < (frmt ? frmt->Sup.len : 0))) goto LA2;
576 {
577 if (!((NU8)(frmt->data[i]) == (NU8)(36))) goto LA5_;
578 i += ((NI) 1);
579 switch (((NU8)(frmt->data[i]))) {
580 case 36:
581 {
582 add__ropes_162(&result, ((NimStringDesc*) &TM__Vw9cfUOQOae9b9bzZBlucMZQg_4));
583 i += ((NI) 1);
584 }
585 break;
586 case 35:
587 {
588 i += ((NI) 1);
589 add__ropes_159(&result, args[num]);
590 num += ((NI) 1);
591 }
592 break;
593 case 48 ... 57:
594 {
595 NI j;
596 j = ((NI) 0);
597 {
598 while (1) {
599 j = (NI)((NI)((NI)(j * ((NI) 10)) + ((NU8)(frmt->data[i]))) - ((NI) 48));
600 i += ((NI) 1);
601 {
602 NIM_BOOL T14_;
603 T14_ = (NIM_BOOL)0;
604 T14_ = ((frmt ? frmt->Sup.len : 0) <= i);
605 if (T14_) goto LA15_;
606 T14_ = !((((NU8)(frmt->data[i])) >= ((NU8)(48)) && ((NU8)(frmt->data[i])) <= ((NU8)(57))));
607 LA15_: ;
608 if (!T14_) goto LA16_;
609 goto LA10;
610 }
611 LA16_: ;
612 }
613 } LA10: ;
614 num = j;
615 {
616 if (!((NI)((argsLen_0-1) + ((NI) 1)) < j)) goto LA20_;
617 {
618 NimStringDesc* T26_;
619 if (!NIM_TRUE) goto LA24_;
620 T26_ = NIM_NIL;
621 T26_ = rawNewString((frmt ? frmt->Sup.len : 0) + 50);
622 appendString(T26_, ((NimStringDesc*) &TM__Vw9cfUOQOae9b9bzZBlucMZQg_5));
623 appendString(T26_, frmt);
624 failedAssertImpl__systemZassertions_56(T26_);
625 }
626 LA24_: ;
627 }
628 goto LA18_;
629 LA20_: ;
630 {
631 add__ropes_159(&result, args[(NI)(j - ((NI) 1))]);
632 }
633 LA18_: ;
634 }
635 break;
636 case 123:
637 {
638 NI j_2;
639 i += ((NI) 1);
640 j_2 = ((NI) 0);
641 {
642 while (1) {
643 if (!(((NU8)(frmt->data[i])) >= ((NU8)(48)) && ((NU8)(frmt->data[i])) <= ((NU8)(57)))) goto LA30;
644 j_2 = (NI)((NI)((NI)(j_2 * ((NI) 10)) + ((NU8)(frmt->data[i]))) - ((NI) 48));
645 i += ((NI) 1);
646 } LA30: ;
647 }
648 num = j_2;
649 {
650 if (!((NU8)(frmt->data[i]) == (NU8)(125))) goto LA33_;
651 i += ((NI) 1);
652 }
653 goto LA31_;
654 LA33_: ;
655 {
656 {
657 NimStringDesc* T40_;
658 if (!NIM_TRUE) goto LA38_;
659 T40_ = NIM_NIL;
660 T40_ = rawNewString((frmt ? frmt->Sup.len : 0) + 50);
661 appendString(T40_, ((NimStringDesc*) &TM__Vw9cfUOQOae9b9bzZBlucMZQg_6));
662 appendString(T40_, frmt);
663 failedAssertImpl__systemZassertions_56(T40_);
664 }
665 LA38_: ;
666 }
667 LA31_: ;
668 {
669 if (!((NI)((argsLen_0-1) + ((NI) 1)) < j_2)) goto LA43_;
670 {
671 NimStringDesc* T49_;
672 if (!NIM_TRUE) goto LA47_;
673 T49_ = NIM_NIL;
674 T49_ = rawNewString((frmt ? frmt->Sup.len : 0) + 50);
675 appendString(T49_, ((NimStringDesc*) &TM__Vw9cfUOQOae9b9bzZBlucMZQg_7));
676 appendString(T49_, frmt);
677 failedAssertImpl__systemZassertions_56(T49_);
678 }
679 LA47_: ;
680 }
681 goto LA41_;
682 LA43_: ;
683 {
684 add__ropes_159(&result, args[(NI)(j_2 - ((NI) 1))]);
685 }
686 LA41_: ;
687 }
688 break;
689 case 110:
690 {
691 add__ropes_162(&result, ((NimStringDesc*) &TM__Vw9cfUOQOae9b9bzZBlucMZQg_8));
692 i += ((NI) 1);
693 }
694 break;
695 case 78:
696 {
697 add__ropes_162(&result, ((NimStringDesc*) &TM__Vw9cfUOQOae9b9bzZBlucMZQg_8));
698 i += ((NI) 1);
699 }
700 break;
701 default:
702 {
703 {
704 NimStringDesc* T58_;
705 if (!NIM_TRUE) goto LA56_;
706 T58_ = NIM_NIL;
707 T58_ = rawNewString((frmt ? frmt->Sup.len : 0) + 50);
708 appendString(T58_, ((NimStringDesc*) &TM__Vw9cfUOQOae9b9bzZBlucMZQg_9));
709 appendString(T58_, frmt);
710 failedAssertImpl__systemZassertions_56(T58_);
711 }
712 LA56_: ;
713 }
714 break;
715 }
716 }
717 LA5_: ;
718 start = i;
719 {
720 while (1) {
721 if (!(i < (frmt ? frmt->Sup.len : 0))) goto LA60;
722 {
723 if (!!(((NU8)(frmt->data[i]) == (NU8)(36)))) goto LA63_;
724 i += ((NI) 1);
725 }
726 goto LA61_;
727 LA63_: ;
728 {
729 goto LA59;
730 }
731 LA61_: ;
732 } LA60: ;
733 } LA59: ;
734 {
735 NimStringDesc* T70_;
736 if (!(start <= (NI)(i - ((NI) 1)))) goto LA68_;
737 T70_ = NIM_NIL;
738 T70_ = substr__system_7773(frmt, start, (NI)(i - ((NI) 1)));
739 add__ropes_162(&result, T70_);
740 }
741 LA68_: ;
742 } LA2: ;
743 }
744 return result;
745 }
N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA *,rope__ropes_115)746 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, rope__ropes_115)(NI64 i) {
747 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
748 NimStringDesc* T1_;
749 result = NIM_NIL;
750 gCacheIntTries__ropes_89 += ((NI) 1);
751 T1_ = NIM_NIL;
752 T1_ = dollar___systemZdollars_6(i);
753 result = rope__ropes_109(T1_);
754 return result;
755 }
N_NIMCALL(void,prepend__ropes_265)756 N_LIB_PRIVATE N_NIMCALL(void, prepend__ropes_265)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** a, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* b) {
757 unsureAsgnRef((void**) (&(*a)), amp___ropes_128(b, (*a)));
758 }
N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA *,amp___ropes_144)759 N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, amp___ropes_144)(NimStringDesc* a, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* b) {
760 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
761 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T1_;
762 result = NIM_NIL;
763 T1_ = NIM_NIL;
764 T1_ = rope__ropes_109(a);
765 result = amp___ropes_128(T1_, b);
766 return result;
767 }
N_INLINE(void,nimSetMem__systemZmemory_7)768 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
769 void* T1_;
770 T1_ = (void*)0;
771 T1_ = memset(a, v, ((size_t) (size)));
772 }
N_INLINE(void,nimZeroMem)773 static N_INLINE(void, nimZeroMem)(void* p, NI size) {
774 nimSetMem__systemZmemory_7(p, ((int) 0), size);
775 }
N_INLINE(NCSTRING,nimToCStringConv)776 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
777 NCSTRING result;
778 result = (NCSTRING)0;
779 {
780 NIM_BOOL T3_;
781 T3_ = (NIM_BOOL)0;
782 T3_ = (s == ((NimStringDesc*) NIM_NIL));
783 if (T3_) goto LA4_;
784 T3_ = ((*s).Sup.len == ((NI) 0));
785 LA4_: ;
786 if (!T3_) goto LA5_;
787 result = "";
788 }
789 goto LA1_;
790 LA5_: ;
791 {
792 result = ((NCSTRING) ((*s).data));
793 }
794 LA1_: ;
795 return result;
796 }
N_NIMCALL(NIM_BOOL,equalsFile__ropes_385)797 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, equalsFile__ropes_385)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r, FILE* f) {
798 NIM_BOOL result;
799 tyArray__9bKy7UA2LOi2vzOViufaW1Q buf;
800 NI bpos;
801 NI blen;
802 NI btotal;
803 NI rtotal;
804 NIM_BOOL T27_;
805 NI T28_;
806 { result = (NIM_BOOL)0;
807 nimZeroMem((void*)buf, sizeof(tyArray__9bKy7UA2LOi2vzOViufaW1Q));
808 bpos = ((NI) 1024);
809 blen = ((NI) 1024);
810 btotal = ((NI) 0);
811 rtotal = ((NI) 0);
812 {
813 NimStringDesc* s;
814 s = NIM_NIL;
815 {
816 tySequence__WwUFq9cJ2xKRlsAWVEHyPRg* stack;
817 if (!!((r == ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL)))) goto LA4_;
818 stack = (tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*) newSeq((&NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_), 1);
819 asgnRef((void**) (&stack->data[0]), r);
820 {
821 while (1) {
822 NI T8_;
823 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* it;
824 NI spos;
825 T8_ = (stack ? stack->Sup.len : 0);
826 if (!(((NI) 0) < T8_)) goto LA7;
827 it = pop__ropes_180((&stack));
828 {
829 while (1) {
830 NI T11_;
831 if (!!(((*it).left == ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL)))) goto LA10;
832 stack = (tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*) incrSeqV3((TGenericSeq*)(stack), (&NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_));
833 T11_ = stack->Sup.len++;
834 asgnRef((void**) (&stack->data[T11_]), (*it).right);
835 it = (*it).left;
836 } LA10: ;
837 }
838 s = (*it).data;
839 spos = ((NI) 0);
840 rtotal += (s ? s->Sup.len : 0);
841 {
842 while (1) {
843 NI n;
844 if (!(spos < (s ? s->Sup.len : 0))) goto LA13;
845 {
846 if (!(bpos == blen)) goto LA16_;
847 bpos = ((NI) 0);
848 blen = readBuffer__systemZio_144(f, ((void*) ((&buf[(((NI) 0))- 0]))), ((NI) 1024));
849 btotal += blen;
850 {
851 if (!(blen == ((NI) 0))) goto LA20_;
852 result = NIM_FALSE;
853 goto BeforeRet_;
854 }
855 LA20_: ;
856 }
857 LA16_: ;
858 n = (((NI)(blen - bpos) <= (NI)((s ? s->Sup.len : 0) - spos)) ? (NI)(blen - bpos) : (NI)((s ? s->Sup.len : 0) - spos));
859 {
860 NIM_BOOL T24_;
861 T24_ = (NIM_BOOL)0;
862 T24_ = equalMem__system_1735(((void*) ((&buf[(bpos)- 0]))), ((void*) ((NI)(((NI) (nimToCStringConv(s))) + spos))), ((NI) (n)));
863 if (!!(T24_)) goto LA25_;
864 result = NIM_FALSE;
865 goto BeforeRet_;
866 }
867 LA25_: ;
868 spos += n;
869 bpos += n;
870 } LA13: ;
871 }
872 } LA7: ;
873 }
874 }
875 LA4_: ;
876 }
877 T27_ = (NIM_BOOL)0;
878 T28_ = (NI)0;
879 T28_ = readBuffer__systemZio_144(f, ((void*) ((&buf[(((NI) 0))- 0]))), ((NI) 1));
880 T27_ = (T28_ == ((NI) 0));
881 if (!(T27_)) goto LA29_;
882 T27_ = (btotal == rtotal);
883 LA29_: ;
884 result = T27_;
885 }BeforeRet_: ;
886 return result;
887 }
N_NIMCALL(NIM_BOOL,equalsFile__ropes_453)888 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, equalsFile__ropes_453)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r, NimStringDesc* filename) {
889 NIM_BOOL result;
890 FILE* f;
891 result = (NIM_BOOL)0;
892 f = (FILE*)0;
893 result = open__systemZio_389(&f, filename, ((tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg) 0), ((NI) -1));
894 {
895 if (!result) goto LA3_;
896 result = equalsFile__ropes_385(r, f);
897 close__systemZio_217(f);
898 }
899 LA3_: ;
900 return result;
901 }
N_NIMCALL(void,writeRope__ropes_237)902 N_LIB_PRIVATE N_NIMCALL(void, writeRope__ropes_237)(FILE* f, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r) {
903 {
904 NimStringDesc* s;
905 s = NIM_NIL;
906 {
907 tySequence__WwUFq9cJ2xKRlsAWVEHyPRg* stack;
908 if (!!((r == ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL)))) goto LA4_;
909 stack = (tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*) newSeq((&NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_), 1);
910 asgnRef((void**) (&stack->data[0]), r);
911 {
912 while (1) {
913 NI T8_;
914 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* it;
915 T8_ = (stack ? stack->Sup.len : 0);
916 if (!(((NI) 0) < T8_)) goto LA7;
917 it = pop__ropes_180((&stack));
918 {
919 while (1) {
920 NI T11_;
921 if (!!(((*it).left == ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL)))) goto LA10;
922 stack = (tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*) incrSeqV3((TGenericSeq*)(stack), (&NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_));
923 T11_ = stack->Sup.len++;
924 asgnRef((void**) (&stack->data[T11_]), (*it).right);
925 it = (*it).left;
926 } LA10: ;
927 }
928 s = (*it).data;
929 write__systemZio_205(f, s);
930 } LA7: ;
931 }
932 }
933 LA4_: ;
934 }
935 }
N_NIMCALL(NIM_BOOL,writeRope__ropes_241)936 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, writeRope__ropes_241)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* head, NimStringDesc* filename) {
937 NIM_BOOL result;
938 FILE* f;
939 result = (NIM_BOOL)0;
940 f = (FILE*)0;
941 {
942 NIM_BOOL T3_;
943 T3_ = (NIM_BOOL)0;
944 T3_ = open__systemZio_389(&f, filename, ((tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg) 1), ((NI) -1));
945 if (!T3_) goto LA4_;
946 {
947 if (!!((head == ((tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*) NIM_NIL)))) goto LA8_;
948 writeRope__ropes_237(f, head);
949 }
950 LA8_: ;
951 close__systemZio_217(f);
952 result = NIM_TRUE;
953 }
954 goto LA1_;
955 LA4_: ;
956 {
957 result = NIM_FALSE;
958 }
959 LA1_: ;
960 return result;
961 }
N_NIMCALL(NIM_BOOL,writeRopeIfNotEqual__ropes_458)962 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, writeRopeIfNotEqual__ropes_458)(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r, NimStringDesc* filename) {
963 NIM_BOOL result;
964 result = (NIM_BOOL)0;
965 {
966 NIM_BOOL T3_;
967 T3_ = (NIM_BOOL)0;
968 T3_ = equalsFile__ropes_453(r, filename);
969 if (!!(T3_)) goto LA4_;
970 result = writeRope__ropes_241(r, filename);
971 }
972 goto LA1_;
973 LA4_: ;
974 {
975 result = NIM_FALSE;
976 }
977 LA1_: ;
978 return result;
979 }
N_NIMCALL(void,compiler_ropesInit000)980 N_LIB_PRIVATE N_NIMCALL(void, compiler_ropesInit000)(void) {
981 {
982 TFrame FR_; FR_.len = 0;
983
984 nimRegisterGlobalMarker(TM__Vw9cfUOQOae9b9bzZBlucMZQg_3);
985
986 }/* preInitProc end */
987 {
988 }
989 }
990
N_NIMCALL(void,compiler_ropesDatInit000)991 N_LIB_PRIVATE N_NIMCALL(void, compiler_ropesDatInit000)(void) {
992 static TNimNode* TM__Vw9cfUOQOae9b9bzZBlucMZQg_2_4[4];
993 static TNimNode TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[5];
994 NTIropeobj__OFzf0kSiPTcNreUIeJgWVA_.size = sizeof(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA);
995 NTIropeobj__OFzf0kSiPTcNreUIeJgWVA_.align = NIM_ALIGNOF(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA);
996 NTIropeobj__OFzf0kSiPTcNreUIeJgWVA_.kind = 17;
997 NTIropeobj__OFzf0kSiPTcNreUIeJgWVA_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
998 NTIropeobj__OFzf0kSiPTcNreUIeJgWVA_.flags = 2;
999 TM__Vw9cfUOQOae9b9bzZBlucMZQg_2_4[0] = &TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[1];
1000 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[1].kind = 1;
1001 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[1].offset = offsetof(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA, left);
1002 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[1].typ = (&NTIrope__4hi0XQqK9aLiPuWT9acsXm9aQ_);
1003 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[1].name = "left";
1004 TM__Vw9cfUOQOae9b9bzZBlucMZQg_2_4[1] = &TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[2];
1005 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[2].kind = 1;
1006 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[2].offset = offsetof(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA, right);
1007 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[2].typ = (&NTIrope__4hi0XQqK9aLiPuWT9acsXm9aQ_);
1008 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[2].name = "right";
1009 TM__Vw9cfUOQOae9b9bzZBlucMZQg_2_4[2] = &TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[3];
1010 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[3].kind = 1;
1011 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[3].offset = offsetof(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA, L);
1012 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[3].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
1013 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[3].name = "L";
1014 TM__Vw9cfUOQOae9b9bzZBlucMZQg_2_4[3] = &TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[4];
1015 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[4].kind = 1;
1016 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[4].offset = offsetof(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA, data);
1017 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[4].typ = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
1018 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[4].name = "data";
1019 TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[0].len = 4; TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[0].kind = 2; TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[0].sons = &TM__Vw9cfUOQOae9b9bzZBlucMZQg_2_4[0];
1020 NTIropeobj__OFzf0kSiPTcNreUIeJgWVA_.node = &TM__Vw9cfUOQOae9b9bzZBlucMZQg_0[0];
1021 NTIrope__4hi0XQqK9aLiPuWT9acsXm9aQ_.size = sizeof(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*);
1022 NTIrope__4hi0XQqK9aLiPuWT9acsXm9aQ_.align = NIM_ALIGNOF(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*);
1023 NTIrope__4hi0XQqK9aLiPuWT9acsXm9aQ_.kind = 22;
1024 NTIrope__4hi0XQqK9aLiPuWT9acsXm9aQ_.base = (&NTIropeobj__OFzf0kSiPTcNreUIeJgWVA_);
1025 NTIrope__4hi0XQqK9aLiPuWT9acsXm9aQ_.marker = Marker_tyRef__4hi0XQqK9aLiPuWT9acsXm9aQ;
1026 NTIarrayL48OO52485753_ropeT__USLYl0Lpkimm4FABiJ3ldA_.size = sizeof(tyArray__USLYl0Lpkimm4FABiJ3ldA);
1027 NTIarrayL48OO52485753_ropeT__USLYl0Lpkimm4FABiJ3ldA_.align = NIM_ALIGNOF(tyArray__USLYl0Lpkimm4FABiJ3ldA);
1028 NTIarrayL48OO52485753_ropeT__USLYl0Lpkimm4FABiJ3ldA_.kind = 16;
1029 NTIarrayL48OO52485753_ropeT__USLYl0Lpkimm4FABiJ3ldA_.base = (&NTIrope__4hi0XQqK9aLiPuWT9acsXm9aQ_);
1030 NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_.size = sizeof(tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*);
1031 NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_.align = NIM_ALIGNOF(tySequence__WwUFq9cJ2xKRlsAWVEHyPRg*);
1032 NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_.kind = 24;
1033 NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_.base = (&NTIrope__4hi0XQqK9aLiPuWT9acsXm9aQ_);
1034 NTIseqLropeT__WwUFq9cJ2xKRlsAWVEHyPRg_.marker = Marker_tySequence__WwUFq9cJ2xKRlsAWVEHyPRg;
1035 }
1036
1037