update NOTICE and LICENSE
[nit.git] / c_src / syntax._sep.c
1 /* This C file is generated by NIT to compile module syntax. */
2 #include "syntax._sep.h"
3 val_t syntax___SrcModuleLoader___file_type(val_t p0){
4 struct {struct stack_frame_t me;} fra;
5 val_t REGB0;
6 val_t tmp;
7 static val_t once_value_1; /* Once value */
8 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9 fra.me.file = LOCATE_syntax;
10 fra.me.line = 31;
11 fra.me.meth = LOCATE_syntax___SrcModuleLoader___file_type;
12 fra.me.has_broke = 0;
13 fra.me.REG_size = 1;
14 fra.me.REG[0] = NIT_NULL;
15 fra.me.REG[0] = p0;
16 /* ./syntax//syntax.nit:31 */
17 if (!once_value_1) {
18 fra.me.REG[0] = BOX_NativeString("nit");
19 REGB0 = TAG_Int(3);
20 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
21 once_value_1 = fra.me.REG[0];
22 register_static_object(&once_value_1);
23 } else fra.me.REG[0] = once_value_1;
24 fra.me.REG[0] = fra.me.REG[0];
25 goto label2;
26 label2: while(0);
27 stack_frame_head = fra.me.prev;
28 return fra.me.REG[0];
29 }
30 val_t syntax___SrcModuleLoader___parse_file(val_t p0, val_t p1, val_t p2, val_t p3, val_t p4, val_t p5){
31 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
32 val_t REGB0;
33 val_t REGB1;
34 val_t tmp;
35 static val_t once_value_4; /* Once value */
36 static val_t once_value_5; /* Once value */
37 static val_t once_value_6; /* Once value */
38 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
39 fra.me.file = LOCATE_syntax;
40 fra.me.line = 33;
41 fra.me.meth = LOCATE_syntax___SrcModuleLoader___parse_file;
42 fra.me.has_broke = 0;
43 fra.me.REG_size = 7;
44 fra.me.REG[0] = NIT_NULL;
45 fra.me.REG[1] = NIT_NULL;
46 fra.me.REG[2] = NIT_NULL;
47 fra.me.REG[3] = NIT_NULL;
48 fra.me.REG[4] = NIT_NULL;
49 fra.me.REG[5] = NIT_NULL;
50 fra.me.REG[6] = NIT_NULL;
51 fra.me.REG[0] = p0;
52 fra.me.REG[1] = p1;
53 fra.me.REG[2] = p2;
54 fra.me.REG[3] = p3;
55 fra.me.REG[4] = p4;
56 fra.me.REG[5] = p5;
57 /* ./syntax//syntax.nit:35 */
58 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
59 /* ./../lib/standard//collection//array.nit:23 */
60 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
61 if (UNTAG_Bool(REGB0)) {
62 } else {
63 nit_abort("Uninitialized attribute %s", "_length", LOCATE_array, 23);
64 }
65 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[0]);
66 /* ./syntax//syntax.nit:35 */
67 REGB1 = TAG_Int(0);
68 /* ./../lib/standard//kernel.nit:214 */
69 REGB1 = TAG_Bool(UNTAG_Int(REGB0)>UNTAG_Int(REGB1));
70 /* ./syntax//syntax.nit:35 */
71 if (UNTAG_Bool(REGB1)) {
72 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
73 REGB1 = TAG_Int(0);
74 REGB1 = CALL_abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], REGB1);
75 REGB1 = CALL_kernel___Char___is_lower(REGB1)(REGB1);
76 } else {
77 REGB0 = TAG_Bool(false);
78 REGB1 = REGB0;
79 }
80 fra.me.REG[0] = REGB1;
81 /* ./syntax//syntax.nit:36 */
82 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
83 CALL_abstract_collection___Collection___iterate(fra.me.REG[6])(fra.me.REG[6], (&(fra.me)), ((fun_t)OC_syntax___SrcModuleLoader___parse_file_1));
84 switch ((&(fra.me))->has_broke) {
85 case 0: break;
86 case 1: (&(fra.me))->has_broke = 0; goto label3;
87 }
88 label3: while(0);
89 /* ./syntax//syntax.nit:41 */
90 REGB1 = TAG_Bool(!UNTAG_Bool(fra.me.REG[0]));
91 if (UNTAG_Bool(REGB1)) {
92 /* ./syntax//syntax.nit:42 */
93 REGB1 = TAG_Int(5);
94 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB1);
95 if (!once_value_4) {
96 fra.me.REG[6] = BOX_NativeString("");
97 REGB1 = TAG_Int(0);
98 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
99 once_value_4 = fra.me.REG[6];
100 register_static_object(&once_value_4);
101 } else fra.me.REG[6] = once_value_4;
102 fra.me.REG[6] = fra.me.REG[6];
103 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
104 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
105 if (!once_value_5) {
106 fra.me.REG[6] = BOX_NativeString(": Error module name \"");
107 REGB1 = TAG_Int(21);
108 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
109 once_value_5 = fra.me.REG[6];
110 register_static_object(&once_value_5);
111 } else fra.me.REG[6] = once_value_5;
112 fra.me.REG[6] = fra.me.REG[6];
113 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
114 fra.me.REG[6] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
115 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
116 if (!once_value_6) {
117 fra.me.REG[6] = BOX_NativeString("\", must start with a lower case letter and contain only letters, digits and '_'.");
118 REGB1 = TAG_Int(80);
119 fra.me.REG[6] = NEW_String_string___String___with_native(fra.me.REG[6], REGB1);
120 once_value_6 = fra.me.REG[6];
121 register_static_object(&once_value_6);
122 } else fra.me.REG[6] = once_value_6;
123 fra.me.REG[6] = fra.me.REG[6];
124 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[6]);
125 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
126 CALL_mmloader___ToolContext___error(fra.me.REG[1])(fra.me.REG[1], NIT_NULL, fra.me.REG[0]);
127 }
128 /* ./syntax//syntax.nit:45 */
129 fra.me.REG[2] = NEW_Lexer_lexer___Lexer___init(fra.me.REG[2], fra.me.REG[3]);
130 /* ./syntax//syntax.nit:46 */
131 fra.me.REG[2] = NEW_Parser_parser___Parser___init(fra.me.REG[2]);
132 /* ./syntax//syntax.nit:47 */
133 fra.me.REG[2] = CALL_parser___Parser___parse(fra.me.REG[2])(fra.me.REG[2]);
134 /* ./syntax//syntax.nit:48 */
135 fra.me.REG[0] = CALL_parser_nodes___Start___n_base(fra.me.REG[2])(fra.me.REG[2]);
136 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
137 if (UNTAG_Bool(REGB1)) {
138 } else {
139 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
140 if (UNTAG_Bool(REGB0)) {
141 REGB0 = TAG_Bool(false);
142 REGB1 = REGB0;
143 } else {
144 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
145 REGB1 = REGB0;
146 }
147 }
148 if (UNTAG_Bool(REGB1)) {
149 /* ./syntax//syntax.nit:49 */
150 fra.me.REG[0] = CALL_parser_nodes___Start___n_eof(fra.me.REG[2])(fra.me.REG[2]);
151 /* ./syntax//syntax.nit:50 */
152 REGB1 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_AError, ID_AError)) /*cast AError*/;
153 if (UNTAG_Bool(REGB1)) {
154 } else {
155 nit_abort("Assert failed", NULL, LOCATE_syntax, 50);
156 }
157 /* ./syntax//syntax.nit:51 */
158 fra.me.REG[6] = CALL_parser_nodes___ANode___location(fra.me.REG[0])(fra.me.REG[0]);
159 fra.me.REG[0] = CALL_lexer___AError___message(fra.me.REG[0])(fra.me.REG[0]);
160 CALL_mmloader___ToolContext___fatal_error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[6], fra.me.REG[0]);
161 }
162 /* ./syntax//syntax.nit:53 */
163 fra.me.REG[2] = CALL_parser_nodes___Start___n_base(fra.me.REG[2])(fra.me.REG[2]);
164 /* ./syntax//syntax.nit:54 */
165 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
166 if (UNTAG_Bool(REGB1)) {
167 } else {
168 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
169 if (UNTAG_Bool(REGB0)) {
170 REGB0 = TAG_Bool(false);
171 REGB1 = REGB0;
172 } else {
173 REGB0 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
174 REGB1 = REGB0;
175 }
176 }
177 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
178 if (UNTAG_Bool(REGB1)) {
179 } else {
180 nit_abort("Assert failed", NULL, LOCATE_syntax, 54);
181 }
182 /* ./syntax//syntax.nit:55 */
183 fra.me.REG[3] = NEW_Location_location___Location___with_file(fra.me.REG[3]);
184 /* ./syntax//syntax.nit:56 */
185 fra.me.REG[3] = NEW_MMSrcModule_syntax_base___MMSrcModule___init(fra.me.REG[1], fra.me.REG[2], fra.me.REG[5], fra.me.REG[4], fra.me.REG[3]);
186 /* ./syntax//syntax.nit:57 */
187 goto label7;
188 label7: while(0);
189 stack_frame_head = fra.me.prev;
190 return fra.me.REG[3];
191 }
192 void OC_syntax___SrcModuleLoader___parse_file_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
193 struct {struct stack_frame_t me;} fra;
194 val_t REGB0;
195 val_t REGB1;
196 val_t REGB2;
197 fun_t CREG[1];
198 val_t tmp;
199 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
200 fra.me.file = LOCATE_syntax;
201 fra.me.line = 0;
202 fra.me.meth = LOCATE_syntax___SrcModuleLoader___parse_file;
203 fra.me.has_broke = 0;
204 fra.me.REG_size = 1;
205 fra.me.REG[0] = NIT_NULL;
206 fra.me.closure_ctx = closctx_param;
207 fra.me.closure_funs = CREG;
208 fra.me.REG[0] = p0;
209 CREG[0] = clos_fun0;
210 REGB0 = fra.me.REG[0];
211 REGB1 = CALL_kernel___Char___is_digit(REGB0)(REGB0);
212 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
213 if (UNTAG_Bool(REGB1)) {
214 REGB1 = CALL_kernel___Char___is_letter(REGB0)(REGB0);
215 REGB1 = TAG_Bool(!UNTAG_Bool(REGB1));
216 } else {
217 REGB2 = TAG_Bool(false);
218 REGB1 = REGB2;
219 }
220 if (UNTAG_Bool(REGB1)) {
221 REGB1 = TAG_Char('_');
222 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
223 if (UNTAG_Bool(REGB2)) {
224 } else {
225 /* ./../lib/standard//kernel.nit:347 */
226 REGB1 = TAG_Bool((REGB0)==(REGB1));
227 /* ./syntax//syntax.nit:36 */
228 REGB2 = REGB1;
229 }
230 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
231 } else {
232 REGB1 = TAG_Bool(false);
233 REGB2 = REGB1;
234 }
235 if (UNTAG_Bool(REGB2)) {
236 /* ./syntax//syntax.nit:38 */
237 REGB2 = TAG_Bool(false);
238 closctx->REG[0] = REGB2;
239 /* ./syntax//syntax.nit:39 */
240 closctx->has_broke = 1;
241 goto label2;
242 }
243 label2: while(0);
244 stack_frame_head = fra.me.prev;
245 return;
246 }
247 void syntax___SrcModuleLoader___process_metamodel(val_t p0, val_t p1, val_t p2){
248 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
249 val_t REGB0;
250 val_t tmp;
251 static val_t once_value_1; /* Once value */
252 static val_t once_value_2; /* Once value */
253 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
254 fra.me.file = LOCATE_syntax;
255 fra.me.line = 60;
256 fra.me.meth = LOCATE_syntax___SrcModuleLoader___process_metamodel;
257 fra.me.has_broke = 0;
258 fra.me.REG_size = 4;
259 fra.me.REG[0] = NIT_NULL;
260 fra.me.REG[1] = NIT_NULL;
261 fra.me.REG[2] = NIT_NULL;
262 fra.me.REG[3] = NIT_NULL;
263 fra.me.REG[0] = p0;
264 fra.me.REG[1] = p1;
265 fra.me.REG[2] = p2;
266 /* ./syntax//syntax.nit:62 */
267 CALL_syntax___MMSrcModule___process_supermodules(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
268 /* ./syntax//syntax.nit:63 */
269 REGB0 = TAG_Int(3);
270 fra.me.REG[0] = NEW_Array_array___Array___with_capacity(REGB0);
271 if (!once_value_1) {
272 fra.me.REG[3] = BOX_NativeString("Syntax analysis for module: ");
273 REGB0 = TAG_Int(28);
274 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
275 once_value_1 = fra.me.REG[3];
276 register_static_object(&once_value_1);
277 } else fra.me.REG[3] = once_value_1;
278 fra.me.REG[3] = fra.me.REG[3];
279 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
280 fra.me.REG[3] = CALL_abstractmetamodel___MMModule___name(fra.me.REG[2])(fra.me.REG[2]);
281 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
282 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
283 if (!once_value_2) {
284 fra.me.REG[3] = BOX_NativeString("");
285 REGB0 = TAG_Int(0);
286 fra.me.REG[3] = NEW_String_string___String___with_native(fra.me.REG[3], REGB0);
287 once_value_2 = fra.me.REG[3];
288 register_static_object(&once_value_2);
289 } else fra.me.REG[3] = once_value_2;
290 fra.me.REG[3] = fra.me.REG[3];
291 CALL_abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
292 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
293 REGB0 = TAG_Int(2);
294 CALL_mmloader___ToolContext___info(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], REGB0);
295 /* ./syntax//syntax.nit:64 */
296 CALL_syntax___MMSrcModule___process_syntax(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
297 stack_frame_head = fra.me.prev;
298 return;
299 }
300 void syntax___SrcModuleLoader___init(val_t p0, int* init_table){
301 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_SrcModuleLoader].i;
302 struct {struct stack_frame_t me;} fra;
303 val_t tmp;
304 if (init_table[itpos0]) return;
305 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
306 fra.me.file = LOCATE_syntax;
307 fra.me.line = 67;
308 fra.me.meth = LOCATE_syntax___SrcModuleLoader___init;
309 fra.me.has_broke = 0;
310 fra.me.REG_size = 1;
311 fra.me.REG[0] = NIT_NULL;
312 fra.me.REG[0] = p0;
313 /* ./syntax//syntax.nit:67 */
314 CALL_mmloader___ModuleLoader___init(fra.me.REG[0])(fra.me.REG[0], init_table);
315 stack_frame_head = fra.me.prev;
316 init_table[itpos0] = 1;
317 return;
318 }
319 void syntax___MMSrcModule___process_supermodules(val_t p0, val_t p1){
320 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
321 val_t tmp;
322 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
323 fra.me.file = LOCATE_syntax;
324 fra.me.line = 71;
325 fra.me.meth = LOCATE_syntax___MMSrcModule___process_supermodules;
326 fra.me.has_broke = 0;
327 fra.me.REG_size = 3;
328 fra.me.REG[0] = NIT_NULL;
329 fra.me.REG[1] = NIT_NULL;
330 fra.me.REG[2] = NIT_NULL;
331 fra.me.REG[0] = p0;
332 fra.me.REG[1] = p1;
333 /* ./syntax//syntax.nit:74 */
334 fra.me.REG[2] = CALL_syntax_base___MMSrcModule___node(fra.me.REG[0])(fra.me.REG[0]);
335 CALL_mmbuilder___AModule___import_super_modules(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1], fra.me.REG[0]);
336 stack_frame_head = fra.me.prev;
337 return;
338 }
339 void syntax___MMSrcModule___process_syntax(val_t p0, val_t p1){
340 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
341 val_t REGB0;
342 val_t tmp;
343 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
344 fra.me.file = LOCATE_syntax;
345 fra.me.line = 77;
346 fra.me.meth = LOCATE_syntax___MMSrcModule___process_syntax;
347 fra.me.has_broke = 0;
348 fra.me.REG_size = 2;
349 fra.me.REG[0] = NIT_NULL;
350 fra.me.REG[1] = NIT_NULL;
351 fra.me.REG[0] = p0;
352 fra.me.REG[1] = p1;
353 /* ./syntax//syntax.nit:81 */
354 CALL_mmbuilder___MMSrcModule___do_mmbuilder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
355 /* ./syntax//syntax.nit:82 */
356 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
357 /* ./syntax//syntax.nit:84 */
358 CALL_typing___MMSrcModule___do_typing(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
359 /* ./syntax//syntax.nit:85 */
360 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
361 /* ./syntax//syntax.nit:87 */
362 CALL_icode_generation___MMSrcModule___generate_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
363 /* ./syntax//syntax.nit:88 */
364 CALL_mmloader___ToolContext___check_errors(fra.me.REG[1])(fra.me.REG[1]);
365 /* ./syntax//syntax.nit:90 */
366 REGB0 = CALL_syntax___ToolContext___keep_ast(fra.me.REG[1])(fra.me.REG[1]);
367 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
368 if (UNTAG_Bool(REGB0)) {
369 CALL_syntax_base___MMSrcModule___clear_ast(fra.me.REG[0])(fra.me.REG[0]);
370 }
371 stack_frame_head = fra.me.prev;
372 return;
373 }
374 val_t syntax___ToolContext___keep_ast(val_t p0){
375 struct {struct stack_frame_t me;} fra;
376 val_t REGB0;
377 val_t tmp;
378 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
379 fra.me.file = LOCATE_syntax;
380 fra.me.line = 95;
381 fra.me.meth = LOCATE_syntax___ToolContext___keep_ast;
382 fra.me.has_broke = 0;
383 fra.me.REG_size = 1;
384 fra.me.REG[0] = NIT_NULL;
385 fra.me.REG[0] = p0;
386 /* ./syntax//syntax.nit:95 */
387 REGB0 = TAG_Bool(ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0])!=NIT_NULL);
388 if (UNTAG_Bool(REGB0)) {
389 } else {
390 nit_abort("Uninitialized attribute %s", "_keep_ast", LOCATE_syntax, 95);
391 }
392 REGB0 = ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0]);
393 stack_frame_head = fra.me.prev;
394 return REGB0;
395 }
396 void syntax___ToolContext___keep_ast__eq(val_t p0, val_t p1){
397 struct {struct stack_frame_t me;} fra;
398 val_t REGB0;
399 val_t tmp;
400 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
401 fra.me.file = LOCATE_syntax;
402 fra.me.line = 95;
403 fra.me.meth = LOCATE_syntax___ToolContext___keep_ast__eq;
404 fra.me.has_broke = 0;
405 fra.me.REG_size = 1;
406 fra.me.REG[0] = NIT_NULL;
407 fra.me.REG[0] = p0;
408 REGB0 = p1;
409 /* ./syntax//syntax.nit:95 */
410 ATTR_syntax___ToolContext____keep_ast(fra.me.REG[0]) = REGB0;
411 stack_frame_head = fra.me.prev;
412 return;
413 }