nitc: fix calling extern constructors from extern code in separate compiler
[nit.git] / c_src / template.sep.1.c
1 #include "template.sep.0.h"
2 /* method template#Template#add for (self: Template, Streamable) */
3 void template__Template__add(val* self, val* p0) {
4 val* var_element /* var element: Streamable */;
5 short int var /* : Bool */;
6 short int var2 /* : Bool */;
7 short int var3 /* : Bool */;
8 val* var4 /* : Array[Streamable] */;
9 val* var6 /* : Array[Streamable] */;
10 var_element = p0;
11 {
12 { /* Inline template#Template#is_frozen (self) on <self:Template> */
13 var2 = self->attrs[COLOR_template__Template___is_frozen].s; /* _is_frozen on <self:Template> */
14 var = var2;
15 RET_LABEL1:(void)0;
16 }
17 }
18 var3 = !var;
19 if (unlikely(!var3)) {
20 PRINT_ERROR("Runtime error: %s", "Assert failed");
21 PRINT_ERROR(" (%s:%d)\n", "../lib/template/template.nit", 110);
22 show_backtrace(1);
23 }
24 {
25 { /* Inline template#Template#content (self) on <self:Template> */
26 var6 = self->attrs[COLOR_template__Template___content].val; /* _content on <self:Template> */
27 if (unlikely(var6 == NULL)) {
28 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _content");
29 PRINT_ERROR(" (%s:%d)\n", "../lib/template/template.nit", 183);
30 show_backtrace(1);
31 }
32 var4 = var6;
33 RET_LABEL5:(void)0;
34 }
35 }
36 {
37 array__Array__add(var4, var_element); /* Direct call array#Array#add on <var4:Array[Streamable]>*/
38 }
39 RET_LABEL:;
40 }
41 /* method template#Template#add for (self: Object, Streamable) */
42 void VIRTUAL_template__Template__add(val* self, val* p0) {
43 template__Template__add(self, p0); /* Direct call template#Template#add on <self:Object(Template)>*/
44 RET_LABEL:;
45 }
46 /* method template#Template#addn for (self: Template, Streamable) */
47 void template__Template__addn(val* self, val* p0) {
48 val* var_element /* var element: Streamable */;
49 static val* varonce;
50 val* var /* : String */;
51 char* var1 /* : NativeString */;
52 long var2 /* : Int */;
53 val* var3 /* : FlatString */;
54 var_element = p0;
55 {
56 template__Template__add(self, var_element); /* Direct call template#Template#add on <self:Template>*/
57 }
58 if (varonce) {
59 var = varonce;
60 } else {
61 var1 = "\n";
62 var2 = 1;
63 var3 = string__NativeString__to_s_with_length(var1, var2);
64 var = var3;
65 varonce = var;
66 }
67 {
68 template__Template__add(self, var); /* Direct call template#Template#add on <self:Template>*/
69 }
70 RET_LABEL:;
71 }
72 /* method template#Template#addn for (self: Object, Streamable) */
73 void VIRTUAL_template__Template__addn(val* self, val* p0) {
74 template__Template__addn(self, p0); /* Direct call template#Template#addn on <self:Object(Template)>*/
75 RET_LABEL:;
76 }
77 /* method template#Template#is_frozen for (self: Template): Bool */
78 short int template__Template__is_frozen(val* self) {
79 short int var /* : Bool */;
80 short int var1 /* : Bool */;
81 var1 = self->attrs[COLOR_template__Template___is_frozen].s; /* _is_frozen on <self:Template> */
82 var = var1;
83 RET_LABEL:;
84 return var;
85 }
86 /* method template#Template#is_frozen for (self: Object): Bool */
87 short int VIRTUAL_template__Template__is_frozen(val* self) {
88 short int var /* : Bool */;
89 short int var1 /* : Bool */;
90 short int var3 /* : Bool */;
91 { /* Inline template#Template#is_frozen (self) on <self:Object(Template)> */
92 var3 = self->attrs[COLOR_template__Template___is_frozen].s; /* _is_frozen on <self:Object(Template)> */
93 var1 = var3;
94 RET_LABEL2:(void)0;
95 }
96 var = var1;
97 RET_LABEL:;
98 return var;
99 }
100 /* method template#Template#is_frozen= for (self: Template, Bool) */
101 void template__Template__is_frozen_61d(val* self, short int p0) {
102 self->attrs[COLOR_template__Template___is_frozen].s = p0; /* _is_frozen on <self:Template> */
103 RET_LABEL:;
104 }
105 /* method template#Template#is_frozen= for (self: Object, Bool) */
106 void VIRTUAL_template__Template__is_frozen_61d(val* self, short int p0) {
107 { /* Inline template#Template#is_frozen= (self,p0) on <self:Object(Template)> */
108 self->attrs[COLOR_template__Template___is_frozen].s = p0; /* _is_frozen on <self:Object(Template)> */
109 RET_LABEL1:(void)0;
110 }
111 RET_LABEL:;
112 }
113 /* method template#Template#freeze for (self: Template) */
114 void template__Template__freeze(val* self) {
115 short int var /* : Bool */;
116 short int var2 /* : Bool */;
117 short int var3 /* : Bool */;
118 {
119 { /* Inline template#Template#is_frozen (self) on <self:Template> */
120 var2 = self->attrs[COLOR_template__Template___is_frozen].s; /* _is_frozen on <self:Template> */
121 var = var2;
122 RET_LABEL1:(void)0;
123 }
124 }
125 if (var){
126 goto RET_LABEL;
127 } else {
128 }
129 var3 = 1;
130 {
131 { /* Inline template#Template#is_frozen= (self,var3) on <self:Template> */
132 self->attrs[COLOR_template__Template___is_frozen].s = var3; /* _is_frozen on <self:Template> */
133 RET_LABEL4:(void)0;
134 }
135 }
136 RET_LABEL:;
137 }
138 /* method template#Template#freeze for (self: Object) */
139 void VIRTUAL_template__Template__freeze(val* self) {
140 template__Template__freeze(self); /* Direct call template#Template#freeze on <self:Object(Template)>*/
141 RET_LABEL:;
142 }
143 /* method template#Template#content for (self: Template): Array[Streamable] */
144 val* template__Template__content(val* self) {
145 val* var /* : Array[Streamable] */;
146 val* var1 /* : Array[Streamable] */;
147 var1 = self->attrs[COLOR_template__Template___content].val; /* _content on <self:Template> */
148 if (unlikely(var1 == NULL)) {
149 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _content");
150 PRINT_ERROR(" (%s:%d)\n", "../lib/template/template.nit", 183);
151 show_backtrace(1);
152 }
153 var = var1;
154 RET_LABEL:;
155 return var;
156 }
157 /* method template#Template#content for (self: Object): Array[Streamable] */
158 val* VIRTUAL_template__Template__content(val* self) {
159 val* var /* : Array[Streamable] */;
160 val* var1 /* : Array[Streamable] */;
161 val* var3 /* : Array[Streamable] */;
162 { /* Inline template#Template#content (self) on <self:Object(Template)> */
163 var3 = self->attrs[COLOR_template__Template___content].val; /* _content on <self:Object(Template)> */
164 if (unlikely(var3 == NULL)) {
165 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _content");
166 PRINT_ERROR(" (%s:%d)\n", "../lib/template/template.nit", 183);
167 show_backtrace(1);
168 }
169 var1 = var3;
170 RET_LABEL2:(void)0;
171 }
172 var = var1;
173 RET_LABEL:;
174 return var;
175 }
176 /* method template#Template#render_done for (self: Template): Bool */
177 short int template__Template__render_done(val* self) {
178 short int var /* : Bool */;
179 short int var1 /* : Bool */;
180 var1 = self->attrs[COLOR_template__Template___render_done].s; /* _render_done on <self:Template> */
181 var = var1;
182 RET_LABEL:;
183 return var;
184 }
185 /* method template#Template#render_done for (self: Object): Bool */
186 short int VIRTUAL_template__Template__render_done(val* self) {
187 short int var /* : Bool */;
188 short int var1 /* : Bool */;
189 short int var3 /* : Bool */;
190 { /* Inline template#Template#render_done (self) on <self:Object(Template)> */
191 var3 = self->attrs[COLOR_template__Template___render_done].s; /* _render_done on <self:Object(Template)> */
192 var1 = var3;
193 RET_LABEL2:(void)0;
194 }
195 var = var1;
196 RET_LABEL:;
197 return var;
198 }
199 /* method template#Template#render_done= for (self: Template, Bool) */
200 void template__Template__render_done_61d(val* self, short int p0) {
201 self->attrs[COLOR_template__Template___render_done].s = p0; /* _render_done on <self:Template> */
202 RET_LABEL:;
203 }
204 /* method template#Template#render_done= for (self: Object, Bool) */
205 void VIRTUAL_template__Template__render_done_61d(val* self, short int p0) {
206 { /* Inline template#Template#render_done= (self,p0) on <self:Object(Template)> */
207 self->attrs[COLOR_template__Template___render_done].s = p0; /* _render_done on <self:Object(Template)> */
208 RET_LABEL1:(void)0;
209 }
210 RET_LABEL:;
211 }
212 /* method template#Template#force_render for (self: Template) */
213 void template__Template__force_render(val* self) {
214 short int var /* : Bool */;
215 short int var2 /* : Bool */;
216 short int var3 /* : Bool */;
217 {
218 { /* Inline template#Template#render_done (self) on <self:Template> */
219 var2 = self->attrs[COLOR_template__Template___render_done].s; /* _render_done on <self:Template> */
220 var = var2;
221 RET_LABEL1:(void)0;
222 }
223 }
224 if (var){
225 goto RET_LABEL;
226 } else {
227 }
228 var3 = 1;
229 {
230 { /* Inline template#Template#render_done= (self,var3) on <self:Template> */
231 self->attrs[COLOR_template__Template___render_done].s = var3; /* _render_done on <self:Template> */
232 RET_LABEL4:(void)0;
233 }
234 }
235 {
236 toolcontext__BashCompletion__rendering(self); /* Direct call toolcontext#BashCompletion#rendering on <self:Template>*/
237 }
238 {
239 template__Template__freeze(self); /* Direct call template#Template#freeze on <self:Template>*/
240 }
241 RET_LABEL:;
242 }
243 /* method template#Template#force_render for (self: Object) */
244 void VIRTUAL_template__Template__force_render(val* self) {
245 template__Template__force_render(self); /* Direct call template#Template#force_render on <self:Object(Template)>*/
246 RET_LABEL:;
247 }
248 /* method template#Template#write_to for (self: Template, OStream) */
249 void template__Template__write_to(val* self, val* p0) {
250 val* var_stream /* var stream: OStream */;
251 short int var /* : Bool */;
252 short int var2 /* : Bool */;
253 short int var3 /* : Bool */;
254 short int var4 /* : Bool */;
255 val* var6 /* : Array[Streamable] */;
256 val* var8 /* : Array[Streamable] */;
257 val* var_ /* var : Array[Streamable] */;
258 val* var9 /* : ArrayIterator[nullable Object] */;
259 val* var_10 /* var : ArrayIterator[Streamable] */;
260 short int var11 /* : Bool */;
261 val* var12 /* : nullable Object */;
262 val* var_e /* var e: Streamable */;
263 short int var14 /* : Bool */;
264 var_stream = p0;
265 {
266 { /* Inline template#Template#is_writing (self) on <self:Template> */
267 var2 = self->attrs[COLOR_template__Template___is_writing].s; /* _is_writing on <self:Template> */
268 var = var2;
269 RET_LABEL1:(void)0;
270 }
271 }
272 var3 = !var;
273 if (unlikely(!var3)) {
274 PRINT_ERROR("Runtime error: %s", "Assert failed");
275 PRINT_ERROR(" (%s:%d)\n", "../lib/template/template.nit", 205);
276 show_backtrace(1);
277 }
278 var4 = 1;
279 {
280 { /* Inline template#Template#is_writing= (self,var4) on <self:Template> */
281 self->attrs[COLOR_template__Template___is_writing].s = var4; /* _is_writing on <self:Template> */
282 RET_LABEL5:(void)0;
283 }
284 }
285 {
286 template__Template__force_render(self); /* Direct call template#Template#force_render on <self:Template>*/
287 }
288 {
289 { /* Inline template#Template#content (self) on <self:Template> */
290 var8 = self->attrs[COLOR_template__Template___content].val; /* _content on <self:Template> */
291 if (unlikely(var8 == NULL)) {
292 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _content");
293 PRINT_ERROR(" (%s:%d)\n", "../lib/template/template.nit", 183);
294 show_backtrace(1);
295 }
296 var6 = var8;
297 RET_LABEL7:(void)0;
298 }
299 }
300 var_ = var6;
301 {
302 var9 = array__AbstractArrayRead__iterator(var_);
303 }
304 var_10 = var9;
305 for(;;) {
306 {
307 var11 = array__ArrayIterator__is_ok(var_10);
308 }
309 if (var11){
310 {
311 var12 = array__ArrayIterator__item(var_10);
312 }
313 var_e = var12;
314 {
315 ((void (*)(val*, val*))(var_e->class->vft[COLOR_stream__Streamable__write_to]))(var_e, var_stream) /* write_to on <var_e:Streamable>*/;
316 }
317 {
318 array__ArrayIterator__next(var_10); /* Direct call array#ArrayIterator#next on <var_10:ArrayIterator[Streamable]>*/
319 }
320 } else {
321 goto BREAK_label;
322 }
323 }
324 BREAK_label: (void)0;
325 {
326 { /* Inline abstract_collection#Iterator#finish (var_10) on <var_10:ArrayIterator[Streamable]> */
327 RET_LABEL13:(void)0;
328 }
329 }
330 var14 = 0;
331 {
332 { /* Inline template#Template#is_writing= (self,var14) on <self:Template> */
333 self->attrs[COLOR_template__Template___is_writing].s = var14; /* _is_writing on <self:Template> */
334 RET_LABEL15:(void)0;
335 }
336 }
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); /* Direct call template#Template#write_to on <self:Object(Template)>*/
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___is_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 short int var3 /* : Bool */;
358 { /* Inline template#Template#is_writing (self) on <self:Object(Template)> */
359 var3 = self->attrs[COLOR_template__Template___is_writing].s; /* _is_writing on <self:Object(Template)> */
360 var1 = var3;
361 RET_LABEL2:(void)0;
362 }
363 var = var1;
364 RET_LABEL:;
365 return var;
366 }
367 /* method template#Template#is_writing= for (self: Template, Bool) */
368 void template__Template__is_writing_61d(val* self, short int p0) {
369 self->attrs[COLOR_template__Template___is_writing].s = p0; /* _is_writing on <self:Template> */
370 RET_LABEL:;
371 }
372 /* method template#Template#is_writing= for (self: Object, Bool) */
373 void VIRTUAL_template__Template__is_writing_61d(val* self, short int p0) {
374 { /* Inline template#Template#is_writing= (self,p0) on <self:Object(Template)> */
375 self->attrs[COLOR_template__Template___is_writing].s = p0; /* _is_writing on <self:Object(Template)> */
376 RET_LABEL1:(void)0;
377 }
378 RET_LABEL:;
379 }