README: document nit_env.sh
[nit.git] / c_src / nit__light_c.sep.1.c
1 #include "nit__light_c.sep.0.h"
2 /* method light_c#CLanguage#identify_language for (self: CLanguage, AExternCodeBlock): Bool */
3 short int nit___nit__CLanguage___nit__light_ffi_base__FFILanguage__identify_language(val* self, val* p0) {
4 short int var /* : Bool */;
5 val* var_n /* var n: AExternCodeBlock */;
6 short int var1 /* : Bool */;
7 var_n = p0;
8 {
9 var1 = nit__light_c___AExternCodeBlock___is_c(var_n);
10 }
11 var = var1;
12 goto RET_LABEL;
13 RET_LABEL:;
14 return var;
15 }
16 /* method light_c#CLanguage#compile_module_block for (self: CLanguage, AExternCodeBlock, CCompilationUnit, MModule) */
17 void nit___nit__CLanguage___nit__light_ffi_base__FFILanguage__compile_module_block(val* self, val* p0, val* p1, val* p2) {
18 val* var_block /* var block: AExternCodeBlock */;
19 val* var_ecc /* var ecc: CCompilationUnit */;
20 val* var_mmodule /* var mmodule: MModule */;
21 short int var /* : Bool */;
22 val* var1 /* : Template */;
23 val* var3 /* : Template */;
24 val* var4 /* : Location */;
25 val* var6 /* : Location */;
26 val* var7 /* : String */;
27 val* var8 /* : Template */;
28 val* var10 /* : Template */;
29 static val* varonce;
30 val* var11 /* : String */;
31 char* var12 /* : NativeString */;
32 val* var13 /* : FlatString */;
33 val* var14 /* : Template */;
34 val* var16 /* : Template */;
35 val* var17 /* : String */;
36 short int var18 /* : Bool */;
37 val* var19 /* : Template */;
38 val* var21 /* : Template */;
39 val* var22 /* : Location */;
40 val* var24 /* : Location */;
41 val* var25 /* : String */;
42 val* var26 /* : Template */;
43 val* var28 /* : Template */;
44 static val* varonce29;
45 val* var30 /* : String */;
46 char* var31 /* : NativeString */;
47 val* var32 /* : FlatString */;
48 val* var33 /* : Template */;
49 val* var35 /* : Template */;
50 val* var36 /* : String */;
51 var_block = p0;
52 var_ecc = p1;
53 var_mmodule = p2;
54 {
55 var = nit__light_c___AExternCodeBlock___is_c_header(var_block);
56 }
57 if (var){
58 {
59 { /* Inline c_tools#CCompilationUnit#header_custom (var_ecc) on <var_ecc:CCompilationUnit> */
60 var3 = var_ecc->attrs[COLOR_nit__c_tools__CCompilationUnit___header_custom].val; /* _header_custom on <var_ecc:CCompilationUnit> */
61 if (unlikely(var3 == NULL)) {
62 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header_custom");
63 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 28);
64 fatal_exit(1);
65 }
66 var1 = var3;
67 RET_LABEL2:(void)0;
68 }
69 }
70 {
71 { /* Inline parser_nodes#ANode#location (var_block) on <var_block:AExternCodeBlock> */
72 var6 = var_block->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <var_block:AExternCodeBlock> */
73 if (unlikely(var6 == NULL)) {
74 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
75 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 24);
76 fatal_exit(1);
77 }
78 var4 = var6;
79 RET_LABEL5:(void)0;
80 }
81 }
82 {
83 var7 = nit__light_c___Location___as_line_pragma(var4);
84 }
85 {
86 template___template__Template___add(var1, var7); /* Direct call template#Template#add on <var1:Template>*/
87 }
88 {
89 { /* Inline c_tools#CCompilationUnit#header_custom (var_ecc) on <var_ecc:CCompilationUnit> */
90 var10 = var_ecc->attrs[COLOR_nit__c_tools__CCompilationUnit___header_custom].val; /* _header_custom on <var_ecc:CCompilationUnit> */
91 if (unlikely(var10 == NULL)) {
92 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header_custom");
93 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 28);
94 fatal_exit(1);
95 }
96 var8 = var10;
97 RET_LABEL9:(void)0;
98 }
99 }
100 if (likely(varonce!=NULL)) {
101 var11 = varonce;
102 } else {
103 var12 = "\n";
104 var13 = standard___standard__NativeString___to_s_with_length(var12, 1l);
105 var11 = var13;
106 varonce = var11;
107 }
108 {
109 template___template__Template___add(var8, var11); /* Direct call template#Template#add on <var8:Template>*/
110 }
111 {
112 { /* Inline c_tools#CCompilationUnit#header_custom (var_ecc) on <var_ecc:CCompilationUnit> */
113 var16 = var_ecc->attrs[COLOR_nit__c_tools__CCompilationUnit___header_custom].val; /* _header_custom on <var_ecc:CCompilationUnit> */
114 if (unlikely(var16 == NULL)) {
115 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header_custom");
116 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 28);
117 fatal_exit(1);
118 }
119 var14 = var16;
120 RET_LABEL15:(void)0;
121 }
122 }
123 {
124 var17 = nit__light_ffi_base___AExternCodeBlock___code(var_block);
125 }
126 {
127 template___template__Template___add(var14, var17); /* Direct call template#Template#add on <var14:Template>*/
128 }
129 } else {
130 {
131 var18 = nit__light_c___AExternCodeBlock___is_c_body(var_block);
132 }
133 if (var18){
134 {
135 { /* Inline c_tools#CCompilationUnit#body_impl (var_ecc) on <var_ecc:CCompilationUnit> */
136 var21 = var_ecc->attrs[COLOR_nit__c_tools__CCompilationUnit___body_impl].val; /* _body_impl on <var_ecc:CCompilationUnit> */
137 if (unlikely(var21 == NULL)) {
138 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_impl");
139 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 44);
140 fatal_exit(1);
141 }
142 var19 = var21;
143 RET_LABEL20:(void)0;
144 }
145 }
146 {
147 { /* Inline parser_nodes#ANode#location (var_block) on <var_block:AExternCodeBlock> */
148 var24 = var_block->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <var_block:AExternCodeBlock> */
149 if (unlikely(var24 == NULL)) {
150 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
151 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 24);
152 fatal_exit(1);
153 }
154 var22 = var24;
155 RET_LABEL23:(void)0;
156 }
157 }
158 {
159 var25 = nit__light_c___Location___as_line_pragma(var22);
160 }
161 {
162 template___template__Template___add(var19, var25); /* Direct call template#Template#add on <var19:Template>*/
163 }
164 {
165 { /* Inline c_tools#CCompilationUnit#body_impl (var_ecc) on <var_ecc:CCompilationUnit> */
166 var28 = var_ecc->attrs[COLOR_nit__c_tools__CCompilationUnit___body_impl].val; /* _body_impl on <var_ecc:CCompilationUnit> */
167 if (unlikely(var28 == NULL)) {
168 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_impl");
169 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 44);
170 fatal_exit(1);
171 }
172 var26 = var28;
173 RET_LABEL27:(void)0;
174 }
175 }
176 if (likely(varonce29!=NULL)) {
177 var30 = varonce29;
178 } else {
179 var31 = "\n";
180 var32 = standard___standard__NativeString___to_s_with_length(var31, 1l);
181 var30 = var32;
182 varonce29 = var30;
183 }
184 {
185 template___template__Template___add(var26, var30); /* Direct call template#Template#add on <var26:Template>*/
186 }
187 {
188 { /* Inline c_tools#CCompilationUnit#body_impl (var_ecc) on <var_ecc:CCompilationUnit> */
189 var35 = var_ecc->attrs[COLOR_nit__c_tools__CCompilationUnit___body_impl].val; /* _body_impl on <var_ecc:CCompilationUnit> */
190 if (unlikely(var35 == NULL)) {
191 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_impl");
192 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 44);
193 fatal_exit(1);
194 }
195 var33 = var35;
196 RET_LABEL34:(void)0;
197 }
198 }
199 {
200 var36 = nit__light_ffi_base___AExternCodeBlock___code(var_block);
201 }
202 {
203 template___template__Template___add(var33, var36); /* Direct call template#Template#add on <var33:Template>*/
204 }
205 } else {
206 }
207 }
208 RET_LABEL:;
209 }
210 /* method light_c#CLanguage#compile_extern_method for (self: CLanguage, AExternCodeBlock, AMethPropdef, CCompilationUnit, MModule) */
211 void nit___nit__CLanguage___nit__light_ffi_base__FFILanguage__compile_extern_method(val* self, val* p0, val* p1, val* p2, val* p3) {
212 val* var_block /* var block: AExternCodeBlock */;
213 val* var_m /* var m: AMethPropdef */;
214 val* var_ecc /* var ecc: CCompilationUnit */;
215 val* var_mmodule /* var mmodule: MModule */;
216 val* var /* : ExternCFunction */;
217 val* var_fc /* var fc: ExternCFunction */;
218 val* var1 /* : Template */;
219 val* var3 /* : Template */;
220 val* var4 /* : Location */;
221 val* var6 /* : Location */;
222 val* var7 /* : String */;
223 val* var8 /* : Template */;
224 val* var10 /* : Template */;
225 val* var11 /* : String */;
226 var_block = p0;
227 var_m = p1;
228 var_ecc = p2;
229 var_mmodule = p3;
230 var = NEW_nit__ExternCFunction(&type_nit__ExternCFunction);
231 {
232 nit___nit__ExternCFunction___init(var, var_m, var_mmodule); /* Direct call light_c#ExternCFunction#init on <var:ExternCFunction>*/
233 }
234 var_fc = var;
235 {
236 { /* Inline c_tools#CFunction#decls (var_fc) on <var_fc:ExternCFunction> */
237 var3 = var_fc->attrs[COLOR_nit__c_tools__CFunction___decls].val; /* _decls on <var_fc:ExternCFunction> */
238 if (unlikely(var3 == NULL)) {
239 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _decls");
240 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 88);
241 fatal_exit(1);
242 }
243 var1 = var3;
244 RET_LABEL2:(void)0;
245 }
246 }
247 {
248 { /* Inline parser_nodes#ANode#location (var_block) on <var_block:AExternCodeBlock> */
249 var6 = var_block->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <var_block:AExternCodeBlock> */
250 if (unlikely(var6 == NULL)) {
251 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
252 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 24);
253 fatal_exit(1);
254 }
255 var4 = var6;
256 RET_LABEL5:(void)0;
257 }
258 }
259 {
260 var7 = nit__light_c___Location___as_line_pragma(var4);
261 }
262 {
263 template___template__Template___add(var1, var7); /* Direct call template#Template#add on <var1:Template>*/
264 }
265 {
266 { /* Inline c_tools#CFunction#exprs (var_fc) on <var_fc:ExternCFunction> */
267 var10 = var_fc->attrs[COLOR_nit__c_tools__CFunction___exprs].val; /* _exprs on <var_fc:ExternCFunction> */
268 if (unlikely(var10 == NULL)) {
269 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _exprs");
270 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 89);
271 fatal_exit(1);
272 }
273 var8 = var10;
274 RET_LABEL9:(void)0;
275 }
276 }
277 {
278 var11 = nit__light_ffi_base___AExternCodeBlock___code(var_block);
279 }
280 {
281 template___template__Template___add(var8, var11); /* Direct call template#Template#add on <var8:Template>*/
282 }
283 {
284 nit___nit__CCompilationUnit___add_exported_function(var_ecc, var_fc); /* Direct call c_tools#CCompilationUnit#add_exported_function on <var_ecc:CCompilationUnit>*/
285 }
286 RET_LABEL:;
287 }
288 /* method light_c#CLanguage#compile_extern_class for (self: CLanguage, AExternCodeBlock, AClassdef, CCompilationUnit, MModule) */
289 void nit___nit__CLanguage___nit__light_ffi_base__FFILanguage__compile_extern_class(val* self, val* p0, val* p1, val* p2, val* p3) {
290 val* var_block /* var block: AExternCodeBlock */;
291 val* var_m /* var m: AClassdef */;
292 val* var_ecc /* var ecc: CCompilationUnit */;
293 val* var_mmodule /* var mmodule: MModule */;
294 var_block = p0;
295 var_m = p1;
296 var_ecc = p2;
297 var_mmodule = p3;
298 RET_LABEL:;
299 }
300 /* method light_c#CLanguage#get_ftype for (self: CLanguage, AExternCodeBlock, AClassdef): ForeignType */
301 val* nit___nit__CLanguage___nit__light_ffi_base__FFILanguage__get_ftype(val* self, val* p0, val* p1) {
302 val* var /* : ForeignType */;
303 val* var_block /* var block: AExternCodeBlock */;
304 val* var_m /* var m: AClassdef */;
305 val* var1 /* : ForeignCType */;
306 val* var2 /* : String */;
307 var_block = p0;
308 var_m = p1;
309 var1 = NEW_nit__ForeignCType(&type_nit__ForeignCType);
310 {
311 var2 = nit__light_ffi_base___AExternCodeBlock___code(var_block);
312 }
313 {
314 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_nit__light_c__ForeignCType__ctype_61d]))(var1, var2); /* ctype= on <var1:ForeignCType>*/
315 }
316 {
317 ((void(*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1); /* init on <var1:ForeignCType>*/
318 }
319 var = var1;
320 goto RET_LABEL;
321 RET_LABEL:;
322 return var;
323 }
324 /* method light_c#AExternCodeBlock#is_c for (self: AExternCodeBlock): Bool */
325 short int nit__light_c___AExternCodeBlock___is_c(val* self) {
326 short int var /* : Bool */;
327 short int var1 /* : Bool */;
328 short int var2 /* : Bool */;
329 val* var3 /* : nullable String */;
330 short int var4 /* : Bool */;
331 short int var5 /* : Bool */;
332 short int var_ /* var : Bool */;
333 val* var6 /* : nullable String */;
334 static val* varonce;
335 val* var7 /* : String */;
336 char* var8 /* : NativeString */;
337 val* var9 /* : FlatString */;
338 short int var10 /* : Bool */;
339 short int var11 /* : Bool */;
340 short int var_12 /* var : Bool */;
341 val* var13 /* : nullable String */;
342 static val* varonce14;
343 val* var15 /* : String */;
344 char* var16 /* : NativeString */;
345 val* var17 /* : FlatString */;
346 short int var18 /* : Bool */;
347 {
348 var3 = nit__light_ffi_base___AExternCodeBlock___language_name(self);
349 }
350 if (var3 == NULL) {
351 var4 = 1; /* is null */
352 } else {
353 var4 = 0; /* arg is null but recv is not */
354 }
355 if (0) {
356 var5 = ((short int(*)(val* self, val* p0))(var3->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var3, ((val*)NULL)); /* == on <var3:nullable String>*/
357 var4 = var5;
358 }
359 var_ = var4;
360 if (var4){
361 var2 = var_;
362 } else {
363 {
364 var6 = nit__light_ffi_base___AExternCodeBlock___language_name_lowered(self);
365 }
366 if (likely(varonce!=NULL)) {
367 var7 = varonce;
368 } else {
369 var8 = "c";
370 var9 = standard___standard__NativeString___to_s_with_length(var8, 1l);
371 var7 = var9;
372 varonce = var7;
373 }
374 if (var6 == NULL) {
375 var10 = 0; /* <var7:String> cannot be null */
376 } else {
377 var11 = ((short int(*)(val* self, val* p0))(var6->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var6, var7); /* == on <var6:nullable String>*/
378 var10 = var11;
379 }
380 var2 = var10;
381 }
382 var_12 = var2;
383 if (var2){
384 var1 = var_12;
385 } else {
386 {
387 var13 = nit__light_ffi_base___AExternCodeBlock___language_name_lowered(self);
388 }
389 if (likely(varonce14!=NULL)) {
390 var15 = varonce14;
391 } else {
392 var16 = "c ";
393 var17 = standard___standard__NativeString___to_s_with_length(var16, 2l);
394 var15 = var17;
395 varonce14 = var15;
396 }
397 if (var13 == NULL) {
398 PRINT_ERROR("Runtime error: %s", "Receiver is null");
399 PRINT_ERROR(" (%s:%d)\n", FILE_nit__light_c, 61);
400 fatal_exit(1);
401 } else {
402 var18 = standard___standard__Text___has_prefix(var13, var15);
403 }
404 var1 = var18;
405 }
406 var = var1;
407 goto RET_LABEL;
408 RET_LABEL:;
409 return var;
410 }
411 /* method light_c#AExternCodeBlock#is_c_body for (self: AExternCodeBlock): Bool */
412 short int nit__light_c___AExternCodeBlock___is_c_body(val* self) {
413 short int var /* : Bool */;
414 short int var1 /* : Bool */;
415 short int var2 /* : Bool */;
416 val* var3 /* : nullable String */;
417 short int var4 /* : Bool */;
418 short int var5 /* : Bool */;
419 short int var_ /* var : Bool */;
420 val* var6 /* : nullable String */;
421 static val* varonce;
422 val* var7 /* : String */;
423 char* var8 /* : NativeString */;
424 val* var9 /* : FlatString */;
425 short int var10 /* : Bool */;
426 short int var11 /* : Bool */;
427 short int var_12 /* var : Bool */;
428 val* var13 /* : nullable String */;
429 static val* varonce14;
430 val* var15 /* : String */;
431 char* var16 /* : NativeString */;
432 val* var17 /* : FlatString */;
433 short int var18 /* : Bool */;
434 short int var19 /* : Bool */;
435 {
436 var3 = nit__light_ffi_base___AExternCodeBlock___language_name(self);
437 }
438 if (var3 == NULL) {
439 var4 = 1; /* is null */
440 } else {
441 var4 = 0; /* arg is null but recv is not */
442 }
443 if (0) {
444 var5 = ((short int(*)(val* self, val* p0))(var3->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var3, ((val*)NULL)); /* == on <var3:nullable String>*/
445 var4 = var5;
446 }
447 var_ = var4;
448 if (var4){
449 var2 = var_;
450 } else {
451 {
452 var6 = nit__light_ffi_base___AExternCodeBlock___language_name_lowered(self);
453 }
454 if (likely(varonce!=NULL)) {
455 var7 = varonce;
456 } else {
457 var8 = "c";
458 var9 = standard___standard__NativeString___to_s_with_length(var8, 1l);
459 var7 = var9;
460 varonce = var7;
461 }
462 if (var6 == NULL) {
463 var10 = 0; /* <var7:String> cannot be null */
464 } else {
465 var11 = ((short int(*)(val* self, val* p0))(var6->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var6, var7); /* == on <var6:nullable String>*/
466 var10 = var11;
467 }
468 var2 = var10;
469 }
470 var_12 = var2;
471 if (var2){
472 var1 = var_12;
473 } else {
474 {
475 var13 = nit__light_ffi_base___AExternCodeBlock___language_name_lowered(self);
476 }
477 if (likely(varonce14!=NULL)) {
478 var15 = varonce14;
479 } else {
480 var16 = "c body";
481 var17 = standard___standard__NativeString___to_s_with_length(var16, 6l);
482 var15 = var17;
483 varonce14 = var15;
484 }
485 if (var13 == NULL) {
486 var18 = 0; /* <var15:String> cannot be null */
487 } else {
488 var19 = ((short int(*)(val* self, val* p0))(var13->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var13, var15); /* == on <var13:nullable String>*/
489 var18 = var19;
490 }
491 var1 = var18;
492 }
493 var = var1;
494 goto RET_LABEL;
495 RET_LABEL:;
496 return var;
497 }
498 /* method light_c#AExternCodeBlock#is_c_header for (self: AExternCodeBlock): Bool */
499 short int nit__light_c___AExternCodeBlock___is_c_header(val* self) {
500 short int var /* : Bool */;
501 val* var1 /* : nullable String */;
502 static val* varonce;
503 val* var2 /* : String */;
504 char* var3 /* : NativeString */;
505 val* var4 /* : FlatString */;
506 short int var5 /* : Bool */;
507 short int var6 /* : Bool */;
508 {
509 var1 = nit__light_ffi_base___AExternCodeBlock___language_name_lowered(self);
510 }
511 if (likely(varonce!=NULL)) {
512 var2 = varonce;
513 } else {
514 var3 = "c header";
515 var4 = standard___standard__NativeString___to_s_with_length(var3, 8l);
516 var2 = var4;
517 varonce = var2;
518 }
519 if (var1 == NULL) {
520 var5 = 0; /* <var2:String> cannot be null */
521 } else {
522 var6 = ((short int(*)(val* self, val* p0))(var1->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var1, var2); /* == on <var1:nullable String>*/
523 var5 = var6;
524 }
525 var = var5;
526 goto RET_LABEL;
527 RET_LABEL:;
528 return var;
529 }
530 /* method light_c#Location#as_line_pragma for (self: Location): String */
531 val* nit__light_c___Location___as_line_pragma(val* self) {
532 val* var /* : String */;
533 val* var1 /* : NativeArray[String] */;
534 static val* varonce;
535 static val* varonce2;
536 val* var3 /* : String */;
537 char* var4 /* : NativeString */;
538 val* var5 /* : FlatString */;
539 static val* varonce6;
540 val* var7 /* : String */;
541 char* var8 /* : NativeString */;
542 val* var9 /* : FlatString */;
543 static val* varonce10;
544 val* var11 /* : String */;
545 char* var12 /* : NativeString */;
546 val* var13 /* : FlatString */;
547 long var14 /* : Int */;
548 long var16 /* : Int */;
549 long var17 /* : Int */;
550 short int var19 /* : Bool */;
551 int cltype;
552 int idtype;
553 const char* var_class_name;
554 long var20 /* : Int */;
555 val* var21 /* : String */;
556 val* var22 /* : nullable SourceFile */;
557 val* var24 /* : nullable SourceFile */;
558 val* var25 /* : String */;
559 val* var27 /* : String */;
560 val* var28 /* : String */;
561 if (unlikely(varonce==NULL)) {
562 var1 = NEW_standard__NativeArray(5l, &type_standard__NativeArray__standard__String);
563 if (likely(varonce2!=NULL)) {
564 var3 = varonce2;
565 } else {
566 var4 = "#line ";
567 var5 = standard___standard__NativeString___to_s_with_length(var4, 6l);
568 var3 = var5;
569 varonce2 = var3;
570 }
571 ((struct instance_standard__NativeArray*)var1)->values[0]=var3;
572 if (likely(varonce6!=NULL)) {
573 var7 = varonce6;
574 } else {
575 var8 = " \"";
576 var9 = standard___standard__NativeString___to_s_with_length(var8, 2l);
577 var7 = var9;
578 varonce6 = var7;
579 }
580 ((struct instance_standard__NativeArray*)var1)->values[2]=var7;
581 if (likely(varonce10!=NULL)) {
582 var11 = varonce10;
583 } else {
584 var12 = "\"\n";
585 var13 = standard___standard__NativeString___to_s_with_length(var12, 2l);
586 var11 = var13;
587 varonce10 = var11;
588 }
589 ((struct instance_standard__NativeArray*)var1)->values[4]=var11;
590 } else {
591 var1 = varonce;
592 varonce = NULL;
593 }
594 {
595 { /* Inline location#Location#line_start (self) on <self:Location> */
596 var16 = self->attrs[COLOR_nit__location__Location___line_start].l; /* _line_start on <self:Location> */
597 var14 = var16;
598 RET_LABEL15:(void)0;
599 }
600 }
601 {
602 { /* Inline kernel#Int#- (var14,1l) on <var14:Int> */
603 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
604 /* <1l:Int> isa OTHER */
605 var19 = 1; /* easy <1l:Int> isa OTHER*/
606 if (unlikely(!var19)) {
607 var_class_name = type_standard__Int.name;
608 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
609 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
610 fatal_exit(1);
611 }
612 var20 = var14 - 1l;
613 var17 = var20;
614 goto RET_LABEL18;
615 RET_LABEL18:(void)0;
616 }
617 }
618 var21 = standard__string___Int___Object__to_s(var17);
619 ((struct instance_standard__NativeArray*)var1)->values[1]=var21;
620 {
621 { /* Inline location#Location#file (self) on <self:Location> */
622 var24 = self->attrs[COLOR_nit__location__Location___file].val; /* _file on <self:Location> */
623 var22 = var24;
624 RET_LABEL23:(void)0;
625 }
626 }
627 if (var22 == NULL) {
628 PRINT_ERROR("Runtime error: %s", "Receiver is null");
629 PRINT_ERROR(" (%s:%d)\n", FILE_nit__light_c, 70);
630 fatal_exit(1);
631 } else {
632 { /* Inline location#SourceFile#filename (var22) on <var22:nullable SourceFile> */
633 if (unlikely(var22 == NULL)) {
634 PRINT_ERROR("Runtime error: %s", "Receiver is null");
635 PRINT_ERROR(" (%s:%d)\n", FILE_nit__location, 22);
636 fatal_exit(1);
637 }
638 var27 = var22->attrs[COLOR_nit__location__SourceFile___filename].val; /* _filename on <var22:nullable SourceFile> */
639 if (unlikely(var27 == NULL)) {
640 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
641 PRINT_ERROR(" (%s:%d)\n", FILE_nit__location, 22);
642 fatal_exit(1);
643 }
644 var25 = var27;
645 RET_LABEL26:(void)0;
646 }
647 }
648 ((struct instance_standard__NativeArray*)var1)->values[3]=var25;
649 {
650 var28 = ((val*(*)(val* self))(var1->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1); /* native_to_s on <var1:NativeArray[String]>*/
651 }
652 varonce = var1;
653 var = var28;
654 goto RET_LABEL;
655 RET_LABEL:;
656 return var;
657 }
658 /* method light_c#MModule#cflags for (self: MModule): MultiHashMap[String, String] */
659 val* nit__light_c___MModule___cflags(val* self) {
660 val* var /* : MultiHashMap[String, String] */;
661 val* var1 /* : MultiHashMap[String, String] */;
662 var1 = self->attrs[COLOR_nit__light_c__MModule___cflags].val; /* _cflags on <self:MModule> */
663 if (unlikely(var1 == NULL)) {
664 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cflags");
665 PRINT_ERROR(" (%s:%d)\n", FILE_nit__light_c, 77);
666 fatal_exit(1);
667 }
668 var = var1;
669 RET_LABEL:;
670 return var;
671 }
672 /* method light_c#MModule#ldflags for (self: MModule): MultiHashMap[String, String] */
673 val* nit__light_c___MModule___ldflags(val* self) {
674 val* var /* : MultiHashMap[String, String] */;
675 val* var1 /* : MultiHashMap[String, String] */;
676 var1 = self->attrs[COLOR_nit__light_c__MModule___ldflags].val; /* _ldflags on <self:MModule> */
677 if (unlikely(var1 == NULL)) {
678 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ldflags");
679 PRINT_ERROR(" (%s:%d)\n", FILE_nit__light_c, 80);
680 fatal_exit(1);
681 }
682 var = var1;
683 RET_LABEL:;
684 return var;
685 }
686 /* method light_c#MModule#pkgconfigs for (self: MModule): Array[String] */
687 val* nit__light_c___MModule___pkgconfigs(val* self) {
688 val* var /* : Array[String] */;
689 val* var1 /* : Array[String] */;
690 var1 = self->attrs[COLOR_nit__light_c__MModule___pkgconfigs].val; /* _pkgconfigs on <self:MModule> */
691 if (unlikely(var1 == NULL)) {
692 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _pkgconfigs");
693 PRINT_ERROR(" (%s:%d)\n", FILE_nit__light_c, 83);
694 fatal_exit(1);
695 }
696 var = var1;
697 RET_LABEL:;
698 return var;
699 }
700 /* method light_c#ForeignCType#ctype for (self: ForeignCType): String */
701 val* nit___nit__ForeignCType___nit__light_ffi_base__ForeignType__ctype(val* self) {
702 val* var /* : String */;
703 val* var1 /* : String */;
704 var1 = self->attrs[COLOR_nit__light_c__ForeignCType___ctype].val; /* _ctype on <self:ForeignCType> */
705 if (unlikely(var1 == NULL)) {
706 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ctype");
707 PRINT_ERROR(" (%s:%d)\n", FILE_nit__light_c, 91);
708 fatal_exit(1);
709 }
710 var = var1;
711 RET_LABEL:;
712 return var;
713 }
714 /* method light_c#ForeignCType#ctype= for (self: ForeignCType, String) */
715 void nit___nit__ForeignCType___ctype_61d(val* self, val* p0) {
716 self->attrs[COLOR_nit__light_c__ForeignCType___ctype].val = p0; /* _ctype on <self:ForeignCType> */
717 RET_LABEL:;
718 }
719 /* method light_c#ForeignCType#init for (self: ForeignCType) */
720 void nit___nit__ForeignCType___standard__kernel__Object__init(val* self) {
721 {
722 ((void(*)(val* self))(self->class->vft[COLOR_nit___nit__ForeignCType___standard__kernel__Object__init]))(self); /* init on <self:ForeignCType>*/
723 }
724 RET_LABEL:;
725 }
726 /* method light_c#Object#from_c_call_context for (self: Object): FromCCallContext */
727 val* nit__light_c___standard__Object___from_c_call_context(val* self) {
728 val* var /* : FromCCallContext */;
729 static val* varonce;
730 static int varonce_guard;
731 val* var1 /* : FromCCallContext */;
732 val* var2 /* : FromCCallContext */;
733 if (likely(varonce_guard)) {
734 var1 = varonce;
735 } else {
736 var2 = NEW_nit__FromCCallContext(&type_nit__FromCCallContext);
737 {
738 { /* Inline kernel#Object#init (var2) on <var2:FromCCallContext> */
739 RET_LABEL3:(void)0;
740 }
741 }
742 var1 = var2;
743 varonce = var1;
744 varonce_guard = 1;
745 }
746 var = var1;
747 goto RET_LABEL;
748 RET_LABEL:;
749 return var;
750 }
751 /* method light_c#FromCCallContext#name_mtype for (self: FromCCallContext, MType): String */
752 val* nit___nit__FromCCallContext___nit__nitni_utilities__CallContext__name_mtype(val* self, val* p0) {
753 val* var /* : String */;
754 val* var_mtype /* var mtype: MType */;
755 val* var1 /* : String */;
756 var_mtype = p0;
757 {
758 var1 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nit__nitni_base__MType__cname]))(var_mtype); /* cname on <var_mtype:MType>*/
759 }
760 var = var1;
761 goto RET_LABEL;
762 RET_LABEL:;
763 return var;
764 }
765 /* method light_c#ExternCFunction#method= for (self: ExternCFunction, AMethPropdef) */
766 void nit___nit__ExternCFunction___method_61d(val* self, val* p0) {
767 self->attrs[COLOR_nit__light_c__ExternCFunction___method].val = p0; /* _method on <self:ExternCFunction> */
768 RET_LABEL:;
769 }
770 /* method light_c#ExternCFunction#init for (self: ExternCFunction, AMethPropdef, MModule) */
771 void nit___nit__ExternCFunction___init(val* self, val* p0, val* p1) {
772 val* var_method /* var method: AMethPropdef */;
773 val* var_mmodule /* var mmodule: MModule */;
774 val* var /* : nullable MPropDef */;
775 val* var3 /* : nullable MPropDef */;
776 val* var4 /* : MClassDef */;
777 val* var6 /* : MClassDef */;
778 val* var7 /* : MClassType */;
779 val* var9 /* : MClassType */;
780 val* var_recv_mtype /* var recv_mtype: MClassType */;
781 val* var10 /* : nullable MPropDef */;
782 val* var12 /* : nullable MPropDef */;
783 val* var13 /* : MProperty */;
784 val* var15 /* : MProperty */;
785 static val* varonce;
786 val* var16 /* : String */;
787 char* var17 /* : NativeString */;
788 val* var18 /* : FlatString */;
789 val* var19 /* : SignatureLength */;
790 val* var20 /* : FromCCallContext */;
791 val* var21 /* : String */;
792 val* var_csignature /* var csignature: String */;
793 var_method = p0;
794 var_mmodule = p1;
795 {
796 { /* Inline light_c#ExternCFunction#method= (self,var_method) on <self:ExternCFunction> */
797 self->attrs[COLOR_nit__light_c__ExternCFunction___method].val = var_method; /* _method on <self:ExternCFunction> */
798 RET_LABEL1:(void)0;
799 }
800 }
801 {
802 { /* Inline modelize_property#APropdef#mpropdef (var_method) on <var_method:AMethPropdef> */
803 var3 = var_method->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <var_method:AMethPropdef> */
804 var = var3;
805 RET_LABEL2:(void)0;
806 }
807 }
808 if (var == NULL) {
809 PRINT_ERROR("Runtime error: %s", "Receiver is null");
810 PRINT_ERROR(" (%s:%d)\n", FILE_nit__light_c, 133);
811 fatal_exit(1);
812 } else {
813 { /* Inline model#MPropDef#mclassdef (var) on <var:nullable MPropDef(nullable MMethodDef)> */
814 if (unlikely(var == NULL)) {
815 PRINT_ERROR("Runtime error: %s", "Receiver is null");
816 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209);
817 fatal_exit(1);
818 }
819 var6 = var->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var:nullable MPropDef(nullable MMethodDef)> */
820 if (unlikely(var6 == NULL)) {
821 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
822 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2209);
823 fatal_exit(1);
824 }
825 var4 = var6;
826 RET_LABEL5:(void)0;
827 }
828 }
829 {
830 { /* Inline model#MClassDef#bound_mtype (var4) on <var4:MClassDef> */
831 var9 = var4->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var4:MClassDef> */
832 if (unlikely(var9 == NULL)) {
833 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
834 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 556);
835 fatal_exit(1);
836 }
837 var7 = var9;
838 RET_LABEL8:(void)0;
839 }
840 }
841 var_recv_mtype = var7;
842 {
843 { /* Inline modelize_property#APropdef#mpropdef (var_method) on <var_method:AMethPropdef> */
844 var12 = var_method->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <var_method:AMethPropdef> */
845 var10 = var12;
846 RET_LABEL11:(void)0;
847 }
848 }
849 if (var10 == NULL) {
850 PRINT_ERROR("Runtime error: %s", "Receiver is null");
851 PRINT_ERROR(" (%s:%d)\n", FILE_nit__light_c, 134);
852 fatal_exit(1);
853 } else {
854 { /* Inline model#MPropDef#mproperty (var10) on <var10:nullable MPropDef(nullable MMethodDef)> */
855 if (unlikely(var10 == NULL)) {
856 PRINT_ERROR("Runtime error: %s", "Receiver is null");
857 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
858 fatal_exit(1);
859 }
860 var15 = var10->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var10:nullable MPropDef(nullable MMethodDef)> */
861 if (unlikely(var15 == NULL)) {
862 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
863 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2212);
864 fatal_exit(1);
865 }
866 var13 = var15;
867 RET_LABEL14:(void)0;
868 }
869 }
870 if (likely(varonce!=NULL)) {
871 var16 = varonce;
872 } else {
873 var17 = "___impl";
874 var18 = standard___standard__NativeString___to_s_with_length(var17, 7l);
875 var16 = var18;
876 varonce = var16;
877 }
878 {
879 var19 = nit__nitni_utilities___standard__Object___long_signature(self);
880 }
881 {
882 var20 = nit__light_c___standard__Object___from_c_call_context(self);
883 }
884 {
885 var21 = nit__nitni_utilities___MMethod___build_csignature(var13, var_recv_mtype, var_mmodule, var16, var19, var20);
886 }
887 var_csignature = var21;
888 {
889 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nit__c_tools__CFunction__signature_61d]))(self, var_csignature); /* signature= on <self:ExternCFunction>*/
890 }
891 {
892 ((void(*)(val* self))(self->class->vft[COLOR_standard__kernel__Object__init]))(self); /* init on <self:ExternCFunction>*/
893 }
894 RET_LABEL:;
895 }