1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 32
3 
4 #include "nimbase.h"
5 #include <string.h>
6 #include <stdio.h>
7 #undef LANGUAGE_C
8 #undef MIPSEB
9 #undef MIPSEL
10 #undef PPC
11 #undef R3000
12 #undef R4000
13 #undef i386
14 #undef linux
15 #undef mips
16 #undef near
17 #undef far
18 #undef powerpc
19 #undef unix
20 #define nimfr_(x, y)
21 #define nimln_(x, y)
22 typedef struct TNimType TNimType;
23 typedef struct TNimNode TNimNode;
24 typedef struct tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag;
25 typedef struct RootObj RootObj;
26 typedef struct NimStringDesc NimStringDesc;
27 typedef struct TGenericSeq TGenericSeq;
28 typedef struct tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g;
29 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
30 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
31 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
32 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
33 struct TNimType {
34 NI size;
35 NI align;
36 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
37 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
38 TNimType* base;
39 TNimNode* node;
40 void* finalizer;
41 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
42 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
43 };
44 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
45 struct TNimNode {
46 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
47 NI offset;
48 TNimType* typ;
49 NCSTRING name;
50 NI len;
51 TNimNode** sons;
52 };
53 struct RootObj {
54 TNimType* m_type;
55 };
56 struct TGenericSeq {
57 NI len;
58 NI reserved;
59 };
60 struct NimStringDesc {
61   TGenericSeq Sup;
62 NIM_CHAR data[SEQ_DECL_SIZE];
63 };
64 struct tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag {
65   RootObj Sup;
66 NI bufpos;
67 NCSTRING buf;
68 NimStringDesc* bufStorage;
69 NI bufLen;
70 tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* stream;
71 NI lineNumber;
72 NI sentinel;
73 NI lineStart;
74 NI offsetBase;
75 };
76 typedef NU8 tyEnum_TLLStreamKind__jVcKY16LbOamXE9bxXUD6pQ;
77 typedef struct {
78 N_NIMCALL_PTR(NI, ClP_0) (tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* s, void* buf, NI bufLen, void* ClE_0);
79 void* ClE_0;
80 } tyProc__9cZV5JMJLsdOPMv55VbpOVg;
81 typedef struct {
82 N_NIMCALL_PTR(void, ClP_0) (void* ClE_0);
83 void* ClE_0;
84 } tyProc__HzVCwACFYM9cx9aV62PdjtuA;
85 struct tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g {
86   RootObj Sup;
87 tyEnum_TLLStreamKind__jVcKY16LbOamXE9bxXUD6pQ kind;
88 FILE* f;
89 NimStringDesc* s;
90 NI rd;
91 NI wr;
92 NI lineOffset;
93 tyProc__9cZV5JMJLsdOPMv55VbpOVg repl;
94 tyProc__HzVCwACFYM9cx9aV62PdjtuA onPrompt;
95 };
96 N_NIMCALL(NimStringDesc*, mnewString)(NI len);
97 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
98 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
99 N_LIB_PRIVATE N_NIMCALL(void, fillBuffer__nimlexbase_45)(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag* L);
100 static N_INLINE(void, moveMem__system_1731)(void* dest, void* source, NI size);
101 N_LIB_PRIVATE N_NIMCALL(NI, llStreamRead__llstream_177)(tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* s, void* buf, NI bufLen);
102 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
103 N_LIB_PRIVATE N_NIMCALL(void, skipUTF8BOM__nimlexbase_108)(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag* L);
104 N_LIB_PRIVATE N_NIMCALL(NI, fillBaseLexer__nimlexbase_75)(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag* L, NI pos);
105 N_LIB_PRIVATE N_NIMCALL(void, llStreamClose__llstream_110)(tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* s);
106 extern TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_;
107 N_LIB_PRIVATE TNimType NTItbaselexer__jTxk7Uc2dfr9aTDL2dZhO9ag_;
108 extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
109 extern TNimType NTIcstring__S9agCYBinaYZnGWcjTdxclg_;
110 extern TNimType NTIstring__77mFvmsOLKik79ci2hXkHEg_;
111 extern TNimType NTIpllstream__WO3j4yVQ0yN0aRCt9bFEbtg_;
N_INLINE(NCSTRING,nimToCStringConv)112 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
113 	NCSTRING result;
114 	result = (NCSTRING)0;
115 	{
116 		NIM_BOOL T3_;
117 		T3_ = (NIM_BOOL)0;
118 		T3_ = (s == ((NimStringDesc*) NIM_NIL));
119 		if (T3_) goto LA4_;
120 		T3_ = ((*s).Sup.len == ((NI) 0));
121 		LA4_: ;
122 		if (!T3_) goto LA5_;
123 		result = "";
124 	}
125 	goto LA1_;
126 	LA5_: ;
127 	{
128 		result = ((NCSTRING) ((*s).data));
129 	}
130 	LA1_: ;
131 	return result;
132 }
N_INLINE(void,moveMem__system_1731)133 static N_INLINE(void, moveMem__system_1731)(void* dest, void* source, NI size) {
134 	void* T1_;
135 	T1_ = (void*)0;
136 	T1_ = memmove(dest, source, ((size_t) (size)));
137 }
N_NIMCALL(void,fillBuffer__nimlexbase_45)138 N_LIB_PRIVATE N_NIMCALL(void, fillBuffer__nimlexbase_45)(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag* L) {
139 	NI charsRead;
140 	NI toCopy;
141 	NI s;
142 	NI oldBufLen;
143 	charsRead = (NI)0;
144 	toCopy = (NI)0;
145 	s = (NI)0;
146 	oldBufLen = (NI)0;
147 	toCopy = (NI)((NI)((*L).bufLen - (*L).sentinel) - ((NI) 1));
148 	{
149 		if (!(((NI) 0) < toCopy)) goto LA3_;
150 		moveMem__system_1731(((void*) ((&(*L).buf[((NI) 0)]))), ((void*) ((&(*L).buf[(NI)((*L).sentinel + ((NI) 1))]))), ((NI) (toCopy)));
151 	}
152 	LA3_: ;
153 	charsRead = llStreamRead__llstream_177((*L).stream, ((void*) ((&(*L).buf[toCopy]))), (NI)((*L).sentinel + ((NI) 1)));
154 	s = (NI)(toCopy + charsRead);
155 	{
156 		if (!(charsRead < (NI)((*L).sentinel + ((NI) 1)))) goto LA7_;
157 		(*L).buf[s] = 0;
158 		(*L).sentinel = s;
159 	}
160 	goto LA5_;
161 	LA7_: ;
162 	{
163 		s -= ((NI) 1);
164 		{
165 			while (1) {
166 				{
167 					while (1) {
168 						NIM_BOOL T14_;
169 						T14_ = (NIM_BOOL)0;
170 						T14_ = (((NI) 0) <= s);
171 						if (!(T14_)) goto LA15_;
172 						T14_ = !((((NU8)((*L).buf[s])) == ((NU8)(13)) || ((NU8)((*L).buf[s])) == ((NU8)(10))));
173 						LA15_: ;
174 						if (!T14_) goto LA13;
175 						s -= ((NI) 1);
176 					} LA13: ;
177 				}
178 				{
179 					if (!(((NI) 0) <= s)) goto LA18_;
180 					(*L).sentinel = s;
181 					goto LA10;
182 				}
183 				goto LA16_;
184 				LA18_: ;
185 				{
186 					oldBufLen = (*L).bufLen;
187 					(*L).bufLen = (NI)((*L).bufLen * ((NI) 2));
188 					unsureAsgnRef((void**) (&(*L).bufStorage), setLengthStr((*L).bufStorage, ((NI) ((*L).bufLen))));
189 					(*L).buf = nimToCStringConv((*L).bufStorage);
190 					charsRead = llStreamRead__llstream_177((*L).stream, ((void*) ((&(*L).buf[oldBufLen]))), oldBufLen);
191 					{
192 						if (!(charsRead < oldBufLen)) goto LA23_;
193 						(*L).buf[(NI)(oldBufLen + charsRead)] = 0;
194 						(*L).sentinel = (NI)(oldBufLen + charsRead);
195 						goto LA10;
196 					}
197 					LA23_: ;
198 					s = (NI)((*L).bufLen - ((NI) 1));
199 				}
200 				LA16_: ;
201 			}
202 		} LA10: ;
203 	}
204 	LA5_: ;
205 }
N_NIMCALL(void,skipUTF8BOM__nimlexbase_108)206 N_LIB_PRIVATE N_NIMCALL(void, skipUTF8BOM__nimlexbase_108)(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag* L) {
207 	{
208 		NIM_BOOL T3_;
209 		NIM_BOOL T4_;
210 		T3_ = (NIM_BOOL)0;
211 		T4_ = (NIM_BOOL)0;
212 		T4_ = ((NU8)((*L).buf[((NI) 0)]) == (NU8)(239));
213 		if (!(T4_)) goto LA5_;
214 		T4_ = ((NU8)((*L).buf[((NI) 1)]) == (NU8)(187));
215 		LA5_: ;
216 		T3_ = T4_;
217 		if (!(T3_)) goto LA6_;
218 		T3_ = ((NU8)((*L).buf[((NI) 2)]) == (NU8)(191));
219 		LA6_: ;
220 		if (!T3_) goto LA7_;
221 		(*L).bufpos += ((NI) 3);
222 		(*L).lineStart += ((NI) 3);
223 	}
224 	LA7_: ;
225 }
N_NIMCALL(void,openBaseLexer__nimlexbase_25)226 N_LIB_PRIVATE N_NIMCALL(void, openBaseLexer__nimlexbase_25)(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag* L, tyObject_TLLStream__a5oZYQ9aTktYME2449ayEi6g* inputstream, NI bufLen) {
227 	(*L).bufpos = ((NI) 0);
228 	(*L).offsetBase = ((NI) 0);
229 	unsureAsgnRef((void**) (&(*L).bufStorage), mnewString(((NI) (bufLen))));
230 	(*L).buf = nimToCStringConv((*L).bufStorage);
231 	(*L).bufLen = bufLen;
232 	(*L).sentinel = (NI)(bufLen - ((NI) 1));
233 	(*L).lineStart = ((NI) 0);
234 	(*L).lineNumber = ((NI) 1);
235 	unsureAsgnRef((void**) (&(*L).stream), inputstream);
236 	fillBuffer__nimlexbase_45(L);
237 	skipUTF8BOM__nimlexbase_108(L);
238 }
N_NIMCALL(NI,getColNumber__nimlexbase_34)239 N_LIB_PRIVATE N_NIMCALL(NI, getColNumber__nimlexbase_34)(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag* L, NI pos) {
240 	NI result;
241 	result = (NI)0;
242 	result = ((NI)(pos - (*L).lineStart) > 0? ((NI)(pos - (*L).lineStart)) : -((NI)(pos - (*L).lineStart)));
243 	return result;
244 }
N_NIMCALL(NI,fillBaseLexer__nimlexbase_75)245 N_LIB_PRIVATE N_NIMCALL(NI, fillBaseLexer__nimlexbase_75)(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag* L, NI pos) {
246 	NI result;
247 	result = (NI)0;
248 	{
249 		if (!(pos < (*L).sentinel)) goto LA3_;
250 		result = (NI)(pos + ((NI) 1));
251 	}
252 	goto LA1_;
253 	LA3_: ;
254 	{
255 		fillBuffer__nimlexbase_45(L);
256 		(*L).offsetBase += (NI)(pos + ((NI) 1));
257 		(*L).bufpos = ((NI) 0);
258 		result = ((NI) 0);
259 	}
260 	LA1_: ;
261 	(*L).lineStart = result;
262 	return result;
263 }
N_NIMCALL(NI,handleCR__nimlexbase_37)264 N_LIB_PRIVATE N_NIMCALL(NI, handleCR__nimlexbase_37)(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag* L, NI pos) {
265 	NI result;
266 	result = (NI)0;
267 	(*L).lineNumber += ((NI) 1);
268 	result = fillBaseLexer__nimlexbase_75(L, pos);
269 	{
270 		if (!((NU8)((*L).buf[result]) == (NU8)(10))) goto LA3_;
271 		result = fillBaseLexer__nimlexbase_75(L, result);
272 	}
273 	LA3_: ;
274 	return result;
275 }
N_NIMCALL(NI,handleLF__nimlexbase_40)276 N_LIB_PRIVATE N_NIMCALL(NI, handleLF__nimlexbase_40)(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag* L, NI pos) {
277 	NI result;
278 	result = (NI)0;
279 	(*L).lineNumber += ((NI) 1);
280 	result = fillBaseLexer__nimlexbase_75(L, pos);
281 	return result;
282 }
N_NIMCALL(void,closeBaseLexer__nimlexbase_29)283 N_LIB_PRIVATE N_NIMCALL(void, closeBaseLexer__nimlexbase_29)(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag* L) {
284 	llStreamClose__llstream_110((*L).stream);
285 }
N_NIMCALL(void,compiler_nimlexbaseDatInit000)286 N_LIB_PRIVATE N_NIMCALL(void, compiler_nimlexbaseDatInit000)(void) {
287 static TNimNode* TM__jNFaG9cOzyJSKBcIonhGRGw_2_9[9];
288 static TNimNode TM__jNFaG9cOzyJSKBcIonhGRGw_0[10];
289 NTItbaselexer__jTxk7Uc2dfr9aTDL2dZhO9ag_.size = sizeof(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag);
290 NTItbaselexer__jTxk7Uc2dfr9aTDL2dZhO9ag_.align = NIM_ALIGNOF(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag);
291 NTItbaselexer__jTxk7Uc2dfr9aTDL2dZhO9ag_.kind = 17;
292 NTItbaselexer__jTxk7Uc2dfr9aTDL2dZhO9ag_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
293 TM__jNFaG9cOzyJSKBcIonhGRGw_2_9[0] = &TM__jNFaG9cOzyJSKBcIonhGRGw_0[1];
294 TM__jNFaG9cOzyJSKBcIonhGRGw_0[1].kind = 1;
295 TM__jNFaG9cOzyJSKBcIonhGRGw_0[1].offset = offsetof(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag, bufpos);
296 TM__jNFaG9cOzyJSKBcIonhGRGw_0[1].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
297 TM__jNFaG9cOzyJSKBcIonhGRGw_0[1].name = "bufpos";
298 TM__jNFaG9cOzyJSKBcIonhGRGw_2_9[1] = &TM__jNFaG9cOzyJSKBcIonhGRGw_0[2];
299 TM__jNFaG9cOzyJSKBcIonhGRGw_0[2].kind = 1;
300 TM__jNFaG9cOzyJSKBcIonhGRGw_0[2].offset = offsetof(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag, buf);
301 TM__jNFaG9cOzyJSKBcIonhGRGw_0[2].typ = (&NTIcstring__S9agCYBinaYZnGWcjTdxclg_);
302 TM__jNFaG9cOzyJSKBcIonhGRGw_0[2].name = "buf";
303 TM__jNFaG9cOzyJSKBcIonhGRGw_2_9[2] = &TM__jNFaG9cOzyJSKBcIonhGRGw_0[3];
304 TM__jNFaG9cOzyJSKBcIonhGRGw_0[3].kind = 1;
305 TM__jNFaG9cOzyJSKBcIonhGRGw_0[3].offset = offsetof(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag, bufStorage);
306 TM__jNFaG9cOzyJSKBcIonhGRGw_0[3].typ = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
307 TM__jNFaG9cOzyJSKBcIonhGRGw_0[3].name = "bufStorage";
308 TM__jNFaG9cOzyJSKBcIonhGRGw_2_9[3] = &TM__jNFaG9cOzyJSKBcIonhGRGw_0[4];
309 TM__jNFaG9cOzyJSKBcIonhGRGw_0[4].kind = 1;
310 TM__jNFaG9cOzyJSKBcIonhGRGw_0[4].offset = offsetof(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag, bufLen);
311 TM__jNFaG9cOzyJSKBcIonhGRGw_0[4].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
312 TM__jNFaG9cOzyJSKBcIonhGRGw_0[4].name = "bufLen";
313 TM__jNFaG9cOzyJSKBcIonhGRGw_2_9[4] = &TM__jNFaG9cOzyJSKBcIonhGRGw_0[5];
314 TM__jNFaG9cOzyJSKBcIonhGRGw_0[5].kind = 1;
315 TM__jNFaG9cOzyJSKBcIonhGRGw_0[5].offset = offsetof(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag, stream);
316 TM__jNFaG9cOzyJSKBcIonhGRGw_0[5].typ = (&NTIpllstream__WO3j4yVQ0yN0aRCt9bFEbtg_);
317 TM__jNFaG9cOzyJSKBcIonhGRGw_0[5].name = "stream";
318 TM__jNFaG9cOzyJSKBcIonhGRGw_2_9[5] = &TM__jNFaG9cOzyJSKBcIonhGRGw_0[6];
319 TM__jNFaG9cOzyJSKBcIonhGRGw_0[6].kind = 1;
320 TM__jNFaG9cOzyJSKBcIonhGRGw_0[6].offset = offsetof(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag, lineNumber);
321 TM__jNFaG9cOzyJSKBcIonhGRGw_0[6].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
322 TM__jNFaG9cOzyJSKBcIonhGRGw_0[6].name = "lineNumber";
323 TM__jNFaG9cOzyJSKBcIonhGRGw_2_9[6] = &TM__jNFaG9cOzyJSKBcIonhGRGw_0[7];
324 TM__jNFaG9cOzyJSKBcIonhGRGw_0[7].kind = 1;
325 TM__jNFaG9cOzyJSKBcIonhGRGw_0[7].offset = offsetof(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag, sentinel);
326 TM__jNFaG9cOzyJSKBcIonhGRGw_0[7].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
327 TM__jNFaG9cOzyJSKBcIonhGRGw_0[7].name = "sentinel";
328 TM__jNFaG9cOzyJSKBcIonhGRGw_2_9[7] = &TM__jNFaG9cOzyJSKBcIonhGRGw_0[8];
329 TM__jNFaG9cOzyJSKBcIonhGRGw_0[8].kind = 1;
330 TM__jNFaG9cOzyJSKBcIonhGRGw_0[8].offset = offsetof(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag, lineStart);
331 TM__jNFaG9cOzyJSKBcIonhGRGw_0[8].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
332 TM__jNFaG9cOzyJSKBcIonhGRGw_0[8].name = "lineStart";
333 TM__jNFaG9cOzyJSKBcIonhGRGw_2_9[8] = &TM__jNFaG9cOzyJSKBcIonhGRGw_0[9];
334 TM__jNFaG9cOzyJSKBcIonhGRGw_0[9].kind = 1;
335 TM__jNFaG9cOzyJSKBcIonhGRGw_0[9].offset = offsetof(tyObject_TBaseLexer__jTxk7Uc2dfr9aTDL2dZhO9ag, offsetBase);
336 TM__jNFaG9cOzyJSKBcIonhGRGw_0[9].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
337 TM__jNFaG9cOzyJSKBcIonhGRGw_0[9].name = "offsetBase";
338 TM__jNFaG9cOzyJSKBcIonhGRGw_0[0].len = 9; TM__jNFaG9cOzyJSKBcIonhGRGw_0[0].kind = 2; TM__jNFaG9cOzyJSKBcIonhGRGw_0[0].sons = &TM__jNFaG9cOzyJSKBcIonhGRGw_2_9[0];
339 NTItbaselexer__jTxk7Uc2dfr9aTDL2dZhO9ag_.node = &TM__jNFaG9cOzyJSKBcIonhGRGw_0[0];
340 }
341 
342