Merge branch 'll-and-gg-operators' into wip
[nit.git] / c_src / escape._sep.c
1 /* This C file is generated by NIT to compile module escape. */
2 #include "escape._sep.h"
3 void escape___EscapableContext___push(val_t p0, val_t p1, val_t p2){
4 struct {struct stack_frame_t me; val_t MORE_REG[8];} fra;
5 val_t REGB0;
6 val_t REGB1;
7 val_t tmp;
8 static val_t once_value_1; /* Once value */
9 static val_t once_value_2; /* Once value */
10 static val_t once_value_3; /* Once value */
11 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
12 fra.me.file = LOCATE_escape;
13 fra.me.line = 32;
14 fra.me.meth = LOCATE_escape___EscapableContext___push;
15 fra.me.has_broke = 0;
16 fra.me.REG_size = 9;
17 fra.me.REG[0] = NIT_NULL;
18 fra.me.REG[1] = NIT_NULL;
19 fra.me.REG[2] = NIT_NULL;
20 fra.me.REG[3] = NIT_NULL;
21 fra.me.REG[4] = NIT_NULL;
22 fra.me.REG[5] = NIT_NULL;
23 fra.me.REG[6] = NIT_NULL;
24 fra.me.REG[7] = NIT_NULL;
25 fra.me.REG[8] = NIT_NULL;
26 fra.me.REG[0] = p0;
27 fra.me.REG[1] = p1;
28 fra.me.REG[2] = p2;
29 REGB0 = TAG_Bool(ATTR_escape___EscapableContext____stack(fra.me.REG[0])!=NIT_NULL);
30 /* ./syntax//escape.nit:36 */
31 if (UNTAG_Bool(REGB0)) {
32 } else {
33 fprintf(stderr, "Uninitialized attribute %s", "_stack");
34 fprintf(stderr, " (%s:%d)\n", LOCATE_escape, 36);
35 nit_exit(1);
36 }
37 fra.me.REG[3] = ATTR_escape___EscapableContext____stack(fra.me.REG[0]);
38 CALL_abstract_collection___Sequence___push(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
39 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
40 /* ./syntax//escape.nit:37 */
41 if (UNTAG_Bool(REGB0)) {
42 } else {
43 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
44 if (UNTAG_Bool(REGB1)) {
45 REGB1 = TAG_Bool(false);
46 REGB0 = REGB1;
47 } else {
48 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
49 REGB0 = REGB1;
50 }
51 }
52 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
53 if (UNTAG_Bool(REGB0)) {
54 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
55 /* ./syntax//escape.nit:38 */
56 if (UNTAG_Bool(REGB0)) {
57 fprintf(stderr, "Reciever is null");
58 fprintf(stderr, " (%s:%d)\n", LOCATE_escape, 38);
59 nit_exit(1);
60 }
61 fra.me.REG[3] = CALL_parser_nodes___ALabel___n_id(fra.me.REG[2])(fra.me.REG[2]);
62 fra.me.REG[3] = CALL_syntax_base___Token___to_symbol(fra.me.REG[3])(fra.me.REG[3]);
63 REGB0 = TAG_Bool(ATTR_escape___EscapableContext____labels(fra.me.REG[0])!=NIT_NULL);
64 /* ./syntax//escape.nit:39 */
65 if (UNTAG_Bool(REGB0)) {
66 } else {
67 fprintf(stderr, "Uninitialized attribute %s", "_labels");
68 fprintf(stderr, " (%s:%d)\n", LOCATE_escape, 39);
69 nit_exit(1);
70 }
71 fra.me.REG[4] = ATTR_escape___EscapableContext____labels(fra.me.REG[0]);
72 fra.me.REG[4] = CALL_abstract_collection___Collection___iterator(fra.me.REG[4])(fra.me.REG[4]);
73 while(1) {
74 REGB0 = CALL_abstract_collection___Iterator___is_ok(fra.me.REG[4])(fra.me.REG[4]);
75 if (UNTAG_Bool(REGB0)) {
76 fra.me.REG[5] = CALL_abstract_collection___Iterator___item(fra.me.REG[4])(fra.me.REG[4]);
77 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[5],fra.me.REG[2]));
78 /* ./syntax//escape.nit:40 */
79 if (UNTAG_Bool(REGB0)) {
80 } else {
81 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
82 if (UNTAG_Bool(REGB1)) {
83 REGB1 = TAG_Bool(false);
84 REGB0 = REGB1;
85 } else {
86 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
87 REGB0 = REGB1;
88 }
89 }
90 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
91 if (UNTAG_Bool(REGB0)) {
92 fra.me.REG[6] = CALL_parser_nodes___ALabel___n_id(fra.me.REG[5])(fra.me.REG[5]);
93 fra.me.REG[6] = CALL_syntax_base___Token___to_symbol(fra.me.REG[6])(fra.me.REG[6]);
94 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[6]));
95 if (UNTAG_Bool(REGB0)) {
96 } else {
97 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
98 REGB0 = REGB1;
99 }
100 } else {
101 REGB1 = TAG_Bool(false);
102 REGB0 = REGB1;
103 }
104 if (UNTAG_Bool(REGB0)) {
105 fra.me.REG[6] = CALL_escape___EscapableContext___visitor(fra.me.REG[0])(fra.me.REG[0]);
106 REGB0 = TAG_Int(5);
107 fra.me.REG[7] = NEW_Array_array___Array___with_capacity(REGB0);
108 /* ./syntax//escape.nit:41 */
109 if (!once_value_1) {
110 fra.me.REG[8] = BOX_NativeString("Syntax error: label ");
111 REGB0 = TAG_Int(20);
112 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
113 once_value_1 = fra.me.REG[8];
114 register_static_object(&once_value_1);
115 } else fra.me.REG[8] = once_value_1;
116 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
117 fra.me.REG[8] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
118 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
119 if (!once_value_2) {
120 fra.me.REG[8] = BOX_NativeString(" already defined at ");
121 REGB0 = TAG_Int(20);
122 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
123 once_value_2 = fra.me.REG[8];
124 register_static_object(&once_value_2);
125 } else fra.me.REG[8] = once_value_2;
126 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
127 fra.me.REG[5] = CALL_parser_nodes___ANode___location(fra.me.REG[5])(fra.me.REG[5]);
128 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
129 if (UNTAG_Bool(REGB0)) {
130 fprintf(stderr, "Reciever is null");
131 fprintf(stderr, " (%s:%d)\n", LOCATE_escape, 41);
132 nit_exit(1);
133 }
134 fra.me.REG[8] = CALL_parser_nodes___ANode___location(fra.me.REG[2])(fra.me.REG[2]);
135 fra.me.REG[8] = CALL_location___Location___relative_to(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[8]);
136 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
137 if (!once_value_3) {
138 fra.me.REG[8] = BOX_NativeString(".");
139 REGB0 = TAG_Int(1);
140 fra.me.REG[8] = NEW_String_string___String___with_native(fra.me.REG[8], REGB0);
141 once_value_3 = fra.me.REG[8];
142 register_static_object(&once_value_3);
143 } else fra.me.REG[8] = once_value_3;
144 array___Array___add(fra.me.REG[7], fra.me.REG[8]);
145 fra.me.REG[7] = CALL_string___Object___to_s(fra.me.REG[7])(fra.me.REG[7]);
146 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[2], fra.me.REG[7]);
147 /* ./syntax//escape.nit:42 */
148 goto label4;
149 }
150 } else {
151 /* ./syntax//escape.nit:39 */
152 goto label5;
153 }
154 CALL_abstract_collection___Iterator___next(fra.me.REG[4])(fra.me.REG[4]);
155 }
156 label5: while(0);
157 REGB0 = TAG_Bool(ATTR_escape___EscapableContext____labels(fra.me.REG[0])!=NIT_NULL);
158 /* ./syntax//escape.nit:45 */
159 if (UNTAG_Bool(REGB0)) {
160 } else {
161 fprintf(stderr, "Uninitialized attribute %s", "_labels");
162 fprintf(stderr, " (%s:%d)\n", LOCATE_escape, 45);
163 nit_exit(1);
164 }
165 fra.me.REG[0] = ATTR_escape___EscapableContext____labels(fra.me.REG[0]);
166 array___Array___add(fra.me.REG[0], fra.me.REG[2]);
167 /* ./syntax//escape.nit:46 */
168 ATTR_escape___EscapableBlock____lab(fra.me.REG[1]) = fra.me.REG[3];
169 }
170 label4: while(0);
171 stack_frame_head = fra.me.prev;
172 return;
173 }
174 val_t escape___EscapableContext___head(val_t p0){
175 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
176 val_t REGB0;
177 val_t REGB1;
178 val_t REGB2;
179 val_t REGB3;
180 val_t tmp;
181 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
182 fra.me.file = LOCATE_escape;
183 fra.me.line = 50;
184 fra.me.meth = LOCATE_escape___EscapableContext___head;
185 fra.me.has_broke = 0;
186 fra.me.REG_size = 2;
187 fra.me.REG[0] = NIT_NULL;
188 fra.me.REG[1] = NIT_NULL;
189 fra.me.REG[0] = p0;
190 REGB0 = TAG_Bool(ATTR_escape___EscapableContext____stack(fra.me.REG[0])!=NIT_NULL);
191 /* ./syntax//escape.nit:53 */
192 if (UNTAG_Bool(REGB0)) {
193 } else {
194 fprintf(stderr, "Uninitialized attribute %s", "_stack");
195 fprintf(stderr, " (%s:%d)\n", LOCATE_escape, 53);
196 nit_exit(1);
197 }
198 fra.me.REG[1] = ATTR_escape___EscapableContext____stack(fra.me.REG[0]);
199 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
200 /* ./../lib/standard//collection//array.nit:23 */
201 if (UNTAG_Bool(REGB0)) {
202 } else {
203 fprintf(stderr, "Uninitialized attribute %s", "_length");
204 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
205 nit_exit(1);
206 }
207 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
208 REGB1 = TAG_Int(1);
209 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
210 /* ./syntax//escape.nit:54 */
211 while(1) {
212 REGB0 = TAG_Int(0);
213 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
214 /* ./syntax//escape.nit:54 */
215 if (UNTAG_Bool(REGB0)) {
216 REGB0 = TAG_Bool(ATTR_escape___EscapableContext____stack(fra.me.REG[0])!=NIT_NULL);
217 /* ./syntax//escape.nit:55 */
218 if (UNTAG_Bool(REGB0)) {
219 } else {
220 fprintf(stderr, "Uninitialized attribute %s", "_stack");
221 fprintf(stderr, " (%s:%d)\n", LOCATE_escape, 55);
222 nit_exit(1);
223 }
224 fra.me.REG[1] = ATTR_escape___EscapableContext____stack(fra.me.REG[0]);
225 REGB0 = REGB1;
226 REGB2 = TAG_Int(0);
227 REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
228 /* ./../lib/standard//collection//array.nit:233 */
229 if (UNTAG_Bool(REGB2)) {
230 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
231 if (UNTAG_Bool(REGB2)) {
232 } else {
233 fprintf(stderr, "Uninitialized attribute %s", "_length");
234 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
235 nit_exit(1);
236 }
237 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[1]);
238 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
239 /* ./../lib/standard//collection//array.nit:233 */
240 } else {
241 REGB3 = TAG_Bool(false);
242 REGB2 = REGB3;
243 }
244 if (UNTAG_Bool(REGB2)) {
245 } else {
246 fprintf(stderr, "Assert %s failed", "'index'");
247 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
248 nit_exit(1);
249 }
250 fra.me.REG[1] = ATTR_array___Array____items(fra.me.REG[1]);
251 REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
252 /* ./../lib/standard//collection//array.nit:234 */
253 if (UNTAG_Bool(REGB2)) {
254 fprintf(stderr, "Reciever is null");
255 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
256 nit_exit(1);
257 }
258 fra.me.REG[1] = ((Nit_NativeArray)fra.me.REG[1])->val[UNTAG_Int(REGB0)];
259 /* ./../lib/standard//collection//array.nit:234 */
260 goto label1;
261 label1: while(0);
262 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_BreakOnlyEscapableBlock, ID_BreakOnlyEscapableBlock)) /*cast BreakOnlyEscapableBlock*/;
263 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
264 /* ./syntax//escape.nit:56 */
265 if (UNTAG_Bool(REGB0)) {
266 goto label2;
267 }
268 REGB0 = TAG_Int(1);
269 REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
270 REGB1 = REGB0;
271 /* ./syntax//escape.nit:57 */
272 } else {
273 /* ./syntax//escape.nit:54 */
274 goto label3;
275 }
276 }
277 label3: while(0);
278 fra.me.REG[1] = NIT_NULL;
279 /* ./syntax//escape.nit:59 */
280 goto label2;
281 label2: while(0);
282 stack_frame_head = fra.me.prev;
283 return fra.me.REG[1];
284 }
285 val_t escape___EscapableContext___get_by_label(val_t p0, val_t p1){
286 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
287 val_t REGB0;
288 val_t REGB1;
289 val_t REGB2;
290 val_t REGB3;
291 val_t tmp;
292 static val_t once_value_4; /* Once value */
293 static val_t once_value_5; /* Once value */
294 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
295 fra.me.file = LOCATE_escape;
296 fra.me.line = 62;
297 fra.me.meth = LOCATE_escape___EscapableContext___get_by_label;
298 fra.me.has_broke = 0;
299 fra.me.REG_size = 6;
300 fra.me.REG[0] = NIT_NULL;
301 fra.me.REG[1] = NIT_NULL;
302 fra.me.REG[2] = NIT_NULL;
303 fra.me.REG[3] = NIT_NULL;
304 fra.me.REG[4] = NIT_NULL;
305 fra.me.REG[5] = NIT_NULL;
306 fra.me.REG[0] = p0;
307 fra.me.REG[1] = p1;
308 REGB0 = TAG_Bool(ATTR_escape___EscapableContext____stack(fra.me.REG[0])!=NIT_NULL);
309 /* ./syntax//escape.nit:66 */
310 if (UNTAG_Bool(REGB0)) {
311 } else {
312 fprintf(stderr, "Uninitialized attribute %s", "_stack");
313 fprintf(stderr, " (%s:%d)\n", LOCATE_escape, 66);
314 nit_exit(1);
315 }
316 fra.me.REG[2] = ATTR_escape___EscapableContext____stack(fra.me.REG[0]);
317 REGB0 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
318 /* ./../lib/standard//collection//array.nit:23 */
319 if (UNTAG_Bool(REGB0)) {
320 } else {
321 fprintf(stderr, "Uninitialized attribute %s", "_length");
322 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 23);
323 nit_exit(1);
324 }
325 REGB0 = ATTR_array___AbstractArrayRead____length(fra.me.REG[2]);
326 REGB1 = TAG_Int(1);
327 REGB1 = TAG_Int(UNTAG_Int(REGB0)-UNTAG_Int(REGB1));
328 fra.me.REG[2] = CALL_parser_nodes___ALabel___n_id(fra.me.REG[1])(fra.me.REG[1]);
329 fra.me.REG[2] = CALL_syntax_base___Token___to_symbol(fra.me.REG[2])(fra.me.REG[2]);
330 /* ./syntax//escape.nit:69 */
331 while(1) {
332 REGB0 = TAG_Int(0);
333 REGB0 = TAG_Bool(UNTAG_Int(REGB1)>=UNTAG_Int(REGB0));
334 /* ./syntax//escape.nit:69 */
335 if (UNTAG_Bool(REGB0)) {
336 REGB0 = TAG_Bool(ATTR_escape___EscapableContext____stack(fra.me.REG[0])!=NIT_NULL);
337 /* ./syntax//escape.nit:70 */
338 if (UNTAG_Bool(REGB0)) {
339 } else {
340 fprintf(stderr, "Uninitialized attribute %s", "_stack");
341 fprintf(stderr, " (%s:%d)\n", LOCATE_escape, 70);
342 nit_exit(1);
343 }
344 fra.me.REG[3] = ATTR_escape___EscapableContext____stack(fra.me.REG[0]);
345 REGB0 = REGB1;
346 REGB2 = TAG_Int(0);
347 REGB2 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB2));
348 /* ./../lib/standard//collection//array.nit:233 */
349 if (UNTAG_Bool(REGB2)) {
350 REGB2 = TAG_Bool(ATTR_array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
351 if (UNTAG_Bool(REGB2)) {
352 } else {
353 fprintf(stderr, "Uninitialized attribute %s", "_length");
354 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
355 nit_exit(1);
356 }
357 REGB2 = ATTR_array___AbstractArrayRead____length(fra.me.REG[3]);
358 REGB2 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB2));
359 /* ./../lib/standard//collection//array.nit:233 */
360 } else {
361 REGB3 = TAG_Bool(false);
362 REGB2 = REGB3;
363 }
364 if (UNTAG_Bool(REGB2)) {
365 } else {
366 fprintf(stderr, "Assert %s failed", "'index'");
367 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 233);
368 nit_exit(1);
369 }
370 fra.me.REG[3] = ATTR_array___Array____items(fra.me.REG[3]);
371 REGB2 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
372 /* ./../lib/standard//collection//array.nit:234 */
373 if (UNTAG_Bool(REGB2)) {
374 fprintf(stderr, "Reciever is null");
375 fprintf(stderr, " (%s:%d)\n", LOCATE_array, 234);
376 nit_exit(1);
377 }
378 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[3])->val[UNTAG_Int(REGB0)];
379 /* ./../lib/standard//collection//array.nit:234 */
380 goto label1;
381 label1: while(0);
382 fra.me.REG[4] = CALL_escape___EscapableBlock___lab(fra.me.REG[3])(fra.me.REG[3]);
383 REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[2],fra.me.REG[4]));
384 /* ./syntax//escape.nit:71 */
385 if (UNTAG_Bool(REGB0)) {
386 } else {
387 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
388 if (UNTAG_Bool(REGB2)) {
389 REGB2 = TAG_Bool(false);
390 REGB0 = REGB2;
391 } else {
392 REGB2 = CALL_kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]);
393 REGB0 = REGB2;
394 }
395 }
396 if (UNTAG_Bool(REGB0)) {
397 goto label2;
398 }
399 REGB0 = TAG_Int(1);
400 REGB0 = TAG_Int(UNTAG_Int(REGB1)-UNTAG_Int(REGB0));
401 REGB1 = REGB0;
402 /* ./syntax//escape.nit:72 */
403 } else {
404 /* ./syntax//escape.nit:69 */
405 goto label3;
406 }
407 }
408 label3: while(0);
409 fra.me.REG[0] = CALL_escape___EscapableContext___visitor(fra.me.REG[0])(fra.me.REG[0]);
410 REGB1 = TAG_Int(3);
411 fra.me.REG[4] = NEW_Array_array___Array___with_capacity(REGB1);
412 /* ./syntax//escape.nit:74 */
413 if (!once_value_4) {
414 fra.me.REG[5] = BOX_NativeString("Syntax error: invalid label ");
415 REGB1 = TAG_Int(28);
416 fra.me.REG[5] = NEW_String_string___String___with_native(fra.me.REG[5], REGB1);
417 once_value_4 = fra.me.REG[5];
418 register_static_object(&once_value_4);
419 } else fra.me.REG[5] = once_value_4;
420 array___Array___add(fra.me.REG[4], fra.me.REG[5]);
421 fra.me.REG[2] = CALL_string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
422 array___Array___add(fra.me.REG[4], fra.me.REG[2]);
423 if (!once_value_5) {
424 fra.me.REG[2] = BOX_NativeString(".");
425 REGB1 = TAG_Int(1);
426 fra.me.REG[2] = NEW_String_string___String___with_native(fra.me.REG[2], REGB1);
427 once_value_5 = fra.me.REG[2];
428 register_static_object(&once_value_5);
429 } else fra.me.REG[2] = once_value_5;
430 array___Array___add(fra.me.REG[4], fra.me.REG[2]);
431 fra.me.REG[4] = CALL_string___Object___to_s(fra.me.REG[4])(fra.me.REG[4]);
432 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[4]);
433 fra.me.REG[3] = NIT_NULL;
434 /* ./syntax//escape.nit:75 */
435 goto label2;
436 label2: while(0);
437 stack_frame_head = fra.me.prev;
438 return fra.me.REG[3];
439 }
440 void escape___EscapableContext___pop(val_t p0){
441 struct {struct stack_frame_t me;} fra;
442 val_t REGB0;
443 val_t tmp;
444 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
445 fra.me.file = LOCATE_escape;
446 fra.me.line = 78;
447 fra.me.meth = LOCATE_escape___EscapableContext___pop;
448 fra.me.has_broke = 0;
449 fra.me.REG_size = 1;
450 fra.me.REG[0] = NIT_NULL;
451 fra.me.REG[0] = p0;
452 REGB0 = TAG_Bool(ATTR_escape___EscapableContext____stack(fra.me.REG[0])!=NIT_NULL);
453 /* ./syntax//escape.nit:81 */
454 if (UNTAG_Bool(REGB0)) {
455 } else {
456 fprintf(stderr, "Uninitialized attribute %s", "_stack");
457 fprintf(stderr, " (%s:%d)\n", LOCATE_escape, 81);
458 nit_exit(1);
459 }
460 fra.me.REG[0] = ATTR_escape___EscapableContext____stack(fra.me.REG[0]);
461 fra.me.REG[0] = CALL_abstract_collection___Sequence___pop(fra.me.REG[0])(fra.me.REG[0]);
462 stack_frame_head = fra.me.prev;
463 return;
464 }
465 val_t escape___EscapableContext___visitor(val_t p0){
466 struct {struct stack_frame_t me;} fra;
467 val_t REGB0;
468 val_t tmp;
469 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
470 fra.me.file = LOCATE_escape;
471 fra.me.line = 84;
472 fra.me.meth = LOCATE_escape___EscapableContext___visitor;
473 fra.me.has_broke = 0;
474 fra.me.REG_size = 1;
475 fra.me.REG[0] = NIT_NULL;
476 fra.me.REG[0] = p0;
477 REGB0 = TAG_Bool(ATTR_escape___EscapableContext____visitor(fra.me.REG[0])!=NIT_NULL);
478 /* ./syntax//escape.nit:84 */
479 if (UNTAG_Bool(REGB0)) {
480 } else {
481 fprintf(stderr, "Uninitialized attribute %s", "_visitor");
482 fprintf(stderr, " (%s:%d)\n", LOCATE_escape, 84);
483 nit_exit(1);
484 }
485 fra.me.REG[0] = ATTR_escape___EscapableContext____visitor(fra.me.REG[0]);
486 stack_frame_head = fra.me.prev;
487 return fra.me.REG[0];
488 }
489 void escape___EscapableContext___init(val_t p0, val_t p1, int* init_table){
490 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_EscapableContext].i;
491 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
492 val_t tmp;
493 if (init_table[itpos0]) return;
494 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
495 fra.me.file = LOCATE_escape;
496 fra.me.line = 85;
497 fra.me.meth = LOCATE_escape___EscapableContext___init;
498 fra.me.has_broke = 0;
499 fra.me.REG_size = 2;
500 fra.me.REG[0] = NIT_NULL;
501 fra.me.REG[1] = NIT_NULL;
502 fra.me.REG[0] = p0;
503 fra.me.REG[1] = p1;
504 /* ./syntax//escape.nit:87 */
505 ATTR_escape___EscapableContext____visitor(fra.me.REG[0]) = fra.me.REG[1];
506 stack_frame_head = fra.me.prev;
507 init_table[itpos0] = 1;
508 return;
509 }
510 val_t escape___EscapableBlock___node(val_t p0){
511 struct {struct stack_frame_t me;} fra;
512 val_t REGB0;
513 val_t tmp;
514 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
515 fra.me.file = LOCATE_escape;
516 fra.me.line = 98;
517 fra.me.meth = LOCATE_escape___EscapableBlock___node;
518 fra.me.has_broke = 0;
519 fra.me.REG_size = 1;
520 fra.me.REG[0] = NIT_NULL;
521 fra.me.REG[0] = p0;
522 REGB0 = TAG_Bool(ATTR_escape___EscapableBlock____node(fra.me.REG[0])!=NIT_NULL);
523 /* ./syntax//escape.nit:98 */
524 if (UNTAG_Bool(REGB0)) {
525 } else {
526 fprintf(stderr, "Uninitialized attribute %s", "_node");
527 fprintf(stderr, " (%s:%d)\n", LOCATE_escape, 98);
528 nit_exit(1);
529 }
530 fra.me.REG[0] = ATTR_escape___EscapableBlock____node(fra.me.REG[0]);
531 stack_frame_head = fra.me.prev;
532 return fra.me.REG[0];
533 }
534 val_t escape___EscapableBlock___lab(val_t p0){
535 struct {struct stack_frame_t me;} fra;
536 val_t tmp;
537 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
538 fra.me.file = LOCATE_escape;
539 fra.me.line = 101;
540 fra.me.meth = LOCATE_escape___EscapableBlock___lab;
541 fra.me.has_broke = 0;
542 fra.me.REG_size = 1;
543 fra.me.REG[0] = NIT_NULL;
544 fra.me.REG[0] = p0;
545 fra.me.REG[0] = ATTR_escape___EscapableBlock____lab(fra.me.REG[0]);
546 /* ./syntax//escape.nit:101 */
547 stack_frame_head = fra.me.prev;
548 return fra.me.REG[0];
549 }
550 val_t escape___EscapableBlock___is_break_block(val_t p0){
551 struct {struct stack_frame_t me;} fra;
552 val_t REGB0;
553 val_t tmp;
554 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
555 fra.me.file = LOCATE_escape;
556 fra.me.line = 105;
557 fra.me.meth = LOCATE_escape___EscapableBlock___is_break_block;
558 fra.me.has_broke = 0;
559 fra.me.REG_size = 1;
560 fra.me.REG[0] = NIT_NULL;
561 fra.me.REG[0] = p0;
562 REGB0 = TAG_Bool(false);
563 /* ./syntax//escape.nit:106 */
564 goto label1;
565 label1: while(0);
566 stack_frame_head = fra.me.prev;
567 return REGB0;
568 }
569 val_t escape___EscapableBlock___break_list(val_t p0){
570 struct {struct stack_frame_t me;} fra;
571 val_t tmp;
572 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
573 fra.me.file = LOCATE_escape;
574 fra.me.line = 108;
575 fra.me.meth = LOCATE_escape___EscapableBlock___break_list;
576 fra.me.has_broke = 0;
577 fra.me.REG_size = 1;
578 fra.me.REG[0] = NIT_NULL;
579 fra.me.REG[0] = p0;
580 fra.me.REG[0] = NIT_NULL;
581 /* ./syntax//escape.nit:111 */
582 goto label1;
583 label1: while(0);
584 stack_frame_head = fra.me.prev;
585 return fra.me.REG[0];
586 }
587 val_t escape___EscapableBlock___continue_stype(val_t p0){
588 struct {struct stack_frame_t me;} fra;
589 val_t tmp;
590 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
591 fra.me.file = LOCATE_escape;
592 fra.me.line = 113;
593 fra.me.meth = LOCATE_escape___EscapableBlock___continue_stype;
594 fra.me.has_broke = 0;
595 fra.me.REG_size = 1;
596 fra.me.REG[0] = NIT_NULL;
597 fra.me.REG[0] = p0;
598 fra.me.REG[0] = NIT_NULL;
599 /* ./syntax//escape.nit:114 */
600 goto label1;
601 label1: while(0);
602 stack_frame_head = fra.me.prev;
603 return fra.me.REG[0];
604 }
605 void escape___EscapableBlock___init(val_t p0, val_t p1, int* init_table){
606 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_EscapableBlock].i;
607 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
608 val_t tmp;
609 if (init_table[itpos1]) return;
610 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
611 fra.me.file = LOCATE_escape;
612 fra.me.line = 116;
613 fra.me.meth = LOCATE_escape___EscapableBlock___init;
614 fra.me.has_broke = 0;
615 fra.me.REG_size = 2;
616 fra.me.REG[0] = NIT_NULL;
617 fra.me.REG[1] = NIT_NULL;
618 fra.me.REG[0] = p0;
619 fra.me.REG[1] = p1;
620 /* ./syntax//escape.nit:118 */
621 ATTR_escape___EscapableBlock____node(fra.me.REG[0]) = fra.me.REG[1];
622 stack_frame_head = fra.me.prev;
623 init_table[itpos1] = 1;
624 return;
625 }
626 val_t escape___BreakOnlyEscapableBlock___is_break_block(val_t p0){
627 struct {struct stack_frame_t me;} fra;
628 val_t REGB0;
629 val_t tmp;
630 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
631 fra.me.file = LOCATE_escape;
632 fra.me.line = 125;
633 fra.me.meth = LOCATE_escape___BreakOnlyEscapableBlock___is_break_block;
634 fra.me.has_broke = 0;
635 fra.me.REG_size = 1;
636 fra.me.REG[0] = NIT_NULL;
637 fra.me.REG[0] = p0;
638 REGB0 = TAG_Bool(true);
639 /* ./syntax//escape.nit:125 */
640 goto label1;
641 label1: while(0);
642 stack_frame_head = fra.me.prev;
643 return REGB0;
644 }
645 void escape___BreakOnlyEscapableBlock___init(val_t p0, val_t p1, int* init_table){
646 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_BreakOnlyEscapableBlock].i;
647 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
648 val_t tmp;
649 if (init_table[itpos2]) return;
650 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
651 fra.me.file = LOCATE_escape;
652 fra.me.line = 127;
653 fra.me.meth = LOCATE_escape___BreakOnlyEscapableBlock___init;
654 fra.me.has_broke = 0;
655 fra.me.REG_size = 2;
656 fra.me.REG[0] = NIT_NULL;
657 fra.me.REG[1] = NIT_NULL;
658 fra.me.REG[0] = p0;
659 fra.me.REG[1] = p1;
660 /* ./syntax//escape.nit:127 */
661 CALL_escape___EscapableBlock___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
662 stack_frame_head = fra.me.prev;
663 init_table[itpos2] = 1;
664 return;
665 }
666 val_t escape___EscapableClosure___is_break_block(val_t p0){
667 struct {struct stack_frame_t me;} fra;
668 val_t REGB0;
669 val_t tmp;
670 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
671 fra.me.file = LOCATE_escape;
672 fra.me.line = 136;
673 fra.me.meth = LOCATE_escape___EscapableClosure___is_break_block;
674 fra.me.has_broke = 0;
675 fra.me.REG_size = 1;
676 fra.me.REG[0] = NIT_NULL;
677 fra.me.REG[0] = p0;
678 REGB0 = TAG_Bool(ATTR_escape___EscapableClosure____closure(fra.me.REG[0])!=NIT_NULL);
679 /* ./syntax//escape.nit:136 */
680 if (UNTAG_Bool(REGB0)) {
681 } else {
682 fprintf(stderr, "Uninitialized attribute %s", "_closure");
683 fprintf(stderr, " (%s:%d)\n", LOCATE_escape, 136);
684 nit_exit(1);
685 }
686 fra.me.REG[0] = ATTR_escape___EscapableClosure____closure(fra.me.REG[0]);
687 REGB0 = CALL_static_type___MMClosure___is_break(fra.me.REG[0])(fra.me.REG[0]);
688 goto label1;
689 label1: while(0);
690 stack_frame_head = fra.me.prev;
691 return REGB0;
692 }
693 val_t escape___EscapableClosure___break_list(val_t p0){
694 struct {struct stack_frame_t me;} fra;
695 val_t tmp;
696 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
697 fra.me.file = LOCATE_escape;
698 fra.me.line = 138;
699 fra.me.meth = LOCATE_escape___EscapableClosure___break_list;
700 fra.me.has_broke = 0;
701 fra.me.REG_size = 1;
702 fra.me.REG[0] = NIT_NULL;
703 fra.me.REG[0] = p0;
704 fra.me.REG[0] = ATTR_escape___EscapableClosure____break_list(fra.me.REG[0]);
705 /* ./syntax//escape.nit:138 */
706 stack_frame_head = fra.me.prev;
707 return fra.me.REG[0];
708 }
709 val_t escape___EscapableClosure___continue_stype(val_t p0){
710 struct {struct stack_frame_t me;} fra;
711 val_t REGB0;
712 val_t tmp;
713 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
714 fra.me.file = LOCATE_escape;
715 fra.me.line = 140;
716 fra.me.meth = LOCATE_escape___EscapableClosure___continue_stype;
717 fra.me.has_broke = 0;
718 fra.me.REG_size = 1;
719 fra.me.REG[0] = NIT_NULL;
720 fra.me.REG[0] = p0;
721 REGB0 = TAG_Bool(ATTR_escape___EscapableClosure____closure(fra.me.REG[0])!=NIT_NULL);
722 /* ./syntax//escape.nit:140 */
723 if (UNTAG_Bool(REGB0)) {
724 } else {
725 fprintf(stderr, "Uninitialized attribute %s", "_closure");
726 fprintf(stderr, " (%s:%d)\n", LOCATE_escape, 140);
727 nit_exit(1);
728 }
729 fra.me.REG[0] = ATTR_escape___EscapableClosure____closure(fra.me.REG[0]);
730 fra.me.REG[0] = CALL_static_type___MMClosure___signature(fra.me.REG[0])(fra.me.REG[0]);
731 fra.me.REG[0] = CALL_static_type___MMSignature___return_type(fra.me.REG[0])(fra.me.REG[0]);
732 goto label1;
733 label1: while(0);
734 stack_frame_head = fra.me.prev;
735 return fra.me.REG[0];
736 }
737 val_t escape___EscapableClosure___closure(val_t p0){
738 struct {struct stack_frame_t me;} fra;
739 val_t REGB0;
740 val_t tmp;
741 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
742 fra.me.file = LOCATE_escape;
743 fra.me.line = 133;
744 fra.me.meth = LOCATE_escape___EscapableClosure___closure;
745 fra.me.has_broke = 0;
746 fra.me.REG_size = 1;
747 fra.me.REG[0] = NIT_NULL;
748 fra.me.REG[0] = p0;
749 REGB0 = TAG_Bool(ATTR_escape___EscapableClosure____closure(fra.me.REG[0])!=NIT_NULL);
750 /* ./syntax//escape.nit:133 */
751 if (UNTAG_Bool(REGB0)) {
752 } else {
753 fprintf(stderr, "Uninitialized attribute %s", "_closure");
754 fprintf(stderr, " (%s:%d)\n", LOCATE_escape, 133);
755 nit_exit(1);
756 }
757 fra.me.REG[0] = ATTR_escape___EscapableClosure____closure(fra.me.REG[0]);
758 stack_frame_head = fra.me.prev;
759 return fra.me.REG[0];
760 }
761 void escape___EscapableClosure___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
762 int itpos3 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_EscapableClosure].i;
763 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
764 val_t tmp;
765 if (init_table[itpos3]) return;
766 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
767 fra.me.file = LOCATE_escape;
768 fra.me.line = 142;
769 fra.me.meth = LOCATE_escape___EscapableClosure___init;
770 fra.me.has_broke = 0;
771 fra.me.REG_size = 5;
772 fra.me.REG[0] = NIT_NULL;
773 fra.me.REG[1] = NIT_NULL;
774 fra.me.REG[2] = NIT_NULL;
775 fra.me.REG[3] = NIT_NULL;
776 fra.me.REG[4] = NIT_NULL;
777 fra.me.REG[0] = p0;
778 fra.me.REG[1] = p1;
779 fra.me.REG[2] = p2;
780 fra.me.REG[3] = p3;
781 fra.me.REG[4] = fra.me.REG[0];
782 /* ./syntax//escape.nit:144 */
783 CALL_escape___EscapableBlock___init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], init_table);
784 /* ./syntax//escape.nit:145 */
785 ATTR_escape___EscapableClosure____closure(fra.me.REG[4]) = fra.me.REG[2];
786 /* ./syntax//escape.nit:146 */
787 ATTR_escape___EscapableClosure____break_list(fra.me.REG[4]) = fra.me.REG[3];
788 stack_frame_head = fra.me.prev;
789 init_table[itpos3] = 1;
790 return;
791 }
792 val_t escape___AEscapeExpr___escapable(val_t p0){
793 struct {struct stack_frame_t me;} fra;
794 val_t tmp;
795 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
796 fra.me.file = LOCATE_escape;
797 fra.me.line = 154;
798 fra.me.meth = LOCATE_escape___AEscapeExpr___escapable;
799 fra.me.has_broke = 0;
800 fra.me.REG_size = 1;
801 fra.me.REG[0] = NIT_NULL;
802 fra.me.REG[0] = p0;
803 fra.me.REG[0] = ATTR_escape___AEscapeExpr____escapable(fra.me.REG[0]);
804 /* ./syntax//escape.nit:154 */
805 stack_frame_head = fra.me.prev;
806 return fra.me.REG[0];
807 }
808 val_t escape___AEscapeExpr___kwname(val_t p0){
809 struct {struct stack_frame_t me;} fra;
810 val_t tmp;
811 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
812 fra.me.file = LOCATE_escape;
813 fra.me.line = 157;
814 fra.me.meth = LOCATE_escape___AEscapeExpr___kwname;
815 fra.me.has_broke = 0;
816 fra.me.REG_size = 0;
817 /* ./syntax//escape.nit:157 */
818 fprintf(stderr, "Deferred method called");
819 fprintf(stderr, " (%s:%d)\n", LOCATE_escape, 157);
820 nit_exit(1);
821 stack_frame_head = fra.me.prev;
822 return NIT_NULL;
823 }
824 val_t escape___AEscapeExpr___compute_escapable_block(val_t p0, val_t p1){
825 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
826 val_t REGB0;
827 val_t REGB1;
828 val_t tmp;
829 static val_t once_value_1; /* Once value */
830 static val_t once_value_2; /* Once value */
831 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
832 fra.me.file = LOCATE_escape;
833 fra.me.line = 160;
834 fra.me.meth = LOCATE_escape___AEscapeExpr___compute_escapable_block;
835 fra.me.has_broke = 0;
836 fra.me.REG_size = 5;
837 fra.me.REG[0] = NIT_NULL;
838 fra.me.REG[1] = NIT_NULL;
839 fra.me.REG[2] = NIT_NULL;
840 fra.me.REG[3] = NIT_NULL;
841 fra.me.REG[4] = NIT_NULL;
842 fra.me.REG[0] = p0;
843 fra.me.REG[1] = p1;
844 fra.me.REG[2] = CALL_parser_nodes___ALabelable___n_label(fra.me.REG[0])(fra.me.REG[0]);
845 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
846 /* ./syntax//escape.nit:165 */
847 if (UNTAG_Bool(REGB0)) {
848 } else {
849 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
850 if (UNTAG_Bool(REGB1)) {
851 REGB1 = TAG_Bool(false);
852 REGB0 = REGB1;
853 } else {
854 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
855 REGB0 = REGB1;
856 }
857 }
858 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
859 if (UNTAG_Bool(REGB0)) {
860 fra.me.REG[2] = CALL_escape___EscapableContext___get_by_label(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
861 /* ./syntax//escape.nit:166 */
862 } else {
863 fra.me.REG[3] = CALL_escape___EscapableContext___head(fra.me.REG[1])(fra.me.REG[1]);
864 fra.me.REG[2] = fra.me.REG[3];
865 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
866 /* ./syntax//escape.nit:169 */
867 if (UNTAG_Bool(REGB0)) {
868 } else {
869 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
870 if (UNTAG_Bool(REGB1)) {
871 REGB1 = TAG_Bool(false);
872 REGB0 = REGB1;
873 } else {
874 REGB1 = CALL_kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
875 REGB0 = REGB1;
876 }
877 }
878 if (UNTAG_Bool(REGB0)) {
879 fra.me.REG[1] = CALL_escape___EscapableContext___visitor(fra.me.REG[1])(fra.me.REG[1]);
880 REGB0 = TAG_Int(3);
881 fra.me.REG[3] = NEW_Array_array___Array___with_capacity(REGB0);
882 /* ./syntax//escape.nit:170 */
883 if (!once_value_1) {
884 fra.me.REG[4] = BOX_NativeString("Syntax Error: '");
885 REGB0 = TAG_Int(15);
886 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
887 once_value_1 = fra.me.REG[4];
888 register_static_object(&once_value_1);
889 } else fra.me.REG[4] = once_value_1;
890 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
891 fra.me.REG[4] = CALL_escape___AEscapeExpr___kwname(fra.me.REG[0])(fra.me.REG[0]);
892 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
893 if (!once_value_2) {
894 fra.me.REG[4] = BOX_NativeString("' statment outside block.");
895 REGB0 = TAG_Int(25);
896 fra.me.REG[4] = NEW_String_string___String___with_native(fra.me.REG[4], REGB0);
897 once_value_2 = fra.me.REG[4];
898 register_static_object(&once_value_2);
899 } else fra.me.REG[4] = once_value_2;
900 array___Array___add(fra.me.REG[3], fra.me.REG[4]);
901 fra.me.REG[3] = CALL_string___Object___to_s(fra.me.REG[3])(fra.me.REG[3]);
902 CALL_syntax_base___AbsSyntaxVisitor___error(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
903 }
904 }
905 /* ./syntax//escape.nit:173 */
906 ATTR_escape___AEscapeExpr____escapable(fra.me.REG[0]) = fra.me.REG[2];
907 /* ./syntax//escape.nit:174 */
908 goto label3;
909 label3: while(0);
910 stack_frame_head = fra.me.prev;
911 return fra.me.REG[2];
912 }
913 val_t escape___AContinueExpr___kwname(val_t p0){
914 struct {struct stack_frame_t me;} fra;
915 val_t REGB0;
916 val_t tmp;
917 static val_t once_value_1; /* Once value */
918 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
919 fra.me.file = LOCATE_escape;
920 fra.me.line = 180;
921 fra.me.meth = LOCATE_escape___AContinueExpr___kwname;
922 fra.me.has_broke = 0;
923 fra.me.REG_size = 1;
924 fra.me.REG[0] = NIT_NULL;
925 fra.me.REG[0] = p0;
926 /* ./syntax//escape.nit:180 */
927 if (!once_value_1) {
928 fra.me.REG[0] = BOX_NativeString("continue");
929 REGB0 = TAG_Int(8);
930 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
931 once_value_1 = fra.me.REG[0];
932 register_static_object(&once_value_1);
933 } else fra.me.REG[0] = once_value_1;
934 goto label2;
935 label2: while(0);
936 stack_frame_head = fra.me.prev;
937 return fra.me.REG[0];
938 }
939 val_t escape___ABreakExpr___kwname(val_t p0){
940 struct {struct stack_frame_t me;} fra;
941 val_t REGB0;
942 val_t tmp;
943 static val_t once_value_1; /* Once value */
944 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
945 fra.me.file = LOCATE_escape;
946 fra.me.line = 185;
947 fra.me.meth = LOCATE_escape___ABreakExpr___kwname;
948 fra.me.has_broke = 0;
949 fra.me.REG_size = 1;
950 fra.me.REG[0] = NIT_NULL;
951 fra.me.REG[0] = p0;
952 /* ./syntax//escape.nit:185 */
953 if (!once_value_1) {
954 fra.me.REG[0] = BOX_NativeString("break");
955 REGB0 = TAG_Int(5);
956 fra.me.REG[0] = NEW_String_string___String___with_native(fra.me.REG[0], REGB0);
957 once_value_1 = fra.me.REG[0];
958 register_static_object(&once_value_1);
959 } else fra.me.REG[0] = once_value_1;
960 goto label2;
961 label2: while(0);
962 stack_frame_head = fra.me.prev;
963 return fra.me.REG[0];
964 }