1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 32
3 #define NIM_EmulateOverflowChecks
4
5 #include "nimbase.h"
6 #include <stdio.h>
7 #include <setjmp.h>
8 #include <string.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 TNimType TNimType;
25 typedef struct TNimNode TNimNode;
26 typedef struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ;
27 typedef struct RootObj RootObj;
28 typedef struct NimStringDesc NimStringDesc;
29 typedef struct TGenericSeq TGenericSeq;
30 typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA;
31 typedef struct tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ;
32 typedef struct Exception Exception;
33 typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
34 typedef struct TSafePoint TSafePoint;
35 typedef struct tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw;
36 typedef struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA;
37 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
38 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
39 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
40 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
41 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
42 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
43 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
44 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
45 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
46 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
47 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
48 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
49 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
50 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
51 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
52 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
53 typedef struct tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw;
54 typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
55 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
56 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
57 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
58 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
59 struct TNimType {
60 NI size;
61 NI align;
62 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
63 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
64 TNimType* base;
65 TNimNode* node;
66 void* finalizer;
67 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
68 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
69 };
70 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
71 struct TNimNode {
72 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
73 NI offset;
74 TNimType* typ;
75 NCSTRING name;
76 NI len;
77 TNimNode** sons;
78 };
79 struct RootObj {
80 TNimType* m_type;
81 };
82 typedef N_NIMCALL_PTR(void, tyProc__JQrsH08b4uPTH9cyFPlVOZg) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
83 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__9bmhFrLahRsL2hltfRDVtlQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
84 typedef N_NIMCALL_PTR(void, tyProc__3svSoGIUJIsHkaBL7q4DAQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos);
85 typedef N_NIMCALL_PTR(NI, tyProc__xflqkf2D1uVClg70czEDHA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
86 struct TGenericSeq {
87 NI len;
88 NI reserved;
89 };
90 struct NimStringDesc {
91 TGenericSeq Sup;
92 NIM_CHAR data[SEQ_DECL_SIZE];
93 };
94 typedef N_NIMCALL_PTR(NI, tyProc__c9c0f59ak4YGQ6neEym8LPKw) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice);
95 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__7jFfqMk9ajToCz6Hv9atCA4A) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line);
96 typedef N_NIMCALL_PTR(NI, tyProc__2VVzVL9bOnKhj1eZKkf9cEuA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
97 typedef N_NIMCALL_PTR(void, tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
98 struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ {
99 RootObj Sup;
100 tyProc__JQrsH08b4uPTH9cyFPlVOZg closeImpl;
101 tyProc__9bmhFrLahRsL2hltfRDVtlQ atEndImpl;
102 tyProc__3svSoGIUJIsHkaBL7q4DAQ setPositionImpl;
103 tyProc__xflqkf2D1uVClg70czEDHA getPositionImpl;
104 tyProc__c9c0f59ak4YGQ6neEym8LPKw readDataStrImpl;
105 tyProc__7jFfqMk9ajToCz6Hv9atCA4A readLineImpl;
106 tyProc__2VVzVL9bOnKhj1eZKkf9cEuA readDataImpl;
107 tyProc__2VVzVL9bOnKhj1eZKkf9cEuA peekDataImpl;
108 tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ writeDataImpl;
109 tyProc__JQrsH08b4uPTH9cyFPlVOZg flushImpl;
110 };
111 struct tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ {
112 tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ Sup;
113 FILE* f;
114 };
115 typedef NU8 tyEnum_FileSeekPos__I9aQjuvWxs8BspGbxwsngWw;
116 struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA {
117 NI a;
118 NI b;
119 };
120 struct Exception {
121 RootObj Sup;
122 Exception* parent;
123 NCSTRING name;
124 NimStringDesc* message;
125 tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
126 Exception* up;
127 };
128 struct TSafePoint {
129 TSafePoint* prev;
130 NI status;
131 jmp_buf context;
132 };
133 struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA {
134 Exception Sup;
135 };
136 struct tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw {
137 tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
138 };
139 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
140 NI refcount;
141 TNimType* typ;
142 };
143 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
144 void* bottom;
145 };
146 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
147 NI len;
148 NI cap;
149 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
150 };
151 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
152 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
153 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
154 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
155 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
156 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
157 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
158 };
159 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
160 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
161 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
162 NI key;
163 NI upperBound;
164 NI level;
165 };
166 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
167 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
168 NI Field1;
169 };
170 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
171 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
172 NI len;
173 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
174 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
175 };
176 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
177 NI minLargeObj;
178 NI maxLargeObj;
179 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
180 NU32 flBitmap;
181 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
182 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
183 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
184 NI currMem;
185 NI maxMem;
186 NI freeMem;
187 NI occ;
188 NI lastSize;
189 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
190 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
191 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
192 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
193 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
194 NIM_BOOL locked;
195 NIM_BOOL blockChunkSizeIncrease;
196 NI nextChunkSize;
197 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
198 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
199 };
200 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
201 NI stackScans;
202 NI cycleCollections;
203 NI maxThreshold;
204 NI maxStackSize;
205 NI maxStackCells;
206 NI cycleTableSize;
207 NI64 maxPause;
208 };
209 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
210 NI counter;
211 NI max;
212 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
213 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
214 };
215 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
216 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
217 NI cycleThreshold;
218 NI zctThreshold;
219 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
220 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
221 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
222 NI recGcLock;
223 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
224 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
225 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
226 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
227 NI gcThreadId;
228 };
229 struct tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw {
230 tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ Sup;
231 NimStringDesc* data;
232 NI pos;
233 };
234 typedef NU8 tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg;
235 struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
236 NCSTRING procname;
237 NI line;
238 NCSTRING filename;
239 };
240 struct tySequence__uB9b75OUPRENsBAu4AnoePA {
241 TGenericSeq Sup;
242 tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
243 };
244 static N_NIMCALL(void, Marker_tyRef__1G0jiQbe7KwD5ADza5AZaw)(void* p, NI op);
245 N_LIB_PRIVATE N_NIMCALL(void, writeData__pureZstreams_168)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
246 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
247 static N_NIMCALL(void, Marker_tyRef__y4kGpp4Cn6oTOCWBJMIxAg)(void* p, NI op);
248 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
249 N_LIB_PRIVATE N_NIMCALL(void, fsClose__pureZstreams_757)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
250 N_LIB_PRIVATE N_NIMCALL(void, close__systemZio_217)(FILE* f);
251 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fsAtEnd__pureZstreams_774)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
252 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, endOfFile__systemZio_337)(FILE* f);
253 N_LIB_PRIVATE N_NIMCALL(void, fsSetPosition__pureZstreams_777)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos);
254 N_LIB_PRIVATE N_NIMCALL(void, setFilePos__systemZio_436)(FILE* f, NI64 pos, tyEnum_FileSeekPos__I9aQjuvWxs8BspGbxwsngWw relativeTo);
255 N_LIB_PRIVATE N_NIMCALL(NI, fsGetPosition__pureZstreams_780)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
256 N_LIB_PRIVATE N_NIMCALL(NI64, getFilePos__systemZio_449)(FILE* f);
257 N_LIB_PRIVATE N_NIMCALL(NI, fsReadDataStr__pureZstreams_788)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice);
258 N_LIB_PRIVATE N_NIMCALL(NI, readBuffer__systemZio_144)(FILE* f, void* buffer, NI len);
259 N_LIB_PRIVATE N_NIMCALL(NI, fsReadData__pureZstreams_783)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
260 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fsReadLine__pureZstreams_804)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line);
261 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readLine__systemZio_238)(FILE* f, NimStringDesc** line);
262 N_LIB_PRIVATE N_NIMCALL(NI, fsPeekData__pureZstreams_794)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
263 static N_INLINE(void, pushSafePoint)(TSafePoint* s);
264 static N_INLINE(void, popSafePoint)(void);
265 N_LIB_PRIVATE N_NIMCALL(void, nimLeaveFinally)(void);
266 N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void);
267 N_LIB_PRIVATE N_NIMCALL(void, fsWriteData__pureZstreams_800)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
268 N_LIB_PRIVATE N_NIMCALL(NI, writeBuffer__systemZio_176)(FILE* f, void* buffer, NI len);
269 N_LIB_PRIVATE N_NIMCALL(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw*, newEIO__pureZstreams_2)(NimStringDesc* msg);
270 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
271 static N_INLINE(void, nimGCunrefNoCycle)(void* p);
272 static N_INLINE(void, decRef__system_5336)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
273 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
274 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
275 static N_INLINE(void, rtlAddZCT__system_5334)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
276 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5285)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
277 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5291)(void* usr);
278 N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
279 N_LIB_PRIVATE N_NIMCALL(void, fsFlush__pureZstreams_772)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
280 N_LIB_PRIVATE N_NIMCALL(void, flushFile__systemZio_226)(FILE* f);
281 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, atEnd__pureZstreams_63)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
282 N_LIB_PRIVATE N_NIMCALL(NIM_CHAR, readChar__pureZstreams_202)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
283 N_LIB_PRIVATE N_NIMCALL(NI, readData__pureZstreams_75)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
284 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
285 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
286 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
287 N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
288 static N_NIMCALL(void, Marker_tyRef__Z9cj1NxLXx79cYy9c4gbj6CAA)(void* p, NI op);
289 N_LIB_PRIVATE N_NIMCALL(void, ssClose__pureZstreams_673)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
290 static N_INLINE(void, asgnRef)(void** dest, void* src);
291 static N_INLINE(void, incRef__system_5329)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
292 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
293 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, ssAtEnd__pureZstreams_558)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
294 N_LIB_PRIVATE N_NIMCALL(void, ssSetPosition__pureZstreams_580)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos);
295 N_LIB_PRIVATE N_NIMCALL(NI, clamp__pureZstreams_584)(NI x, NI a, NI b);
296 N_LIB_PRIVATE N_NIMCALL(NI, ssGetPosition__pureZstreams_590)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
297 N_LIB_PRIVATE N_NIMCALL(NI, ssReadDataStr__pureZstreams_594)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice);
298 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
299 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
300 N_LIB_PRIVATE N_NIMCALL(NI, ssReadData__pureZstreams_648)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
301 N_LIB_PRIVATE N_NIMCALL(NI, ssPeekData__pureZstreams_658)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
302 N_LIB_PRIVATE N_NIMCALL(void, ssWriteData__pureZstreams_664)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
303 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, open__systemZio_389)(FILE** f, NimStringDesc* filename, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg mode, NI bufSize);
304 N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, newFileStream__pureZstreams_808)(FILE* f);
305 extern TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_;
306 N_LIB_PRIVATE TNimType NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_;
307 N_LIB_PRIVATE TNimType NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_;
308 N_LIB_PRIVATE TNimType NTIprocLs58streamT58boolLOnimcall_gcsafeOT__9bmhFrLahRsL2hltfRDVtlQ_;
309 N_LIB_PRIVATE TNimType NTIprocLs58stream_pos58intTLOnimcall_gcsafeOT__3svSoGIUJIsHkaBL7q4DAQ_;
310 N_LIB_PRIVATE TNimType NTIprocLs58streamT58intLOnimcall_gcsafeOT__xflqkf2D1uVClg70czEDHA_;
311 N_LIB_PRIVATE TNimType NTIprocLs58stream_buffer58varstring_slice58sliceLsystemOintTT58intLOnimcall_gcsafeOT__c9c0f59ak4YGQ6neEym8LPKw_;
312 N_LIB_PRIVATE TNimType NTIprocLs58stream_line58varstringT58boolLOnimcall_gcsafeOT__7jFfqMk9ajToCz6Hv9atCA4A_;
313 N_LIB_PRIVATE TNimType NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_;
314 N_LIB_PRIVATE TNimType NTIprocLs58stream_buffer58pointer_buflen58intTLOnimcall_gcsafeOT__ki6p1QyfOkJLQJ9aw5NI0AQ_;
315 N_LIB_PRIVATE TNimType NTIstream__1G0jiQbe7KwD5ADza5AZaw_;
316 N_LIB_PRIVATE TNimType NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_;
317 extern TNimType NTIfile__XBeRj4rw9bUuE7CB3DS1rgg_;
318 N_LIB_PRIVATE TNimType NTIfilestream__y4kGpp4Cn6oTOCWBJMIxAg_;
319 extern TNimType NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_;
320 extern TNimType NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_;
321 STRING_LITERAL(TM__Ue7tnBcsL67VCiRfvt8q0A_4, "cannot write to stream", 22);
322 STRING_LITERAL(TM__Ue7tnBcsL67VCiRfvt8q0A_5, "cannot read from stream", 23);
323 N_LIB_PRIVATE TNimType NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_;
324 extern TNimType NTIstring__77mFvmsOLKik79ci2hXkHEg_;
325 extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
326 N_LIB_PRIVATE TNimType NTIstringstream__Z9cj1NxLXx79cYy9c4gbj6CAA_;
327 extern TSafePoint* excHandler__system_2565;
328 extern TSafePoint* excHandler__system_2565;
329 extern TSafePoint* excHandler__system_2565;
330 extern TSafePoint* excHandler__system_2565;
331 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5238;
N_NIMCALL(void,Marker_tyRef__1G0jiQbe7KwD5ADza5AZaw)332 static N_NIMCALL(void, Marker_tyRef__1G0jiQbe7KwD5ADza5AZaw)(void* p, NI op) {
333 tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* a;
334 a = (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*)p;
335 }
N_NIMCALL(void,writeData__pureZstreams_168)336 N_LIB_PRIVATE N_NIMCALL(void, writeData__pureZstreams_168)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
337 (*s).writeDataImpl(s, buffer, bufLen);
338 }
N_INLINE(NCSTRING,nimToCStringConv)339 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
340 NCSTRING result;
341 result = (NCSTRING)0;
342 {
343 NIM_BOOL T3_;
344 T3_ = (NIM_BOOL)0;
345 T3_ = (s == ((NimStringDesc*) NIM_NIL));
346 if (T3_) goto LA4_;
347 T3_ = ((*s).Sup.len == ((NI) 0));
348 LA4_: ;
349 if (!T3_) goto LA5_;
350 result = "";
351 }
352 goto LA1_;
353 LA5_: ;
354 {
355 result = ((NCSTRING) ((*s).data));
356 }
357 LA1_: ;
358 return result;
359 }
N_NIMCALL(void,write__pureZstreams_177)360 N_LIB_PRIVATE N_NIMCALL(void, write__pureZstreams_177)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc* x) {
361 {
362 if (!(((NI) 0) < (x ? x->Sup.len : 0))) goto LA3_;
363 writeData__pureZstreams_168(s, ((void*) (nimToCStringConv(x))), (x ? x->Sup.len : 0));
364 }
365 LA3_: ;
366 }
N_NIMCALL(void,Marker_tyRef__y4kGpp4Cn6oTOCWBJMIxAg)367 static N_NIMCALL(void, Marker_tyRef__y4kGpp4Cn6oTOCWBJMIxAg)(void* p, NI op) {
368 tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* a;
369 a = (tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*)p;
370 }
N_NIMCALL(void,fsClose__pureZstreams_757)371 N_LIB_PRIVATE N_NIMCALL(void, fsClose__pureZstreams_757)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
372 {
373 if (!!(((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f == ((FILE*) NIM_NIL)))) goto LA3_;
374 close__systemZio_217((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f);
375 (*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f = ((FILE*) NIM_NIL);
376 }
377 LA3_: ;
378 }
N_NIMCALL(NIM_BOOL,fsAtEnd__pureZstreams_774)379 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fsAtEnd__pureZstreams_774)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
380 NIM_BOOL result;
381 { result = (NIM_BOOL)0;
382 result = endOfFile__systemZio_337((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f);
383 goto BeforeRet_;
384 }BeforeRet_: ;
385 return result;
386 }
N_NIMCALL(void,fsSetPosition__pureZstreams_777)387 N_LIB_PRIVATE N_NIMCALL(void, fsSetPosition__pureZstreams_777)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos) {
388 setFilePos__systemZio_436((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f, ((NI64) (pos)), ((tyEnum_FileSeekPos__I9aQjuvWxs8BspGbxwsngWw) 0));
389 }
N_NIMCALL(NI,fsGetPosition__pureZstreams_780)390 N_LIB_PRIVATE N_NIMCALL(NI, fsGetPosition__pureZstreams_780)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
391 NI result;
392 NI64 T1_;
393 { result = (NI)0;
394 T1_ = (NI64)0;
395 T1_ = getFilePos__systemZio_449((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f);
396 result = ((NI) (T1_));
397 goto BeforeRet_;
398 }BeforeRet_: ;
399 return result;
400 }
N_NIMCALL(NI,fsReadDataStr__pureZstreams_788)401 N_LIB_PRIVATE N_NIMCALL(NI, fsReadDataStr__pureZstreams_788)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice) {
402 NI result;
403 result = (NI)0;
404 result = readBuffer__systemZio_144((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f, ((void*) ((&(*buffer)->data[slice.a]))), ((NI) ((NI)((NI)(slice.b + ((NI) 1)) - slice.a))));
405 return result;
406 }
N_NIMCALL(NI,fsReadData__pureZstreams_783)407 N_LIB_PRIVATE N_NIMCALL(NI, fsReadData__pureZstreams_783)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
408 NI result;
409 result = (NI)0;
410 result = readBuffer__systemZio_144((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f, buffer, ((NI) (bufLen)));
411 return result;
412 }
N_NIMCALL(NIM_BOOL,fsReadLine__pureZstreams_804)413 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fsReadLine__pureZstreams_804)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line) {
414 NIM_BOOL result;
415 result = (NIM_BOOL)0;
416 result = readLine__systemZio_238((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f, line);
417 return result;
418 }
N_INLINE(void,pushSafePoint)419 static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
420 (*s).prev = excHandler__system_2565;
421 excHandler__system_2565 = s;
422 }
N_INLINE(void,popSafePoint)423 static N_INLINE(void, popSafePoint)(void) {
424 excHandler__system_2565 = (*excHandler__system_2565).prev;
425 }
N_NIMCALL(NI,fsPeekData__pureZstreams_794)426 N_LIB_PRIVATE N_NIMCALL(NI, fsPeekData__pureZstreams_794)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
427 NI result;
428 NI pos;
429 TSafePoint TM__Ue7tnBcsL67VCiRfvt8q0A_3;
430 result = (NI)0;
431 pos = fsGetPosition__pureZstreams_780(s);
432 pushSafePoint(&TM__Ue7tnBcsL67VCiRfvt8q0A_3);
433 TM__Ue7tnBcsL67VCiRfvt8q0A_3.status = setjmp(TM__Ue7tnBcsL67VCiRfvt8q0A_3.context);
434 if (TM__Ue7tnBcsL67VCiRfvt8q0A_3.status == 0) {
435 result = readBuffer__systemZio_144((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f, buffer, ((NI) (bufLen)));
436 popSafePoint();
437 }
438 else {
439 popSafePoint();
440 }
441 {
442 fsSetPosition__pureZstreams_777(s, pos);
443 if (TM__Ue7tnBcsL67VCiRfvt8q0A_3.status != 0) nimLeaveFinally();
444 }
445 if (TM__Ue7tnBcsL67VCiRfvt8q0A_3.status != 0) reraiseException();
446 return result;
447 }
N_INLINE(NI,minuspercent___system_716)448 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
449 NI result;
450 result = (NI)0;
451 result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
452 return result;
453 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)454 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
455 NIM_BOOL result;
456 result = (NIM_BOOL)0;
457 result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
458 return result;
459 }
N_INLINE(void,rtlAddZCT__system_5334)460 static N_INLINE(void, rtlAddZCT__system_5334)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
461 addZCT__system_5285((&gch__system_5238.zct), c);
462 }
N_INLINE(void,decRef__system_5336)463 static N_INLINE(void, decRef__system_5336)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
464 (*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
465 {
466 NIM_BOOL T3_;
467 T3_ = (NIM_BOOL)0;
468 T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
469 if (!T3_) goto LA4_;
470 rtlAddZCT__system_5334(c);
471 }
472 LA4_: ;
473 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5291)474 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5291)(void* usr) {
475 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
476 NI T1_;
477 result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
478 T1_ = (NI)0;
479 T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
480 result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
481 return result;
482 }
N_INLINE(void,nimGCunrefNoCycle)483 static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
484 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
485 T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
486 T1_ = usrToCell__system_5291(p);
487 decRef__system_5336(T1_);
488 }
N_NIMCALL(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw *,newEIO__pureZstreams_2)489 N_LIB_PRIVATE N_NIMCALL(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw*, newEIO__pureZstreams_2)(NimStringDesc* msg) {
490 tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw* result;
491 NimStringDesc* T1_;
492 result = NIM_NIL;
493 result = (tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw*) newObj((&NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_), sizeof(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw));
494 (*result).Sup.Sup.Sup.m_type = (&NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_);
495 (*result).Sup.Sup.name = "IOError";
496 T1_ = NIM_NIL;
497 T1_ = (*result).Sup.Sup.message; (*result).Sup.Sup.message = copyStringRC1(msg);
498 if (T1_) nimGCunrefNoCycle(T1_);
499 return result;
500 }
N_NIMCALL(void,fsWriteData__pureZstreams_800)501 N_LIB_PRIVATE N_NIMCALL(void, fsWriteData__pureZstreams_800)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
502 {
503 NI T3_;
504 tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw* T6_;
505 T3_ = (NI)0;
506 T3_ = writeBuffer__systemZio_176((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f, buffer, ((NI) (bufLen)));
507 if (!!((T3_ == bufLen))) goto LA4_;
508 T6_ = NIM_NIL;
509 T6_ = newEIO__pureZstreams_2(((NimStringDesc*) &TM__Ue7tnBcsL67VCiRfvt8q0A_4));
510 raiseExceptionEx((Exception*)T6_, "IOError", "fsWriteData", "streams.nim", 1320);
511 }
512 LA4_: ;
513 }
N_NIMCALL(void,fsFlush__pureZstreams_772)514 N_LIB_PRIVATE N_NIMCALL(void, fsFlush__pureZstreams_772)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
515 flushFile__systemZio_226((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f);
516 }
N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ *,newFileStream__pureZstreams_808)517 N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, newFileStream__pureZstreams_808)(FILE* f) {
518 tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* result;
519 result = NIM_NIL;
520 result = (tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) newObj((&NTIfilestream__y4kGpp4Cn6oTOCWBJMIxAg_), sizeof(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ));
521 (*result).Sup.Sup.m_type = (&NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_);
522 (*result).f = f;
523 (*result).Sup.closeImpl = fsClose__pureZstreams_757;
524 (*result).Sup.atEndImpl = fsAtEnd__pureZstreams_774;
525 (*result).Sup.setPositionImpl = fsSetPosition__pureZstreams_777;
526 (*result).Sup.getPositionImpl = fsGetPosition__pureZstreams_780;
527 (*result).Sup.readDataStrImpl = fsReadDataStr__pureZstreams_788;
528 (*result).Sup.readDataImpl = fsReadData__pureZstreams_783;
529 (*result).Sup.readLineImpl = fsReadLine__pureZstreams_804;
530 (*result).Sup.peekDataImpl = fsPeekData__pureZstreams_794;
531 (*result).Sup.writeDataImpl = fsWriteData__pureZstreams_800;
532 (*result).Sup.flushImpl = fsFlush__pureZstreams_772;
533 return result;
534 }
N_NIMCALL(void,close__pureZstreams_57)535 N_LIB_PRIVATE N_NIMCALL(void, close__pureZstreams_57)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
536 {
537 if (!!(((*s).closeImpl == 0))) goto LA3_;
538 (*s).closeImpl(s);
539 }
540 LA3_: ;
541 }
N_NIMCALL(NIM_BOOL,atEnd__pureZstreams_63)542 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, atEnd__pureZstreams_63)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
543 NIM_BOOL result;
544 result = (NIM_BOOL)0;
545 result = (*s).atEndImpl(s);
546 return result;
547 }
N_NIMCALL(NI,readData__pureZstreams_75)548 N_LIB_PRIVATE N_NIMCALL(NI, readData__pureZstreams_75)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
549 NI result;
550 result = (NI)0;
551 result = (*s).readDataImpl(s, buffer, bufLen);
552 return result;
553 }
N_NIMCALL(NIM_CHAR,readChar__pureZstreams_202)554 N_LIB_PRIVATE N_NIMCALL(NIM_CHAR, readChar__pureZstreams_202)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
555 NIM_CHAR result;
556 result = (NIM_CHAR)0;
557 {
558 {
559 NI T4_;
560 T4_ = (NI)0;
561 T4_ = readData__pureZstreams_75(s, ((void*) ((&result))), ((NI) 1));
562 if (!!((T4_ == ((NI) 1)))) goto LA5_;
563 result = 0;
564 }
565 LA5_: ;
566 }
567 return result;
568 }
N_NIMCALL(NimStringDesc *,readLine__pureZstreams_539)569 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, readLine__pureZstreams_539)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
570 NimStringDesc* result;
571 result = NIM_NIL;
572 result = ((NimStringDesc*) NIM_NIL);
573 {
574 NIM_BOOL T3_;
575 tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw* T6_;
576 T3_ = (NIM_BOOL)0;
577 T3_ = atEnd__pureZstreams_63(s);
578 if (!T3_) goto LA4_;
579 T6_ = NIM_NIL;
580 T6_ = newEIO__pureZstreams_2(((NimStringDesc*) &TM__Ue7tnBcsL67VCiRfvt8q0A_5));
581 raiseExceptionEx((Exception*)T6_, "IOError", "readLine", "streams.nim", 1068);
582 }
583 LA4_: ;
584 {
585 while (1) {
586 NIM_CHAR c;
587 c = readChar__pureZstreams_202(s);
588 {
589 if (!((NU8)(c) == (NU8)(13))) goto LA11_;
590 c = readChar__pureZstreams_202(s);
591 goto LA7;
592 }
593 LA11_: ;
594 {
595 NIM_BOOL T15_;
596 T15_ = (NIM_BOOL)0;
597 T15_ = ((NU8)(c) == (NU8)(10));
598 if (T15_) goto LA16_;
599 T15_ = ((NU8)(c) == (NU8)(0));
600 LA16_: ;
601 if (!T15_) goto LA17_;
602 goto LA7;
603 }
604 goto LA13_;
605 LA17_: ;
606 {
607 result = addChar(result, c);
608 }
609 LA13_: ;
610 }
611 } LA7: ;
612 return result;
613 }
N_NIMCALL(NIM_BOOL,readLine__pureZstreams_524)614 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readLine__pureZstreams_524)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line) {
615 NIM_BOOL result;
616 { result = (NIM_BOOL)0;
617 {
618 if (!!(((*s).readLineImpl == NIM_NIL))) goto LA3_;
619 result = (*s).readLineImpl(s, line);
620 }
621 goto LA1_;
622 LA3_: ;
623 {
624 unsureAsgnRef((void**) (&(*line)), setLengthStr((*line), ((NI) 0)));
625 {
626 while (1) {
627 NIM_CHAR c;
628 c = readChar__pureZstreams_202(s);
629 {
630 if (!((NU8)(c) == (NU8)(13))) goto LA10_;
631 c = readChar__pureZstreams_202(s);
632 goto LA6;
633 }
634 goto LA8_;
635 LA10_: ;
636 {
637 if (!((NU8)(c) == (NU8)(10))) goto LA13_;
638 goto LA6;
639 }
640 goto LA8_;
641 LA13_: ;
642 {
643 if (!((NU8)(c) == (NU8)(0))) goto LA16_;
644 {
645 if (!(((NI) 0) < ((*line) ? (*line)->Sup.len : 0))) goto LA20_;
646 goto LA6;
647 }
648 goto LA18_;
649 LA20_: ;
650 {
651 result = NIM_FALSE;
652 goto BeforeRet_;
653 }
654 LA18_: ;
655 }
656 goto LA8_;
657 LA16_: ;
658 LA8_: ;
659 unsureAsgnRef((void**) (&(*line)), addChar((*line), c));
660 }
661 } LA6: ;
662 result = NIM_TRUE;
663 }
664 LA1_: ;
665 }BeforeRet_: ;
666 return result;
667 }
N_NIMCALL(NI,readDataStr__pureZstreams_81)668 N_LIB_PRIVATE N_NIMCALL(NI, readDataStr__pureZstreams_81)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice) {
669 NI result;
670 result = (NI)0;
671 {
672 if (!!(((*s).readDataStrImpl == NIM_NIL))) goto LA3_;
673 result = (*s).readDataStrImpl(s, buffer, slice);
674 }
675 goto LA1_;
676 LA3_: ;
677 {
678 result = readData__pureZstreams_75(s, ((void*) ((&(*buffer)->data[slice.a]))), (NI)((NI)(slice.b + ((NI) 1)) - slice.a));
679 }
680 LA1_: ;
681 return result;
682 }
N_NIMCALL(void,Marker_tyRef__Z9cj1NxLXx79cYy9c4gbj6CAA)683 static N_NIMCALL(void, Marker_tyRef__Z9cj1NxLXx79cYy9c4gbj6CAA)(void* p, NI op) {
684 tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* a;
685 a = (tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*)p;
686 nimGCvisit((void*)(*a).data, op);
687 }
N_INLINE(NI,pluspercent___system_696)688 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
689 NI result;
690 result = (NI)0;
691 result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
692 return result;
693 }
N_INLINE(void,incRef__system_5329)694 static N_INLINE(void, incRef__system_5329)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
695 (*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
696 }
N_INLINE(void,asgnRef)697 static N_INLINE(void, asgnRef)(void** dest, void* src) {
698 {
699 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
700 if (!!((src == NIM_NIL))) goto LA3_;
701 T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
702 T5_ = usrToCell__system_5291(src);
703 incRef__system_5329(T5_);
704 }
705 LA3_: ;
706 {
707 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
708 if (!!(((*dest) == NIM_NIL))) goto LA8_;
709 T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
710 T10_ = usrToCell__system_5291((*dest));
711 decRef__system_5336(T10_);
712 }
713 LA8_: ;
714 (*dest) = src;
715 }
N_NIMCALL(void,ssClose__pureZstreams_673)716 N_LIB_PRIVATE N_NIMCALL(void, ssClose__pureZstreams_673)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
717 tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
718 s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
719 asgnRef((void**) (&(*s_2).data), ((NimStringDesc*) NIM_NIL));
720 }
N_NIMCALL(NIM_BOOL,ssAtEnd__pureZstreams_558)721 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, ssAtEnd__pureZstreams_558)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
722 NIM_BOOL result;
723 tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
724 { result = (NIM_BOOL)0;
725 s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
726 result = (((*s_2).data ? (*s_2).data->Sup.len : 0) <= (*s_2).pos);
727 goto BeforeRet_;
728 }BeforeRet_: ;
729 return result;
730 }
N_NIMCALL(NI,clamp__pureZstreams_584)731 N_LIB_PRIVATE N_NIMCALL(NI, clamp__pureZstreams_584)(NI x, NI a, NI b) {
732 NI result;
733 { result = (NI)0;
734 {
735 if (!(x < a)) goto LA3_;
736 result = a;
737 goto BeforeRet_;
738 }
739 LA3_: ;
740 {
741 if (!(b < x)) goto LA7_;
742 result = b;
743 goto BeforeRet_;
744 }
745 LA7_: ;
746 result = x;
747 goto BeforeRet_;
748 }BeforeRet_: ;
749 return result;
750 }
N_NIMCALL(void,ssSetPosition__pureZstreams_580)751 N_LIB_PRIVATE N_NIMCALL(void, ssSetPosition__pureZstreams_580)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos) {
752 tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
753 s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
754 (*s_2).pos = clamp__pureZstreams_584(pos, ((NI) 0), ((*s_2).data ? (*s_2).data->Sup.len : 0));
755 }
N_NIMCALL(NI,ssGetPosition__pureZstreams_590)756 N_LIB_PRIVATE N_NIMCALL(NI, ssGetPosition__pureZstreams_590)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
757 NI result;
758 tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
759 { result = (NI)0;
760 s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
761 result = (*s_2).pos;
762 goto BeforeRet_;
763 }BeforeRet_: ;
764 return result;
765 }
N_INLINE(void,nimCopyMem)766 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
767 void* T1_;
768 T1_ = (void*)0;
769 T1_ = memcpy(dest, source, ((size_t) (size)));
770 }
N_INLINE(void,copyMem__system_1727)771 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
772 nimCopyMem(dest, source, size);
773 }
N_NIMCALL(NI,ssReadDataStr__pureZstreams_594)774 N_LIB_PRIVATE N_NIMCALL(NI, ssReadDataStr__pureZstreams_594)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice) {
775 NI result;
776 tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
777 result = (NI)0;
778 s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
779 result = (((NI)((NI)(slice.b + ((NI) 1)) - slice.a) <= (NI)(((*s_2).data ? (*s_2).data->Sup.len : 0) - (*s_2).pos)) ? (NI)((NI)(slice.b + ((NI) 1)) - slice.a) : (NI)(((*s_2).data ? (*s_2).data->Sup.len : 0) - (*s_2).pos));
780 {
781 if (!(((NI) 0) < result)) goto LA3_;
782 {
783 copyMem__system_1727(((void*) ((&(*buffer)->data[slice.a]))), ((void*) ((&(*s_2).data->data[(*s_2).pos]))), ((NI) (result)));
784 }
785 (*s_2).pos += result;
786 }
787 goto LA1_;
788 LA3_: ;
789 {
790 result = ((NI) 0);
791 }
792 LA1_: ;
793 return result;
794 }
N_NIMCALL(NI,ssReadData__pureZstreams_648)795 N_LIB_PRIVATE N_NIMCALL(NI, ssReadData__pureZstreams_648)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
796 NI result;
797 tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
798 result = (NI)0;
799 s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
800 result = ((bufLen <= (NI)(((*s_2).data ? (*s_2).data->Sup.len : 0) - (*s_2).pos)) ? bufLen : (NI)(((*s_2).data ? (*s_2).data->Sup.len : 0) - (*s_2).pos));
801 {
802 if (!(((NI) 0) < result)) goto LA3_;
803 copyMem__system_1727(buffer, ((void*) ((&(*s_2).data->data[(*s_2).pos]))), ((NI) (result)));
804 (*s_2).pos += result;
805 }
806 goto LA1_;
807 LA3_: ;
808 {
809 result = ((NI) 0);
810 }
811 LA1_: ;
812 return result;
813 }
N_NIMCALL(NI,ssPeekData__pureZstreams_658)814 N_LIB_PRIVATE N_NIMCALL(NI, ssPeekData__pureZstreams_658)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
815 NI result;
816 tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
817 result = (NI)0;
818 s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
819 result = ((bufLen <= (NI)(((*s_2).data ? (*s_2).data->Sup.len : 0) - (*s_2).pos)) ? bufLen : (NI)(((*s_2).data ? (*s_2).data->Sup.len : 0) - (*s_2).pos));
820 {
821 if (!(((NI) 0) < result)) goto LA3_;
822 copyMem__system_1727(buffer, ((void*) ((&(*s_2).data->data[(*s_2).pos]))), ((NI) (result)));
823 }
824 goto LA1_;
825 LA3_: ;
826 {
827 result = ((NI) 0);
828 }
829 LA1_: ;
830 return result;
831 }
N_NIMCALL(void,ssWriteData__pureZstreams_664)832 N_LIB_PRIVATE N_NIMCALL(void, ssWriteData__pureZstreams_664)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
833 tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
834 { s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
835 {
836 if (!(bufLen <= ((NI) 0))) goto LA3_;
837 goto BeforeRet_;
838 }
839 LA3_: ;
840 {
841 if (!(((*s_2).data ? (*s_2).data->Sup.len : 0) < (NI)((*s_2).pos + bufLen))) goto LA7_;
842 asgnRef((void**) (&(*s_2).data), setLengthStr((*s_2).data, ((NI) ((NI)((*s_2).pos + bufLen)))));
843 }
844 LA7_: ;
845 copyMem__system_1727(((void*) ((&(*s_2).data->data[(*s_2).pos]))), buffer, ((NI) (bufLen)));
846 (*s_2).pos += bufLen;
847 }BeforeRet_: ;
848 }
N_NIMCALL(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw *,newStringStream__pureZstreams_676)849 N_LIB_PRIVATE N_NIMCALL(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*, newStringStream__pureZstreams_676)(NimStringDesc* s) {
850 tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* result;
851 NimStringDesc* T1_;
852 result = NIM_NIL;
853 result = (tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) newObj((&NTIstringstream__Z9cj1NxLXx79cYy9c4gbj6CAA_), sizeof(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw));
854 (*result).Sup.Sup.m_type = (&NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_);
855 T1_ = NIM_NIL;
856 T1_ = (*result).data; (*result).data = copyStringRC1(s);
857 if (T1_) nimGCunrefNoCycle(T1_);
858 (*result).pos = ((NI) 0);
859 (*result).Sup.closeImpl = ssClose__pureZstreams_673;
860 (*result).Sup.atEndImpl = ssAtEnd__pureZstreams_558;
861 (*result).Sup.setPositionImpl = ssSetPosition__pureZstreams_580;
862 (*result).Sup.getPositionImpl = ssGetPosition__pureZstreams_590;
863 (*result).Sup.readDataStrImpl = ssReadDataStr__pureZstreams_594;
864 (*result).Sup.readDataImpl = ssReadData__pureZstreams_648;
865 (*result).Sup.peekDataImpl = ssPeekData__pureZstreams_658;
866 (*result).Sup.writeDataImpl = ssWriteData__pureZstreams_664;
867 return result;
868 }
N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ *,newFileStream__pureZstreams_832)869 N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, newFileStream__pureZstreams_832)(NimStringDesc* filename, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg mode, NI bufSize) {
870 tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* result;
871 FILE* f;
872 result = NIM_NIL;
873 f = (FILE*)0;
874 {
875 NIM_BOOL T3_;
876 T3_ = (NIM_BOOL)0;
877 T3_ = open__systemZio_389(&f, filename, mode, bufSize);
878 if (!T3_) goto LA4_;
879 result = newFileStream__pureZstreams_808(f);
880 }
881 LA4_: ;
882 return result;
883 }
N_NIMCALL(void,stdlib_streamsDatInit000)884 N_LIB_PRIVATE N_NIMCALL(void, stdlib_streamsDatInit000)(void) {
885 static TNimNode* TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[10];
886 static TNimNode* TM__Ue7tnBcsL67VCiRfvt8q0A_6_2[2];
887 static TNimNode TM__Ue7tnBcsL67VCiRfvt8q0A_0[15];
888 NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_.size = sizeof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ);
889 NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_.align = NIM_ALIGNOF(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ);
890 NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_.kind = 17;
891 NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
892 NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_.flags = 1;
893 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[0] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[1];
894 NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_.size = sizeof(tyProc__JQrsH08b4uPTH9cyFPlVOZg);
895 NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_.align = NIM_ALIGNOF(tyProc__JQrsH08b4uPTH9cyFPlVOZg);
896 NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_.kind = 25;
897 NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_.base = 0;
898 NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_.flags = 3;
899 TM__Ue7tnBcsL67VCiRfvt8q0A_0[1].kind = 1;
900 TM__Ue7tnBcsL67VCiRfvt8q0A_0[1].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, closeImpl);
901 TM__Ue7tnBcsL67VCiRfvt8q0A_0[1].typ = (&NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_);
902 TM__Ue7tnBcsL67VCiRfvt8q0A_0[1].name = "closeImpl";
903 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[1] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[2];
904 NTIprocLs58streamT58boolLOnimcall_gcsafeOT__9bmhFrLahRsL2hltfRDVtlQ_.size = sizeof(tyProc__9bmhFrLahRsL2hltfRDVtlQ);
905 NTIprocLs58streamT58boolLOnimcall_gcsafeOT__9bmhFrLahRsL2hltfRDVtlQ_.align = NIM_ALIGNOF(tyProc__9bmhFrLahRsL2hltfRDVtlQ);
906 NTIprocLs58streamT58boolLOnimcall_gcsafeOT__9bmhFrLahRsL2hltfRDVtlQ_.kind = 25;
907 NTIprocLs58streamT58boolLOnimcall_gcsafeOT__9bmhFrLahRsL2hltfRDVtlQ_.base = 0;
908 NTIprocLs58streamT58boolLOnimcall_gcsafeOT__9bmhFrLahRsL2hltfRDVtlQ_.flags = 3;
909 TM__Ue7tnBcsL67VCiRfvt8q0A_0[2].kind = 1;
910 TM__Ue7tnBcsL67VCiRfvt8q0A_0[2].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, atEndImpl);
911 TM__Ue7tnBcsL67VCiRfvt8q0A_0[2].typ = (&NTIprocLs58streamT58boolLOnimcall_gcsafeOT__9bmhFrLahRsL2hltfRDVtlQ_);
912 TM__Ue7tnBcsL67VCiRfvt8q0A_0[2].name = "atEndImpl";
913 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[2] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[3];
914 NTIprocLs58stream_pos58intTLOnimcall_gcsafeOT__3svSoGIUJIsHkaBL7q4DAQ_.size = sizeof(tyProc__3svSoGIUJIsHkaBL7q4DAQ);
915 NTIprocLs58stream_pos58intTLOnimcall_gcsafeOT__3svSoGIUJIsHkaBL7q4DAQ_.align = NIM_ALIGNOF(tyProc__3svSoGIUJIsHkaBL7q4DAQ);
916 NTIprocLs58stream_pos58intTLOnimcall_gcsafeOT__3svSoGIUJIsHkaBL7q4DAQ_.kind = 25;
917 NTIprocLs58stream_pos58intTLOnimcall_gcsafeOT__3svSoGIUJIsHkaBL7q4DAQ_.base = 0;
918 NTIprocLs58stream_pos58intTLOnimcall_gcsafeOT__3svSoGIUJIsHkaBL7q4DAQ_.flags = 3;
919 TM__Ue7tnBcsL67VCiRfvt8q0A_0[3].kind = 1;
920 TM__Ue7tnBcsL67VCiRfvt8q0A_0[3].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, setPositionImpl);
921 TM__Ue7tnBcsL67VCiRfvt8q0A_0[3].typ = (&NTIprocLs58stream_pos58intTLOnimcall_gcsafeOT__3svSoGIUJIsHkaBL7q4DAQ_);
922 TM__Ue7tnBcsL67VCiRfvt8q0A_0[3].name = "setPositionImpl";
923 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[3] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[4];
924 NTIprocLs58streamT58intLOnimcall_gcsafeOT__xflqkf2D1uVClg70czEDHA_.size = sizeof(tyProc__xflqkf2D1uVClg70czEDHA);
925 NTIprocLs58streamT58intLOnimcall_gcsafeOT__xflqkf2D1uVClg70czEDHA_.align = NIM_ALIGNOF(tyProc__xflqkf2D1uVClg70czEDHA);
926 NTIprocLs58streamT58intLOnimcall_gcsafeOT__xflqkf2D1uVClg70czEDHA_.kind = 25;
927 NTIprocLs58streamT58intLOnimcall_gcsafeOT__xflqkf2D1uVClg70czEDHA_.base = 0;
928 NTIprocLs58streamT58intLOnimcall_gcsafeOT__xflqkf2D1uVClg70czEDHA_.flags = 3;
929 TM__Ue7tnBcsL67VCiRfvt8q0A_0[4].kind = 1;
930 TM__Ue7tnBcsL67VCiRfvt8q0A_0[4].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, getPositionImpl);
931 TM__Ue7tnBcsL67VCiRfvt8q0A_0[4].typ = (&NTIprocLs58streamT58intLOnimcall_gcsafeOT__xflqkf2D1uVClg70czEDHA_);
932 TM__Ue7tnBcsL67VCiRfvt8q0A_0[4].name = "getPositionImpl";
933 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[4] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[5];
934 NTIprocLs58stream_buffer58varstring_slice58sliceLsystemOintTT58intLOnimcall_gcsafeOT__c9c0f59ak4YGQ6neEym8LPKw_.size = sizeof(tyProc__c9c0f59ak4YGQ6neEym8LPKw);
935 NTIprocLs58stream_buffer58varstring_slice58sliceLsystemOintTT58intLOnimcall_gcsafeOT__c9c0f59ak4YGQ6neEym8LPKw_.align = NIM_ALIGNOF(tyProc__c9c0f59ak4YGQ6neEym8LPKw);
936 NTIprocLs58stream_buffer58varstring_slice58sliceLsystemOintTT58intLOnimcall_gcsafeOT__c9c0f59ak4YGQ6neEym8LPKw_.kind = 25;
937 NTIprocLs58stream_buffer58varstring_slice58sliceLsystemOintTT58intLOnimcall_gcsafeOT__c9c0f59ak4YGQ6neEym8LPKw_.base = 0;
938 NTIprocLs58stream_buffer58varstring_slice58sliceLsystemOintTT58intLOnimcall_gcsafeOT__c9c0f59ak4YGQ6neEym8LPKw_.flags = 3;
939 TM__Ue7tnBcsL67VCiRfvt8q0A_0[5].kind = 1;
940 TM__Ue7tnBcsL67VCiRfvt8q0A_0[5].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, readDataStrImpl);
941 TM__Ue7tnBcsL67VCiRfvt8q0A_0[5].typ = (&NTIprocLs58stream_buffer58varstring_slice58sliceLsystemOintTT58intLOnimcall_gcsafeOT__c9c0f59ak4YGQ6neEym8LPKw_);
942 TM__Ue7tnBcsL67VCiRfvt8q0A_0[5].name = "readDataStrImpl";
943 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[5] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[6];
944 NTIprocLs58stream_line58varstringT58boolLOnimcall_gcsafeOT__7jFfqMk9ajToCz6Hv9atCA4A_.size = sizeof(tyProc__7jFfqMk9ajToCz6Hv9atCA4A);
945 NTIprocLs58stream_line58varstringT58boolLOnimcall_gcsafeOT__7jFfqMk9ajToCz6Hv9atCA4A_.align = NIM_ALIGNOF(tyProc__7jFfqMk9ajToCz6Hv9atCA4A);
946 NTIprocLs58stream_line58varstringT58boolLOnimcall_gcsafeOT__7jFfqMk9ajToCz6Hv9atCA4A_.kind = 25;
947 NTIprocLs58stream_line58varstringT58boolLOnimcall_gcsafeOT__7jFfqMk9ajToCz6Hv9atCA4A_.base = 0;
948 NTIprocLs58stream_line58varstringT58boolLOnimcall_gcsafeOT__7jFfqMk9ajToCz6Hv9atCA4A_.flags = 3;
949 TM__Ue7tnBcsL67VCiRfvt8q0A_0[6].kind = 1;
950 TM__Ue7tnBcsL67VCiRfvt8q0A_0[6].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, readLineImpl);
951 TM__Ue7tnBcsL67VCiRfvt8q0A_0[6].typ = (&NTIprocLs58stream_line58varstringT58boolLOnimcall_gcsafeOT__7jFfqMk9ajToCz6Hv9atCA4A_);
952 TM__Ue7tnBcsL67VCiRfvt8q0A_0[6].name = "readLineImpl";
953 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[6] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[7];
954 NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_.size = sizeof(tyProc__2VVzVL9bOnKhj1eZKkf9cEuA);
955 NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_.align = NIM_ALIGNOF(tyProc__2VVzVL9bOnKhj1eZKkf9cEuA);
956 NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_.kind = 25;
957 NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_.base = 0;
958 NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_.flags = 3;
959 TM__Ue7tnBcsL67VCiRfvt8q0A_0[7].kind = 1;
960 TM__Ue7tnBcsL67VCiRfvt8q0A_0[7].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, readDataImpl);
961 TM__Ue7tnBcsL67VCiRfvt8q0A_0[7].typ = (&NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_);
962 TM__Ue7tnBcsL67VCiRfvt8q0A_0[7].name = "readDataImpl";
963 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[7] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[8];
964 TM__Ue7tnBcsL67VCiRfvt8q0A_0[8].kind = 1;
965 TM__Ue7tnBcsL67VCiRfvt8q0A_0[8].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, peekDataImpl);
966 TM__Ue7tnBcsL67VCiRfvt8q0A_0[8].typ = (&NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_);
967 TM__Ue7tnBcsL67VCiRfvt8q0A_0[8].name = "peekDataImpl";
968 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[8] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[9];
969 NTIprocLs58stream_buffer58pointer_buflen58intTLOnimcall_gcsafeOT__ki6p1QyfOkJLQJ9aw5NI0AQ_.size = sizeof(tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ);
970 NTIprocLs58stream_buffer58pointer_buflen58intTLOnimcall_gcsafeOT__ki6p1QyfOkJLQJ9aw5NI0AQ_.align = NIM_ALIGNOF(tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ);
971 NTIprocLs58stream_buffer58pointer_buflen58intTLOnimcall_gcsafeOT__ki6p1QyfOkJLQJ9aw5NI0AQ_.kind = 25;
972 NTIprocLs58stream_buffer58pointer_buflen58intTLOnimcall_gcsafeOT__ki6p1QyfOkJLQJ9aw5NI0AQ_.base = 0;
973 NTIprocLs58stream_buffer58pointer_buflen58intTLOnimcall_gcsafeOT__ki6p1QyfOkJLQJ9aw5NI0AQ_.flags = 3;
974 TM__Ue7tnBcsL67VCiRfvt8q0A_0[9].kind = 1;
975 TM__Ue7tnBcsL67VCiRfvt8q0A_0[9].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, writeDataImpl);
976 TM__Ue7tnBcsL67VCiRfvt8q0A_0[9].typ = (&NTIprocLs58stream_buffer58pointer_buflen58intTLOnimcall_gcsafeOT__ki6p1QyfOkJLQJ9aw5NI0AQ_);
977 TM__Ue7tnBcsL67VCiRfvt8q0A_0[9].name = "writeDataImpl";
978 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[9] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[10];
979 TM__Ue7tnBcsL67VCiRfvt8q0A_0[10].kind = 1;
980 TM__Ue7tnBcsL67VCiRfvt8q0A_0[10].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, flushImpl);
981 TM__Ue7tnBcsL67VCiRfvt8q0A_0[10].typ = (&NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_);
982 TM__Ue7tnBcsL67VCiRfvt8q0A_0[10].name = "flushImpl";
983 TM__Ue7tnBcsL67VCiRfvt8q0A_0[0].len = 10; TM__Ue7tnBcsL67VCiRfvt8q0A_0[0].kind = 2; TM__Ue7tnBcsL67VCiRfvt8q0A_0[0].sons = &TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[0];
984 NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_.node = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[0];
985 NTIstream__1G0jiQbe7KwD5ADza5AZaw_.size = sizeof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*);
986 NTIstream__1G0jiQbe7KwD5ADza5AZaw_.align = NIM_ALIGNOF(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*);
987 NTIstream__1G0jiQbe7KwD5ADza5AZaw_.kind = 22;
988 NTIstream__1G0jiQbe7KwD5ADza5AZaw_.base = (&NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_);
989 NTIstream__1G0jiQbe7KwD5ADza5AZaw_.marker = Marker_tyRef__1G0jiQbe7KwD5ADza5AZaw;
990 NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_.size = sizeof(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ);
991 NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_.align = NIM_ALIGNOF(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ);
992 NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_.kind = 17;
993 NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_.base = (&NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_);
994 NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_.flags = 1;
995 TM__Ue7tnBcsL67VCiRfvt8q0A_0[11].kind = 1;
996 TM__Ue7tnBcsL67VCiRfvt8q0A_0[11].offset = offsetof(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ, f);
997 TM__Ue7tnBcsL67VCiRfvt8q0A_0[11].typ = (&NTIfile__XBeRj4rw9bUuE7CB3DS1rgg_);
998 TM__Ue7tnBcsL67VCiRfvt8q0A_0[11].name = "f";
999 NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_.node = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[11];
1000 NTIfilestream__y4kGpp4Cn6oTOCWBJMIxAg_.size = sizeof(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*);
1001 NTIfilestream__y4kGpp4Cn6oTOCWBJMIxAg_.align = NIM_ALIGNOF(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*);
1002 NTIfilestream__y4kGpp4Cn6oTOCWBJMIxAg_.kind = 22;
1003 NTIfilestream__y4kGpp4Cn6oTOCWBJMIxAg_.base = (&NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_);
1004 NTIfilestream__y4kGpp4Cn6oTOCWBJMIxAg_.marker = Marker_tyRef__y4kGpp4Cn6oTOCWBJMIxAg;
1005 NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_.size = sizeof(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw);
1006 NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_.align = NIM_ALIGNOF(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw);
1007 NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_.kind = 17;
1008 NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_.base = (&NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_);
1009 TM__Ue7tnBcsL67VCiRfvt8q0A_6_2[0] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[13];
1010 TM__Ue7tnBcsL67VCiRfvt8q0A_0[13].kind = 1;
1011 TM__Ue7tnBcsL67VCiRfvt8q0A_0[13].offset = offsetof(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw, data);
1012 TM__Ue7tnBcsL67VCiRfvt8q0A_0[13].typ = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
1013 TM__Ue7tnBcsL67VCiRfvt8q0A_0[13].name = "data";
1014 TM__Ue7tnBcsL67VCiRfvt8q0A_6_2[1] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[14];
1015 TM__Ue7tnBcsL67VCiRfvt8q0A_0[14].kind = 1;
1016 TM__Ue7tnBcsL67VCiRfvt8q0A_0[14].offset = offsetof(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw, pos);
1017 TM__Ue7tnBcsL67VCiRfvt8q0A_0[14].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
1018 TM__Ue7tnBcsL67VCiRfvt8q0A_0[14].name = "pos";
1019 TM__Ue7tnBcsL67VCiRfvt8q0A_0[12].len = 2; TM__Ue7tnBcsL67VCiRfvt8q0A_0[12].kind = 2; TM__Ue7tnBcsL67VCiRfvt8q0A_0[12].sons = &TM__Ue7tnBcsL67VCiRfvt8q0A_6_2[0];
1020 NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_.node = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[12];
1021 NTIstringstream__Z9cj1NxLXx79cYy9c4gbj6CAA_.size = sizeof(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*);
1022 NTIstringstream__Z9cj1NxLXx79cYy9c4gbj6CAA_.align = NIM_ALIGNOF(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*);
1023 NTIstringstream__Z9cj1NxLXx79cYy9c4gbj6CAA_.kind = 22;
1024 NTIstringstream__Z9cj1NxLXx79cYy9c4gbj6CAA_.base = (&NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_);
1025 NTIstringstream__Z9cj1NxLXx79cYy9c4gbj6CAA_.marker = Marker_tyRef__Z9cj1NxLXx79cYy9c4gbj6CAA;
1026 }
1027
1028