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