c_src: update with new intern methods
[nit.git] / c_src / template.sep.1.c
1 #include "template.sep.0.h"
2 /* method template#Template#rendering for (self: Template) */
3 void template__Template__rendering(val* self) {
4 RET_LABEL:;
5 }
6 /* method template#Template#rendering for (self: Object) */
7 void VIRTUAL_template__Template__rendering(val* self) {
8 template__Template__rendering(self);
9 RET_LABEL:;
10 }
11 /* method template#Template#add for (self: Template, Streamable) */
12 void template__Template__add(val* self, val* p0) {
13 val* var_element /* var element: Streamable */;
14 short int var /* : Bool */;
15 short int var1 /* : Bool */;
16 val* var2 /* : Array[Streamable] */;
17 var_element = p0;
18 var = ((short int (*)(val*))(self->class->vft[COLOR_template__Template__is_frozen]))(self) /* is_frozen on <self:Template>*/;
19 var1 = !var;
20 if (!var1) {
21 fprintf(stderr, "Runtime error: %s", "Assert failed");
22 fprintf(stderr, " (%s:%d)\n", "lib/template.nit", 108);
23 show_backtrace(1);
24 }
25 var2 = ((val* (*)(val*))(self->class->vft[COLOR_template__Template__content]))(self) /* content on <self:Template>*/;
26 ((void (*)(val*, val*))(var2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var2, var_element) /* add on <var2:Array[Streamable]>*/;
27 RET_LABEL:;
28 }
29 /* method template#Template#add for (self: Object, Streamable) */
30 void VIRTUAL_template__Template__add(val* self, val* p0) {
31 template__Template__add(self, p0);
32 RET_LABEL:;
33 }
34 /* method template#Template#add_all for (self: Template, Collection[Streamable]) */
35 void template__Template__add_all(val* self, val* p0) {
36 val* var_elements /* var elements: Collection[Streamable] */;
37 val* var /* : Array[Streamable] */;
38 var_elements = p0;
39 var = ((val* (*)(val*))(self->class->vft[COLOR_template__Template__content]))(self) /* content on <self:Template>*/;
40 ((void (*)(val*, val*))(var->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var, var_elements) /* add_all on <var:Array[Streamable]>*/;
41 RET_LABEL:;
42 }
43 /* method template#Template#add_all for (self: Object, Collection[Streamable]) */
44 void VIRTUAL_template__Template__add_all(val* self, val* p0) {
45 template__Template__add_all(self, p0);
46 RET_LABEL:;
47 }
48 /* method template#Template#add_list for (self: Template, Collection[Streamable], Streamable, Streamable) */
49 void template__Template__add_list(val* self, val* p0, val* p1, val* p2) {
50 val* var_elements /* var elements: Collection[Streamable] */;
51 val* var_sep /* var sep: Streamable */;
52 val* var_last_sep /* var last_sep: Streamable */;
53 long var /* : Int */;
54 long var1 /* : Int */;
55 long var2 /* : Int */;
56 long var4 /* : Int */;
57 long var_last /* var last: Int */;
58 long var5 /* : Int */;
59 long var_i /* var i: Int */;
60 val* var6 /* : Iterator[nullable Object] */;
61 short int var7 /* : Bool */;
62 val* var8 /* : nullable Object */;
63 val* var_e /* var e: Streamable */;
64 val* var9 /* : Array[Streamable] */;
65 short int var10 /* : Bool */;
66 short int var12 /* : Bool */;
67 int cltype;
68 int idtype;
69 const char* var_class_name;
70 short int var13 /* : Bool */;
71 val* var14 /* : Array[Streamable] */;
72 short int var15 /* : Bool */;
73 short int var17 /* : Bool */;
74 val* var18 /* : Array[Streamable] */;
75 long var19 /* : Int */;
76 long var20 /* : Int */;
77 long var22 /* : Int */;
78 var_elements = p0;
79 var_sep = p1;
80 var_last_sep = p2;
81 var = ((long (*)(val*))(var_elements->class->vft[COLOR_abstract_collection__Collection__length]))(var_elements) /* length on <var_elements:Collection[Streamable]>*/;
82 var1 = 2;
83 { /* Inline kernel#Int#- (var,var1) */
84 var4 = var - var1;
85 var2 = var4;
86 goto RET_LABEL3;
87 RET_LABEL3:(void)0;
88 }
89 var_last = var2;
90 var5 = 0;
91 var_i = var5;
92 var6 = ((val* (*)(val*))(var_elements->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_elements) /* iterator on <var_elements:Collection[Streamable]>*/;
93 for(;;) {
94 var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on <var6:Iterator[nullable Object]>*/;
95 if(!var7) break;
96 var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on <var6:Iterator[nullable Object]>*/;
97 var_e = var8;
98 var9 = ((val* (*)(val*))(self->class->vft[COLOR_template__Template__content]))(self) /* content on <self:Template>*/;
99 ((void (*)(val*, val*))(var9->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var9, var_e) /* add on <var9:Array[Streamable]>*/;
100 { /* Inline kernel#Int#< (var_i,var_last) */
101 /* Covariant cast for argument 0 (i) <var_last:Int> isa OTHER */
102 /* <var_last:Int> isa OTHER */
103 var12 = 1; /* easy <var_last:Int> isa OTHER*/
104 if (!var12) {
105 var_class_name = type_kernel__Int.name;
106 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
107 fprintf(stderr, " (%s:%d)\n", "lib/standard/kernel.nit", 265);
108 show_backtrace(1);
109 }
110 var13 = var_i < var_last;
111 var10 = var13;
112 goto RET_LABEL11;
113 RET_LABEL11:(void)0;
114 }
115 if (var10){
116 var14 = ((val* (*)(val*))(self->class->vft[COLOR_template__Template__content]))(self) /* content on <self:Template>*/;
117 ((void (*)(val*, val*))(var14->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var14, var_sep) /* add on <var14:Array[Streamable]>*/;
118 } else {
119 { /* Inline kernel#Int#== (var_i,var_last) */
120 var17 = var_i == var_last;
121 var15 = var17;
122 goto RET_LABEL16;
123 RET_LABEL16:(void)0;
124 }
125 if (var15){
126 var18 = ((val* (*)(val*))(self->class->vft[COLOR_template__Template__content]))(self) /* content on <self:Template>*/;
127 ((void (*)(val*, val*))(var18->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var18, var_last_sep) /* add on <var18:Array[Streamable]>*/;
128 } else {
129 }
130 }
131 var19 = 1;
132 { /* Inline kernel#Int#+ (var_i,var19) */
133 var22 = var_i + var19;
134 var20 = var22;
135 goto RET_LABEL21;
136 RET_LABEL21:(void)0;
137 }
138 var_i = var20;
139 CONTINUE_label: (void)0;
140 ((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on <var6:Iterator[nullable Object]>*/;
141 }
142 BREAK_label: (void)0;
143 RET_LABEL:;
144 }
145 /* method template#Template#add_list for (self: Object, Collection[Streamable], Streamable, Streamable) */
146 void VIRTUAL_template__Template__add_list(val* self, val* p0, val* p1, val* p2) {
147 template__Template__add_list(self, p0, p1, p2);
148 RET_LABEL:;
149 }
150 /* method template#Template#is_frozen for (self: Template): Bool */
151 short int template__Template__is_frozen(val* self) {
152 short int var /* : Bool */;
153 short int var1 /* : Bool */;
154 var1 = self->attrs[COLOR_template__Template___64dis_frozen].s; /* @is_frozen on <self:Template> */
155 var = var1;
156 RET_LABEL:;
157 return var;
158 }
159 /* method template#Template#is_frozen for (self: Object): Bool */
160 short int VIRTUAL_template__Template__is_frozen(val* self) {
161 short int var /* : Bool */;
162 short int var1 /* : Bool */;
163 var1 = template__Template__is_frozen(self);
164 var = var1;
165 RET_LABEL:;
166 return var;
167 }
168 /* method template#Template#is_frozen= for (self: Template, Bool) */
169 void template__Template__is_frozen_61d(val* self, short int p0) {
170 self->attrs[COLOR_template__Template___64dis_frozen].s = p0; /* @is_frozen on <self:Template> */
171 RET_LABEL:;
172 }
173 /* method template#Template#is_frozen= for (self: Object, Bool) */
174 void VIRTUAL_template__Template__is_frozen_61d(val* self, short int p0) {
175 template__Template__is_frozen_61d(self, p0);
176 RET_LABEL:;
177 }
178 /* method template#Template#freeze for (self: Template) */
179 void template__Template__freeze(val* self) {
180 short int var /* : Bool */;
181 short int var1 /* : Bool */;
182 var = ((short int (*)(val*))(self->class->vft[COLOR_template__Template__is_frozen]))(self) /* is_frozen on <self:Template>*/;
183 if (var){
184 goto RET_LABEL;
185 } else {
186 }
187 var1 = 1;
188 ((void (*)(val*, short int))(self->class->vft[COLOR_template__Template__is_frozen_61d]))(self, var1) /* is_frozen= on <self:Template>*/;
189 RET_LABEL:;
190 }
191 /* method template#Template#freeze for (self: Object) */
192 void VIRTUAL_template__Template__freeze(val* self) {
193 template__Template__freeze(self);
194 RET_LABEL:;
195 }
196 /* method template#Template#new_sub for (self: Template): Template */
197 val* template__Template__new_sub(val* self) {
198 val* var /* : Template */;
199 val* var1 /* : Template */;
200 val* var_res /* var res: Template */;
201 var1 = NEW_template__Template(&type_template__Template);
202 ((void (*)(val*))(var1->class->vft[COLOR_template__Template__init]))(var1) /* init on <var1:Template>*/;
203 var_res = var1;
204 ((void (*)(val*, val*))(self->class->vft[COLOR_template__Template__add]))(self, var_res) /* add on <self:Template>*/;
205 var = var_res;
206 goto RET_LABEL;
207 RET_LABEL:;
208 return var;
209 }
210 /* method template#Template#new_sub for (self: Object): Template */
211 val* VIRTUAL_template__Template__new_sub(val* self) {
212 val* var /* : Template */;
213 val* var1 /* : Template */;
214 var1 = template__Template__new_sub(self);
215 var = var1;
216 RET_LABEL:;
217 return var;
218 }
219 /* method template#Template#content for (self: Template): Array[Streamable] */
220 val* template__Template__content(val* self) {
221 val* var /* : Array[Streamable] */;
222 val* var1 /* : Array[Streamable] */;
223 var1 = self->attrs[COLOR_template__Template___64dcontent].val; /* @content on <self:Template> */
224 if (var1 == NULL) {
225 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @content");
226 fprintf(stderr, " (%s:%d)\n", "lib/template.nit", 170);
227 show_backtrace(1);
228 }
229 var = var1;
230 RET_LABEL:;
231 return var;
232 }
233 /* method template#Template#content for (self: Object): Array[Streamable] */
234 val* VIRTUAL_template__Template__content(val* self) {
235 val* var /* : Array[Streamable] */;
236 val* var1 /* : Array[Streamable] */;
237 var1 = template__Template__content(self);
238 var = var1;
239 RET_LABEL:;
240 return var;
241 }
242 /* method template#Template#content= for (self: Template, Array[Streamable]) */
243 void template__Template__content_61d(val* self, val* p0) {
244 self->attrs[COLOR_template__Template___64dcontent].val = p0; /* @content on <self:Template> */
245 RET_LABEL:;
246 }
247 /* method template#Template#content= for (self: Object, Array[Streamable]) */
248 void VIRTUAL_template__Template__content_61d(val* self, val* p0) {
249 template__Template__content_61d(self, p0);
250 RET_LABEL:;
251 }
252 /* method template#Template#render_done for (self: Template): Bool */
253 short int template__Template__render_done(val* self) {
254 short int var /* : Bool */;
255 short int var1 /* : Bool */;
256 var1 = self->attrs[COLOR_template__Template___64drender_done].s; /* @render_done on <self:Template> */
257 var = var1;
258 RET_LABEL:;
259 return var;
260 }
261 /* method template#Template#render_done for (self: Object): Bool */
262 short int VIRTUAL_template__Template__render_done(val* self) {
263 short int var /* : Bool */;
264 short int var1 /* : Bool */;
265 var1 = template__Template__render_done(self);
266 var = var1;
267 RET_LABEL:;
268 return var;
269 }
270 /* method template#Template#render_done= for (self: Template, Bool) */
271 void template__Template__render_done_61d(val* self, short int p0) {
272 self->attrs[COLOR_template__Template___64drender_done].s = p0; /* @render_done on <self:Template> */
273 RET_LABEL:;
274 }
275 /* method template#Template#render_done= for (self: Object, Bool) */
276 void VIRTUAL_template__Template__render_done_61d(val* self, short int p0) {
277 template__Template__render_done_61d(self, p0);
278 RET_LABEL:;
279 }
280 /* method template#Template#force_render for (self: Template) */
281 void template__Template__force_render(val* self) {
282 short int var /* : Bool */;
283 short int var1 /* : Bool */;
284 var = ((short int (*)(val*))(self->class->vft[COLOR_template__Template__render_done]))(self) /* render_done on <self:Template>*/;
285 if (var){
286 goto RET_LABEL;
287 } else {
288 }
289 var1 = 1;
290 ((void (*)(val*, short int))(self->class->vft[COLOR_template__Template__render_done_61d]))(self, var1) /* render_done= on <self:Template>*/;
291 ((void (*)(val*))(self->class->vft[COLOR_template__Template__rendering]))(self) /* rendering on <self:Template>*/;
292 ((void (*)(val*))(self->class->vft[COLOR_template__Template__freeze]))(self) /* freeze on <self:Template>*/;
293 RET_LABEL:;
294 }
295 /* method template#Template#force_render for (self: Object) */
296 void VIRTUAL_template__Template__force_render(val* self) {
297 template__Template__force_render(self);
298 RET_LABEL:;
299 }
300 /* method template#Template#write_to for (self: Template, OStream) */
301 void template__Template__write_to(val* self, val* p0) {
302 val* var_stream /* var stream: OStream */;
303 short int var /* : Bool */;
304 short int var1 /* : Bool */;
305 short int var2 /* : Bool */;
306 val* var3 /* : Array[Streamable] */;
307 val* var4 /* : Iterator[nullable Object] */;
308 short int var5 /* : Bool */;
309 val* var6 /* : nullable Object */;
310 val* var_e /* var e: Streamable */;
311 short int var7 /* : Bool */;
312 var_stream = p0;
313 var = ((short int (*)(val*))(self->class->vft[COLOR_template__Template__is_writing]))(self) /* is_writing on <self:Template>*/;
314 var1 = !var;
315 if (!var1) {
316 fprintf(stderr, "Runtime error: %s", "Assert failed");
317 fprintf(stderr, " (%s:%d)\n", "lib/template.nit", 192);
318 show_backtrace(1);
319 }
320 var2 = 1;
321 ((void (*)(val*, short int))(self->class->vft[COLOR_template__Template__is_writing_61d]))(self, var2) /* is_writing= on <self:Template>*/;
322 ((void (*)(val*))(self->class->vft[COLOR_template__Template__force_render]))(self) /* force_render on <self:Template>*/;
323 var3 = ((val* (*)(val*))(self->class->vft[COLOR_template__Template__content]))(self) /* content on <self:Template>*/;
324 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Collection__iterator]))(var3) /* iterator on <var3:Array[Streamable]>*/;
325 for(;;) {
326 var5 = ((short int (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var4) /* is_ok on <var4:Iterator[nullable Object]>*/;
327 if(!var5) break;
328 var6 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__item]))(var4) /* item on <var4:Iterator[nullable Object]>*/;
329 var_e = var6;
330 ((void (*)(val*, val*))(var_e->class->vft[COLOR_stream__Streamable__write_to]))(var_e, var_stream) /* write_to on <var_e:Streamable>*/;
331 CONTINUE_label: (void)0;
332 ((void (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__next]))(var4) /* next on <var4:Iterator[nullable Object]>*/;
333 }
334 BREAK_label: (void)0;
335 var7 = 0;
336 ((void (*)(val*, short int))(self->class->vft[COLOR_template__Template__is_writing_61d]))(self, var7) /* is_writing= on <self:Template>*/;
337 RET_LABEL:;
338 }
339 /* method template#Template#write_to for (self: Object, OStream) */
340 void VIRTUAL_template__Template__write_to(val* self, val* p0) {
341 template__Template__write_to(self, p0);
342 RET_LABEL:;
343 }
344 /* method template#Template#is_writing for (self: Template): Bool */
345 short int template__Template__is_writing(val* self) {
346 short int var /* : Bool */;
347 short int var1 /* : Bool */;
348 var1 = self->attrs[COLOR_template__Template___64dis_writing].s; /* @is_writing on <self:Template> */
349 var = var1;
350 RET_LABEL:;
351 return var;
352 }
353 /* method template#Template#is_writing for (self: Object): Bool */
354 short int VIRTUAL_template__Template__is_writing(val* self) {
355 short int var /* : Bool */;
356 short int var1 /* : Bool */;
357 var1 = template__Template__is_writing(self);
358 var = var1;
359 RET_LABEL:;
360 return var;
361 }
362 /* method template#Template#is_writing= for (self: Template, Bool) */
363 void template__Template__is_writing_61d(val* self, short int p0) {
364 self->attrs[COLOR_template__Template___64dis_writing].s = p0; /* @is_writing on <self:Template> */
365 RET_LABEL:;
366 }
367 /* method template#Template#is_writing= for (self: Object, Bool) */
368 void VIRTUAL_template__Template__is_writing_61d(val* self, short int p0) {
369 template__Template__is_writing_61d(self, p0);
370 RET_LABEL:;
371 }
372 /* method template#Template#write_to_string for (self: Template): String */
373 val* template__Template__write_to_string(val* self) {
374 val* var /* : String */;
375 val* var1 /* : StringOStream */;
376 val* var_stream /* var stream: StringOStream */;
377 val* var2 /* : String */;
378 var1 = NEW_stream__StringOStream(&type_stream__StringOStream);
379 ((void (*)(val*))(var1->class->vft[COLOR_stream__StringOStream__init]))(var1) /* init on <var1:StringOStream>*/;
380 var_stream = var1;
381 ((void (*)(val*, val*))(self->class->vft[COLOR_stream__Streamable__write_to]))(self, var_stream) /* write_to on <self:Template>*/;
382 var2 = ((val* (*)(val*))(var_stream->class->vft[COLOR_string__Object__to_s]))(var_stream) /* to_s on <var_stream:StringOStream>*/;
383 var = var2;
384 goto RET_LABEL;
385 RET_LABEL:;
386 return var;
387 }
388 /* method template#Template#write_to_string for (self: Object): String */
389 val* VIRTUAL_template__Template__write_to_string(val* self) {
390 val* var /* : String */;
391 val* var1 /* : String */;
392 var1 = template__Template__write_to_string(self);
393 var = var1;
394 RET_LABEL:;
395 return var;
396 }
397 /* method template#Template#write_to_file for (self: Template, String) */
398 void template__Template__write_to_file(val* self, val* p0) {
399 val* var_filepath /* var filepath: String */;
400 val* var /* : OFStream */;
401 val* var_stream /* var stream: OFStream */;
402 var_filepath = p0;
403 var = NEW_file__OFStream(&type_file__OFStream);
404 ((void (*)(val*, val*))(var->class->vft[COLOR_file__OFStream__open]))(var, var_filepath) /* open on <var:OFStream>*/;
405 var_stream = var;
406 ((void (*)(val*, val*))(self->class->vft[COLOR_stream__Streamable__write_to]))(self, var_stream) /* write_to on <self:Template>*/;
407 ((void (*)(val*))(var_stream->class->vft[COLOR_stream__IOS__close]))(var_stream) /* close on <var_stream:OFStream>*/;
408 RET_LABEL:;
409 }
410 /* method template#Template#write_to_file for (self: Object, String) */
411 void VIRTUAL_template__Template__write_to_file(val* self, val* p0) {
412 template__Template__write_to_file(self, p0);
413 RET_LABEL:;
414 }
415 /* method template#Template#init for (self: Template) */
416 void template__Template__init(val* self) {
417 RET_LABEL:;
418 }
419 /* method template#Template#init for (self: Object) */
420 void VIRTUAL_template__Template__init(val* self) {
421 template__Template__init(self);
422 RET_LABEL:;
423 }