c_src: update
[nit.git] / c_src / c_tools.sep.1.c
1 #include "c_tools.sep.0.h"
2 /* method c_tools#ExternFile#filename for (self: ExternFile): String */
3 val* c_tools__ExternFile__filename(val* self) {
4 val* var /* : String */;
5 val* var1 /* : String */;
6 var1 = self->attrs[COLOR_c_tools__ExternFile___filename].val; /* _filename on <self:ExternFile> */
7 if (unlikely(var1 == NULL)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
9 PRINT_ERROR(" (%s:%d)\n", "src/c_tools.nit", 104);
10 show_backtrace(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method c_tools#ExternFile#filename for (self: Object): String */
17 val* VIRTUAL_c_tools__ExternFile__filename(val* self) {
18 val* var /* : String */;
19 val* var1 /* : String */;
20 val* var3 /* : String */;
21 { /* Inline c_tools#ExternFile#filename (self) on <self:Object(ExternFile)> */
22 var3 = self->attrs[COLOR_c_tools__ExternFile___filename].val; /* _filename on <self:Object(ExternFile)> */
23 if (unlikely(var3 == NULL)) {
24 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
25 PRINT_ERROR(" (%s:%d)\n", "src/c_tools.nit", 104);
26 show_backtrace(1);
27 }
28 var1 = var3;
29 RET_LABEL2:(void)0;
30 }
31 var = var1;
32 RET_LABEL:;
33 return var;
34 }
35 /* method c_tools#ExternFile#add_to_jar for (self: ExternFile): Bool */
36 short int c_tools__ExternFile__add_to_jar(val* self) {
37 short int var /* : Bool */;
38 short int var1 /* : Bool */;
39 var1 = 0;
40 var = var1;
41 goto RET_LABEL;
42 RET_LABEL:;
43 return var;
44 }
45 /* method c_tools#ExternFile#add_to_jar for (self: Object): Bool */
46 short int VIRTUAL_c_tools__ExternFile__add_to_jar(val* self) {
47 short int var /* : Bool */;
48 short int var1 /* : Bool */;
49 var1 = c_tools__ExternFile__add_to_jar(self);
50 var = var1;
51 RET_LABEL:;
52 return var;
53 }
54 /* method c_tools#ExternFile#init for (self: ExternFile, String) */
55 void c_tools__ExternFile__init(val* self, val* p0) {
56 self->attrs[COLOR_c_tools__ExternFile___filename].val = p0; /* _filename on <self:ExternFile> */
57 RET_LABEL:;
58 }
59 /* method c_tools#ExternFile#init for (self: Object, String) */
60 void VIRTUAL_c_tools__ExternFile__init(val* self, val* p0) {
61 { /* Inline c_tools#ExternFile#init (self,p0) on <self:Object(ExternFile)> */
62 self->attrs[COLOR_c_tools__ExternFile___filename].val = p0; /* _filename on <self:Object(ExternFile)> */
63 RET_LABEL1:(void)0;
64 }
65 RET_LABEL:;
66 }
67 /* method c_tools#ExternCFile#init for (self: ExternCFile, String, String) */
68 void c_tools__ExternCFile__init(val* self, val* p0, val* p1) {
69 val* var_filename /* var filename: String */;
70 val* var_cflags /* var cflags: String */;
71 var_filename = p0;
72 var_cflags = p1;
73 {
74 { /* Inline c_tools#ExternFile#init (self,var_filename) on <self:ExternCFile> */
75 self->attrs[COLOR_c_tools__ExternFile___filename].val = var_filename; /* _filename on <self:ExternCFile> */
76 RET_LABEL1:(void)0;
77 }
78 }
79 {
80 { /* Inline c_tools#ExternCFile#cflags= (self,var_cflags) on <self:ExternCFile> */
81 self->attrs[COLOR_c_tools__ExternCFile___cflags].val = var_cflags; /* _cflags on <self:ExternCFile> */
82 RET_LABEL2:(void)0;
83 }
84 }
85 RET_LABEL:;
86 }
87 /* method c_tools#ExternCFile#init for (self: Object, String, String) */
88 void VIRTUAL_c_tools__ExternCFile__init(val* self, val* p0, val* p1) {
89 c_tools__ExternCFile__init(self, p0, p1); /* Direct call c_tools#ExternCFile#init on <self:Object(ExternCFile)>*/
90 RET_LABEL:;
91 }
92 /* method c_tools#ExternCFile#cflags for (self: ExternCFile): String */
93 val* c_tools__ExternCFile__cflags(val* self) {
94 val* var /* : String */;
95 val* var1 /* : String */;
96 var1 = self->attrs[COLOR_c_tools__ExternCFile___cflags].val; /* _cflags on <self:ExternCFile> */
97 if (unlikely(var1 == NULL)) {
98 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cflags");
99 PRINT_ERROR(" (%s:%d)\n", "src/c_tools.nit", 131);
100 show_backtrace(1);
101 }
102 var = var1;
103 RET_LABEL:;
104 return var;
105 }
106 /* method c_tools#ExternCFile#cflags for (self: Object): String */
107 val* VIRTUAL_c_tools__ExternCFile__cflags(val* self) {
108 val* var /* : String */;
109 val* var1 /* : String */;
110 val* var3 /* : String */;
111 { /* Inline c_tools#ExternCFile#cflags (self) on <self:Object(ExternCFile)> */
112 var3 = self->attrs[COLOR_c_tools__ExternCFile___cflags].val; /* _cflags on <self:Object(ExternCFile)> */
113 if (unlikely(var3 == NULL)) {
114 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cflags");
115 PRINT_ERROR(" (%s:%d)\n", "src/c_tools.nit", 131);
116 show_backtrace(1);
117 }
118 var1 = var3;
119 RET_LABEL2:(void)0;
120 }
121 var = var1;
122 RET_LABEL:;
123 return var;
124 }
125 /* method c_tools#ExternCFile#cflags= for (self: ExternCFile, String) */
126 void c_tools__ExternCFile__cflags_61d(val* self, val* p0) {
127 self->attrs[COLOR_c_tools__ExternCFile___cflags].val = p0; /* _cflags on <self:ExternCFile> */
128 RET_LABEL:;
129 }
130 /* method c_tools#ExternCFile#cflags= for (self: Object, String) */
131 void VIRTUAL_c_tools__ExternCFile__cflags_61d(val* self, val* p0) {
132 { /* Inline c_tools#ExternCFile#cflags= (self,p0) on <self:Object(ExternCFile)> */
133 self->attrs[COLOR_c_tools__ExternCFile___cflags].val = p0; /* _cflags on <self:Object(ExternCFile)> */
134 RET_LABEL1:(void)0;
135 }
136 RET_LABEL:;
137 }
138 /* method c_tools#ExternCFile#hash for (self: ExternCFile): Int */
139 long c_tools__ExternCFile__hash(val* self) {
140 long var /* : Int */;
141 val* var1 /* : String */;
142 val* var3 /* : String */;
143 long var4 /* : Int */;
144 {
145 { /* Inline c_tools#ExternFile#filename (self) on <self:ExternCFile> */
146 var3 = self->attrs[COLOR_c_tools__ExternFile___filename].val; /* _filename on <self:ExternCFile> */
147 if (unlikely(var3 == NULL)) {
148 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
149 PRINT_ERROR(" (%s:%d)\n", "src/c_tools.nit", 104);
150 show_backtrace(1);
151 }
152 var1 = var3;
153 RET_LABEL2:(void)0;
154 }
155 }
156 {
157 var4 = string__FlatString__hash(var1);
158 }
159 var = var4;
160 goto RET_LABEL;
161 RET_LABEL:;
162 return var;
163 }
164 /* method c_tools#ExternCFile#hash for (self: Object): Int */
165 long VIRTUAL_c_tools__ExternCFile__hash(val* self) {
166 long var /* : Int */;
167 long var1 /* : Int */;
168 var1 = c_tools__ExternCFile__hash(self);
169 var = var1;
170 RET_LABEL:;
171 return var;
172 }
173 /* method c_tools#ExternCFile#== for (self: ExternCFile, nullable Object): Bool */
174 short int c_tools__ExternCFile___61d_61d(val* self, val* p0) {
175 short int var /* : Bool */;
176 val* var_o /* var o: nullable Object */;
177 short int var1 /* : Bool */;
178 short int var2 /* : Bool */;
179 int cltype;
180 int idtype;
181 short int var_ /* var : Bool */;
182 val* var3 /* : String */;
183 val* var5 /* : String */;
184 val* var6 /* : String */;
185 val* var8 /* : String */;
186 short int var9 /* : Bool */;
187 short int var10 /* : Bool */;
188 var_o = p0;
189 /* <var_o:nullable Object> isa ExternCFile */
190 cltype = type_c_tools__ExternCFile.color;
191 idtype = type_c_tools__ExternCFile.id;
192 if(var_o == NULL) {
193 var2 = 0;
194 } else {
195 if(cltype >= var_o->type->table_size) {
196 var2 = 0;
197 } else {
198 var2 = var_o->type->type_table[cltype] == idtype;
199 }
200 }
201 var_ = var2;
202 if (var2){
203 {
204 { /* Inline c_tools#ExternFile#filename (self) on <self:ExternCFile> */
205 var5 = self->attrs[COLOR_c_tools__ExternFile___filename].val; /* _filename on <self:ExternCFile> */
206 if (unlikely(var5 == NULL)) {
207 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
208 PRINT_ERROR(" (%s:%d)\n", "src/c_tools.nit", 104);
209 show_backtrace(1);
210 }
211 var3 = var5;
212 RET_LABEL4:(void)0;
213 }
214 }
215 {
216 { /* Inline c_tools#ExternFile#filename (var_o) on <var_o:nullable Object(ExternCFile)> */
217 var8 = var_o->attrs[COLOR_c_tools__ExternFile___filename].val; /* _filename on <var_o:nullable Object(ExternCFile)> */
218 if (unlikely(var8 == NULL)) {
219 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
220 PRINT_ERROR(" (%s:%d)\n", "src/c_tools.nit", 104);
221 show_backtrace(1);
222 }
223 var6 = var8;
224 RET_LABEL7:(void)0;
225 }
226 }
227 {
228 var10 = string__FlatString___61d_61d(var3, var6);
229 var9 = var10;
230 }
231 var1 = var9;
232 } else {
233 var1 = var_;
234 }
235 var = var1;
236 goto RET_LABEL;
237 RET_LABEL:;
238 return var;
239 }
240 /* method c_tools#ExternCFile#== for (self: Object, nullable Object): Bool */
241 short int VIRTUAL_c_tools__ExternCFile___61d_61d(val* self, val* p0) {
242 short int var /* : Bool */;
243 short int var1 /* : Bool */;
244 var1 = c_tools__ExternCFile___61d_61d(self, p0);
245 var = var1;
246 RET_LABEL:;
247 return var;
248 }
249 /* method c_tools#ExternCFile#makefile_rule_name for (self: ExternCFile): String */
250 val* c_tools__ExternCFile__makefile_rule_name(val* self) {
251 val* var /* : String */;
252 val* var1 /* : String */;
253 val* var3 /* : String */;
254 static val* varonce;
255 val* var4 /* : String */;
256 char* var5 /* : NativeString */;
257 long var6 /* : Int */;
258 val* var7 /* : FlatString */;
259 val* var8 /* : String */;
260 val* var_basename /* var basename: String */;
261 static val* varonce9;
262 val* var10 /* : String */;
263 char* var11 /* : NativeString */;
264 long var12 /* : Int */;
265 val* var13 /* : FlatString */;
266 val* var14 /* : Array[Object] */;
267 long var15 /* : Int */;
268 val* var16 /* : NativeArray[Object] */;
269 val* var17 /* : String */;
270 val* var_res /* var res: String */;
271 {
272 { /* Inline c_tools#ExternFile#filename (self) on <self:ExternCFile> */
273 var3 = self->attrs[COLOR_c_tools__ExternFile___filename].val; /* _filename on <self:ExternCFile> */
274 if (unlikely(var3 == NULL)) {
275 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
276 PRINT_ERROR(" (%s:%d)\n", "src/c_tools.nit", 104);
277 show_backtrace(1);
278 }
279 var1 = var3;
280 RET_LABEL2:(void)0;
281 }
282 }
283 if (varonce) {
284 var4 = varonce;
285 } else {
286 var5 = ".c";
287 var6 = 2;
288 var7 = string__NativeString__to_s_with_length(var5, var6);
289 var4 = var7;
290 varonce = var4;
291 }
292 {
293 var8 = file__String__basename(var1, var4);
294 }
295 var_basename = var8;
296 if (varonce9) {
297 var10 = varonce9;
298 } else {
299 var11 = ".extern.o";
300 var12 = 9;
301 var13 = string__NativeString__to_s_with_length(var11, var12);
302 var10 = var13;
303 varonce9 = var10;
304 }
305 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
306 { /* var14 = array_instance Array[Object] */
307 var15 = 2;
308 var16 = NEW_array__NativeArray(var15, &type_array__NativeArraykernel__Object);
309 ((struct instance_array__NativeArray*)var16)->values[0] = (val*) var_basename;
310 ((struct instance_array__NativeArray*)var16)->values[1] = (val*) var10;
311 {
312 ((void (*)(val*, val*, long))(var14->class->vft[COLOR_array__Array__with_native]))(var14, var16, var15) /* with_native on <var14:Array[Object]>*/;
313 }
314 }
315 {
316 var17 = ((val* (*)(val*))(var14->class->vft[COLOR_string__Object__to_s]))(var14) /* to_s on <var14:Array[Object]>*/;
317 }
318 var_res = var17;
319 var = var_res;
320 goto RET_LABEL;
321 RET_LABEL:;
322 return var;
323 }
324 /* method c_tools#ExternCFile#makefile_rule_name for (self: Object): String */
325 val* VIRTUAL_c_tools__ExternCFile__makefile_rule_name(val* self) {
326 val* var /* : String */;
327 val* var1 /* : String */;
328 var1 = c_tools__ExternCFile__makefile_rule_name(self);
329 var = var1;
330 RET_LABEL:;
331 return var;
332 }
333 /* method c_tools#ExternCFile#makefile_rule_content for (self: ExternCFile): String */
334 val* c_tools__ExternCFile__makefile_rule_content(val* self) {
335 val* var /* : String */;
336 val* var1 /* : String */;
337 val* var3 /* : String */;
338 static val* varonce;
339 val* var4 /* : String */;
340 char* var5 /* : NativeString */;
341 long var6 /* : Int */;
342 val* var7 /* : FlatString */;
343 val* var8 /* : String */;
344 val* var_ff /* var ff: String */;
345 val* var9 /* : String */;
346 val* var_o /* var o: String */;
347 static val* varonce10;
348 val* var11 /* : String */;
349 char* var12 /* : NativeString */;
350 long var13 /* : Int */;
351 val* var14 /* : FlatString */;
352 val* var15 /* : String */;
353 val* var17 /* : String */;
354 static val* varonce18;
355 val* var19 /* : String */;
356 char* var20 /* : NativeString */;
357 long var21 /* : Int */;
358 val* var22 /* : FlatString */;
359 static val* varonce23;
360 val* var24 /* : String */;
361 char* var25 /* : NativeString */;
362 long var26 /* : Int */;
363 val* var27 /* : FlatString */;
364 val* var28 /* : Array[Object] */;
365 long var29 /* : Int */;
366 val* var30 /* : NativeArray[Object] */;
367 val* var31 /* : String */;
368 {
369 { /* Inline c_tools#ExternFile#filename (self) on <self:ExternCFile> */
370 var3 = self->attrs[COLOR_c_tools__ExternFile___filename].val; /* _filename on <self:ExternCFile> */
371 if (unlikely(var3 == NULL)) {
372 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
373 PRINT_ERROR(" (%s:%d)\n", "src/c_tools.nit", 104);
374 show_backtrace(1);
375 }
376 var1 = var3;
377 RET_LABEL2:(void)0;
378 }
379 }
380 if (varonce) {
381 var4 = varonce;
382 } else {
383 var5 = "";
384 var6 = 0;
385 var7 = string__NativeString__to_s_with_length(var5, var6);
386 var4 = var7;
387 varonce = var4;
388 }
389 {
390 var8 = file__String__basename(var1, var4);
391 }
392 var_ff = var8;
393 {
394 var9 = c_tools__ExternCFile__makefile_rule_name(self);
395 }
396 var_o = var9;
397 if (varonce10) {
398 var11 = varonce10;
399 } else {
400 var12 = "$(CC) $(CFLAGS) ";
401 var13 = 16;
402 var14 = string__NativeString__to_s_with_length(var12, var13);
403 var11 = var14;
404 varonce10 = var11;
405 }
406 {
407 { /* Inline c_tools#ExternCFile#cflags (self) on <self:ExternCFile> */
408 var17 = self->attrs[COLOR_c_tools__ExternCFile___cflags].val; /* _cflags on <self:ExternCFile> */
409 if (unlikely(var17 == NULL)) {
410 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _cflags");
411 PRINT_ERROR(" (%s:%d)\n", "src/c_tools.nit", 131);
412 show_backtrace(1);
413 }
414 var15 = var17;
415 RET_LABEL16:(void)0;
416 }
417 }
418 if (varonce18) {
419 var19 = varonce18;
420 } else {
421 var20 = " -c -o ";
422 var21 = 7;
423 var22 = string__NativeString__to_s_with_length(var20, var21);
424 var19 = var22;
425 varonce18 = var19;
426 }
427 if (varonce23) {
428 var24 = varonce23;
429 } else {
430 var25 = " ";
431 var26 = 1;
432 var27 = string__NativeString__to_s_with_length(var25, var26);
433 var24 = var27;
434 varonce23 = var24;
435 }
436 var28 = NEW_array__Array(&type_array__Arraykernel__Object);
437 { /* var28 = array_instance Array[Object] */
438 var29 = 6;
439 var30 = NEW_array__NativeArray(var29, &type_array__NativeArraykernel__Object);
440 ((struct instance_array__NativeArray*)var30)->values[0] = (val*) var11;
441 ((struct instance_array__NativeArray*)var30)->values[1] = (val*) var15;
442 ((struct instance_array__NativeArray*)var30)->values[2] = (val*) var19;
443 ((struct instance_array__NativeArray*)var30)->values[3] = (val*) var_o;
444 ((struct instance_array__NativeArray*)var30)->values[4] = (val*) var24;
445 ((struct instance_array__NativeArray*)var30)->values[5] = (val*) var_ff;
446 {
447 ((void (*)(val*, val*, long))(var28->class->vft[COLOR_array__Array__with_native]))(var28, var30, var29) /* with_native on <var28:Array[Object]>*/;
448 }
449 }
450 {
451 var31 = ((val* (*)(val*))(var28->class->vft[COLOR_string__Object__to_s]))(var28) /* to_s on <var28:Array[Object]>*/;
452 }
453 var = var31;
454 goto RET_LABEL;
455 RET_LABEL:;
456 return var;
457 }
458 /* method c_tools#ExternCFile#makefile_rule_content for (self: Object): String */
459 val* VIRTUAL_c_tools__ExternCFile__makefile_rule_content(val* self) {
460 val* var /* : String */;
461 val* var1 /* : String */;
462 var1 = c_tools__ExternCFile__makefile_rule_content(self);
463 var = var1;
464 RET_LABEL:;
465 return var;
466 }
467 /* method c_tools#ExternCFile#compiles_to_o_file for (self: ExternCFile): Bool */
468 short int c_tools__ExternCFile__compiles_to_o_file(val* self) {
469 short int var /* : Bool */;
470 short int var1 /* : Bool */;
471 var1 = 1;
472 var = var1;
473 goto RET_LABEL;
474 RET_LABEL:;
475 return var;
476 }
477 /* method c_tools#ExternCFile#compiles_to_o_file for (self: Object): Bool */
478 short int VIRTUAL_c_tools__ExternCFile__compiles_to_o_file(val* self) {
479 short int var /* : Bool */;
480 short int var1 /* : Bool */;
481 var1 = c_tools__ExternCFile__compiles_to_o_file(self);
482 var = var1;
483 RET_LABEL:;
484 return var;
485 }