NOTICE: Update author list and years
[nit.git] / c_src / nitc__light_c.sep.1.c
1 #include "nitc__light_c.sep.0.h"
2 /* method light_c#CLanguage#identify_language for (self: CLanguage, AExternCodeBlock): Bool */
3 short int nitc___nitc__CLanguage___nitc__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 = nitc__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 nitc___nitc__CLanguage___nitc__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 /* : String */;
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 /* : String */;
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 = nitc__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_nitc__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_nitc__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_nitc__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_nitc__parser_nodes, 24);
76 fatal_exit(1);
77 }
78 var4 = var6;
79 RET_LABEL5:(void)0;
80 }
81 }
82 {
83 var7 = nitc__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_nitc__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_nitc__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 = core__flat___NativeString___to_s_full(var12, 1l, 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_nitc__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_nitc__c_tools, 28);
117 fatal_exit(1);
118 }
119 var14 = var16;
120 RET_LABEL15:(void)0;
121 }
122 }
123 {
124 var17 = nitc__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 = nitc__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_nitc__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_nitc__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_nitc__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_nitc__parser_nodes, 24);
152 fatal_exit(1);
153 }
154 var22 = var24;
155 RET_LABEL23:(void)0;
156 }
157 }
158 {
159 var25 = nitc__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_nitc__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_nitc__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 = core__flat___NativeString___to_s_full(var31, 1l, 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_nitc__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_nitc__c_tools, 44);
193 fatal_exit(1);
194 }
195 var33 = var35;
196 RET_LABEL34:(void)0;
197 }
198 }
199 {
200 var36 = nitc__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 nitc___nitc__CLanguage___nitc__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 val* var12 /* : Template */;
227 val* var14 /* : Template */;
228 val* var15 /* : Template */;
229 var_block = p0;
230 var_m = p1;
231 var_ecc = p2;
232 var_mmodule = p3;
233 var = NEW_nitc__ExternCFunction(&type_nitc__ExternCFunction);
234 {
235 nitc___nitc__ExternCFunction___init(var, var_m, var_mmodule); /* Direct call light_c#ExternCFunction#init on <var:ExternCFunction>*/
236 }
237 var_fc = var;
238 {
239 { /* Inline c_tools#CFunction#decls (var_fc) on <var_fc:ExternCFunction> */
240 var3 = var_fc->attrs[COLOR_nitc__c_tools__CFunction___decls].val; /* _decls on <var_fc:ExternCFunction> */
241 if (unlikely(var3 == NULL)) {
242 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _decls");
243 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools, 88);
244 fatal_exit(1);
245 }
246 var1 = var3;
247 RET_LABEL2:(void)0;
248 }
249 }
250 {
251 { /* Inline parser_nodes#ANode#location (var_block) on <var_block:AExternCodeBlock> */
252 var6 = var_block->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <var_block:AExternCodeBlock> */
253 if (unlikely(var6 == NULL)) {
254 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
255 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 24);
256 fatal_exit(1);
257 }
258 var4 = var6;
259 RET_LABEL5:(void)0;
260 }
261 }
262 {
263 var7 = nitc__light_c___Location___as_line_pragma(var4);
264 }
265 {
266 template___template__Template___add(var1, var7); /* Direct call template#Template#add on <var1:Template>*/
267 }
268 {
269 { /* Inline c_tools#CFunction#exprs (var_fc) on <var_fc:ExternCFunction> */
270 var10 = var_fc->attrs[COLOR_nitc__c_tools__CFunction___exprs].val; /* _exprs on <var_fc:ExternCFunction> */
271 if (unlikely(var10 == NULL)) {
272 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _exprs");
273 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools, 89);
274 fatal_exit(1);
275 }
276 var8 = var10;
277 RET_LABEL9:(void)0;
278 }
279 }
280 {
281 var11 = nitc__light_ffi_base___AExternCodeBlock___code(var_block);
282 }
283 {
284 template___template__Template___add(var8, var11); /* Direct call template#Template#add on <var8:Template>*/
285 }
286 {
287 { /* Inline c_tools#CCompilationUnit#body_impl (var_ecc) on <var_ecc:CCompilationUnit> */
288 var14 = var_ecc->attrs[COLOR_nitc__c_tools__CCompilationUnit___body_impl].val; /* _body_impl on <var_ecc:CCompilationUnit> */
289 if (unlikely(var14 == NULL)) {
290 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_impl");
291 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__c_tools, 44);
292 fatal_exit(1);
293 }
294 var12 = var14;
295 RET_LABEL13:(void)0;
296 }
297 }
298 {
299 var15 = nitc___nitc__CFunction___to_writer(var_fc);
300 }
301 {
302 template___template__Template___add(var12, var15); /* Direct call template#Template#add on <var12:Template>*/
303 }
304 RET_LABEL:;
305 }
306 /* method light_c#CLanguage#compile_extern_class for (self: CLanguage, AExternCodeBlock, AClassdef, CCompilationUnit, MModule) */
307 void nitc___nitc__CLanguage___nitc__light_ffi_base__FFILanguage__compile_extern_class(val* self, val* p0, val* p1, val* p2, val* p3) {
308 val* var_block /* var block: AExternCodeBlock */;
309 val* var_m /* var m: AClassdef */;
310 val* var_ecc /* var ecc: CCompilationUnit */;
311 val* var_mmodule /* var mmodule: MModule */;
312 var_block = p0;
313 var_m = p1;
314 var_ecc = p2;
315 var_mmodule = p3;
316 RET_LABEL:;
317 }
318 /* method light_c#CLanguage#get_ftype for (self: CLanguage, AExternCodeBlock, AClassdef): ForeignType */
319 val* nitc___nitc__CLanguage___nitc__light_ffi_base__FFILanguage__get_ftype(val* self, val* p0, val* p1) {
320 val* var /* : ForeignType */;
321 val* var_block /* var block: AExternCodeBlock */;
322 val* var_m /* var m: AClassdef */;
323 val* var1 /* : ForeignCType */;
324 val* var2 /* : String */;
325 var_block = p0;
326 var_m = p1;
327 var1 = NEW_nitc__ForeignCType(&type_nitc__ForeignCType);
328 {
329 var2 = nitc__light_ffi_base___AExternCodeBlock___code(var_block);
330 }
331 {
332 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_nitc__light_c__ForeignCType__ctype_61d]))(var1, var2); /* ctype= on <var1:ForeignCType>*/
333 }
334 {
335 ((void(*)(val* self))(var1->class->vft[COLOR_core__kernel__Object__init]))(var1); /* init on <var1:ForeignCType>*/
336 }
337 var = var1;
338 goto RET_LABEL;
339 RET_LABEL:;
340 return var;
341 }
342 /* method light_c#AExternCodeBlock#is_c for (self: AExternCodeBlock): Bool */
343 short int nitc__light_c___AExternCodeBlock___is_c(val* self) {
344 short int var /* : Bool */;
345 short int var1 /* : Bool */;
346 short int var2 /* : Bool */;
347 val* var3 /* : nullable String */;
348 short int var4 /* : Bool */;
349 short int var5 /* : Bool */;
350 short int var_ /* var : Bool */;
351 val* var6 /* : nullable String */;
352 static val* varonce;
353 val* var7 /* : String */;
354 char* var8 /* : NativeString */;
355 val* var9 /* : String */;
356 short int var10 /* : Bool */;
357 short int var11 /* : Bool */;
358 short int var_12 /* var : Bool */;
359 val* var13 /* : nullable String */;
360 static val* varonce14;
361 val* var15 /* : String */;
362 char* var16 /* : NativeString */;
363 val* var17 /* : String */;
364 short int var18 /* : Bool */;
365 {
366 var3 = nitc__light_ffi_base___AExternCodeBlock___language_name(self);
367 }
368 if (var3 == NULL) {
369 var4 = 1; /* is null */
370 } else {
371 var4 = 0; /* arg is null but recv is not */
372 }
373 if (0) {
374 var5 = ((short int(*)(val* self, val* p0))(var3->class->vft[COLOR_core__kernel__Object___61d_61d]))(var3, ((val*)NULL)); /* == on <var3:nullable String>*/
375 var4 = var5;
376 }
377 var_ = var4;
378 if (var4){
379 var2 = var_;
380 } else {
381 {
382 var6 = nitc__light_ffi_base___AExternCodeBlock___language_name_lowered(self);
383 }
384 if (likely(varonce!=NULL)) {
385 var7 = varonce;
386 } else {
387 var8 = "c";
388 var9 = core__flat___NativeString___to_s_full(var8, 1l, 1l);
389 var7 = var9;
390 varonce = var7;
391 }
392 if (var6 == NULL) {
393 var10 = 0; /* <var7:String> cannot be null */
394 } else {
395 var11 = ((short int(*)(val* self, val* p0))(var6->class->vft[COLOR_core__kernel__Object___61d_61d]))(var6, var7); /* == on <var6:nullable String>*/
396 var10 = var11;
397 }
398 var2 = var10;
399 }
400 var_12 = var2;
401 if (var2){
402 var1 = var_12;
403 } else {
404 {
405 var13 = nitc__light_ffi_base___AExternCodeBlock___language_name_lowered(self);
406 }
407 if (likely(varonce14!=NULL)) {
408 var15 = varonce14;
409 } else {
410 var16 = "c ";
411 var17 = core__flat___NativeString___to_s_full(var16, 2l, 2l);
412 var15 = var17;
413 varonce14 = var15;
414 }
415 if (var13 == NULL) {
416 PRINT_ERROR("Runtime error: %s", "Receiver is null");
417 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_c, 61);
418 fatal_exit(1);
419 } else {
420 var18 = core___core__Text___has_prefix(var13, var15);
421 }
422 var1 = var18;
423 }
424 var = var1;
425 goto RET_LABEL;
426 RET_LABEL:;
427 return var;
428 }
429 /* method light_c#AExternCodeBlock#is_c_body for (self: AExternCodeBlock): Bool */
430 short int nitc__light_c___AExternCodeBlock___is_c_body(val* self) {
431 short int var /* : Bool */;
432 short int var1 /* : Bool */;
433 short int var2 /* : Bool */;
434 val* var3 /* : nullable String */;
435 short int var4 /* : Bool */;
436 short int var5 /* : Bool */;
437 short int var_ /* var : Bool */;
438 val* var6 /* : nullable String */;
439 static val* varonce;
440 val* var7 /* : String */;
441 char* var8 /* : NativeString */;
442 val* var9 /* : String */;
443 short int var10 /* : Bool */;
444 short int var11 /* : Bool */;
445 short int var_12 /* var : Bool */;
446 val* var13 /* : nullable String */;
447 static val* varonce14;
448 val* var15 /* : String */;
449 char* var16 /* : NativeString */;
450 val* var17 /* : String */;
451 short int var18 /* : Bool */;
452 short int var19 /* : Bool */;
453 {
454 var3 = nitc__light_ffi_base___AExternCodeBlock___language_name(self);
455 }
456 if (var3 == NULL) {
457 var4 = 1; /* is null */
458 } else {
459 var4 = 0; /* arg is null but recv is not */
460 }
461 if (0) {
462 var5 = ((short int(*)(val* self, val* p0))(var3->class->vft[COLOR_core__kernel__Object___61d_61d]))(var3, ((val*)NULL)); /* == on <var3:nullable String>*/
463 var4 = var5;
464 }
465 var_ = var4;
466 if (var4){
467 var2 = var_;
468 } else {
469 {
470 var6 = nitc__light_ffi_base___AExternCodeBlock___language_name_lowered(self);
471 }
472 if (likely(varonce!=NULL)) {
473 var7 = varonce;
474 } else {
475 var8 = "c";
476 var9 = core__flat___NativeString___to_s_full(var8, 1l, 1l);
477 var7 = var9;
478 varonce = var7;
479 }
480 if (var6 == NULL) {
481 var10 = 0; /* <var7:String> cannot be null */
482 } else {
483 var11 = ((short int(*)(val* self, val* p0))(var6->class->vft[COLOR_core__kernel__Object___61d_61d]))(var6, var7); /* == on <var6:nullable String>*/
484 var10 = var11;
485 }
486 var2 = var10;
487 }
488 var_12 = var2;
489 if (var2){
490 var1 = var_12;
491 } else {
492 {
493 var13 = nitc__light_ffi_base___AExternCodeBlock___language_name_lowered(self);
494 }
495 if (likely(varonce14!=NULL)) {
496 var15 = varonce14;
497 } else {
498 var16 = "c body";
499 var17 = core__flat___NativeString___to_s_full(var16, 6l, 6l);
500 var15 = var17;
501 varonce14 = var15;
502 }
503 if (var13 == NULL) {
504 var18 = 0; /* <var15:String> cannot be null */
505 } else {
506 var19 = ((short int(*)(val* self, val* p0))(var13->class->vft[COLOR_core__kernel__Object___61d_61d]))(var13, var15); /* == on <var13:nullable String>*/
507 var18 = var19;
508 }
509 var1 = var18;
510 }
511 var = var1;
512 goto RET_LABEL;
513 RET_LABEL:;
514 return var;
515 }
516 /* method light_c#AExternCodeBlock#is_c_header for (self: AExternCodeBlock): Bool */
517 short int nitc__light_c___AExternCodeBlock___is_c_header(val* self) {
518 short int var /* : Bool */;
519 val* var1 /* : nullable String */;
520 static val* varonce;
521 val* var2 /* : String */;
522 char* var3 /* : NativeString */;
523 val* var4 /* : String */;
524 short int var5 /* : Bool */;
525 short int var6 /* : Bool */;
526 {
527 var1 = nitc__light_ffi_base___AExternCodeBlock___language_name_lowered(self);
528 }
529 if (likely(varonce!=NULL)) {
530 var2 = varonce;
531 } else {
532 var3 = "c header";
533 var4 = core__flat___NativeString___to_s_full(var3, 8l, 8l);
534 var2 = var4;
535 varonce = var2;
536 }
537 if (var1 == NULL) {
538 var5 = 0; /* <var2:String> cannot be null */
539 } else {
540 var6 = ((short int(*)(val* self, val* p0))(var1->class->vft[COLOR_core__kernel__Object___61d_61d]))(var1, var2); /* == on <var1:nullable String>*/
541 var5 = var6;
542 }
543 var = var5;
544 goto RET_LABEL;
545 RET_LABEL:;
546 return var;
547 }
548 /* method light_c#Location#as_line_pragma for (self: Location): String */
549 val* nitc__light_c___Location___as_line_pragma(val* self) {
550 val* var /* : String */;
551 val* var1 /* : NativeArray[String] */;
552 static val* varonce;
553 static val* varonce2;
554 val* var3 /* : String */;
555 char* var4 /* : NativeString */;
556 val* var5 /* : String */;
557 static val* varonce6;
558 val* var7 /* : String */;
559 char* var8 /* : NativeString */;
560 val* var9 /* : String */;
561 static val* varonce10;
562 val* var11 /* : String */;
563 char* var12 /* : NativeString */;
564 val* var13 /* : String */;
565 long var14 /* : Int */;
566 long var16 /* : Int */;
567 long var17 /* : Int */;
568 short int var19 /* : Bool */;
569 int cltype;
570 int idtype;
571 const char* var_class_name;
572 long var20 /* : Int */;
573 val* var21 /* : String */;
574 val* var22 /* : nullable SourceFile */;
575 val* var24 /* : nullable SourceFile */;
576 val* var25 /* : String */;
577 val* var27 /* : String */;
578 val* var28 /* : String */;
579 if (unlikely(varonce==NULL)) {
580 var1 = NEW_core__NativeArray(5l, &type_core__NativeArray__core__String);
581 if (likely(varonce2!=NULL)) {
582 var3 = varonce2;
583 } else {
584 var4 = "#line ";
585 var5 = core__flat___NativeString___to_s_full(var4, 6l, 6l);
586 var3 = var5;
587 varonce2 = var3;
588 }
589 ((struct instance_core__NativeArray*)var1)->values[0]=var3;
590 if (likely(varonce6!=NULL)) {
591 var7 = varonce6;
592 } else {
593 var8 = " \"";
594 var9 = core__flat___NativeString___to_s_full(var8, 2l, 2l);
595 var7 = var9;
596 varonce6 = var7;
597 }
598 ((struct instance_core__NativeArray*)var1)->values[2]=var7;
599 if (likely(varonce10!=NULL)) {
600 var11 = varonce10;
601 } else {
602 var12 = "\"\n";
603 var13 = core__flat___NativeString___to_s_full(var12, 2l, 2l);
604 var11 = var13;
605 varonce10 = var11;
606 }
607 ((struct instance_core__NativeArray*)var1)->values[4]=var11;
608 } else {
609 var1 = varonce;
610 varonce = NULL;
611 }
612 {
613 { /* Inline location#Location#line_start (self) on <self:Location> */
614 var16 = self->attrs[COLOR_nitc__location__Location___line_start].l; /* _line_start on <self:Location> */
615 var14 = var16;
616 RET_LABEL15:(void)0;
617 }
618 }
619 {
620 { /* Inline kernel#Int#- (var14,1l) on <var14:Int> */
621 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
622 /* <1l:Int> isa OTHER */
623 var19 = 1; /* easy <1l:Int> isa OTHER*/
624 if (unlikely(!var19)) {
625 var_class_name = type_core__Int.name;
626 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
627 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 734);
628 fatal_exit(1);
629 }
630 var20 = var14 - 1l;
631 var17 = var20;
632 goto RET_LABEL18;
633 RET_LABEL18:(void)0;
634 }
635 }
636 var21 = core__flat___Int___core__abstract_text__Object__to_s(var17);
637 ((struct instance_core__NativeArray*)var1)->values[1]=var21;
638 {
639 { /* Inline location#Location#file (self) on <self:Location> */
640 var24 = self->attrs[COLOR_nitc__location__Location___file].val; /* _file on <self:Location> */
641 var22 = var24;
642 RET_LABEL23:(void)0;
643 }
644 }
645 if (var22 == NULL) {
646 PRINT_ERROR("Runtime error: %s", "Receiver is null");
647 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_c, 70);
648 fatal_exit(1);
649 } else {
650 { /* Inline location#SourceFile#filename (var22) on <var22:nullable SourceFile> */
651 if (unlikely(var22 == NULL)) {
652 PRINT_ERROR("Runtime error: %s", "Receiver is null");
653 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__location, 22);
654 fatal_exit(1);
655 }
656 var27 = var22->attrs[COLOR_nitc__location__SourceFile___filename].val; /* _filename on <var22:nullable SourceFile> */
657 if (unlikely(var27 == NULL)) {
658 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
659 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__location, 22);
660 fatal_exit(1);
661 }
662 var25 = var27;
663 RET_LABEL26:(void)0;
664 }
665 }
666 ((struct instance_core__NativeArray*)var1)->values[3]=var25;
667 {
668 var28 = ((val*(*)(val* self))(var1->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1); /* native_to_s on <var1:NativeArray[String]>*/
669 }
670 varonce = var1;
671 var = var28;
672 goto RET_LABEL;
673 RET_LABEL:;
674 return var;
675 }
676 /* method light_c#MModule#cflags for (self: MModule): MultiHashMap[String, String] */
677 val* nitc__light_c___MModule___cflags(val* self) {
678 val* var /* : MultiHashMap[String, String] */;
679 val* var1 /* : MultiHashMap[String, String] */;
680 var1 = self->attrs[COLOR_nitc__light_c__MModule___cflags].val; /* _cflags on <self:MModule> */
681 if (unlikely(var1 == NULL)) {
682 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cflags");
683 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_c, 77);
684 fatal_exit(1);
685 }
686 var = var1;
687 RET_LABEL:;
688 return var;
689 }
690 /* method light_c#MModule#ldflags for (self: MModule): MultiHashMap[String, String] */
691 val* nitc__light_c___MModule___ldflags(val* self) {
692 val* var /* : MultiHashMap[String, String] */;
693 val* var1 /* : MultiHashMap[String, String] */;
694 var1 = self->attrs[COLOR_nitc__light_c__MModule___ldflags].val; /* _ldflags on <self:MModule> */
695 if (unlikely(var1 == NULL)) {
696 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ldflags");
697 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_c, 80);
698 fatal_exit(1);
699 }
700 var = var1;
701 RET_LABEL:;
702 return var;
703 }
704 /* method light_c#MModule#pkgconfigs for (self: MModule): Array[String] */
705 val* nitc__light_c___MModule___pkgconfigs(val* self) {
706 val* var /* : Array[String] */;
707 val* var1 /* : Array[String] */;
708 var1 = self->attrs[COLOR_nitc__light_c__MModule___pkgconfigs].val; /* _pkgconfigs on <self:MModule> */
709 if (unlikely(var1 == NULL)) {
710 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _pkgconfigs");
711 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_c, 83);
712 fatal_exit(1);
713 }
714 var = var1;
715 RET_LABEL:;
716 return var;
717 }
718 /* method light_c#ForeignCType#ctype for (self: ForeignCType): String */
719 val* nitc___nitc__ForeignCType___nitc__light_ffi_base__ForeignType__ctype(val* self) {
720 val* var /* : String */;
721 val* var1 /* : String */;
722 var1 = self->attrs[COLOR_nitc__light_c__ForeignCType___ctype].val; /* _ctype on <self:ForeignCType> */
723 if (unlikely(var1 == NULL)) {
724 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ctype");
725 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_c, 91);
726 fatal_exit(1);
727 }
728 var = var1;
729 RET_LABEL:;
730 return var;
731 }
732 /* method light_c#ForeignCType#ctype= for (self: ForeignCType, String) */
733 void nitc___nitc__ForeignCType___ctype_61d(val* self, val* p0) {
734 self->attrs[COLOR_nitc__light_c__ForeignCType___ctype].val = p0; /* _ctype on <self:ForeignCType> */
735 RET_LABEL:;
736 }
737 /* method light_c#ForeignCType#init for (self: ForeignCType) */
738 void nitc___nitc__ForeignCType___core__kernel__Object__init(val* self) {
739 {
740 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__ForeignCType___core__kernel__Object__init]))(self); /* init on <self:ForeignCType>*/
741 }
742 RET_LABEL:;
743 }
744 /* method light_c#FromCCallContext#name_mtype for (self: FromCCallContext, MType): String */
745 val* nitc___nitc__FromCCallContext___nitc__nitni_utilities__CallContext__name_mtype(val* self, val* p0) {
746 val* var /* : String */;
747 val* var_mtype /* var mtype: MType */;
748 val* var1 /* : String */;
749 var_mtype = p0;
750 {
751 var1 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__nitni_base__MType__cname]))(var_mtype); /* cname on <var_mtype:MType>*/
752 }
753 var = var1;
754 goto RET_LABEL;
755 RET_LABEL:;
756 return var;
757 }
758 /* method light_c#ExternCFunction#method= for (self: ExternCFunction, AMethPropdef) */
759 void nitc___nitc__ExternCFunction___method_61d(val* self, val* p0) {
760 self->attrs[COLOR_nitc__light_c__ExternCFunction___method].val = p0; /* _method on <self:ExternCFunction> */
761 RET_LABEL:;
762 }
763 /* method light_c#ExternCFunction#init for (self: ExternCFunction, AMethPropdef, MModule) */
764 void nitc___nitc__ExternCFunction___init(val* self, val* p0, val* p1) {
765 val* var_method /* var method: AMethPropdef */;
766 val* var_mmodule /* var mmodule: MModule */;
767 val* var /* : nullable MPropDef */;
768 val* var3 /* : nullable MPropDef */;
769 val* var4 /* : MClassDef */;
770 val* var6 /* : MClassDef */;
771 val* var7 /* : MClassType */;
772 val* var9 /* : MClassType */;
773 val* var_recv_mtype /* var recv_mtype: MClassType */;
774 val* var10 /* : nullable MPropDef */;
775 val* var12 /* : nullable MPropDef */;
776 val* var13 /* : MProperty */;
777 val* var15 /* : MProperty */;
778 static val* varonce;
779 val* var16 /* : String */;
780 char* var17 /* : NativeString */;
781 val* var18 /* : String */;
782 val* var19 /* : Sys */;
783 val* var20 /* : SignatureLength */;
784 val* var21 /* : Sys */;
785 val* var22 /* : FromCCallContext */;
786 val* var23 /* : String */;
787 val* var_csignature /* var csignature: String */;
788 var_method = p0;
789 var_mmodule = p1;
790 {
791 { /* Inline light_c#ExternCFunction#method= (self,var_method) on <self:ExternCFunction> */
792 self->attrs[COLOR_nitc__light_c__ExternCFunction___method].val = var_method; /* _method on <self:ExternCFunction> */
793 RET_LABEL1:(void)0;
794 }
795 }
796 {
797 { /* Inline modelize_property#APropdef#mpropdef (var_method) on <var_method:AMethPropdef> */
798 var3 = var_method->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <var_method:AMethPropdef> */
799 var = var3;
800 RET_LABEL2:(void)0;
801 }
802 }
803 if (var == NULL) {
804 PRINT_ERROR("Runtime error: %s", "Receiver is null");
805 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_c, 131);
806 fatal_exit(1);
807 } else {
808 { /* Inline model#MPropDef#mclassdef (var) on <var:nullable MPropDef(nullable MMethodDef)> */
809 if (unlikely(var == NULL)) {
810 PRINT_ERROR("Runtime error: %s", "Receiver is null");
811 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
812 fatal_exit(1);
813 }
814 var6 = var->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var:nullable MPropDef(nullable MMethodDef)> */
815 if (unlikely(var6 == NULL)) {
816 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
817 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
818 fatal_exit(1);
819 }
820 var4 = var6;
821 RET_LABEL5:(void)0;
822 }
823 }
824 {
825 { /* Inline model#MClassDef#bound_mtype (var4) on <var4:MClassDef> */
826 var9 = var4->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var4:MClassDef> */
827 if (unlikely(var9 == NULL)) {
828 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
829 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 579);
830 fatal_exit(1);
831 }
832 var7 = var9;
833 RET_LABEL8:(void)0;
834 }
835 }
836 var_recv_mtype = var7;
837 {
838 { /* Inline modelize_property#APropdef#mpropdef (var_method) on <var_method:AMethPropdef> */
839 var12 = var_method->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <var_method:AMethPropdef> */
840 var10 = var12;
841 RET_LABEL11:(void)0;
842 }
843 }
844 if (var10 == NULL) {
845 PRINT_ERROR("Runtime error: %s", "Receiver is null");
846 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__light_c, 132);
847 fatal_exit(1);
848 } else {
849 { /* Inline model#MPropDef#mproperty (var10) on <var10:nullable MPropDef(nullable MMethodDef)> */
850 if (unlikely(var10 == NULL)) {
851 PRINT_ERROR("Runtime error: %s", "Receiver is null");
852 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
853 fatal_exit(1);
854 }
855 var15 = var10->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var10:nullable MPropDef(nullable MMethodDef)> */
856 if (unlikely(var15 == NULL)) {
857 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
858 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
859 fatal_exit(1);
860 }
861 var13 = var15;
862 RET_LABEL14:(void)0;
863 }
864 }
865 if (likely(varonce!=NULL)) {
866 var16 = varonce;
867 } else {
868 var17 = "___impl";
869 var18 = core__flat___NativeString___to_s_full(var17, 7l, 7l);
870 var16 = var18;
871 varonce = var16;
872 }
873 var19 = glob_sys;
874 {
875 var20 = nitc__nitni_utilities___core__Sys___long_signature(var19);
876 }
877 var21 = glob_sys;
878 {
879 var22 = nitc__light_c___core__Sys___from_c_call_context(var21);
880 }
881 {
882 var23 = nitc__nitni_utilities___MMethod___build_csignature(var13, var_recv_mtype, var_mmodule, var16, var20, var22);
883 }
884 var_csignature = var23;
885 {
886 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__c_tools__CFunction__signature_61d]))(self, var_csignature); /* signature= on <self:ExternCFunction>*/
887 }
888 {
889 ((void(*)(val* self))(self->class->vft[COLOR_core__kernel__Object__init]))(self); /* init on <self:ExternCFunction>*/
890 }
891 RET_LABEL:;
892 }
893 /* method light_c#Sys#from_c_call_context for (self: Sys): FromCCallContext */
894 val* nitc__light_c___core__Sys___from_c_call_context(val* self) {
895 val* var /* : FromCCallContext */;
896 static val* varonce;
897 static int varonce_guard;
898 val* var1 /* : FromCCallContext */;
899 val* var2 /* : FromCCallContext */;
900 if (likely(varonce_guard)) {
901 var1 = varonce;
902 } else {
903 var2 = NEW_nitc__FromCCallContext(&type_nitc__FromCCallContext);
904 {
905 { /* Inline kernel#Object#init (var2) on <var2:FromCCallContext> */
906 RET_LABEL3:(void)0;
907 }
908 }
909 var1 = var2;
910 varonce = var1;
911 varonce_guard = 1;
912 }
913 var = var1;
914 goto RET_LABEL;
915 RET_LABEL:;
916 return var;
917 }