ni_nitdoc: added fast copy past utility to signatures.
[nit.git] / c_src / syntax___extern_inline._sep.c
1 /* This C file is generated by NIT to compile module syntax___extern_inline. */
2 #include "syntax___extern_inline._sep.h"
3 static const char LOCATE_syntax___extern_inline___ExternCode___language[] = "extern_inline::ExternCode::language";
4 val_t syntax___extern_inline___ExternCode___language(val_t p0){
5 struct {struct stack_frame_t me;} fra;
6 val_t tmp;
7 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8 fra.me.file = LOCATE_syntax___extern_inline;
9 fra.me.line = 26;
10 fra.me.meth = LOCATE_syntax___extern_inline___ExternCode___language;
11 fra.me.has_broke = 0;
12 fra.me.REG_size = 1;
13 fra.me.nitni_local_ref_head = NULL;
14 fra.me.REG[0] = NIT_NULL;
15 fra.me.REG[0] = p0;
16 /* syntax/extern_inline.nit:26 */
17 fra.me.REG[0] = ATTR_syntax___extern_inline___ExternCode_____atlanguage(fra.me.REG[0]);
18 stack_frame_head = fra.me.prev;
19 return fra.me.REG[0];
20 }
21 static const char LOCATE_syntax___extern_inline___ExternCode___language__eq[] = "extern_inline::ExternCode::language=";
22 void syntax___extern_inline___ExternCode___language__eq(val_t p0, val_t p1){
23 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
24 val_t tmp;
25 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
26 fra.me.file = LOCATE_syntax___extern_inline;
27 fra.me.line = 26;
28 fra.me.meth = LOCATE_syntax___extern_inline___ExternCode___language__eq;
29 fra.me.has_broke = 0;
30 fra.me.REG_size = 2;
31 fra.me.nitni_local_ref_head = NULL;
32 fra.me.REG[0] = NIT_NULL;
33 fra.me.REG[1] = NIT_NULL;
34 fra.me.REG[0] = p0;
35 fra.me.REG[1] = p1;
36 /* syntax/extern_inline.nit:26 */
37 ATTR_syntax___extern_inline___ExternCode_____atlanguage(fra.me.REG[0]) = fra.me.REG[1];
38 stack_frame_head = fra.me.prev;
39 return;
40 }
41 static const char LOCATE_syntax___extern_inline___ExternCode___code[] = "extern_inline::ExternCode::code";
42 val_t syntax___extern_inline___ExternCode___code(val_t p0){
43 struct {struct stack_frame_t me;} fra;
44 val_t REGB0;
45 val_t tmp;
46 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
47 fra.me.file = LOCATE_syntax___extern_inline;
48 fra.me.line = 27;
49 fra.me.meth = LOCATE_syntax___extern_inline___ExternCode___code;
50 fra.me.has_broke = 0;
51 fra.me.REG_size = 1;
52 fra.me.nitni_local_ref_head = NULL;
53 fra.me.REG[0] = NIT_NULL;
54 fra.me.REG[0] = p0;
55 /* syntax/extern_inline.nit:27 */
56 REGB0 = TAG_Bool(ATTR_syntax___extern_inline___ExternCode_____atcode(fra.me.REG[0])!=NIT_NULL);
57 if (UNTAG_Bool(REGB0)) {
58 } else {
59 nit_abort("Uninitialized attribute %s", "@code", LOCATE_syntax___extern_inline, 27);
60 }
61 fra.me.REG[0] = ATTR_syntax___extern_inline___ExternCode_____atcode(fra.me.REG[0]);
62 stack_frame_head = fra.me.prev;
63 return fra.me.REG[0];
64 }
65 static const char LOCATE_syntax___extern_inline___ExternCode___code__eq[] = "extern_inline::ExternCode::code=";
66 void syntax___extern_inline___ExternCode___code__eq(val_t p0, val_t p1){
67 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
68 val_t tmp;
69 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
70 fra.me.file = LOCATE_syntax___extern_inline;
71 fra.me.line = 27;
72 fra.me.meth = LOCATE_syntax___extern_inline___ExternCode___code__eq;
73 fra.me.has_broke = 0;
74 fra.me.REG_size = 2;
75 fra.me.nitni_local_ref_head = NULL;
76 fra.me.REG[0] = NIT_NULL;
77 fra.me.REG[1] = NIT_NULL;
78 fra.me.REG[0] = p0;
79 fra.me.REG[1] = p1;
80 /* syntax/extern_inline.nit:27 */
81 ATTR_syntax___extern_inline___ExternCode_____atcode(fra.me.REG[0]) = fra.me.REG[1];
82 stack_frame_head = fra.me.prev;
83 return;
84 }
85 static const char LOCATE_syntax___extern_inline___ExternCode___location[] = "extern_inline::ExternCode::location";
86 val_t syntax___extern_inline___ExternCode___location(val_t p0){
87 struct {struct stack_frame_t me;} fra;
88 val_t tmp;
89 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
90 fra.me.file = LOCATE_syntax___extern_inline;
91 fra.me.line = 28;
92 fra.me.meth = LOCATE_syntax___extern_inline___ExternCode___location;
93 fra.me.has_broke = 0;
94 fra.me.REG_size = 1;
95 fra.me.nitni_local_ref_head = NULL;
96 fra.me.REG[0] = NIT_NULL;
97 fra.me.REG[0] = p0;
98 /* syntax/extern_inline.nit:28 */
99 fra.me.REG[0] = ATTR_syntax___extern_inline___ExternCode_____atlocation(fra.me.REG[0]);
100 stack_frame_head = fra.me.prev;
101 return fra.me.REG[0];
102 }
103 static const char LOCATE_syntax___extern_inline___ExternCode___location__eq[] = "extern_inline::ExternCode::location=";
104 void syntax___extern_inline___ExternCode___location__eq(val_t p0, val_t p1){
105 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
106 val_t tmp;
107 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
108 fra.me.file = LOCATE_syntax___extern_inline;
109 fra.me.line = 28;
110 fra.me.meth = LOCATE_syntax___extern_inline___ExternCode___location__eq;
111 fra.me.has_broke = 0;
112 fra.me.REG_size = 2;
113 fra.me.nitni_local_ref_head = NULL;
114 fra.me.REG[0] = NIT_NULL;
115 fra.me.REG[1] = NIT_NULL;
116 fra.me.REG[0] = p0;
117 fra.me.REG[1] = p1;
118 /* syntax/extern_inline.nit:28 */
119 ATTR_syntax___extern_inline___ExternCode_____atlocation(fra.me.REG[0]) = fra.me.REG[1];
120 stack_frame_head = fra.me.prev;
121 return;
122 }
123 static const char LOCATE_syntax___extern_inline___ExternCode___init[] = "extern_inline::ExternCode::init";
124 void syntax___extern_inline___ExternCode___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
125 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_syntax___extern_inline___ExternCode].i;
126 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
127 val_t tmp;
128 if (init_table[itpos0]) return;
129 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
130 fra.me.file = LOCATE_syntax___extern_inline;
131 fra.me.line = 0;
132 fra.me.meth = LOCATE_syntax___extern_inline___ExternCode___init;
133 fra.me.has_broke = 0;
134 fra.me.REG_size = 4;
135 fra.me.nitni_local_ref_head = NULL;
136 fra.me.REG[0] = NIT_NULL;
137 fra.me.REG[1] = NIT_NULL;
138 fra.me.REG[2] = NIT_NULL;
139 fra.me.REG[3] = NIT_NULL;
140 fra.me.REG[0] = p0;
141 fra.me.REG[1] = p1;
142 fra.me.REG[2] = p2;
143 fra.me.REG[3] = p3;
144 ATTR_syntax___extern_inline___ExternCode_____atlanguage(fra.me.REG[0]) = fra.me.REG[1];
145 ATTR_syntax___extern_inline___ExternCode_____atcode(fra.me.REG[0]) = fra.me.REG[2];
146 ATTR_syntax___extern_inline___ExternCode_____atlocation(fra.me.REG[0]) = fra.me.REG[3];
147 stack_frame_head = fra.me.prev;
148 init_table[itpos0] = 1;
149 return;
150 }
151 static const char LOCATE_syntax___extern_inline___MMModule___extern_code_blocks[] = "extern_inline::MMModule::extern_code_blocks";
152 val_t syntax___extern_inline___MMModule___extern_code_blocks(val_t p0){
153 struct {struct stack_frame_t me;} fra;
154 val_t REGB0;
155 val_t tmp;
156 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
157 fra.me.file = LOCATE_syntax___extern_inline;
158 fra.me.line = 32;
159 fra.me.meth = LOCATE_syntax___extern_inline___MMModule___extern_code_blocks;
160 fra.me.has_broke = 0;
161 fra.me.REG_size = 1;
162 fra.me.nitni_local_ref_head = NULL;
163 fra.me.REG[0] = NIT_NULL;
164 fra.me.REG[0] = p0;
165 /* syntax/extern_inline.nit:32 */
166 REGB0 = TAG_Bool(ATTR_syntax___extern_inline___MMModule_____atextern_code_blocks(fra.me.REG[0])!=NIT_NULL);
167 if (UNTAG_Bool(REGB0)) {
168 } else {
169 nit_abort("Uninitialized attribute %s", "@extern_code_blocks", LOCATE_syntax___extern_inline, 32);
170 }
171 fra.me.REG[0] = ATTR_syntax___extern_inline___MMModule_____atextern_code_blocks(fra.me.REG[0]);
172 stack_frame_head = fra.me.prev;
173 return fra.me.REG[0];
174 }
175 static const char LOCATE_syntax___extern_inline___MMModule___extern_code_blocks__eq[] = "extern_inline::MMModule::extern_code_blocks=";
176 void syntax___extern_inline___MMModule___extern_code_blocks__eq(val_t p0, val_t p1){
177 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
178 val_t tmp;
179 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
180 fra.me.file = LOCATE_syntax___extern_inline;
181 fra.me.line = 32;
182 fra.me.meth = LOCATE_syntax___extern_inline___MMModule___extern_code_blocks__eq;
183 fra.me.has_broke = 0;
184 fra.me.REG_size = 2;
185 fra.me.nitni_local_ref_head = NULL;
186 fra.me.REG[0] = NIT_NULL;
187 fra.me.REG[1] = NIT_NULL;
188 fra.me.REG[0] = p0;
189 fra.me.REG[1] = p1;
190 /* syntax/extern_inline.nit:32 */
191 ATTR_syntax___extern_inline___MMModule_____atextern_code_blocks(fra.me.REG[0]) = fra.me.REG[1];
192 stack_frame_head = fra.me.prev;
193 return;
194 }
195 static const char LOCATE_syntax___extern_inline___MMModule___uses_ffi[] = "extern_inline::MMModule::(abstractmetamodel::MMModule::uses_ffi)";
196 val_t syntax___extern_inline___MMModule___uses_ffi(val_t p0){
197 struct {struct stack_frame_t me;} fra;
198 val_t REGB0;
199 val_t tmp;
200 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
201 fra.me.file = LOCATE_syntax___extern_inline;
202 fra.me.line = 34;
203 fra.me.meth = LOCATE_syntax___extern_inline___MMModule___uses_ffi;
204 fra.me.has_broke = 0;
205 fra.me.REG_size = 1;
206 fra.me.nitni_local_ref_head = NULL;
207 fra.me.REG[0] = NIT_NULL;
208 fra.me.REG[0] = p0;
209 /* syntax/extern_inline.nit:34 */
210 REGB0 = TAG_Bool(ATTR_syntax___extern_inline___MMModule_____atuses_ffi(fra.me.REG[0])!=NIT_NULL);
211 if (UNTAG_Bool(REGB0)) {
212 } else {
213 nit_abort("Uninitialized attribute %s", "@uses_ffi", LOCATE_syntax___extern_inline, 34);
214 }
215 REGB0 = ATTR_syntax___extern_inline___MMModule_____atuses_ffi(fra.me.REG[0]);
216 stack_frame_head = fra.me.prev;
217 return REGB0;
218 }
219 static const char LOCATE_syntax___extern_inline___MMModule___uses_ffi__eq[] = "extern_inline::MMModule::uses_ffi=";
220 void syntax___extern_inline___MMModule___uses_ffi__eq(val_t p0, val_t p1){
221 struct {struct stack_frame_t me;} fra;
222 val_t REGB0;
223 val_t tmp;
224 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
225 fra.me.file = LOCATE_syntax___extern_inline;
226 fra.me.line = 34;
227 fra.me.meth = LOCATE_syntax___extern_inline___MMModule___uses_ffi__eq;
228 fra.me.has_broke = 0;
229 fra.me.REG_size = 1;
230 fra.me.nitni_local_ref_head = NULL;
231 fra.me.REG[0] = NIT_NULL;
232 fra.me.REG[0] = p0;
233 REGB0 = p1;
234 /* syntax/extern_inline.nit:34 */
235 ATTR_syntax___extern_inline___MMModule_____atuses_ffi(fra.me.REG[0]) = REGB0;
236 stack_frame_head = fra.me.prev;
237 return;
238 }
239 static const char LOCATE_syntax___extern_inline___MMLocalClass___extern_type[] = "extern_inline::MMLocalClass::extern_type";
240 val_t syntax___extern_inline___MMLocalClass___extern_type(val_t p0){
241 struct {struct stack_frame_t me;} fra;
242 val_t tmp;
243 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
244 fra.me.file = LOCATE_syntax___extern_inline;
245 fra.me.line = 38;
246 fra.me.meth = LOCATE_syntax___extern_inline___MMLocalClass___extern_type;
247 fra.me.has_broke = 0;
248 fra.me.REG_size = 1;
249 fra.me.nitni_local_ref_head = NULL;
250 fra.me.REG[0] = NIT_NULL;
251 fra.me.REG[0] = p0;
252 /* syntax/extern_inline.nit:38 */
253 fra.me.REG[0] = ATTR_syntax___extern_inline___MMLocalClass_____atextern_type(fra.me.REG[0]);
254 stack_frame_head = fra.me.prev;
255 return fra.me.REG[0];
256 }
257 static const char LOCATE_syntax___extern_inline___MMLocalClass___extern_type__eq[] = "extern_inline::MMLocalClass::extern_type=";
258 void syntax___extern_inline___MMLocalClass___extern_type__eq(val_t p0, val_t p1){
259 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
260 val_t tmp;
261 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
262 fra.me.file = LOCATE_syntax___extern_inline;
263 fra.me.line = 38;
264 fra.me.meth = LOCATE_syntax___extern_inline___MMLocalClass___extern_type__eq;
265 fra.me.has_broke = 0;
266 fra.me.REG_size = 2;
267 fra.me.nitni_local_ref_head = NULL;
268 fra.me.REG[0] = NIT_NULL;
269 fra.me.REG[1] = NIT_NULL;
270 fra.me.REG[0] = p0;
271 fra.me.REG[1] = p1;
272 /* syntax/extern_inline.nit:38 */
273 ATTR_syntax___extern_inline___MMLocalClass_____atextern_type(fra.me.REG[0]) = fra.me.REG[1];
274 stack_frame_head = fra.me.prev;
275 return;
276 }
277 static const char LOCATE_syntax___extern_inline___MMMethod___extern_implementation[] = "extern_inline::MMMethod::extern_implementation";
278 val_t syntax___extern_inline___MMMethod___extern_implementation(val_t p0){
279 struct {struct stack_frame_t me;} fra;
280 val_t tmp;
281 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
282 fra.me.file = LOCATE_syntax___extern_inline;
283 fra.me.line = 43;
284 fra.me.meth = LOCATE_syntax___extern_inline___MMMethod___extern_implementation;
285 fra.me.has_broke = 0;
286 fra.me.REG_size = 1;
287 fra.me.nitni_local_ref_head = NULL;
288 fra.me.REG[0] = NIT_NULL;
289 fra.me.REG[0] = p0;
290 /* syntax/extern_inline.nit:43 */
291 fra.me.REG[0] = ATTR_syntax___extern_inline___MMMethod_____atextern_implementation(fra.me.REG[0]);
292 stack_frame_head = fra.me.prev;
293 return fra.me.REG[0];
294 }
295 static const char LOCATE_syntax___extern_inline___MMMethod___extern_implementation__eq[] = "extern_inline::MMMethod::extern_implementation=";
296 void syntax___extern_inline___MMMethod___extern_implementation__eq(val_t p0, val_t p1){
297 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
298 val_t tmp;
299 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
300 fra.me.file = LOCATE_syntax___extern_inline;
301 fra.me.line = 43;
302 fra.me.meth = LOCATE_syntax___extern_inline___MMMethod___extern_implementation__eq;
303 fra.me.has_broke = 0;
304 fra.me.REG_size = 2;
305 fra.me.nitni_local_ref_head = NULL;
306 fra.me.REG[0] = NIT_NULL;
307 fra.me.REG[1] = NIT_NULL;
308 fra.me.REG[0] = p0;
309 fra.me.REG[1] = p1;
310 /* syntax/extern_inline.nit:43 */
311 ATTR_syntax___extern_inline___MMMethod_____atextern_implementation(fra.me.REG[0]) = fra.me.REG[1];
312 stack_frame_head = fra.me.prev;
313 return;
314 }
315 static const char LOCATE_syntax___extern_inline___TExternCodeSegment___code[] = "extern_inline::TExternCodeSegment::code";
316 val_t syntax___extern_inline___TExternCodeSegment___code(val_t p0){
317 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
318 val_t REGB0;
319 val_t REGB1;
320 val_t REGB2;
321 val_t tmp;
322 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
323 fra.me.file = LOCATE_syntax___extern_inline;
324 fra.me.line = 48;
325 fra.me.meth = LOCATE_syntax___extern_inline___TExternCodeSegment___code;
326 fra.me.has_broke = 0;
327 fra.me.REG_size = 2;
328 fra.me.nitni_local_ref_head = NULL;
329 fra.me.REG[0] = NIT_NULL;
330 fra.me.REG[1] = NIT_NULL;
331 fra.me.REG[0] = p0;
332 /* syntax/extern_inline.nit:50 */
333 fra.me.REG[1] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
334 REGB0 = TAG_Int(2);
335 fra.me.REG[0] = CALL_parser___parser_nodes___Token___text(fra.me.REG[0])(fra.me.REG[0]);
336 /* ../lib/standard/collection/array.nit:24 */
337 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0])!=NIT_NULL);
338 if (UNTAG_Bool(REGB1)) {
339 } else {
340 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
341 }
342 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[0]);
343 /* syntax/extern_inline.nit:50 */
344 REGB2 = TAG_Int(4);
345 /* ../lib/standard/kernel.nit:240 */
346 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
347 /* syntax/extern_inline.nit:50 */
348 fra.me.REG[1] = CALL_standard___string___AbstractString___substring(fra.me.REG[1])(fra.me.REG[1], REGB0, REGB2);
349 goto label1;
350 label1: while(0);
351 stack_frame_head = fra.me.prev;
352 return fra.me.REG[1];
353 }
354 static const char LOCATE_syntax___extern_inline___AExternCodeBlock___to_extern_code[] = "extern_inline::AExternCodeBlock::to_extern_code";
355 val_t syntax___extern_inline___AExternCodeBlock___to_extern_code(val_t p0){
356 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
357 val_t REGB0;
358 val_t REGB1;
359 val_t REGB2;
360 val_t tmp;
361 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
362 fra.me.file = LOCATE_syntax___extern_inline;
363 fra.me.line = 55;
364 fra.me.meth = LOCATE_syntax___extern_inline___AExternCodeBlock___to_extern_code;
365 fra.me.has_broke = 0;
366 fra.me.REG_size = 3;
367 fra.me.nitni_local_ref_head = NULL;
368 fra.me.REG[0] = NIT_NULL;
369 fra.me.REG[1] = NIT_NULL;
370 fra.me.REG[2] = NIT_NULL;
371 fra.me.REG[0] = p0;
372 /* syntax/extern_inline.nit:58 */
373 fra.me.REG[1] = CALL_parser___parser_nodes___AExternCodeBlock___n_in_language(fra.me.REG[0])(fra.me.REG[0]);
374 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
375 if (UNTAG_Bool(REGB0)) {
376 } else {
377 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
378 if (UNTAG_Bool(REGB1)) {
379 REGB1 = TAG_Bool(0);
380 REGB0 = REGB1;
381 } else {
382 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
383 REGB0 = REGB1;
384 }
385 }
386 if (UNTAG_Bool(REGB0)) {
387 /* syntax/extern_inline.nit:59 */
388 fra.me.REG[1] = NIT_NULL;
389 } else {
390 /* syntax/extern_inline.nit:61 */
391 fra.me.REG[2] = CALL_parser___parser_nodes___AExternCodeBlock___n_in_language(fra.me.REG[0])(fra.me.REG[0]);
392 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
393 if (UNTAG_Bool(REGB0)) {
394 nit_abort("Reciever is null", NULL, LOCATE_syntax___extern_inline, 61);
395 }
396 fra.me.REG[2] = CALL_parser___parser_nodes___AInLanguage___n_string(fra.me.REG[2])(fra.me.REG[2]);
397 fra.me.REG[2] = CALL_parser___parser_nodes___Token___text(fra.me.REG[2])(fra.me.REG[2]);
398 /* syntax/extern_inline.nit:62 */
399 REGB0 = TAG_Int(1);
400 /* ../lib/standard/collection/array.nit:24 */
401 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
402 if (UNTAG_Bool(REGB1)) {
403 } else {
404 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
405 }
406 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
407 /* syntax/extern_inline.nit:62 */
408 REGB2 = TAG_Int(2);
409 /* ../lib/standard/kernel.nit:240 */
410 REGB2 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB2));
411 /* syntax/extern_inline.nit:62 */
412 fra.me.REG[2] = CALL_standard___string___AbstractString___substring(fra.me.REG[2])(fra.me.REG[2], REGB0, REGB2);
413 fra.me.REG[1] = fra.me.REG[2];
414 }
415 /* syntax/extern_inline.nit:64 */
416 fra.me.REG[2] = CALL_parser___parser_nodes___AExternCodeBlock___n_extern_code_segment(fra.me.REG[0])(fra.me.REG[0]);
417 fra.me.REG[2] = CALL_syntax___extern_inline___TExternCodeSegment___code(fra.me.REG[2])(fra.me.REG[2]);
418 fra.me.REG[0] = CALL_parser___parser_nodes___AExternCodeBlock___n_extern_code_segment(fra.me.REG[0])(fra.me.REG[0]);
419 fra.me.REG[0] = CALL_parser___parser_nodes___ANode___location(fra.me.REG[0])(fra.me.REG[0]);
420 fra.me.REG[0] = NEW_ExternCode_syntax___extern_inline___ExternCode___init(fra.me.REG[1], fra.me.REG[2], fra.me.REG[0]);
421 goto label1;
422 label1: while(0);
423 stack_frame_head = fra.me.prev;
424 return fra.me.REG[0];
425 }
426 static const char LOCATE_syntax___extern_inline___AExternPropdef___accept_property_verifier[] = "extern_inline::AExternPropdef::(mmbuilder::ANode::accept_property_verifier)";
427 void syntax___extern_inline___AExternPropdef___accept_property_verifier(val_t p0, val_t p1){
428 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
429 val_t REGB0;
430 val_t REGB1;
431 val_t tmp;
432 static val_t once_value_1; /* Once value */
433 static val_t once_value_2; /* Once value */
434 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
435 fra.me.file = LOCATE_syntax___extern_inline;
436 fra.me.line = 69;
437 fra.me.meth = LOCATE_syntax___extern_inline___AExternPropdef___accept_property_verifier;
438 fra.me.has_broke = 0;
439 fra.me.REG_size = 5;
440 fra.me.nitni_local_ref_head = NULL;
441 fra.me.REG[0] = NIT_NULL;
442 fra.me.REG[1] = NIT_NULL;
443 fra.me.REG[2] = NIT_NULL;
444 fra.me.REG[3] = NIT_NULL;
445 fra.me.REG[4] = NIT_NULL;
446 fra.me.REG[0] = p0;
447 fra.me.REG[1] = p1;
448 /* syntax/extern_inline.nit:69 */
449 fra.me.REG[2] = fra.me.REG[0];
450 fra.me.REG[3] = fra.me.REG[1];
451 /* syntax/extern_inline.nit:71 */
452 CALL_SUPER_syntax___extern_inline___AExternPropdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
453 /* syntax/extern_inline.nit:74 */
454 fra.me.REG[1] = CALL_parser___parser_nodes___AExternPropdef___n_extern_code_block(fra.me.REG[2])(fra.me.REG[2]);
455 /* syntax/extern_inline.nit:75 */
456 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
457 if (UNTAG_Bool(REGB0)) {
458 } else {
459 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
460 if (UNTAG_Bool(REGB1)) {
461 REGB1 = TAG_Bool(0);
462 REGB0 = REGB1;
463 } else {
464 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
465 REGB0 = REGB1;
466 }
467 }
468 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
469 if (UNTAG_Bool(REGB0)) {
470 /* syntax/extern_inline.nit:76 */
471 fra.me.REG[0] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
472 REGB0 = CALL_metamodel___abstractmetamodel___MMMethod___is_extern(fra.me.REG[0])(fra.me.REG[0]);
473 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
474 if (UNTAG_Bool(REGB0)) {
475 /* syntax/extern_inline.nit:78 */
476 REGB0 = TAG_Int(3);
477 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
478 if (!once_value_1) {
479 fra.me.REG[4] = BOX_NativeString("Cannot implement the non extern method ");
480 REGB0 = TAG_Int(39);
481 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
482 once_value_1 = fra.me.REG[4];
483 register_static_object(&once_value_1);
484 } else fra.me.REG[4] = once_value_1;
485 fra.me.REG[4] = fra.me.REG[4];
486 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
487 fra.me.REG[4] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
488 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___full_name(fra.me.REG[4])(fra.me.REG[4]);
489 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
490 if (!once_value_2) {
491 fra.me.REG[4] = BOX_NativeString(" with extern code");
492 REGB0 = TAG_Int(17);
493 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
494 once_value_2 = fra.me.REG[4];
495 register_static_object(&once_value_2);
496 } else fra.me.REG[4] = once_value_2;
497 fra.me.REG[4] = fra.me.REG[4];
498 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
499 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
500 /* syntax/extern_inline.nit:77 */
501 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[0]);
502 } else {
503 /* syntax/extern_inline.nit:80 */
504 fra.me.REG[0] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
505 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
506 if (UNTAG_Bool(REGB0)) {
507 nit_abort("Reciever is null", NULL, LOCATE_syntax___extern_inline, 80);
508 }
509 fra.me.REG[1] = CALL_syntax___extern_inline___AExternCodeBlock___to_extern_code(fra.me.REG[1])(fra.me.REG[1]);
510 CALL_syntax___extern_inline___MMMethod___extern_implementation__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
511 /* syntax/extern_inline.nit:81 */
512 fra.me.REG[2] = CALL_syntax___syntax_base___AMethPropdef___method(fra.me.REG[2])(fra.me.REG[2]);
513 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalProperty___mmmodule(fra.me.REG[2])(fra.me.REG[2]);
514 REGB0 = TAG_Bool(1);
515 CALL_syntax___extern_inline___MMModule___uses_ffi__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
516 }
517 }
518 stack_frame_head = fra.me.prev;
519 return;
520 }
521 static const char LOCATE_syntax___extern_inline___AStdClassdef___accept_property_verifier[] = "extern_inline::AStdClassdef::(mmbuilder::ANode::accept_property_verifier)";
522 void syntax___extern_inline___AStdClassdef___accept_property_verifier(val_t p0, val_t p1){
523 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
524 val_t REGB0;
525 val_t REGB1;
526 val_t tmp;
527 static val_t once_value_1; /* Once value */
528 static val_t once_value_2; /* Once value */
529 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
530 fra.me.file = LOCATE_syntax___extern_inline;
531 fra.me.line = 88;
532 fra.me.meth = LOCATE_syntax___extern_inline___AStdClassdef___accept_property_verifier;
533 fra.me.has_broke = 0;
534 fra.me.REG_size = 5;
535 fra.me.nitni_local_ref_head = NULL;
536 fra.me.REG[0] = NIT_NULL;
537 fra.me.REG[1] = NIT_NULL;
538 fra.me.REG[2] = NIT_NULL;
539 fra.me.REG[3] = NIT_NULL;
540 fra.me.REG[4] = NIT_NULL;
541 fra.me.REG[0] = p0;
542 fra.me.REG[1] = p1;
543 /* syntax/extern_inline.nit:88 */
544 fra.me.REG[2] = fra.me.REG[0];
545 fra.me.REG[3] = fra.me.REG[1];
546 /* syntax/extern_inline.nit:90 */
547 CALL_SUPER_syntax___extern_inline___AStdClassdef___accept_property_verifier(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
548 /* syntax/extern_inline.nit:93 */
549 fra.me.REG[1] = CALL_parser___parser_nodes___AStdClassdef___n_extern_code_block(fra.me.REG[2])(fra.me.REG[2]);
550 /* syntax/extern_inline.nit:94 */
551 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
552 if (UNTAG_Bool(REGB0)) {
553 } else {
554 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
555 if (UNTAG_Bool(REGB1)) {
556 REGB1 = TAG_Bool(0);
557 REGB0 = REGB1;
558 } else {
559 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
560 REGB0 = REGB1;
561 }
562 }
563 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
564 if (UNTAG_Bool(REGB0)) {
565 /* syntax/extern_inline.nit:95 */
566 fra.me.REG[0] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[2])(fra.me.REG[2]);
567 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global(fra.me.REG[0])(fra.me.REG[0]);
568 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalClass___is_extern(fra.me.REG[0])(fra.me.REG[0]);
569 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
570 if (UNTAG_Bool(REGB0)) {
571 /* syntax/extern_inline.nit:97 */
572 REGB0 = TAG_Int(3);
573 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
574 if (!once_value_1) {
575 fra.me.REG[4] = BOX_NativeString("Cannot define an extern equivalent in the non extern class ");
576 REGB0 = TAG_Int(59);
577 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
578 once_value_1 = fra.me.REG[4];
579 register_static_object(&once_value_1);
580 } else fra.me.REG[4] = once_value_1;
581 fra.me.REG[4] = fra.me.REG[4];
582 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
583 fra.me.REG[4] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[2])(fra.me.REG[2]);
584 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass___name(fra.me.REG[4])(fra.me.REG[4]);
585 fra.me.REG[4] = CALL_standard___string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
586 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
587 if (!once_value_2) {
588 fra.me.REG[4] = BOX_NativeString("");
589 REGB0 = TAG_Int(0);
590 fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0);
591 once_value_2 = fra.me.REG[4];
592 register_static_object(&once_value_2);
593 } else fra.me.REG[4] = once_value_2;
594 fra.me.REG[4] = fra.me.REG[4];
595 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]);
596 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
597 /* syntax/extern_inline.nit:96 */
598 CALL_syntax___syntax_base___AbsSyntaxVisitor___error(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[0]);
599 } else {
600 /* syntax/extern_inline.nit:99 */
601 fra.me.REG[0] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[2])(fra.me.REG[2]);
602 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
603 if (UNTAG_Bool(REGB0)) {
604 nit_abort("Reciever is null", NULL, LOCATE_syntax___extern_inline, 99);
605 }
606 fra.me.REG[1] = CALL_syntax___extern_inline___AExternCodeBlock___to_extern_code(fra.me.REG[1])(fra.me.REG[1]);
607 CALL_syntax___extern_inline___MMLocalClass___extern_type__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
608 /* syntax/extern_inline.nit:100 */
609 fra.me.REG[2] = CALL_syntax___syntax_base___AClassdef___local_class(fra.me.REG[2])(fra.me.REG[2]);
610 fra.me.REG[2] = CALL_metamodel___abstractmetamodel___MMLocalClass___mmmodule(fra.me.REG[2])(fra.me.REG[2]);
611 REGB0 = TAG_Bool(1);
612 CALL_syntax___extern_inline___MMModule___uses_ffi__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
613 }
614 }
615 stack_frame_head = fra.me.prev;
616 return;
617 }
618 static const char LOCATE_syntax___extern_inline___MMSrcModule___do_mmbuilder[] = "extern_inline::MMSrcModule::(mmbuilder::MMSrcModule::do_mmbuilder)";
619 void syntax___extern_inline___MMSrcModule___do_mmbuilder(val_t p0, val_t p1){
620 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
621 val_t REGB0;
622 val_t tmp;
623 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
624 fra.me.file = LOCATE_syntax___extern_inline;
625 fra.me.line = 107;
626 fra.me.meth = LOCATE_syntax___extern_inline___MMSrcModule___do_mmbuilder;
627 fra.me.has_broke = 0;
628 fra.me.REG_size = 3;
629 fra.me.nitni_local_ref_head = NULL;
630 fra.me.REG[0] = NIT_NULL;
631 fra.me.REG[1] = NIT_NULL;
632 fra.me.REG[2] = NIT_NULL;
633 fra.me.REG[0] = p0;
634 fra.me.REG[1] = p1;
635 /* syntax/extern_inline.nit:107 */
636 fra.me.REG[2] = fra.me.REG[0];
637 /* syntax/extern_inline.nit:111 */
638 CALL_SUPER_syntax___extern_inline___MMSrcModule___do_mmbuilder(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
639 /* syntax/extern_inline.nit:114 */
640 fra.me.REG[1] = CALL_syntax___syntax_base___MMSrcModule___node(fra.me.REG[2])(fra.me.REG[2]);
641 fra.me.REG[1] = CALL_parser___parser_nodes___AModule___n_extern_code_blocks(fra.me.REG[1])(fra.me.REG[1]);
642 REGB0 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[1])(fra.me.REG[1]);
643 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
644 if (UNTAG_Bool(REGB0)) {
645 REGB0 = TAG_Bool(1);
646 CALL_syntax___extern_inline___MMModule___uses_ffi__eq(fra.me.REG[2])(fra.me.REG[2], REGB0);
647 }
648 /* syntax/extern_inline.nit:115 */
649 fra.me.REG[1] = CALL_syntax___syntax_base___MMSrcModule___node(fra.me.REG[2])(fra.me.REG[2]);
650 fra.me.REG[1] = CALL_parser___parser_nodes___AModule___n_extern_code_blocks(fra.me.REG[1])(fra.me.REG[1]);
651 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_syntax___extern_inline___MMSrcModule___do_mmbuilder_1));
652 stack_frame_head = fra.me.prev;
653 return;
654 }
655 void OC_syntax___extern_inline___MMSrcModule___do_mmbuilder_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
656 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
657 fun_t CREG[1];
658 val_t tmp;
659 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
660 fra.me.file = LOCATE_syntax___extern_inline;
661 fra.me.line = 0;
662 fra.me.meth = LOCATE_syntax___extern_inline___MMSrcModule___do_mmbuilder;
663 fra.me.has_broke = 0;
664 fra.me.REG_size = 2;
665 fra.me.nitni_local_ref_head = NULL;
666 fra.me.REG[0] = NIT_NULL;
667 fra.me.REG[1] = NIT_NULL;
668 fra.me.closure_ctx = closctx_param;
669 fra.me.closure_funs = CREG;
670 fra.me.REG[0] = p0;
671 CREG[0] = clos_fun0;
672 /* syntax/extern_inline.nit:116 */
673 fra.me.REG[1] = CALL_syntax___extern_inline___MMModule___extern_code_blocks(closctx->REG[2])(closctx->REG[2]);
674 fra.me.REG[0] = CALL_syntax___extern_inline___AExternCodeBlock___to_extern_code(fra.me.REG[0])(fra.me.REG[0]);
675 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
676 stack_frame_head = fra.me.prev;
677 return;
678 }