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