1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 32
3 #define NIM_EmulateOverflowChecks
4
5 #include "nimbase.h"
6 #include <unistd.h>
7 #include <string.h>
8 #include <stdio.h>
9 #undef LANGUAGE_C
10 #undef MIPSEB
11 #undef MIPSEL
12 #undef PPC
13 #undef R3000
14 #undef R4000
15 #undef i386
16 #undef linux
17 #undef mips
18 #undef near
19 #undef far
20 #undef powerpc
21 #undef unix
22 #define nimfr_(x, y)
23 #define nimln_(x, y)
24 typedef struct tyObject_PTerminalcolonObjectType___EcU8GhMNGo9bGDXbfqZ82og tyObject_PTerminalcolonObjectType___EcU8GhMNGo9bGDXbfqZ82og;
25 typedef struct TNimType TNimType;
26 typedef struct TNimNode TNimNode;
27 typedef struct NimStringDesc NimStringDesc;
28 typedef struct TGenericSeq TGenericSeq;
29 typedef struct tyObject_StandardFormatSpecifier__NDU7AW5Eu6Q69c8cH6RDouQ tyObject_StandardFormatSpecifier__NDU7AW5Eu6Q69c8cH6RDouQ;
30 typedef struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw;
31 typedef struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA;
32 typedef struct Exception Exception;
33 typedef struct RootObj RootObj;
34 typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
35 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
36 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
37 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
38 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
39 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
40 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
41 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
42 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
43 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
44 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
45 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
46 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
47 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
48 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
49 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
50 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
51 typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
52 struct tyObject_PTerminalcolonObjectType___EcU8GhMNGo9bGDXbfqZ82og {
53 NIM_BOOL trueColorIsSupported;
54 NIM_BOOL trueColorIsEnabled;
55 NIM_BOOL fgSetColor;
56 };
57 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
58 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
59 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
60 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
61 struct TNimType {
62 NI size;
63 NI align;
64 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
65 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
66 TNimType* base;
67 TNimNode* node;
68 void* finalizer;
69 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
70 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
71 };
72 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
73 struct TNimNode {
74 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
75 NI offset;
76 TNimType* typ;
77 NCSTRING name;
78 NI len;
79 TNimNode** sons;
80 };
81 typedef N_NIMCALL_PTR(void, tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
82 typedef NU16 tySet_tyEnum_Style__NXKayqTLMsAibFwNceBlpA;
83 typedef NU8 tyEnum_Style__NXKayqTLMsAibFwNceBlpA;
84 struct TGenericSeq {
85 NI len;
86 NI reserved;
87 };
88 struct NimStringDesc {
89 TGenericSeq Sup;
90 NIM_CHAR data[SEQ_DECL_SIZE];
91 };
92 struct tyObject_StandardFormatSpecifier__NDU7AW5Eu6Q69c8cH6RDouQ {
93 NIM_CHAR fill;
94 NIM_CHAR align;
95 NIM_CHAR sign;
96 NIM_BOOL alternateForm;
97 NIM_BOOL padWithZero;
98 NI minimumWidth;
99 NI precision;
100 NIM_CHAR typ;
101 NI endPosition;
102 };
103 struct RootObj {
104 TNimType* m_type;
105 };
106 struct Exception {
107 RootObj Sup;
108 Exception* parent;
109 NCSTRING name;
110 NimStringDesc* message;
111 tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
112 Exception* up;
113 };
114 struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA {
115 Exception Sup;
116 };
117 struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw {
118 tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
119 };
120 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
121 NI refcount;
122 TNimType* typ;
123 };
124 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
125 void* bottom;
126 };
127 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
128 NI len;
129 NI cap;
130 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
131 };
132 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
133 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
134 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
135 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
136 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
137 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
138 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
139 };
140 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
141 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
142 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
143 NI key;
144 NI upperBound;
145 NI level;
146 };
147 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
148 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
149 NI Field1;
150 };
151 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
152 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
153 NI len;
154 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
155 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
156 };
157 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
158 NI minLargeObj;
159 NI maxLargeObj;
160 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
161 NU32 flBitmap;
162 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
163 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
164 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
165 NI currMem;
166 NI maxMem;
167 NI freeMem;
168 NI occ;
169 NI lastSize;
170 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
171 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
172 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
173 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
174 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
175 NIM_BOOL locked;
176 NIM_BOOL blockChunkSizeIncrease;
177 NI nextChunkSize;
178 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
179 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
180 };
181 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
182 NI stackScans;
183 NI cycleCollections;
184 NI maxThreshold;
185 NI maxStackSize;
186 NI maxStackCells;
187 NI cycleTableSize;
188 NI64 maxPause;
189 };
190 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
191 NI counter;
192 NI max;
193 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
194 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
195 };
196 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
197 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
198 NI cycleThreshold;
199 NI zctThreshold;
200 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
201 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
202 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
203 NI recGcLock;
204 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
205 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
206 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
207 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
208 NI gcThreadId;
209 };
210 typedef NU8 tyEnum_ForegroundColor__ez9ah4IgQc0AbdW68acioDg;
211 struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
212 NCSTRING procname;
213 NI line;
214 NCSTRING filename;
215 };
216 struct tySequence__uB9b75OUPRENsBAu4AnoePA {
217 TGenericSeq Sup;
218 tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
219 };
220 static N_NIMCALL(void, Marker_tyRef__flNJLrANZti6Wiy5LTlGGA)(void* p, NI op);
221 N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
222 static N_NIMCALL(void, TM__CN3raB9atujkEiPpxYAdlgQ_3)(void);
223 N_LIB_PRIVATE N_NIMCALL(void, nimRegisterThreadLocalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc);
224 N_LIB_PRIVATE N_NIMCALL(int, getFileHandle__systemZio_228)(FILE* f);
225 N_LIB_PRIVATE N_NIMCALL(void, write__systemZio_205)(FILE* f, NimStringDesc* s);
226 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, ansiStyleCode__pureZterminal_295)(NI style);
227 N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
228 N_LIB_PRIVATE N_NIMCALL(void, formatValue__pureZstrformat_160)(NimStringDesc** result, NimStringDesc* value, NimStringDesc* specifier);
229 N_LIB_PRIVATE N_NIMCALL(void, formatValue__pureZterminal_172)(NimStringDesc** result, NI value, NimStringDesc* specifier);
230 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_3)(NI x);
231 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
232 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
233 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
234 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
235 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
236 N_LIB_PRIVATE N_NIMCALL(tyObject_StandardFormatSpecifier__NDU7AW5Eu6Q69c8cH6RDouQ, parseStandardFormatSpecifier__pureZstrformat_56)(NimStringDesc* s, NI start, NIM_BOOL ignoreUnknownSuffix);
237 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
238 static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
239 static N_INLINE(void, asgnRef)(void** dest, void* src);
240 static N_INLINE(void, incRef__system_5329)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
241 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
242 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5291)(void* usr);
243 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
244 static N_INLINE(void, decRef__system_5336)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
245 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
246 static N_INLINE(void, rtlAddZCT__system_5334)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
247 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5285)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
248 N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
249 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, formatInt__pureZterminal_180)(NI n, NI radix, tyObject_StandardFormatSpecifier__NDU7AW5Eu6Q69c8cH6RDouQ spec);
250 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
251 static N_INLINE(NimStringDesc*, mkDigit__pureZstrformat_5)(NI v, NIM_CHAR typ);
252 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nimCharToStr)(NIM_CHAR x);
253 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuRepeatChar)(NIM_CHAR c, NI count);
254 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
255 N_LIB_PRIVATE TNimType NTIpterminal58objecttype__EcU8GhMNGo9bGDXbfqZ82og_;
256 extern TNimType NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_;
257 N_LIB_PRIVATE TNimType NTIpterminal__flNJLrANZti6Wiy5LTlGGA_;
258 STRING_LITERAL(TM__CN3raB9atujkEiPpxYAdlgQ_4, "\033[", 2);
259 extern TNimType NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_;
260 extern TNimType NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_;
261 STRING_LITERAL(TM__CN3raB9atujkEiPpxYAdlgQ_5, "invalid type in format string for number, expected one of \'x\', \'X\', \'b\', \'d\', \'o\' but got: ", 92);
262 STRING_LITERAL(TM__CN3raB9atujkEiPpxYAdlgQ_6, "0x", 2);
263 STRING_LITERAL(TM__CN3raB9atujkEiPpxYAdlgQ_7, "0b", 2);
264 STRING_LITERAL(TM__CN3raB9atujkEiPpxYAdlgQ_8, "0o", 2);
265 STRING_LITERAL(TM__CN3raB9atujkEiPpxYAdlgQ_9, "0", 1);
266 STRING_LITERAL(TM__CN3raB9atujkEiPpxYAdlgQ_10, "-", 1);
267 STRING_LITERAL(TM__CN3raB9atujkEiPpxYAdlgQ_11, "m", 1);
268 STRING_LITERAL(TM__CN3raB9atujkEiPpxYAdlgQ_12, "\033[0m", 4);
269 N_LIB_PRIVATE tyObject_PTerminalcolonObjectType___EcU8GhMNGo9bGDXbfqZ82og* gTerm__pureZterminal_10;
270 N_LIB_PRIVATE NI gFG__pureZterminal_278;
271 N_LIB_PRIVATE NI gBG__pureZterminal_279;
272 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5238;
N_NIMCALL(void,Marker_tyRef__flNJLrANZti6Wiy5LTlGGA)273 static N_NIMCALL(void, Marker_tyRef__flNJLrANZti6Wiy5LTlGGA)(void* p, NI op) {
274 tyObject_PTerminalcolonObjectType___EcU8GhMNGo9bGDXbfqZ82og* a;
275 a = (tyObject_PTerminalcolonObjectType___EcU8GhMNGo9bGDXbfqZ82og*)p;
276 }
N_NIMCALL(void,TM__CN3raB9atujkEiPpxYAdlgQ_3)277 static N_NIMCALL(void, TM__CN3raB9atujkEiPpxYAdlgQ_3)(void) {
278 nimGCvisit((void*)gTerm__pureZterminal_10, 0);
279 }
N_NIMCALL(NIM_BOOL,isatty__pureZterminal_502)280 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isatty__pureZterminal_502)(FILE* f) {
281 NIM_BOOL result;
282 int T1_;
283 int T2_;
284 result = (NIM_BOOL)0;
285 T1_ = (int)0;
286 T1_ = getFileHandle__systemZio_228(f);
287 T2_ = (int)0;
288 T2_ = isatty(T1_);
289 result = !((T2_ == ((NI32) 0)));
290 return result;
291 }
N_INLINE(void,nimCopyMem)292 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
293 void* T1_;
294 T1_ = (void*)0;
295 T1_ = memcpy(dest, source, ((size_t) (size)));
296 }
N_INLINE(void,copyMem__system_1727)297 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
298 nimCopyMem(dest, source, size);
299 }
N_INLINE(void,appendString)300 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
301 {
302 if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
303 copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
304 (*dest).Sup.len += (*src).Sup.len;
305 }
306 LA3_: ;
307 }
N_INLINE(void,appendChar)308 static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c) {
309 (*dest).data[(*dest).Sup.len] = c;
310 (*dest).data[(NI)((*dest).Sup.len + ((NI) 1))] = 0;
311 (*dest).Sup.len += ((NI) 1);
312 }
N_INLINE(NI,pluspercent___system_696)313 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
314 NI result;
315 result = (NI)0;
316 result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
317 return result;
318 }
N_INLINE(void,incRef__system_5329)319 static N_INLINE(void, incRef__system_5329)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
320 (*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
321 }
N_INLINE(NI,minuspercent___system_716)322 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
323 NI result;
324 result = (NI)0;
325 result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
326 return result;
327 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5291)328 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5291)(void* usr) {
329 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
330 NI T1_;
331 result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
332 T1_ = (NI)0;
333 T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
334 result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
335 return result;
336 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)337 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
338 NIM_BOOL result;
339 result = (NIM_BOOL)0;
340 result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
341 return result;
342 }
N_INLINE(void,rtlAddZCT__system_5334)343 static N_INLINE(void, rtlAddZCT__system_5334)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
344 addZCT__system_5285((&gch__system_5238.zct), c);
345 }
N_INLINE(void,decRef__system_5336)346 static N_INLINE(void, decRef__system_5336)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
347 (*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
348 {
349 NIM_BOOL T3_;
350 T3_ = (NIM_BOOL)0;
351 T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
352 if (!T3_) goto LA4_;
353 rtlAddZCT__system_5334(c);
354 }
355 LA4_: ;
356 }
N_INLINE(void,asgnRef)357 static N_INLINE(void, asgnRef)(void** dest, void* src) {
358 {
359 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
360 if (!!((src == NIM_NIL))) goto LA3_;
361 T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
362 T5_ = usrToCell__system_5291(src);
363 incRef__system_5329(T5_);
364 }
365 LA3_: ;
366 {
367 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
368 if (!!(((*dest) == NIM_NIL))) goto LA8_;
369 T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
370 T10_ = usrToCell__system_5291((*dest));
371 decRef__system_5336(T10_);
372 }
373 LA8_: ;
374 (*dest) = src;
375 }
N_INLINE(NimStringDesc *,mkDigit__pureZstrformat_5)376 static N_INLINE(NimStringDesc*, mkDigit__pureZstrformat_5)(NI v, NIM_CHAR typ) {
377 NimStringDesc* result;
378 result = NIM_NIL;
379 {
380 if (!(v < ((NI) 10))) goto LA3_;
381 result = nimCharToStr(((NIM_CHAR) (((NI) ((NI)(((NI) 48) + v))))));
382 }
383 goto LA1_;
384 LA3_: ;
385 {
386 NIM_CHAR T6_;
387 T6_ = (NIM_CHAR)0;
388 {
389 if (!((NU8)(typ) == (NU8)(120))) goto LA9_;
390 T6_ = 97;
391 }
392 goto LA7_;
393 LA9_: ;
394 {
395 T6_ = 65;
396 }
397 LA7_: ;
398 result = nimCharToStr(((NIM_CHAR) (((NI) ((NI)((NI)(((NU8)(T6_)) + v) - ((NI) 10)))))));
399 }
400 LA1_: ;
401 return result;
402 }
N_NIMCALL(NimStringDesc *,formatInt__pureZterminal_180)403 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, formatInt__pureZterminal_180)(NI n, NI radix, tyObject_StandardFormatSpecifier__NDU7AW5Eu6Q69c8cH6RDouQ spec) {
404 NimStringDesc* result;
405 NI64 n_2;
406 NIM_BOOL negative;
407 NU64 v;
408 NimStringDesc* xx;
409 result = NIM_NIL;
410 n_2 = ((NI64) (n));
411 negative = (n_2 < IL64(0));
412 {
413 if (!negative) goto LA3_;
414 v = (NU64)((NU64)(((NU64) ((NI64)((NU64) ~(n_2))))) + (NU64)(1ULL));
415 }
416 goto LA1_;
417 LA3_: ;
418 {
419 v = ((NU64) (n_2));
420 }
421 LA1_: ;
422 xx = ((NimStringDesc*) NIM_NIL);
423 {
424 if (!spec.alternateForm) goto LA8_;
425 switch (((NU8)(spec.typ))) {
426 case 88:
427 {
428 xx = copyString(((NimStringDesc*) &TM__CN3raB9atujkEiPpxYAdlgQ_6));
429 }
430 break;
431 case 120:
432 {
433 xx = copyString(((NimStringDesc*) &TM__CN3raB9atujkEiPpxYAdlgQ_6));
434 }
435 break;
436 case 98:
437 {
438 xx = copyString(((NimStringDesc*) &TM__CN3raB9atujkEiPpxYAdlgQ_7));
439 }
440 break;
441 case 111:
442 {
443 xx = copyString(((NimStringDesc*) &TM__CN3raB9atujkEiPpxYAdlgQ_8));
444 }
445 break;
446 default:
447 {
448 }
449 break;
450 }
451 }
452 LA8_: ;
453 {
454 if (!(v == 0ULL)) goto LA17_;
455 result = copyString(((NimStringDesc*) &TM__CN3raB9atujkEiPpxYAdlgQ_9));
456 }
457 goto LA15_;
458 LA17_: ;
459 {
460 result = ((NimStringDesc*) NIM_NIL);
461 {
462 while (1) {
463 NU64 d;
464 NimStringDesc* T22_;
465 if (!((NU64)(0ULL) < (NU64)(v))) goto LA21;
466 d = (NU64)((NU64)(v) % (NU64)(((NU64) (radix))));
467 v = (NU64)((NU64)(v) / (NU64)(((NU64) (radix))));
468 T22_ = NIM_NIL;
469 T22_ = mkDigit__pureZstrformat_5(((NI) (d)), spec.typ);
470 result = resizeString(result, (T22_ ? T22_->Sup.len : 0) + 0);
471 appendString(result, T22_);
472 } LA21: ;
473 }
474 {
475 NI idx;
476 NI colontmp_;
477 NI i;
478 idx = (NI)0;
479 colontmp_ = (NI)0;
480 colontmp_ = (NI)((result ? result->Sup.len : 0) / ((NI) 2));
481 i = ((NI) 0);
482 {
483 while (1) {
484 NIM_CHAR T26_;
485 if (!(i < colontmp_)) goto LA25;
486 idx = i;
487 T26_ = (NIM_CHAR)0;
488 T26_ = result->data[idx];
489 result->data[idx] = result->data[(NI)((NI)((result ? result->Sup.len : 0) - idx) - ((NI) 1))];
490 result->data[(NI)((NI)((result ? result->Sup.len : 0) - idx) - ((NI) 1))] = T26_;
491 i += ((NI) 1);
492 } LA25: ;
493 }
494 }
495 }
496 LA15_: ;
497 {
498 NIM_BOOL sign;
499 NIM_BOOL T31_;
500 NI toFill;
501 if (!spec.padWithZero) goto LA29_;
502 T31_ = (NIM_BOOL)0;
503 T31_ = negative;
504 if (T31_) goto LA32_;
505 T31_ = !(((NU8)(spec.sign) == (NU8)(45)));
506 LA32_: ;
507 sign = T31_;
508 toFill = (NI)((NI)((NI)(spec.minimumWidth - (result ? result->Sup.len : 0)) - (xx ? xx->Sup.len : 0)) - sign);
509 {
510 NimStringDesc* T37_;
511 NimStringDesc* T38_;
512 if (!(((NI) 0) < toFill)) goto LA35_;
513 T37_ = NIM_NIL;
514 T38_ = NIM_NIL;
515 T38_ = nsuRepeatChar(48, ((NI) (toFill)));
516 T37_ = rawNewString((T38_ ? T38_->Sup.len : 0) + (result ? result->Sup.len : 0) + 0);
517 appendString(T37_, T38_);
518 appendString(T37_, result);
519 result = T37_;
520 }
521 LA35_: ;
522 }
523 LA29_: ;
524 {
525 NimStringDesc* T43_;
526 if (!negative) goto LA41_;
527 T43_ = NIM_NIL;
528 T43_ = rawNewString((xx ? xx->Sup.len : 0) + (result ? result->Sup.len : 0) + 1);
529 appendString(T43_, ((NimStringDesc*) &TM__CN3raB9atujkEiPpxYAdlgQ_10));
530 appendString(T43_, xx);
531 appendString(T43_, result);
532 result = T43_;
533 }
534 goto LA39_;
535 LA41_: ;
536 {
537 NimStringDesc* T47_;
538 if (!!(((NU8)(spec.sign) == (NU8)(45)))) goto LA45_;
539 T47_ = NIM_NIL;
540 T47_ = rawNewString((xx ? xx->Sup.len : 0) + (result ? result->Sup.len : 0) + 1);
541 appendChar(T47_, spec.sign);
542 appendString(T47_, xx);
543 appendString(T47_, result);
544 result = T47_;
545 }
546 goto LA39_;
547 LA45_: ;
548 {
549 NimStringDesc* T49_;
550 T49_ = NIM_NIL;
551 T49_ = rawNewString((xx ? xx->Sup.len : 0) + (result ? result->Sup.len : 0) + 0);
552 appendString(T49_, xx);
553 appendString(T49_, result);
554 result = T49_;
555 }
556 LA39_: ;
557 {
558 if (!((NU8)(spec.align) == (NU8)(60))) goto LA52_;
559 {
560 NI i_2;
561 NI colontmp__2;
562 NI i_3;
563 i_2 = (NI)0;
564 colontmp__2 = (NI)0;
565 colontmp__2 = (result ? result->Sup.len : 0);
566 i_3 = colontmp__2;
567 {
568 while (1) {
569 if (!(i_3 < spec.minimumWidth)) goto LA56;
570 i_2 = i_3;
571 result = addChar(result, spec.fill);
572 i_3 += ((NI) 1);
573 } LA56: ;
574 }
575 }
576 }
577 goto LA50_;
578 LA52_: ;
579 {
580 NI toFill_2;
581 toFill_2 = (NI)(spec.minimumWidth - (result ? result->Sup.len : 0));
582 {
583 NI half;
584 NimStringDesc* T62_;
585 NimStringDesc* T63_;
586 NimStringDesc* T64_;
587 if (!((NU8)(spec.align) == (NU8)(94))) goto LA60_;
588 half = (NI)(toFill_2 / ((NI) 2));
589 T62_ = NIM_NIL;
590 T63_ = NIM_NIL;
591 T63_ = nsuRepeatChar(spec.fill, ((NI) (half)));
592 T64_ = NIM_NIL;
593 T64_ = nsuRepeatChar(spec.fill, ((NI) ((NI)(toFill_2 - half))));
594 T62_ = rawNewString((T63_ ? T63_->Sup.len : 0) + (result ? result->Sup.len : 0) + (T64_ ? T64_->Sup.len : 0) + 0);
595 appendString(T62_, T63_);
596 appendString(T62_, result);
597 appendString(T62_, T64_);
598 result = T62_;
599 }
600 goto LA58_;
601 LA60_: ;
602 {
603 {
604 NimStringDesc* T70_;
605 NimStringDesc* T71_;
606 if (!(((NI) 0) < toFill_2)) goto LA68_;
607 T70_ = NIM_NIL;
608 T71_ = NIM_NIL;
609 T71_ = nsuRepeatChar(spec.fill, ((NI) (toFill_2)));
610 T70_ = rawNewString((T71_ ? T71_->Sup.len : 0) + (result ? result->Sup.len : 0) + 0);
611 appendString(T70_, T71_);
612 appendString(T70_, result);
613 result = T70_;
614 }
615 LA68_: ;
616 }
617 LA58_: ;
618 }
619 LA50_: ;
620 return result;
621 }
N_NIMCALL(void,formatValue__pureZterminal_172)622 N_LIB_PRIVATE N_NIMCALL(void, formatValue__pureZterminal_172)(NimStringDesc** result, NI value, NimStringDesc* specifier) {
623 tyObject_StandardFormatSpecifier__NDU7AW5Eu6Q69c8cH6RDouQ spec;
624 NI radix;
625 NimStringDesc* T13_;
626 { {
627 NimStringDesc* T5_;
628 if (!((specifier ? specifier->Sup.len : 0) == ((NI) 0))) goto LA3_;
629 T5_ = NIM_NIL;
630 T5_ = dollar___systemZdollars_3(value);
631 unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T5_ ? T5_->Sup.len : 0) + 0));
632 appendString((*result), T5_);
633 goto BeforeRet_;
634 }
635 LA3_: ;
636 spec = parseStandardFormatSpecifier__pureZstrformat_56(specifier, ((NI) 0), NIM_FALSE);
637 radix = ((NI) 10);
638 switch (((NU8)(spec.typ))) {
639 case 120:
640 case 88:
641 {
642 radix = ((NI) 16);
643 }
644 break;
645 case 100:
646 case 0:
647 {
648 }
649 break;
650 case 98:
651 {
652 radix = ((NI) 2);
653 }
654 break;
655 case 111:
656 {
657 radix = ((NI) 8);
658 }
659 break;
660 default:
661 {
662 tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw* T11_;
663 NimStringDesc* T12_;
664 T11_ = NIM_NIL;
665 T11_ = (tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw*) newObj((&NTIrefvalueerror__Ie1m0dv1ZHg72IgPRr1cDw_), sizeof(tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw));
666 (*T11_).Sup.Sup.Sup.m_type = (&NTIvalueerror__yoNlBGx0D2tRizIdhQuENw_);
667 (*T11_).Sup.Sup.name = "ValueError";
668 T12_ = NIM_NIL;
669 T12_ = rawNewString(93);
670 appendString(T12_, ((NimStringDesc*) &TM__CN3raB9atujkEiPpxYAdlgQ_5));
671 appendChar(T12_, spec.typ);
672 asgnRef((void**) (&(*T11_).Sup.Sup.message), T12_);
673 asgnRef((void**) (&(*T11_).Sup.Sup.parent), ((Exception*) NIM_NIL));
674 raiseExceptionEx((Exception*)T11_, "ValueError", "formatValue", "strformat.nim", 487);
675 }
676 break;
677 }
678 T13_ = NIM_NIL;
679 T13_ = formatInt__pureZterminal_180(value, radix, spec);
680 unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T13_ ? T13_->Sup.len : 0) + 0));
681 appendString((*result), T13_);
682 }BeforeRet_: ;
683 }
N_NIMCALL(NimStringDesc *,ansiStyleCode__pureZterminal_295)684 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, ansiStyleCode__pureZterminal_295)(NI style) {
685 NimStringDesc* result;
686 NimStringDesc* fmtRes;
687 result = NIM_NIL;
688 fmtRes = rawNewString(((NI) 41));
689 formatValue__pureZstrformat_160((&fmtRes), ((NimStringDesc*) &TM__CN3raB9atujkEiPpxYAdlgQ_4), ((NimStringDesc*) NIM_NIL));
690 formatValue__pureZterminal_172((&fmtRes), style, ((NimStringDesc*) NIM_NIL));
691 fmtRes = resizeString(fmtRes, 1);
692 appendString(fmtRes, ((NimStringDesc*) &TM__CN3raB9atujkEiPpxYAdlgQ_11));
693 result = copyString(fmtRes);
694 return result;
695 }
N_NIMCALL(void,setStyle__pureZterminal_313)696 N_LIB_PRIVATE N_NIMCALL(void, setStyle__pureZterminal_313)(FILE* f, tySet_tyEnum_Style__NXKayqTLMsAibFwNceBlpA style) {
697 {
698 tyEnum_Style__NXKayqTLMsAibFwNceBlpA s;
699 NI i;
700 s = (tyEnum_Style__NXKayqTLMsAibFwNceBlpA)0;
701 i = ((NI) 1);
702 {
703 while (1) {
704 if (!(i <= ((NI) 9))) goto LA3;
705 {
706 NimStringDesc* T8_;
707 if (!((style &((NU16)1<<((NU)((((tyEnum_Style__NXKayqTLMsAibFwNceBlpA) (i))- 1))&15U)))!=0)) goto LA6_;
708 s = ((tyEnum_Style__NXKayqTLMsAibFwNceBlpA) (i));
709 T8_ = NIM_NIL;
710 T8_ = ansiStyleCode__pureZterminal_295(((NI) (s)));
711 write__systemZio_205(f, T8_);
712 }
713 LA6_: ;
714 i += ((NI) 1);
715 } LA3: ;
716 }
717 }
718 }
N_NIMCALL(void,resetAttributes__pureZterminal_280)719 N_LIB_PRIVATE N_NIMCALL(void, resetAttributes__pureZterminal_280)(FILE* f) {
720 write__systemZio_205(f, ((NimStringDesc*) &TM__CN3raB9atujkEiPpxYAdlgQ_12));
721 gFG__pureZterminal_278 = ((NI) 0);
722 gBG__pureZterminal_279 = ((NI) 0);
723 }
N_NIMCALL(void,setForegroundColor__pureZterminal_387)724 N_LIB_PRIVATE N_NIMCALL(void, setForegroundColor__pureZterminal_387)(FILE* f, tyEnum_ForegroundColor__ez9ah4IgQc0AbdW68acioDg fg, NIM_BOOL bright) {
725 NimStringDesc* T5_;
726 gFG__pureZterminal_278 = fg;
727 {
728 if (!bright) goto LA3_;
729 gFG__pureZterminal_278 += ((NI) 60);
730 }
731 LA3_: ;
732 T5_ = NIM_NIL;
733 T5_ = ansiStyleCode__pureZterminal_295(gFG__pureZterminal_278);
734 write__systemZio_205(f, T5_);
735 }
N_NIMCALL(void,stdlib_terminalInit000)736 N_LIB_PRIVATE N_NIMCALL(void, stdlib_terminalInit000)(void) {
737 {
738 TFrame FR_; FR_.len = 0;
739
740 nimRegisterThreadLocalMarker(TM__CN3raB9atujkEiPpxYAdlgQ_3);
741
742 }/* preInitProc end */
743 {
744 }
745 }
746
N_NIMCALL(void,stdlib_terminalDatInit000)747 N_LIB_PRIVATE N_NIMCALL(void, stdlib_terminalDatInit000)(void) {
748 static TNimNode* TM__CN3raB9atujkEiPpxYAdlgQ_2_3[3];
749 static TNimNode TM__CN3raB9atujkEiPpxYAdlgQ_0[4];
750 NTIpterminal58objecttype__EcU8GhMNGo9bGDXbfqZ82og_.size = sizeof(tyObject_PTerminalcolonObjectType___EcU8GhMNGo9bGDXbfqZ82og);
751 NTIpterminal58objecttype__EcU8GhMNGo9bGDXbfqZ82og_.align = NIM_ALIGNOF(tyObject_PTerminalcolonObjectType___EcU8GhMNGo9bGDXbfqZ82og);
752 NTIpterminal58objecttype__EcU8GhMNGo9bGDXbfqZ82og_.kind = 18;
753 NTIpterminal58objecttype__EcU8GhMNGo9bGDXbfqZ82og_.base = 0;
754 NTIpterminal58objecttype__EcU8GhMNGo9bGDXbfqZ82og_.flags = 1;
755 TM__CN3raB9atujkEiPpxYAdlgQ_2_3[0] = &TM__CN3raB9atujkEiPpxYAdlgQ_0[1];
756 TM__CN3raB9atujkEiPpxYAdlgQ_0[1].kind = 1;
757 TM__CN3raB9atujkEiPpxYAdlgQ_0[1].offset = offsetof(tyObject_PTerminalcolonObjectType___EcU8GhMNGo9bGDXbfqZ82og, trueColorIsSupported);
758 TM__CN3raB9atujkEiPpxYAdlgQ_0[1].typ = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
759 TM__CN3raB9atujkEiPpxYAdlgQ_0[1].name = "trueColorIsSupported";
760 TM__CN3raB9atujkEiPpxYAdlgQ_2_3[1] = &TM__CN3raB9atujkEiPpxYAdlgQ_0[2];
761 TM__CN3raB9atujkEiPpxYAdlgQ_0[2].kind = 1;
762 TM__CN3raB9atujkEiPpxYAdlgQ_0[2].offset = offsetof(tyObject_PTerminalcolonObjectType___EcU8GhMNGo9bGDXbfqZ82og, trueColorIsEnabled);
763 TM__CN3raB9atujkEiPpxYAdlgQ_0[2].typ = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
764 TM__CN3raB9atujkEiPpxYAdlgQ_0[2].name = "trueColorIsEnabled";
765 TM__CN3raB9atujkEiPpxYAdlgQ_2_3[2] = &TM__CN3raB9atujkEiPpxYAdlgQ_0[3];
766 TM__CN3raB9atujkEiPpxYAdlgQ_0[3].kind = 1;
767 TM__CN3raB9atujkEiPpxYAdlgQ_0[3].offset = offsetof(tyObject_PTerminalcolonObjectType___EcU8GhMNGo9bGDXbfqZ82og, fgSetColor);
768 TM__CN3raB9atujkEiPpxYAdlgQ_0[3].typ = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
769 TM__CN3raB9atujkEiPpxYAdlgQ_0[3].name = "fgSetColor";
770 TM__CN3raB9atujkEiPpxYAdlgQ_0[0].len = 3; TM__CN3raB9atujkEiPpxYAdlgQ_0[0].kind = 2; TM__CN3raB9atujkEiPpxYAdlgQ_0[0].sons = &TM__CN3raB9atujkEiPpxYAdlgQ_2_3[0];
771 NTIpterminal58objecttype__EcU8GhMNGo9bGDXbfqZ82og_.node = &TM__CN3raB9atujkEiPpxYAdlgQ_0[0];
772 NTIpterminal__flNJLrANZti6Wiy5LTlGGA_.size = sizeof(tyObject_PTerminalcolonObjectType___EcU8GhMNGo9bGDXbfqZ82og*);
773 NTIpterminal__flNJLrANZti6Wiy5LTlGGA_.align = NIM_ALIGNOF(tyObject_PTerminalcolonObjectType___EcU8GhMNGo9bGDXbfqZ82og*);
774 NTIpterminal__flNJLrANZti6Wiy5LTlGGA_.kind = 22;
775 NTIpterminal__flNJLrANZti6Wiy5LTlGGA_.base = (&NTIpterminal58objecttype__EcU8GhMNGo9bGDXbfqZ82og_);
776 NTIpterminal__flNJLrANZti6Wiy5LTlGGA_.marker = Marker_tyRef__flNJLrANZti6Wiy5LTlGGA;
777 }
778
779