README: document nit_env.sh
[nit.git] / c_src / nit__c_tools.sep.1.c
1 #include "nit__c_tools.sep.0.h"
2 /* method c_tools#CCompilationUnit#header_c_base for (self: CCompilationUnit): Template */
3 val* nit___nit__CCompilationUnit___header_c_base(val* self) {
4 val* var /* : Template */;
5 val* var1 /* : Template */;
6 var1 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___header_c_base].val; /* _header_c_base on <self:CCompilationUnit> */
7 if (unlikely(var1 == NULL)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header_c_base");
9 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 24);
10 fatal_exit(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method c_tools#CCompilationUnit#header_custom for (self: CCompilationUnit): Template */
17 val* nit___nit__CCompilationUnit___header_custom(val* self) {
18 val* var /* : Template */;
19 val* var1 /* : Template */;
20 var1 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___header_custom].val; /* _header_custom on <self:CCompilationUnit> */
21 if (unlikely(var1 == NULL)) {
22 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header_custom");
23 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 28);
24 fatal_exit(1);
25 }
26 var = var1;
27 RET_LABEL:;
28 return var;
29 }
30 /* method c_tools#CCompilationUnit#header_c_types for (self: CCompilationUnit): Template */
31 val* nit___nit__CCompilationUnit___header_c_types(val* self) {
32 val* var /* : Template */;
33 val* var1 /* : Template */;
34 var1 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___header_c_types].val; /* _header_c_types on <self:CCompilationUnit> */
35 if (unlikely(var1 == NULL)) {
36 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header_c_types");
37 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 31);
38 fatal_exit(1);
39 }
40 var = var1;
41 RET_LABEL:;
42 return var;
43 }
44 /* method c_tools#CCompilationUnit#header_decl for (self: CCompilationUnit): Template */
45 val* nit___nit__CCompilationUnit___header_decl(val* self) {
46 val* var /* : Template */;
47 val* var1 /* : Template */;
48 var1 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___header_decl].val; /* _header_decl on <self:CCompilationUnit> */
49 if (unlikely(var1 == NULL)) {
50 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header_decl");
51 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 34);
52 fatal_exit(1);
53 }
54 var = var1;
55 RET_LABEL:;
56 return var;
57 }
58 /* method c_tools#CCompilationUnit#body_decl for (self: CCompilationUnit): Template */
59 val* nit___nit__CCompilationUnit___body_decl(val* self) {
60 val* var /* : Template */;
61 val* var1 /* : Template */;
62 var1 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___body_decl].val; /* _body_decl on <self:CCompilationUnit> */
63 if (unlikely(var1 == NULL)) {
64 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_decl");
65 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 37);
66 fatal_exit(1);
67 }
68 var = var1;
69 RET_LABEL:;
70 return var;
71 }
72 /* method c_tools#CCompilationUnit#body_custom for (self: CCompilationUnit): Template */
73 val* nit___nit__CCompilationUnit___body_custom(val* self) {
74 val* var /* : Template */;
75 val* var1 /* : Template */;
76 var1 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___body_custom].val; /* _body_custom on <self:CCompilationUnit> */
77 if (unlikely(var1 == NULL)) {
78 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_custom");
79 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 41);
80 fatal_exit(1);
81 }
82 var = var1;
83 RET_LABEL:;
84 return var;
85 }
86 /* method c_tools#CCompilationUnit#body_impl for (self: CCompilationUnit): Template */
87 val* nit___nit__CCompilationUnit___body_impl(val* self) {
88 val* var /* : Template */;
89 val* var1 /* : Template */;
90 var1 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___body_impl].val; /* _body_impl on <self:CCompilationUnit> */
91 if (unlikely(var1 == NULL)) {
92 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_impl");
93 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 44);
94 fatal_exit(1);
95 }
96 var = var1;
97 RET_LABEL:;
98 return var;
99 }
100 /* method c_tools#CCompilationUnit#files for (self: CCompilationUnit): Array[String] */
101 val* nit___nit__CCompilationUnit___files(val* self) {
102 val* var /* : Array[String] */;
103 val* var1 /* : Array[String] */;
104 var1 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___files].val; /* _files on <self:CCompilationUnit> */
105 if (unlikely(var1 == NULL)) {
106 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files");
107 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 47);
108 fatal_exit(1);
109 }
110 var = var1;
111 RET_LABEL:;
112 return var;
113 }
114 /* method c_tools#CCompilationUnit#add_exported_function for (self: CCompilationUnit, CFunction) */
115 void nit___nit__CCompilationUnit___add_exported_function(val* self, val* p0) {
116 val* var_c_function /* var c_function: CFunction */;
117 val* var /* : Template */;
118 val* var2 /* : Template */;
119 val* var3 /* : NativeArray[String] */;
120 static val* varonce;
121 static val* varonce4;
122 val* var5 /* : String */;
123 char* var6 /* : NativeString */;
124 val* var7 /* : FlatString */;
125 val* var8 /* : String */;
126 val* var10 /* : String */;
127 val* var11 /* : String */;
128 val* var12 /* : Template */;
129 val* var14 /* : Template */;
130 static val* varonce15;
131 val* var16 /* : String */;
132 char* var17 /* : NativeString */;
133 val* var18 /* : FlatString */;
134 val* var19 /* : Template */;
135 val* var21 /* : Template */;
136 val* var22 /* : Template */;
137 var_c_function = p0;
138 {
139 { /* Inline c_tools#CCompilationUnit#body_decl (self) on <self:CCompilationUnit> */
140 var2 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___body_decl].val; /* _body_decl on <self:CCompilationUnit> */
141 if (unlikely(var2 == NULL)) {
142 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_decl");
143 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 37);
144 fatal_exit(1);
145 }
146 var = var2;
147 RET_LABEL1:(void)0;
148 }
149 }
150 if (unlikely(varonce==NULL)) {
151 var3 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
152 if (likely(varonce4!=NULL)) {
153 var5 = varonce4;
154 } else {
155 var6 = ";\n";
156 var7 = standard___standard__NativeString___to_s_with_length(var6, 2l);
157 var5 = var7;
158 varonce4 = var5;
159 }
160 ((struct instance_standard__NativeArray*)var3)->values[1]=var5;
161 } else {
162 var3 = varonce;
163 varonce = NULL;
164 }
165 {
166 { /* Inline c_tools#CFunction#signature (var_c_function) on <var_c_function:CFunction> */
167 var10 = var_c_function->attrs[COLOR_nit__c_tools__CFunction___signature].val; /* _signature on <var_c_function:CFunction> */
168 if (unlikely(var10 == NULL)) {
169 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _signature");
170 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 86);
171 fatal_exit(1);
172 }
173 var8 = var10;
174 RET_LABEL9:(void)0;
175 }
176 }
177 ((struct instance_standard__NativeArray*)var3)->values[0]=var8;
178 {
179 var11 = ((val*(*)(val* self))(var3->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var3); /* native_to_s on <var3:NativeArray[String]>*/
180 }
181 varonce = var3;
182 {
183 template___template__Template___add(var, var11); /* Direct call template#Template#add on <var:Template>*/
184 }
185 {
186 { /* Inline c_tools#CCompilationUnit#body_impl (self) on <self:CCompilationUnit> */
187 var14 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___body_impl].val; /* _body_impl on <self:CCompilationUnit> */
188 if (unlikely(var14 == NULL)) {
189 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_impl");
190 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 44);
191 fatal_exit(1);
192 }
193 var12 = var14;
194 RET_LABEL13:(void)0;
195 }
196 }
197 if (likely(varonce15!=NULL)) {
198 var16 = varonce15;
199 } else {
200 var17 = "\n";
201 var18 = standard___standard__NativeString___to_s_with_length(var17, 1l);
202 var16 = var18;
203 varonce15 = var16;
204 }
205 {
206 template___template__Template___add(var12, var16); /* Direct call template#Template#add on <var12:Template>*/
207 }
208 {
209 { /* Inline c_tools#CCompilationUnit#body_impl (self) on <self:CCompilationUnit> */
210 var21 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___body_impl].val; /* _body_impl on <self:CCompilationUnit> */
211 if (unlikely(var21 == NULL)) {
212 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_impl");
213 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 44);
214 fatal_exit(1);
215 }
216 var19 = var21;
217 RET_LABEL20:(void)0;
218 }
219 }
220 {
221 var22 = nit___nit__CFunction___to_writer(var_c_function);
222 }
223 {
224 template___template__Template___add(var19, var22); /* Direct call template#Template#add on <var19:Template>*/
225 }
226 RET_LABEL:;
227 }
228 /* method c_tools#CCompilationUnit#compile_header_core for (self: CCompilationUnit, Writer) */
229 void nit___nit__CCompilationUnit___compile_header_core(val* self, val* p0) {
230 val* var_stream /* var stream: Writer */;
231 val* var /* : Template */;
232 val* var2 /* : Template */;
233 val* var3 /* : Template */;
234 val* var5 /* : Template */;
235 val* var6 /* : Template */;
236 val* var8 /* : Template */;
237 val* var9 /* : Template */;
238 val* var11 /* : Template */;
239 var_stream = p0;
240 {
241 { /* Inline c_tools#CCompilationUnit#header_c_base (self) on <self:CCompilationUnit> */
242 var2 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___header_c_base].val; /* _header_c_base on <self:CCompilationUnit> */
243 if (unlikely(var2 == NULL)) {
244 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header_c_base");
245 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 24);
246 fatal_exit(1);
247 }
248 var = var2;
249 RET_LABEL1:(void)0;
250 }
251 }
252 {
253 template___template__Template___standard__stream__Writable__write_to(var, var_stream); /* Direct call template#Template#write_to on <var:Template>*/
254 }
255 {
256 { /* Inline c_tools#CCompilationUnit#header_custom (self) on <self:CCompilationUnit> */
257 var5 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___header_custom].val; /* _header_custom on <self:CCompilationUnit> */
258 if (unlikely(var5 == NULL)) {
259 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header_custom");
260 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 28);
261 fatal_exit(1);
262 }
263 var3 = var5;
264 RET_LABEL4:(void)0;
265 }
266 }
267 {
268 template___template__Template___standard__stream__Writable__write_to(var3, var_stream); /* Direct call template#Template#write_to on <var3:Template>*/
269 }
270 {
271 { /* Inline c_tools#CCompilationUnit#header_c_types (self) on <self:CCompilationUnit> */
272 var8 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___header_c_types].val; /* _header_c_types on <self:CCompilationUnit> */
273 if (unlikely(var8 == NULL)) {
274 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header_c_types");
275 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 31);
276 fatal_exit(1);
277 }
278 var6 = var8;
279 RET_LABEL7:(void)0;
280 }
281 }
282 {
283 template___template__Template___standard__stream__Writable__write_to(var6, var_stream); /* Direct call template#Template#write_to on <var6:Template>*/
284 }
285 {
286 { /* Inline c_tools#CCompilationUnit#header_decl (self) on <self:CCompilationUnit> */
287 var11 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___header_decl].val; /* _header_decl on <self:CCompilationUnit> */
288 if (unlikely(var11 == NULL)) {
289 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header_decl");
290 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 34);
291 fatal_exit(1);
292 }
293 var9 = var11;
294 RET_LABEL10:(void)0;
295 }
296 }
297 {
298 template___template__Template___standard__stream__Writable__write_to(var9, var_stream); /* Direct call template#Template#write_to on <var9:Template>*/
299 }
300 RET_LABEL:;
301 }
302 /* method c_tools#CCompilationUnit#compile_body_core for (self: CCompilationUnit, Writer) */
303 void nit___nit__CCompilationUnit___compile_body_core(val* self, val* p0) {
304 val* var_stream /* var stream: Writer */;
305 val* var /* : Template */;
306 val* var2 /* : Template */;
307 val* var3 /* : Template */;
308 val* var5 /* : Template */;
309 val* var6 /* : Template */;
310 val* var8 /* : Template */;
311 var_stream = p0;
312 {
313 { /* Inline c_tools#CCompilationUnit#body_decl (self) on <self:CCompilationUnit> */
314 var2 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___body_decl].val; /* _body_decl on <self:CCompilationUnit> */
315 if (unlikely(var2 == NULL)) {
316 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_decl");
317 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 37);
318 fatal_exit(1);
319 }
320 var = var2;
321 RET_LABEL1:(void)0;
322 }
323 }
324 {
325 template___template__Template___standard__stream__Writable__write_to(var, var_stream); /* Direct call template#Template#write_to on <var:Template>*/
326 }
327 {
328 { /* Inline c_tools#CCompilationUnit#body_custom (self) on <self:CCompilationUnit> */
329 var5 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___body_custom].val; /* _body_custom on <self:CCompilationUnit> */
330 if (unlikely(var5 == NULL)) {
331 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_custom");
332 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 41);
333 fatal_exit(1);
334 }
335 var3 = var5;
336 RET_LABEL4:(void)0;
337 }
338 }
339 {
340 template___template__Template___standard__stream__Writable__write_to(var3, var_stream); /* Direct call template#Template#write_to on <var3:Template>*/
341 }
342 {
343 { /* Inline c_tools#CCompilationUnit#body_impl (self) on <self:CCompilationUnit> */
344 var8 = self->attrs[COLOR_nit__c_tools__CCompilationUnit___body_impl].val; /* _body_impl on <self:CCompilationUnit> */
345 if (unlikely(var8 == NULL)) {
346 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _body_impl");
347 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 44);
348 fatal_exit(1);
349 }
350 var6 = var8;
351 RET_LABEL7:(void)0;
352 }
353 }
354 {
355 template___template__Template___standard__stream__Writable__write_to(var6, var_stream); /* Direct call template#Template#write_to on <var6:Template>*/
356 }
357 RET_LABEL:;
358 }
359 /* method c_tools#CFunction#signature for (self: CFunction): String */
360 val* nit___nit__CFunction___signature(val* self) {
361 val* var /* : String */;
362 val* var1 /* : String */;
363 var1 = self->attrs[COLOR_nit__c_tools__CFunction___signature].val; /* _signature on <self:CFunction> */
364 if (unlikely(var1 == NULL)) {
365 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _signature");
366 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 86);
367 fatal_exit(1);
368 }
369 var = var1;
370 RET_LABEL:;
371 return var;
372 }
373 /* method c_tools#CFunction#signature= for (self: CFunction, String) */
374 void nit___nit__CFunction___signature_61d(val* self, val* p0) {
375 self->attrs[COLOR_nit__c_tools__CFunction___signature].val = p0; /* _signature on <self:CFunction> */
376 RET_LABEL:;
377 }
378 /* method c_tools#CFunction#decls for (self: CFunction): Template */
379 val* nit___nit__CFunction___decls(val* self) {
380 val* var /* : Template */;
381 val* var1 /* : Template */;
382 var1 = self->attrs[COLOR_nit__c_tools__CFunction___decls].val; /* _decls on <self:CFunction> */
383 if (unlikely(var1 == NULL)) {
384 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _decls");
385 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 88);
386 fatal_exit(1);
387 }
388 var = var1;
389 RET_LABEL:;
390 return var;
391 }
392 /* method c_tools#CFunction#exprs for (self: CFunction): Template */
393 val* nit___nit__CFunction___exprs(val* self) {
394 val* var /* : Template */;
395 val* var1 /* : Template */;
396 var1 = self->attrs[COLOR_nit__c_tools__CFunction___exprs].val; /* _exprs on <self:CFunction> */
397 if (unlikely(var1 == NULL)) {
398 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _exprs");
399 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 89);
400 fatal_exit(1);
401 }
402 var = var1;
403 RET_LABEL:;
404 return var;
405 }
406 /* method c_tools#CFunction#to_writer for (self: CFunction): Template */
407 val* nit___nit__CFunction___to_writer(val* self) {
408 val* var /* : Template */;
409 val* var1 /* : Template */;
410 val* var_w /* var w: Template */;
411 val* var2 /* : String */;
412 val* var4 /* : String */;
413 static val* varonce;
414 val* var5 /* : String */;
415 char* var6 /* : NativeString */;
416 val* var7 /* : FlatString */;
417 val* var8 /* : Template */;
418 val* var10 /* : Template */;
419 static val* varonce11;
420 val* var12 /* : String */;
421 char* var13 /* : NativeString */;
422 val* var14 /* : FlatString */;
423 val* var15 /* : Template */;
424 val* var17 /* : Template */;
425 static val* varonce18;
426 val* var19 /* : String */;
427 char* var20 /* : NativeString */;
428 val* var21 /* : FlatString */;
429 var1 = NEW_template__Template(&type_template__Template);
430 {
431 ((void(*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1); /* init on <var1:Template>*/
432 }
433 var_w = var1;
434 {
435 { /* Inline c_tools#CFunction#signature (self) on <self:CFunction> */
436 var4 = self->attrs[COLOR_nit__c_tools__CFunction___signature].val; /* _signature on <self:CFunction> */
437 if (unlikely(var4 == NULL)) {
438 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _signature");
439 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 86);
440 fatal_exit(1);
441 }
442 var2 = var4;
443 RET_LABEL3:(void)0;
444 }
445 }
446 {
447 template___template__Template___add(var_w, var2); /* Direct call template#Template#add on <var_w:Template>*/
448 }
449 if (likely(varonce!=NULL)) {
450 var5 = varonce;
451 } else {
452 var6 = "\n{\n";
453 var7 = standard___standard__NativeString___to_s_with_length(var6, 3l);
454 var5 = var7;
455 varonce = var5;
456 }
457 {
458 template___template__Template___add(var_w, var5); /* Direct call template#Template#add on <var_w:Template>*/
459 }
460 {
461 { /* Inline c_tools#CFunction#decls (self) on <self:CFunction> */
462 var10 = self->attrs[COLOR_nit__c_tools__CFunction___decls].val; /* _decls on <self:CFunction> */
463 if (unlikely(var10 == NULL)) {
464 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _decls");
465 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 88);
466 fatal_exit(1);
467 }
468 var8 = var10;
469 RET_LABEL9:(void)0;
470 }
471 }
472 {
473 template___template__Template___add(var_w, var8); /* Direct call template#Template#add on <var_w:Template>*/
474 }
475 if (likely(varonce11!=NULL)) {
476 var12 = varonce11;
477 } else {
478 var13 = "\n";
479 var14 = standard___standard__NativeString___to_s_with_length(var13, 1l);
480 var12 = var14;
481 varonce11 = var12;
482 }
483 {
484 template___template__Template___add(var_w, var12); /* Direct call template#Template#add on <var_w:Template>*/
485 }
486 {
487 { /* Inline c_tools#CFunction#exprs (self) on <self:CFunction> */
488 var17 = self->attrs[COLOR_nit__c_tools__CFunction___exprs].val; /* _exprs on <self:CFunction> */
489 if (unlikely(var17 == NULL)) {
490 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _exprs");
491 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 89);
492 fatal_exit(1);
493 }
494 var15 = var17;
495 RET_LABEL16:(void)0;
496 }
497 }
498 {
499 template___template__Template___add(var_w, var15); /* Direct call template#Template#add on <var_w:Template>*/
500 }
501 if (likely(varonce18!=NULL)) {
502 var19 = varonce18;
503 } else {
504 var20 = "}\n";
505 var21 = standard___standard__NativeString___to_s_with_length(var20, 2l);
506 var19 = var21;
507 varonce18 = var19;
508 }
509 {
510 template___template__Template___add(var_w, var19); /* Direct call template#Template#add on <var_w:Template>*/
511 }
512 var = var_w;
513 goto RET_LABEL;
514 RET_LABEL:;
515 return var;
516 }
517 /* method c_tools#CFunction#init for (self: CFunction) */
518 void nit___nit__CFunction___standard__kernel__Object__init(val* self) {
519 {
520 ((void(*)(val* self))(self->class->vft[COLOR_nit___nit__CFunction___standard__kernel__Object__init]))(self); /* init on <self:CFunction>*/
521 }
522 RET_LABEL:;
523 }
524 /* method c_tools#ExternFile#filename for (self: ExternFile): String */
525 val* nit___nit__ExternFile___filename(val* self) {
526 val* var /* : String */;
527 val* var1 /* : String */;
528 var1 = self->attrs[COLOR_nit__c_tools__ExternFile___filename].val; /* _filename on <self:ExternFile> */
529 if (unlikely(var1 == NULL)) {
530 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
531 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 108);
532 fatal_exit(1);
533 }
534 var = var1;
535 RET_LABEL:;
536 return var;
537 }
538 /* method c_tools#ExternFile#filename= for (self: ExternFile, String) */
539 void nit___nit__ExternFile___filename_61d(val* self, val* p0) {
540 self->attrs[COLOR_nit__c_tools__ExternFile___filename].val = p0; /* _filename on <self:ExternFile> */
541 RET_LABEL:;
542 }
543 /* method c_tools#ExternFile#add_to_jar for (self: ExternFile): Bool */
544 short int nit___nit__ExternFile___add_to_jar(val* self) {
545 short int var /* : Bool */;
546 var = 0;
547 goto RET_LABEL;
548 RET_LABEL:;
549 return var;
550 }
551 /* method c_tools#ExternFile#pkgconfigs for (self: ExternFile): Array[String] */
552 val* nit___nit__ExternFile___pkgconfigs(val* self) {
553 val* var /* : Array[String] */;
554 val* var1 /* : Array[String] */;
555 var1 = self->attrs[COLOR_nit__c_tools__ExternFile___pkgconfigs].val; /* _pkgconfigs on <self:ExternFile> */
556 if (unlikely(var1 == NULL)) {
557 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _pkgconfigs");
558 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 123);
559 fatal_exit(1);
560 }
561 var = var1;
562 RET_LABEL:;
563 return var;
564 }
565 /* method c_tools#ExternFile#init for (self: ExternFile) */
566 void nit___nit__ExternFile___standard__kernel__Object__init(val* self) {
567 {
568 ((void(*)(val* self))(self->class->vft[COLOR_nit___nit__ExternFile___standard__kernel__Object__init]))(self); /* init on <self:ExternFile>*/
569 }
570 RET_LABEL:;
571 }
572 /* method c_tools#ExternCFile#cflags for (self: ExternCFile): String */
573 val* nit___nit__ExternCFile___cflags(val* self) {
574 val* var /* : String */;
575 val* var1 /* : String */;
576 var1 = self->attrs[COLOR_nit__c_tools__ExternCFile___cflags].val; /* _cflags on <self:ExternCFile> */
577 if (unlikely(var1 == NULL)) {
578 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cflags");
579 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 132);
580 fatal_exit(1);
581 }
582 var = var1;
583 RET_LABEL:;
584 return var;
585 }
586 /* method c_tools#ExternCFile#cflags= for (self: ExternCFile, String) */
587 void nit___nit__ExternCFile___cflags_61d(val* self, val* p0) {
588 self->attrs[COLOR_nit__c_tools__ExternCFile___cflags].val = p0; /* _cflags on <self:ExternCFile> */
589 RET_LABEL:;
590 }
591 /* method c_tools#ExternCFile#hash for (self: ExternCFile): Int */
592 long nit___nit__ExternCFile___standard__kernel__Object__hash(val* self) {
593 long var /* : Int */;
594 val* var1 /* : String */;
595 val* var3 /* : String */;
596 long var4 /* : Int */;
597 {
598 { /* Inline c_tools#ExternFile#filename (self) on <self:ExternCFile> */
599 var3 = self->attrs[COLOR_nit__c_tools__ExternFile___filename].val; /* _filename on <self:ExternCFile> */
600 if (unlikely(var3 == NULL)) {
601 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
602 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 108);
603 fatal_exit(1);
604 }
605 var1 = var3;
606 RET_LABEL2:(void)0;
607 }
608 }
609 {
610 var4 = ((long(*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__hash]))(var1); /* hash on <var1:String>*/
611 }
612 var = var4;
613 goto RET_LABEL;
614 RET_LABEL:;
615 return var;
616 }
617 /* method c_tools#ExternCFile#== for (self: ExternCFile, nullable Object): Bool */
618 short int nit___nit__ExternCFile___standard__kernel__Object___61d_61d(val* self, val* p0) {
619 short int var /* : Bool */;
620 val* var_o /* var o: nullable Object */;
621 short int var1 /* : Bool */;
622 short int var2 /* : Bool */;
623 int cltype;
624 int idtype;
625 short int var_ /* var : Bool */;
626 val* var3 /* : String */;
627 val* var5 /* : String */;
628 val* var6 /* : String */;
629 val* var8 /* : String */;
630 short int var9 /* : Bool */;
631 var_o = p0;
632 /* <var_o:nullable Object> isa ExternCFile */
633 cltype = type_nit__ExternCFile.color;
634 idtype = type_nit__ExternCFile.id;
635 if(var_o == NULL) {
636 var2 = 0;
637 } else {
638 if(cltype >= (((long)var_o&3)?type_info[((long)var_o&3)]:var_o->type)->table_size) {
639 var2 = 0;
640 } else {
641 var2 = (((long)var_o&3)?type_info[((long)var_o&3)]:var_o->type)->type_table[cltype] == idtype;
642 }
643 }
644 var_ = var2;
645 if (var2){
646 {
647 { /* Inline c_tools#ExternFile#filename (self) on <self:ExternCFile> */
648 var5 = self->attrs[COLOR_nit__c_tools__ExternFile___filename].val; /* _filename on <self:ExternCFile> */
649 if (unlikely(var5 == NULL)) {
650 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
651 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 108);
652 fatal_exit(1);
653 }
654 var3 = var5;
655 RET_LABEL4:(void)0;
656 }
657 }
658 {
659 { /* Inline c_tools#ExternFile#filename (var_o) on <var_o:nullable Object(ExternCFile)> */
660 var8 = var_o->attrs[COLOR_nit__c_tools__ExternFile___filename].val; /* _filename on <var_o:nullable Object(ExternCFile)> */
661 if (unlikely(var8 == NULL)) {
662 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
663 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 108);
664 fatal_exit(1);
665 }
666 var6 = var8;
667 RET_LABEL7:(void)0;
668 }
669 }
670 {
671 var9 = ((short int(*)(val* self, val* p0))(var3->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var3, var6); /* == on <var3:String>*/
672 }
673 var1 = var9;
674 } else {
675 var1 = var_;
676 }
677 var = var1;
678 goto RET_LABEL;
679 RET_LABEL:;
680 return var;
681 }
682 /* method c_tools#ExternCFile#makefile_rule_name for (self: ExternCFile): String */
683 val* nit___nit__ExternCFile___ExternFile__makefile_rule_name(val* self) {
684 val* var /* : String */;
685 val* var1 /* : String */;
686 val* var3 /* : String */;
687 static val* varonce;
688 val* var4 /* : String */;
689 char* var5 /* : NativeString */;
690 val* var6 /* : FlatString */;
691 val* var7 /* : String */;
692 val* var_basename /* var basename: String */;
693 val* var9 /* : NativeArray[String] */;
694 static val* varonce8;
695 static val* varonce10;
696 val* var11 /* : String */;
697 char* var12 /* : NativeString */;
698 val* var13 /* : FlatString */;
699 val* var14 /* : String */;
700 val* var_res /* var res: String */;
701 {
702 { /* Inline c_tools#ExternFile#filename (self) on <self:ExternCFile> */
703 var3 = self->attrs[COLOR_nit__c_tools__ExternFile___filename].val; /* _filename on <self:ExternCFile> */
704 if (unlikely(var3 == NULL)) {
705 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
706 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 108);
707 fatal_exit(1);
708 }
709 var1 = var3;
710 RET_LABEL2:(void)0;
711 }
712 }
713 if (likely(varonce!=NULL)) {
714 var4 = varonce;
715 } else {
716 var5 = ".c";
717 var6 = standard___standard__NativeString___to_s_with_length(var5, 2l);
718 var4 = var6;
719 varonce = var4;
720 }
721 {
722 var7 = standard__file___String___basename(var1, var4);
723 }
724 var_basename = var7;
725 if (unlikely(varonce8==NULL)) {
726 var9 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
727 if (likely(varonce10!=NULL)) {
728 var11 = varonce10;
729 } else {
730 var12 = ".extern.o";
731 var13 = standard___standard__NativeString___to_s_with_length(var12, 9l);
732 var11 = var13;
733 varonce10 = var11;
734 }
735 ((struct instance_standard__NativeArray*)var9)->values[1]=var11;
736 } else {
737 var9 = varonce8;
738 varonce8 = NULL;
739 }
740 ((struct instance_standard__NativeArray*)var9)->values[0]=var_basename;
741 {
742 var14 = ((val*(*)(val* self))(var9->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var9); /* native_to_s on <var9:NativeArray[String]>*/
743 }
744 varonce8 = var9;
745 var_res = var14;
746 var = var_res;
747 goto RET_LABEL;
748 RET_LABEL:;
749 return var;
750 }
751 /* method c_tools#ExternCFile#makefile_rule_content for (self: ExternCFile): String */
752 val* nit___nit__ExternCFile___ExternFile__makefile_rule_content(val* self) {
753 val* var /* : String */;
754 val* var1 /* : String */;
755 val* var3 /* : String */;
756 static val* varonce;
757 val* var4 /* : String */;
758 char* var5 /* : NativeString */;
759 val* var6 /* : FlatString */;
760 val* var7 /* : String */;
761 val* var_ff /* var ff: String */;
762 val* var8 /* : String */;
763 val* var_o /* var o: String */;
764 static val* varonce9;
765 val* var10 /* : String */;
766 char* var11 /* : NativeString */;
767 val* var12 /* : FlatString */;
768 val* var_pkg /* var pkg: String */;
769 val* var13 /* : Array[String] */;
770 val* var15 /* : Array[String] */;
771 short int var16 /* : Bool */;
772 short int var17 /* : Bool */;
773 val* var19 /* : NativeArray[String] */;
774 static val* varonce18;
775 static val* varonce20;
776 val* var21 /* : String */;
777 char* var22 /* : NativeString */;
778 val* var23 /* : FlatString */;
779 static val* varonce24;
780 val* var25 /* : String */;
781 char* var26 /* : NativeString */;
782 val* var27 /* : FlatString */;
783 val* var28 /* : Array[String] */;
784 val* var30 /* : Array[String] */;
785 static val* varonce31;
786 val* var32 /* : String */;
787 char* var33 /* : NativeString */;
788 val* var34 /* : FlatString */;
789 val* var35 /* : String */;
790 val* var36 /* : String */;
791 val* var38 /* : NativeArray[String] */;
792 static val* varonce37;
793 static val* varonce39;
794 val* var40 /* : String */;
795 char* var41 /* : NativeString */;
796 val* var42 /* : FlatString */;
797 static val* varonce43;
798 val* var44 /* : String */;
799 char* var45 /* : NativeString */;
800 val* var46 /* : FlatString */;
801 static val* varonce47;
802 val* var48 /* : String */;
803 char* var49 /* : NativeString */;
804 val* var50 /* : FlatString */;
805 static val* varonce51;
806 val* var52 /* : String */;
807 char* var53 /* : NativeString */;
808 val* var54 /* : FlatString */;
809 val* var55 /* : String */;
810 val* var57 /* : String */;
811 val* var58 /* : String */;
812 {
813 { /* Inline c_tools#ExternFile#filename (self) on <self:ExternCFile> */
814 var3 = self->attrs[COLOR_nit__c_tools__ExternFile___filename].val; /* _filename on <self:ExternCFile> */
815 if (unlikely(var3 == NULL)) {
816 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
817 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 108);
818 fatal_exit(1);
819 }
820 var1 = var3;
821 RET_LABEL2:(void)0;
822 }
823 }
824 if (likely(varonce!=NULL)) {
825 var4 = varonce;
826 } else {
827 var5 = "";
828 var6 = standard___standard__NativeString___to_s_with_length(var5, 0l);
829 var4 = var6;
830 varonce = var4;
831 }
832 {
833 var7 = standard__file___String___basename(var1, var4);
834 }
835 var_ff = var7;
836 {
837 var8 = nit___nit__ExternCFile___ExternFile__makefile_rule_name(self);
838 }
839 var_o = var8;
840 if (likely(varonce9!=NULL)) {
841 var10 = varonce9;
842 } else {
843 var11 = "";
844 var12 = standard___standard__NativeString___to_s_with_length(var11, 0l);
845 var10 = var12;
846 varonce9 = var10;
847 }
848 var_pkg = var10;
849 {
850 { /* Inline c_tools#ExternFile#pkgconfigs (self) on <self:ExternCFile> */
851 var15 = self->attrs[COLOR_nit__c_tools__ExternFile___pkgconfigs].val; /* _pkgconfigs on <self:ExternCFile> */
852 if (unlikely(var15 == NULL)) {
853 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _pkgconfigs");
854 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 123);
855 fatal_exit(1);
856 }
857 var13 = var15;
858 RET_LABEL14:(void)0;
859 }
860 }
861 {
862 var16 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var13);
863 }
864 var17 = !var16;
865 if (var17){
866 if (unlikely(varonce18==NULL)) {
867 var19 = NEW_standard__NativeArray(3l, &type_standard__NativeArray__standard__String);
868 if (likely(varonce20!=NULL)) {
869 var21 = varonce20;
870 } else {
871 var22 = "`pkg-config --cflags ";
872 var23 = standard___standard__NativeString___to_s_with_length(var22, 21l);
873 var21 = var23;
874 varonce20 = var21;
875 }
876 ((struct instance_standard__NativeArray*)var19)->values[0]=var21;
877 if (likely(varonce24!=NULL)) {
878 var25 = varonce24;
879 } else {
880 var26 = "`";
881 var27 = standard___standard__NativeString___to_s_with_length(var26, 1l);
882 var25 = var27;
883 varonce24 = var25;
884 }
885 ((struct instance_standard__NativeArray*)var19)->values[2]=var25;
886 } else {
887 var19 = varonce18;
888 varonce18 = NULL;
889 }
890 {
891 { /* Inline c_tools#ExternFile#pkgconfigs (self) on <self:ExternCFile> */
892 var30 = self->attrs[COLOR_nit__c_tools__ExternFile___pkgconfigs].val; /* _pkgconfigs on <self:ExternCFile> */
893 if (unlikely(var30 == NULL)) {
894 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _pkgconfigs");
895 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 123);
896 fatal_exit(1);
897 }
898 var28 = var30;
899 RET_LABEL29:(void)0;
900 }
901 }
902 if (likely(varonce31!=NULL)) {
903 var32 = varonce31;
904 } else {
905 var33 = " ";
906 var34 = standard___standard__NativeString___to_s_with_length(var33, 1l);
907 var32 = var34;
908 varonce31 = var32;
909 }
910 {
911 var35 = standard__string___Collection___join(var28, var32);
912 }
913 ((struct instance_standard__NativeArray*)var19)->values[1]=var35;
914 {
915 var36 = ((val*(*)(val* self))(var19->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var19); /* native_to_s on <var19:NativeArray[String]>*/
916 }
917 varonce18 = var19;
918 var_pkg = var36;
919 } else {
920 }
921 if (unlikely(varonce37==NULL)) {
922 var38 = NEW_standard__NativeArray(8l, &type_standard__NativeArray__standard__String);
923 if (likely(varonce39!=NULL)) {
924 var40 = varonce39;
925 } else {
926 var41 = "$(CC) $(CFLAGS) -Wall ";
927 var42 = standard___standard__NativeString___to_s_with_length(var41, 22l);
928 var40 = var42;
929 varonce39 = var40;
930 }
931 ((struct instance_standard__NativeArray*)var38)->values[0]=var40;
932 if (likely(varonce43!=NULL)) {
933 var44 = varonce43;
934 } else {
935 var45 = " ";
936 var46 = standard___standard__NativeString___to_s_with_length(var45, 1l);
937 var44 = var46;
938 varonce43 = var44;
939 }
940 ((struct instance_standard__NativeArray*)var38)->values[2]=var44;
941 if (likely(varonce47!=NULL)) {
942 var48 = varonce47;
943 } else {
944 var49 = " -c -o ";
945 var50 = standard___standard__NativeString___to_s_with_length(var49, 7l);
946 var48 = var50;
947 varonce47 = var48;
948 }
949 ((struct instance_standard__NativeArray*)var38)->values[4]=var48;
950 if (likely(varonce51!=NULL)) {
951 var52 = varonce51;
952 } else {
953 var53 = " ";
954 var54 = standard___standard__NativeString___to_s_with_length(var53, 1l);
955 var52 = var54;
956 varonce51 = var52;
957 }
958 ((struct instance_standard__NativeArray*)var38)->values[6]=var52;
959 } else {
960 var38 = varonce37;
961 varonce37 = NULL;
962 }
963 {
964 { /* Inline c_tools#ExternCFile#cflags (self) on <self:ExternCFile> */
965 var57 = self->attrs[COLOR_nit__c_tools__ExternCFile___cflags].val; /* _cflags on <self:ExternCFile> */
966 if (unlikely(var57 == NULL)) {
967 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cflags");
968 PRINT_ERROR(" (%s:%d)\n", FILE_nit__c_tools, 132);
969 fatal_exit(1);
970 }
971 var55 = var57;
972 RET_LABEL56:(void)0;
973 }
974 }
975 ((struct instance_standard__NativeArray*)var38)->values[1]=var55;
976 ((struct instance_standard__NativeArray*)var38)->values[3]=var_pkg;
977 ((struct instance_standard__NativeArray*)var38)->values[5]=var_o;
978 ((struct instance_standard__NativeArray*)var38)->values[7]=var_ff;
979 {
980 var58 = ((val*(*)(val* self))(var38->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var38); /* native_to_s on <var38:NativeArray[String]>*/
981 }
982 varonce37 = var38;
983 var = var58;
984 goto RET_LABEL;
985 RET_LABEL:;
986 return var;
987 }
988 /* method c_tools#ExternCFile#compiles_to_o_file for (self: ExternCFile): Bool */
989 short int nit___nit__ExternCFile___ExternFile__compiles_to_o_file(val* self) {
990 short int var /* : Bool */;
991 var = 1;
992 goto RET_LABEL;
993 RET_LABEL:;
994 return var;
995 }
996 /* method c_tools#ExternCFile#init for (self: ExternCFile) */
997 void nit___nit__ExternCFile___standard__kernel__Object__init(val* self) {
998 {
999 ((void(*)(val* self))(self->class->vft[COLOR_nit___nit__ExternCFile___standard__kernel__Object__init]))(self); /* init on <self:ExternCFile>*/
1000 }
1001 RET_LABEL:;
1002 }