tools: clean Makefiles
[nit.git] / c_src / metamodel___partial_order._sep.c
1 /* This C file is generated by NIT to compile module metamodel___partial_order. */
2 #include "metamodel___partial_order._sep.h"
3 val_t metamodel___partial_order___PartialOrder___roots(val_t p0){
4 struct {struct stack_frame_t me;} fra;
5 val_t REGB0;
6 val_t tmp;
7 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8 fra.me.file = LOCATE_metamodel___partial_order;
9 fra.me.line = 30;
10 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder___roots;
11 fra.me.has_broke = 0;
12 fra.me.REG_size = 1;
13 fra.me.REG[0] = NIT_NULL;
14 fra.me.REG[0] = p0;
15 /* ./metamodel//partial_order.nit:30 */
16 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____roots(fra.me.REG[0])!=NIT_NULL);
17 if (UNTAG_Bool(REGB0)) {
18 } else {
19 nit_abort("Uninitialized attribute %s", "_roots", LOCATE_metamodel___partial_order, 30);
20 }
21 fra.me.REG[0] = ATTR_metamodel___partial_order___PartialOrder____roots(fra.me.REG[0]);
22 stack_frame_head = fra.me.prev;
23 return fra.me.REG[0];
24 }
25 val_t metamodel___partial_order___PartialOrder___is_empty(val_t p0){
26 struct {struct stack_frame_t me;} fra;
27 val_t REGB0;
28 val_t tmp;
29 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
30 fra.me.file = LOCATE_metamodel___partial_order;
31 fra.me.line = 35;
32 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder___is_empty;
33 fra.me.has_broke = 0;
34 fra.me.REG_size = 1;
35 fra.me.REG[0] = NIT_NULL;
36 fra.me.REG[0] = p0;
37 /* ./metamodel//partial_order.nit:35 */
38 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0])!=NIT_NULL);
39 if (UNTAG_Bool(REGB0)) {
40 } else {
41 nit_abort("Uninitialized attribute %s", "_elements", LOCATE_metamodel___partial_order, 35);
42 }
43 fra.me.REG[0] = ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0]);
44 REGB0 = CALL_standard___collection___abstract_collection___MapRead___is_empty(fra.me.REG[0])(fra.me.REG[0]);
45 goto label1;
46 label1: while(0);
47 stack_frame_head = fra.me.prev;
48 return REGB0;
49 }
50 val_t metamodel___partial_order___PartialOrder___length(val_t p0){
51 struct {struct stack_frame_t me;} fra;
52 val_t REGB0;
53 val_t tmp;
54 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
55 fra.me.file = LOCATE_metamodel___partial_order;
56 fra.me.line = 37;
57 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder___length;
58 fra.me.has_broke = 0;
59 fra.me.REG_size = 1;
60 fra.me.REG[0] = NIT_NULL;
61 fra.me.REG[0] = p0;
62 /* ./metamodel//partial_order.nit:37 */
63 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0])!=NIT_NULL);
64 if (UNTAG_Bool(REGB0)) {
65 } else {
66 nit_abort("Uninitialized attribute %s", "_elements", LOCATE_metamodel___partial_order, 37);
67 }
68 fra.me.REG[0] = ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0]);
69 REGB0 = CALL_standard___collection___abstract_collection___MapRead___length(fra.me.REG[0])(fra.me.REG[0]);
70 goto label1;
71 label1: while(0);
72 stack_frame_head = fra.me.prev;
73 return REGB0;
74 }
75 val_t metamodel___partial_order___PartialOrder___first(val_t p0){
76 struct {struct stack_frame_t me;} fra;
77 val_t REGB0;
78 val_t tmp;
79 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
80 fra.me.file = LOCATE_metamodel___partial_order;
81 fra.me.line = 39;
82 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder___first;
83 fra.me.has_broke = 0;
84 fra.me.REG_size = 1;
85 fra.me.REG[0] = NIT_NULL;
86 fra.me.REG[0] = p0;
87 /* ./metamodel//partial_order.nit:39 */
88 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements_list(fra.me.REG[0])!=NIT_NULL);
89 if (UNTAG_Bool(REGB0)) {
90 } else {
91 nit_abort("Uninitialized attribute %s", "_elements_list", LOCATE_metamodel___partial_order, 39);
92 }
93 fra.me.REG[0] = ATTR_metamodel___partial_order___PartialOrder____elements_list(fra.me.REG[0]);
94 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
95 goto label1;
96 label1: while(0);
97 stack_frame_head = fra.me.prev;
98 return fra.me.REG[0];
99 }
100 val_t metamodel___partial_order___PartialOrder___has(val_t p0, val_t p1){
101 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
102 val_t REGB0;
103 val_t tmp;
104 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
105 fra.me.file = LOCATE_metamodel___partial_order;
106 fra.me.line = 41;
107 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder___has;
108 fra.me.has_broke = 0;
109 fra.me.REG_size = 2;
110 fra.me.REG[0] = NIT_NULL;
111 fra.me.REG[1] = NIT_NULL;
112 fra.me.REG[0] = p0;
113 fra.me.REG[1] = p1;
114 /* ./metamodel//partial_order.nit:41 */
115 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0])!=NIT_NULL);
116 if (UNTAG_Bool(REGB0)) {
117 } else {
118 nit_abort("Uninitialized attribute %s", "_elements", LOCATE_metamodel___partial_order, 41);
119 }
120 fra.me.REG[0] = ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0]);
121 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
122 goto label1;
123 label1: while(0);
124 stack_frame_head = fra.me.prev;
125 return REGB0;
126 }
127 val_t metamodel___partial_order___PartialOrder___has_only(val_t p0, val_t p1){
128 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
129 val_t REGB0;
130 val_t REGB1;
131 val_t REGB2;
132 val_t tmp;
133 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
134 fra.me.file = LOCATE_metamodel___partial_order;
135 fra.me.line = 43;
136 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder___has_only;
137 fra.me.has_broke = 0;
138 fra.me.REG_size = 3;
139 fra.me.REG[0] = NIT_NULL;
140 fra.me.REG[1] = NIT_NULL;
141 fra.me.REG[2] = NIT_NULL;
142 fra.me.REG[0] = p0;
143 fra.me.REG[1] = p1;
144 /* ./metamodel//partial_order.nit:43 */
145 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0])!=NIT_NULL);
146 if (UNTAG_Bool(REGB0)) {
147 } else {
148 nit_abort("Uninitialized attribute %s", "_elements", LOCATE_metamodel___partial_order, 43);
149 }
150 fra.me.REG[2] = ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0]);
151 REGB0 = CALL_standard___collection___abstract_collection___MapRead___length(fra.me.REG[2])(fra.me.REG[2]);
152 REGB1 = TAG_Int(1);
153 REGB2 = TAG_Bool(IS_EQUAL_OO(REGB0,REGB1));
154 if (UNTAG_Bool(REGB2)) {
155 } else {
156 /* ./../lib/standard//kernel.nit:227 */
157 REGB1 = TAG_Bool((REGB0)==(REGB1));
158 /* ./metamodel//partial_order.nit:43 */
159 REGB2 = REGB1;
160 }
161 if (UNTAG_Bool(REGB2)) {
162 REGB2 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0])!=NIT_NULL);
163 if (UNTAG_Bool(REGB2)) {
164 } else {
165 nit_abort("Uninitialized attribute %s", "_elements", LOCATE_metamodel___partial_order, 43);
166 }
167 fra.me.REG[0] = ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0]);
168 fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___values(fra.me.REG[0])(fra.me.REG[0]);
169 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[0])(fra.me.REG[0]);
170 REGB2 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[0]));
171 if (UNTAG_Bool(REGB2)) {
172 } else {
173 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
174 if (UNTAG_Bool(REGB1)) {
175 REGB1 = TAG_Bool(false);
176 REGB2 = REGB1;
177 } else {
178 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
179 REGB2 = REGB1;
180 }
181 }
182 } else {
183 REGB1 = TAG_Bool(false);
184 REGB2 = REGB1;
185 }
186 goto label1;
187 label1: while(0);
188 stack_frame_head = fra.me.prev;
189 return REGB2;
190 }
191 val_t metamodel___partial_order___PartialOrder___count(val_t p0, val_t p1){
192 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
193 val_t REGB0;
194 val_t REGB1;
195 val_t tmp;
196 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
197 fra.me.file = LOCATE_metamodel___partial_order;
198 fra.me.line = 45;
199 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder___count;
200 fra.me.has_broke = 0;
201 fra.me.REG_size = 2;
202 fra.me.REG[0] = NIT_NULL;
203 fra.me.REG[1] = NIT_NULL;
204 fra.me.REG[0] = p0;
205 fra.me.REG[1] = p1;
206 /* ./metamodel//partial_order.nit:47 */
207 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
208 if (UNTAG_Bool(REGB0)) {
209 /* ./metamodel//partial_order.nit:48 */
210 REGB0 = TAG_Int(1);
211 goto label1;
212 } else {
213 /* ./metamodel//partial_order.nit:50 */
214 REGB1 = TAG_Int(0);
215 REGB0 = REGB1;
216 goto label1;
217 }
218 label1: while(0);
219 stack_frame_head = fra.me.prev;
220 return REGB0;
221 }
222 val_t metamodel___partial_order___PartialOrder___iterator(val_t p0){
223 struct {struct stack_frame_t me;} fra;
224 val_t REGB0;
225 val_t tmp;
226 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
227 fra.me.file = LOCATE_metamodel___partial_order;
228 fra.me.line = 54;
229 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder___iterator;
230 fra.me.has_broke = 0;
231 fra.me.REG_size = 1;
232 fra.me.REG[0] = NIT_NULL;
233 fra.me.REG[0] = p0;
234 /* ./metamodel//partial_order.nit:54 */
235 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements_list(fra.me.REG[0])!=NIT_NULL);
236 if (UNTAG_Bool(REGB0)) {
237 } else {
238 nit_abort("Uninitialized attribute %s", "_elements_list", LOCATE_metamodel___partial_order, 54);
239 }
240 fra.me.REG[0] = ATTR_metamodel___partial_order___PartialOrder____elements_list(fra.me.REG[0]);
241 fra.me.REG[0] = CALL_standard___collection___abstract_collection___Collection___iterator(fra.me.REG[0])(fra.me.REG[0]);
242 goto label1;
243 label1: while(0);
244 stack_frame_head = fra.me.prev;
245 return fra.me.REG[0];
246 }
247 val_t metamodel___partial_order___PartialOrder_____bra(val_t p0, val_t p1){
248 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
249 val_t REGB0;
250 val_t tmp;
251 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
252 fra.me.file = LOCATE_metamodel___partial_order;
253 fra.me.line = 58;
254 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder_____bra;
255 fra.me.has_broke = 0;
256 fra.me.REG_size = 2;
257 fra.me.REG[0] = NIT_NULL;
258 fra.me.REG[1] = NIT_NULL;
259 fra.me.REG[0] = p0;
260 fra.me.REG[1] = p1;
261 /* ./metamodel//partial_order.nit:61 */
262 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0])!=NIT_NULL);
263 if (UNTAG_Bool(REGB0)) {
264 } else {
265 nit_abort("Uninitialized attribute %s", "_elements", LOCATE_metamodel___partial_order, 61);
266 }
267 fra.me.REG[0] = ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0]);
268 fra.me.REG[1] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
269 goto label1;
270 label1: while(0);
271 stack_frame_head = fra.me.prev;
272 return fra.me.REG[1];
273 }
274 val_t metamodel___partial_order___PartialOrder___to_dot(val_t p0){
275 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
276 val_t REGB0;
277 val_t tmp;
278 static val_t once_value_3; /* Once value */
279 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
280 fra.me.file = LOCATE_metamodel___partial_order;
281 fra.me.line = 64;
282 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder___to_dot;
283 fra.me.has_broke = 0;
284 fra.me.REG_size = 3;
285 fra.me.REG[0] = NIT_NULL;
286 fra.me.REG[1] = NIT_NULL;
287 fra.me.REG[2] = NIT_NULL;
288 fra.me.REG[0] = p0;
289 /* ./metamodel//partial_order.nit:67 */
290 fra.me.REG[1] = NEW_Buffer_standard___string___Buffer___init();
291 /* ./metamodel//partial_order.nit:68 */
292 fra.me.REG[2] = CALL_metamodel___partial_order___PartialOrder___to_dot_header(fra.me.REG[0])(fra.me.REG[0]);
293 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]);
294 /* ./metamodel//partial_order.nit:69 */
295 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0])!=NIT_NULL);
296 if (UNTAG_Bool(REGB0)) {
297 } else {
298 nit_abort("Uninitialized attribute %s", "_elements", LOCATE_metamodel___partial_order, 69);
299 }
300 fra.me.REG[2] = ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0]);
301 fra.me.REG[2] = CALL_standard___collection___abstract_collection___MapRead___values(fra.me.REG[2])(fra.me.REG[2]);
302 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_metamodel___partial_order___PartialOrder___to_dot_1));
303 /* ./metamodel//partial_order.nit:75 */
304 if (!once_value_3) {
305 fra.me.REG[0] = BOX_NativeString("}\n");
306 REGB0 = TAG_Int(2);
307 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
308 once_value_3 = fra.me.REG[0];
309 register_static_object(&once_value_3);
310 } else fra.me.REG[0] = once_value_3;
311 fra.me.REG[0] = fra.me.REG[0];
312 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
313 /* ./metamodel//partial_order.nit:76 */
314 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
315 goto label4;
316 label4: while(0);
317 stack_frame_head = fra.me.prev;
318 return fra.me.REG[1];
319 }
320 void OC_metamodel___partial_order___PartialOrder___to_dot_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
321 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
322 val_t REGB0;
323 val_t REGB1;
324 val_t REGB2;
325 fun_t CREG[1];
326 val_t tmp;
327 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
328 fra.me.file = LOCATE_metamodel___partial_order;
329 fra.me.line = 0;
330 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder___to_dot;
331 fra.me.has_broke = 0;
332 fra.me.REG_size = 5;
333 fra.me.REG[0] = NIT_NULL;
334 fra.me.REG[1] = NIT_NULL;
335 fra.me.REG[2] = NIT_NULL;
336 fra.me.REG[3] = NIT_NULL;
337 fra.me.REG[4] = NIT_NULL;
338 fra.me.closure_ctx = closctx_param;
339 fra.me.closure_funs = CREG;
340 fra.me.REG[0] = p0;
341 CREG[0] = clos_fun0;
342 /* ./metamodel//partial_order.nit:70 */
343 fra.me.REG[1] = CALL_metamodel___partial_order___PartialOrderElement___value(fra.me.REG[0])(fra.me.REG[0]);
344 fra.me.REG[1] = CALL_metamodel___partial_order___PartialOrder___to_dot_node(closctx->REG[0])(closctx->REG[0], fra.me.REG[1]);
345 CALL_standard___collection___abstract_collection___Sequence___append(closctx->REG[1])(closctx->REG[1], fra.me.REG[1]);
346 /* ./metamodel//partial_order.nit:71 */
347 fra.me.REG[1] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[0])(fra.me.REG[0]);
348 /* ./../lib/standard//collection//array.nit:269 */
349 REGB0 = TAG_Int(0);
350 /* ./../lib/standard//collection//array.nit:270 */
351 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
352 if (UNTAG_Bool(REGB1)) {
353 } else {
354 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
355 }
356 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
357 /* ./../lib/standard//collection//array.nit:271 */
358 fra.me.REG[2] = ATTR_standard___collection___array___Array____items(fra.me.REG[1]);
359 /* ./../lib/standard//collection//array.nit:272 */
360 while(1) {
361 /* ./../lib/standard//collection//array.nit:24 */
362 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1])!=NIT_NULL);
363 if (UNTAG_Bool(REGB1)) {
364 } else {
365 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
366 }
367 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[1]);
368 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
369 if (UNTAG_Bool(REGB2)) {
370 } else {
371 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
372 }
373 /* ./../lib/standard//kernel.nit:232 */
374 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
375 /* ./../lib/standard//collection//array.nit:272 */
376 if (UNTAG_Bool(REGB1)) {
377 /* ./../lib/standard//collection//array.nit:273 */
378 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
379 if (UNTAG_Bool(REGB1)) {
380 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
381 }
382 /* ./../lib/standard//collection//array.nit:718 */
383 fra.me.REG[3] = ((Nit_NativeArray)fra.me.REG[2])->val[UNTAG_Int(REGB0)];
384 /* ./metamodel//partial_order.nit:72 */
385 fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___value(fra.me.REG[0])(fra.me.REG[0]);
386 fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrder___to_dot_edge(closctx->REG[0])(closctx->REG[0], fra.me.REG[4], fra.me.REG[3]);
387 CALL_standard___collection___abstract_collection___Sequence___append(closctx->REG[1])(closctx->REG[1], fra.me.REG[3]);
388 /* ./../lib/standard//collection//array.nit:274 */
389 REGB1 = TAG_Int(1);
390 /* ./../lib/standard//kernel.nit:235 */
391 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
392 /* ./../lib/standard//collection//array.nit:274 */
393 REGB0 = REGB1;
394 } else {
395 /* ./../lib/standard//collection//array.nit:272 */
396 goto label2;
397 }
398 }
399 label2: while(0);
400 stack_frame_head = fra.me.prev;
401 return;
402 }
403 val_t metamodel___partial_order___PartialOrder___to_dot_header(val_t p0){
404 struct {struct stack_frame_t me;} fra;
405 val_t REGB0;
406 val_t tmp;
407 static val_t once_value_1; /* Once value */
408 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
409 fra.me.file = LOCATE_metamodel___partial_order;
410 fra.me.line = 79;
411 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder___to_dot_header;
412 fra.me.has_broke = 0;
413 fra.me.REG_size = 1;
414 fra.me.REG[0] = NIT_NULL;
415 fra.me.REG[0] = p0;
416 /* ./metamodel//partial_order.nit:82 */
417 if (!once_value_1) {
418 fra.me.REG[0] = BOX_NativeString("digraph G {\ngraph [rankdir=BT];\n");
419 REGB0 = TAG_Int(32);
420 fra.me.REG[0] = NEW_String_standard___string___String___with_native(fra.me.REG[0], REGB0);
421 once_value_1 = fra.me.REG[0];
422 register_static_object(&once_value_1);
423 } else fra.me.REG[0] = once_value_1;
424 fra.me.REG[0] = fra.me.REG[0];
425 goto label2;
426 label2: while(0);
427 stack_frame_head = fra.me.prev;
428 return fra.me.REG[0];
429 }
430 val_t metamodel___partial_order___PartialOrder___to_dot_node(val_t p0, val_t p1){
431 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
432 val_t REGB0;
433 val_t tmp;
434 static val_t once_value_1; /* Once value */
435 static val_t once_value_2; /* Once value */
436 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
437 fra.me.file = LOCATE_metamodel___partial_order;
438 fra.me.line = 85;
439 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder___to_dot_node;
440 fra.me.has_broke = 0;
441 fra.me.REG_size = 3;
442 fra.me.REG[0] = NIT_NULL;
443 fra.me.REG[1] = NIT_NULL;
444 fra.me.REG[2] = NIT_NULL;
445 fra.me.REG[0] = p0;
446 fra.me.REG[1] = p1;
447 /* ./metamodel//partial_order.nit:88 */
448 REGB0 = TAG_Int(3);
449 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
450 if (!once_value_1) {
451 fra.me.REG[2] = BOX_NativeString("\"");
452 REGB0 = TAG_Int(1);
453 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
454 once_value_1 = fra.me.REG[2];
455 register_static_object(&once_value_1);
456 } else fra.me.REG[2] = once_value_1;
457 fra.me.REG[2] = fra.me.REG[2];
458 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
459 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
460 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
461 if (!once_value_2) {
462 fra.me.REG[1] = BOX_NativeString("\";\n");
463 REGB0 = TAG_Int(3);
464 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
465 once_value_2 = fra.me.REG[1];
466 register_static_object(&once_value_2);
467 } else fra.me.REG[1] = once_value_2;
468 fra.me.REG[1] = fra.me.REG[1];
469 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
470 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
471 goto label3;
472 label3: while(0);
473 stack_frame_head = fra.me.prev;
474 return fra.me.REG[0];
475 }
476 val_t metamodel___partial_order___PartialOrder___to_dot_edge(val_t p0, val_t p1, val_t p2){
477 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
478 val_t REGB0;
479 val_t tmp;
480 static val_t once_value_1; /* Once value */
481 static val_t once_value_2; /* Once value */
482 static val_t once_value_3; /* Once value */
483 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
484 fra.me.file = LOCATE_metamodel___partial_order;
485 fra.me.line = 91;
486 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder___to_dot_edge;
487 fra.me.has_broke = 0;
488 fra.me.REG_size = 4;
489 fra.me.REG[0] = NIT_NULL;
490 fra.me.REG[1] = NIT_NULL;
491 fra.me.REG[2] = NIT_NULL;
492 fra.me.REG[3] = NIT_NULL;
493 fra.me.REG[0] = p0;
494 fra.me.REG[1] = p1;
495 fra.me.REG[2] = p2;
496 /* ./metamodel//partial_order.nit:94 */
497 REGB0 = TAG_Int(5);
498 fra.me.REG[0] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
499 if (!once_value_1) {
500 fra.me.REG[3] = BOX_NativeString("\"");
501 REGB0 = TAG_Int(1);
502 fra.me.REG[3] = NEW_String_standard___string___String___with_native(fra.me.REG[3], REGB0);
503 once_value_1 = fra.me.REG[3];
504 register_static_object(&once_value_1);
505 } else fra.me.REG[3] = once_value_1;
506 fra.me.REG[3] = fra.me.REG[3];
507 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]);
508 fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]);
509 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
510 if (!once_value_2) {
511 fra.me.REG[1] = BOX_NativeString("\" -> \"");
512 REGB0 = TAG_Int(6);
513 fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
514 once_value_2 = fra.me.REG[1];
515 register_static_object(&once_value_2);
516 } else fra.me.REG[1] = once_value_2;
517 fra.me.REG[1] = fra.me.REG[1];
518 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
519 fra.me.REG[2] = CALL_standard___string___Object___to_s(fra.me.REG[2])(fra.me.REG[2]);
520 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
521 if (!once_value_3) {
522 fra.me.REG[2] = BOX_NativeString("\";\n");
523 REGB0 = TAG_Int(3);
524 fra.me.REG[2] = NEW_String_standard___string___String___with_native(fra.me.REG[2], REGB0);
525 once_value_3 = fra.me.REG[2];
526 register_static_object(&once_value_3);
527 } else fra.me.REG[2] = once_value_3;
528 fra.me.REG[2] = fra.me.REG[2];
529 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
530 fra.me.REG[0] = CALL_standard___string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
531 goto label4;
532 label4: while(0);
533 stack_frame_head = fra.me.prev;
534 return fra.me.REG[0];
535 }
536 val_t metamodel___partial_order___PartialOrder___select_smallests(val_t p0, val_t p1){
537 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
538 val_t REGB0;
539 val_t REGB1;
540 val_t tmp;
541 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
542 fra.me.file = LOCATE_metamodel___partial_order;
543 fra.me.line = 97;
544 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder___select_smallests;
545 fra.me.has_broke = 0;
546 fra.me.REG_size = 5;
547 fra.me.REG[0] = NIT_NULL;
548 fra.me.REG[1] = NIT_NULL;
549 fra.me.REG[2] = NIT_NULL;
550 fra.me.REG[3] = NIT_NULL;
551 fra.me.REG[4] = NIT_NULL;
552 fra.me.REG[0] = p0;
553 fra.me.REG[1] = p1;
554 /* ./metamodel//partial_order.nit:100 */
555 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
556 if (UNTAG_Bool(REGB0)) {
557 } else {
558 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
559 if (UNTAG_Bool(REGB1)) {
560 REGB1 = TAG_Bool(false);
561 REGB0 = REGB1;
562 } else {
563 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
564 REGB0 = REGB1;
565 }
566 }
567 if (UNTAG_Bool(REGB0)) {
568 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
569 goto label1;
570 }
571 /* ./metamodel//partial_order.nit:101 */
572 REGB0 = CALL_metamodel___partial_order___PartialOrder___has_all(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
573 if (UNTAG_Bool(REGB0)) {
574 } else {
575 nit_abort("Assert failed", NULL, LOCATE_metamodel___partial_order, 101);
576 }
577 /* ./metamodel//partial_order.nit:102 */
578 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
579 if (UNTAG_Bool(REGB0)) {
580 nit_abort("Reciever is null", NULL, LOCATE_metamodel___partial_order, 102);
581 }
582 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[1])(fra.me.REG[1]);
583 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
584 /* ./metamodel//partial_order.nit:103 */
585 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
586 if (UNTAG_Bool(REGB0)) {
587 nit_abort("Reciever is null", NULL, LOCATE_metamodel___partial_order, 103);
588 }
589 REGB0 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[1])(fra.me.REG[1]);
590 fra.me.REG[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0);
591 /* ./metamodel//partial_order.nit:104 */
592 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
593 if (UNTAG_Bool(REGB0)) {
594 nit_abort("Reciever is null", NULL, LOCATE_metamodel___partial_order, 104);
595 }
596 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_metamodel___partial_order___PartialOrder___select_smallests_2));
597 /* ./metamodel//partial_order.nit:115 */
598 fra.me.REG[2] = fra.me.REG[3];
599 goto label1;
600 label1: while(0);
601 stack_frame_head = fra.me.prev;
602 return fra.me.REG[2];
603 }
604 void OC_metamodel___partial_order___PartialOrder___select_smallests_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
605 struct {struct stack_frame_t me;} fra;
606 val_t REGB0;
607 fun_t CREG[1];
608 val_t tmp;
609 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
610 fra.me.file = LOCATE_metamodel___partial_order;
611 fra.me.line = 0;
612 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder___select_smallests;
613 fra.me.has_broke = 0;
614 fra.me.REG_size = 1;
615 fra.me.REG[0] = NIT_NULL;
616 fra.me.closure_ctx = closctx_param;
617 fra.me.closure_funs = CREG;
618 fra.me.REG[0] = p0;
619 CREG[0] = clos_fun0;
620 /* ./metamodel//partial_order.nit:106 */
621 REGB0 = CALL_metamodel___partial_order___PartialOrder___add_to_smallests(closctx->REG[0])(closctx->REG[0], fra.me.REG[0], closctx->REG[3], closctx->REG[4]);
622 /* ./metamodel//partial_order.nit:107 */
623 if (UNTAG_Bool(REGB0)) {
624 /* ./metamodel//partial_order.nit:110 */
625 fra.me.REG[0] = closctx->REG[4];
626 /* ./metamodel//partial_order.nit:111 */
627 closctx->REG[4] = closctx->REG[3];
628 /* ./metamodel//partial_order.nit:112 */
629 closctx->REG[3] = fra.me.REG[0];
630 }
631 stack_frame_head = fra.me.prev;
632 return;
633 }
634 val_t metamodel___partial_order___PartialOrder___add(val_t p0, val_t p1, val_t p2){
635 struct {struct stack_frame_t me; val_t MORE_REG[4];} fra;
636 val_t REGB0;
637 val_t REGB1;
638 val_t tmp;
639 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
640 fra.me.file = LOCATE_metamodel___partial_order;
641 fra.me.line = 118;
642 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder___add;
643 fra.me.has_broke = 0;
644 fra.me.REG_size = 5;
645 fra.me.REG[0] = NIT_NULL;
646 fra.me.REG[1] = NIT_NULL;
647 fra.me.REG[2] = NIT_NULL;
648 fra.me.REG[3] = NIT_NULL;
649 fra.me.REG[4] = NIT_NULL;
650 fra.me.REG[0] = p0;
651 fra.me.REG[1] = p1;
652 fra.me.REG[2] = p2;
653 /* ./metamodel//partial_order.nit:121 */
654 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
655 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
656 if (UNTAG_Bool(REGB0)) {
657 } else {
658 nit_abort("Assert failed", NULL, LOCATE_metamodel___partial_order, 121);
659 }
660 /* ./metamodel//partial_order.nit:122 */
661 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
662 if (UNTAG_Bool(REGB0)) {
663 } else {
664 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
665 if (UNTAG_Bool(REGB1)) {
666 REGB1 = TAG_Bool(false);
667 REGB0 = REGB1;
668 } else {
669 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
670 REGB0 = REGB1;
671 }
672 }
673 if (UNTAG_Bool(REGB0)) {
674 REGB0 = TAG_Bool(true);
675 } else {
676 REGB1 = CALL_metamodel___partial_order___PartialOrder___has_all(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
677 REGB0 = REGB1;
678 }
679 if (UNTAG_Bool(REGB0)) {
680 } else {
681 nit_abort("Assert failed", NULL, LOCATE_metamodel___partial_order, 122);
682 }
683 /* ./metamodel//partial_order.nit:123 */
684 fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrder___select_smallests(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]);
685 /* ./metamodel//partial_order.nit:124 */
686 fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrder___new_poe(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[3]);
687 /* ./metamodel//partial_order.nit:125 */
688 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0])!=NIT_NULL);
689 if (UNTAG_Bool(REGB0)) {
690 } else {
691 nit_abort("Uninitialized attribute %s", "_elements", LOCATE_metamodel___partial_order, 125);
692 }
693 fra.me.REG[4] = ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0]);
694 CALL_standard___collection___abstract_collection___Map_____braeq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1], fra.me.REG[3]);
695 /* ./metamodel//partial_order.nit:126 */
696 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements_list(fra.me.REG[0])!=NIT_NULL);
697 if (UNTAG_Bool(REGB0)) {
698 } else {
699 nit_abort("Uninitialized attribute %s", "_elements_list", LOCATE_metamodel___partial_order, 126);
700 }
701 fra.me.REG[4] = ATTR_metamodel___partial_order___PartialOrder____elements_list(fra.me.REG[0]);
702 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[1]);
703 /* ./metamodel//partial_order.nit:127 */
704 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
705 if (UNTAG_Bool(REGB0)) {
706 } else {
707 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
708 if (UNTAG_Bool(REGB1)) {
709 REGB1 = TAG_Bool(false);
710 REGB0 = REGB1;
711 } else {
712 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
713 REGB0 = REGB1;
714 }
715 }
716 if (UNTAG_Bool(REGB0)) {
717 REGB0 = TAG_Bool(true);
718 } else {
719 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
720 if (UNTAG_Bool(REGB1)) {
721 nit_abort("Reciever is null", NULL, LOCATE_metamodel___partial_order, 127);
722 }
723 REGB1 = CALL_standard___collection___abstract_collection___Collection___is_empty(fra.me.REG[2])(fra.me.REG[2]);
724 REGB0 = REGB1;
725 }
726 if (UNTAG_Bool(REGB0)) {
727 /* ./metamodel//partial_order.nit:128 */
728 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____roots(fra.me.REG[0])!=NIT_NULL);
729 if (UNTAG_Bool(REGB0)) {
730 } else {
731 nit_abort("Uninitialized attribute %s", "_roots", LOCATE_metamodel___partial_order, 128);
732 }
733 fra.me.REG[0] = ATTR_metamodel___partial_order___PartialOrder____roots(fra.me.REG[0]);
734 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
735 }
736 /* ./metamodel//partial_order.nit:130 */
737 goto label1;
738 label1: while(0);
739 stack_frame_head = fra.me.prev;
740 return fra.me.REG[3];
741 }
742 val_t metamodel___partial_order___PartialOrder___has_all(val_t p0, val_t p1){
743 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
744 val_t REGB0;
745 val_t tmp;
746 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
747 fra.me.file = LOCATE_metamodel___partial_order;
748 fra.me.line = 133;
749 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder___has_all;
750 fra.me.has_broke = 0;
751 fra.me.REG_size = 2;
752 fra.me.REG[0] = NIT_NULL;
753 fra.me.REG[1] = NIT_NULL;
754 fra.me.REG[0] = p0;
755 fra.me.REG[1] = p1;
756 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[1])(fra.me.REG[1], (&(fra.me)), ((fun_t)OC_metamodel___partial_order___PartialOrder___has_all_1));
757 switch ((&(fra.me))->has_broke) {
758 case 0: break;
759 case 1: (&(fra.me))->has_broke = 0; goto label3;
760 }
761 /* ./metamodel//partial_order.nit:141 */
762 REGB0 = TAG_Bool(true);
763 fra.me.REG[1] = REGB0;
764 goto label3;
765 label3: while(0);
766 stack_frame_head = fra.me.prev;
767 return fra.me.REG[1];
768 }
769 void OC_metamodel___partial_order___PartialOrder___has_all_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
770 struct {struct stack_frame_t me;} fra;
771 val_t REGB0;
772 fun_t CREG[1];
773 val_t tmp;
774 /* ./metamodel//partial_order.nit:136 */
775 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
776 fra.me.file = LOCATE_metamodel___partial_order;
777 fra.me.line = 0;
778 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder___has_all;
779 fra.me.has_broke = 0;
780 fra.me.REG_size = 1;
781 fra.me.REG[0] = NIT_NULL;
782 fra.me.closure_ctx = closctx_param;
783 fra.me.closure_funs = CREG;
784 fra.me.REG[0] = p0;
785 CREG[0] = clos_fun0;
786 /* ./metamodel//partial_order.nit:137 */
787 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(closctx->REG[0])(closctx->REG[0], fra.me.REG[0]);
788 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
789 if (UNTAG_Bool(REGB0)) {
790 /* ./metamodel//partial_order.nit:138 */
791 REGB0 = TAG_Bool(false);
792 closctx->REG[1] = REGB0;
793 closctx->has_broke = 1;
794 goto label2;
795 }
796 label2: while(0);
797 stack_frame_head = fra.me.prev;
798 return;
799 }
800 val_t metamodel___partial_order___PartialOrder___new_poe(val_t p0, val_t p1, val_t p2){
801 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
802 val_t tmp;
803 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
804 fra.me.file = LOCATE_metamodel___partial_order;
805 fra.me.line = 144;
806 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder___new_poe;
807 fra.me.has_broke = 0;
808 fra.me.REG_size = 3;
809 fra.me.REG[0] = NIT_NULL;
810 fra.me.REG[1] = NIT_NULL;
811 fra.me.REG[2] = NIT_NULL;
812 fra.me.REG[0] = p0;
813 fra.me.REG[1] = p1;
814 fra.me.REG[2] = p2;
815 /* ./metamodel//partial_order.nit:147 */
816 fra.me.REG[2] = NEW_PartialOrderElement_metamodel___partial_order___PartialOrderElement___init(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]);
817 goto label1;
818 label1: while(0);
819 stack_frame_head = fra.me.prev;
820 return fra.me.REG[2];
821 }
822 val_t metamodel___partial_order___PartialOrder___add_to_smallests(val_t p0, val_t p1, val_t p2, val_t p3){
823 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
824 val_t REGB0;
825 val_t REGB1;
826 val_t REGB2;
827 val_t tmp;
828 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
829 fra.me.file = LOCATE_metamodel___partial_order;
830 fra.me.line = 150;
831 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder___add_to_smallests;
832 fra.me.has_broke = 0;
833 fra.me.REG_size = 6;
834 fra.me.REG[0] = NIT_NULL;
835 fra.me.REG[1] = NIT_NULL;
836 fra.me.REG[2] = NIT_NULL;
837 fra.me.REG[3] = NIT_NULL;
838 fra.me.REG[4] = NIT_NULL;
839 fra.me.REG[5] = NIT_NULL;
840 fra.me.REG[0] = p0;
841 fra.me.REG[1] = p1;
842 fra.me.REG[2] = p2;
843 fra.me.REG[3] = p3;
844 /* ./metamodel//partial_order.nit:157 */
845 CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[3])(fra.me.REG[3]);
846 /* ./metamodel//partial_order.nit:158 */
847 fra.me.REG[0] = CALL_metamodel___partial_order___PartialOrder_____bra(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
848 /* ./../lib/standard//collection//array.nit:269 */
849 REGB0 = TAG_Int(0);
850 /* ./../lib/standard//collection//array.nit:270 */
851 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
852 if (UNTAG_Bool(REGB1)) {
853 } else {
854 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
855 }
856 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
857 /* ./../lib/standard//collection//array.nit:271 */
858 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[2]);
859 /* ./../lib/standard//collection//array.nit:272 */
860 while(1) {
861 /* ./../lib/standard//collection//array.nit:24 */
862 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2])!=NIT_NULL);
863 if (UNTAG_Bool(REGB1)) {
864 } else {
865 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
866 }
867 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[2]);
868 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
869 if (UNTAG_Bool(REGB2)) {
870 } else {
871 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
872 }
873 /* ./../lib/standard//kernel.nit:232 */
874 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
875 /* ./../lib/standard//collection//array.nit:272 */
876 if (UNTAG_Bool(REGB1)) {
877 /* ./../lib/standard//collection//array.nit:273 */
878 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
879 if (UNTAG_Bool(REGB1)) {
880 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
881 }
882 /* ./../lib/standard//collection//array.nit:718 */
883 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
884 /* ./metamodel//partial_order.nit:160 */
885 REGB1 = CALL_metamodel___partial_order___PartialOrderElement_____g(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
886 if (UNTAG_Bool(REGB1)) {
887 /* ./metamodel//partial_order.nit:161 */
888 REGB1 = TAG_Bool(false);
889 goto label1;
890 }
891 /* ./metamodel//partial_order.nit:163 */
892 REGB2 = CALL_metamodel___partial_order___PartialOrderElement_____l(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]);
893 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
894 if (UNTAG_Bool(REGB2)) {
895 /* ./metamodel//partial_order.nit:164 */
896 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]);
897 }
898 /* ./../lib/standard//collection//array.nit:274 */
899 REGB2 = TAG_Int(1);
900 /* ./../lib/standard//kernel.nit:235 */
901 REGB2 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB2));
902 /* ./../lib/standard//collection//array.nit:274 */
903 REGB0 = REGB2;
904 } else {
905 /* ./../lib/standard//collection//array.nit:272 */
906 goto label2;
907 }
908 }
909 label2: while(0);
910 /* ./metamodel//partial_order.nit:167 */
911 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]);
912 /* ./metamodel//partial_order.nit:168 */
913 REGB0 = TAG_Bool(true);
914 REGB1 = REGB0;
915 goto label1;
916 label1: while(0);
917 stack_frame_head = fra.me.prev;
918 return REGB1;
919 }
920 void metamodel___partial_order___PartialOrder___compute_smallers_for(val_t p0, val_t p1, val_t p2){
921 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
922 val_t REGB0;
923 val_t tmp;
924 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
925 fra.me.file = LOCATE_metamodel___partial_order;
926 fra.me.line = 171;
927 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder___compute_smallers_for;
928 fra.me.has_broke = 0;
929 fra.me.REG_size = 3;
930 fra.me.REG[0] = NIT_NULL;
931 fra.me.REG[1] = NIT_NULL;
932 fra.me.REG[2] = NIT_NULL;
933 fra.me.REG[0] = p0;
934 fra.me.REG[1] = p1;
935 fra.me.REG[2] = p2;
936 /* ./metamodel//partial_order.nit:173 */
937 fra.me.REG[1] = CALL_metamodel___partial_order___PartialOrderElement___value(fra.me.REG[1])(fra.me.REG[1]);
938 /* ./metamodel//partial_order.nit:174 */
939 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0])!=NIT_NULL);
940 if (UNTAG_Bool(REGB0)) {
941 } else {
942 nit_abort("Uninitialized attribute %s", "_elements", LOCATE_metamodel___partial_order, 174);
943 }
944 fra.me.REG[0] = ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0]);
945 fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead___values(fra.me.REG[0])(fra.me.REG[0]);
946 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], (&(fra.me)), ((fun_t)OC_metamodel___partial_order___PartialOrder___compute_smallers_for_1));
947 stack_frame_head = fra.me.prev;
948 return;
949 }
950 void OC_metamodel___partial_order___PartialOrder___compute_smallers_for_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
951 struct {struct stack_frame_t me;} fra;
952 val_t REGB0;
953 fun_t CREG[1];
954 val_t tmp;
955 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
956 fra.me.file = LOCATE_metamodel___partial_order;
957 fra.me.line = 0;
958 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder___compute_smallers_for;
959 fra.me.has_broke = 0;
960 fra.me.REG_size = 1;
961 fra.me.REG[0] = NIT_NULL;
962 fra.me.closure_ctx = closctx_param;
963 fra.me.closure_funs = CREG;
964 fra.me.REG[0] = p0;
965 CREG[0] = clos_fun0;
966 /* ./metamodel//partial_order.nit:175 */
967 REGB0 = CALL_metamodel___partial_order___PartialOrderElement_____l(fra.me.REG[0])(fra.me.REG[0], closctx->REG[1]);
968 if (UNTAG_Bool(REGB0)) {
969 /* ./metamodel//partial_order.nit:176 */
970 fra.me.REG[0] = CALL_metamodel___partial_order___PartialOrderElement___value(fra.me.REG[0])(fra.me.REG[0]);
971 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
972 }
973 stack_frame_head = fra.me.prev;
974 return;
975 }
976 void metamodel___partial_order___PartialOrder___init(val_t p0, int* init_table){
977 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___partial_order___PartialOrder].i;
978 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
979 val_t tmp;
980 if (init_table[itpos0]) return;
981 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
982 fra.me.file = LOCATE_metamodel___partial_order;
983 fra.me.line = 181;
984 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrder___init;
985 fra.me.has_broke = 0;
986 fra.me.REG_size = 2;
987 fra.me.REG[0] = NIT_NULL;
988 fra.me.REG[1] = NIT_NULL;
989 fra.me.REG[0] = p0;
990 /* ./metamodel//partial_order.nit:183 */
991 fra.me.REG[1] = NEW_HashMap_standard___collection___hash_collection___HashMap___init();
992 ATTR_metamodel___partial_order___PartialOrder____elements(fra.me.REG[0]) = fra.me.REG[1];
993 /* ./metamodel//partial_order.nit:184 */
994 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
995 ATTR_metamodel___partial_order___PartialOrder____elements_list(fra.me.REG[0]) = fra.me.REG[1];
996 /* ./metamodel//partial_order.nit:185 */
997 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
998 ATTR_metamodel___partial_order___PartialOrder____roots(fra.me.REG[0]) = fra.me.REG[1];
999 stack_frame_head = fra.me.prev;
1000 init_table[itpos0] = 1;
1001 return;
1002 }
1003 val_t metamodel___partial_order___PartialOrderElement___order(val_t p0){
1004 struct {struct stack_frame_t me;} fra;
1005 val_t REGB0;
1006 val_t tmp;
1007 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1008 fra.me.file = LOCATE_metamodel___partial_order;
1009 fra.me.line = 190;
1010 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrderElement___order;
1011 fra.me.has_broke = 0;
1012 fra.me.REG_size = 1;
1013 fra.me.REG[0] = NIT_NULL;
1014 fra.me.REG[0] = p0;
1015 /* ./metamodel//partial_order.nit:190 */
1016 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0])!=NIT_NULL);
1017 if (UNTAG_Bool(REGB0)) {
1018 } else {
1019 nit_abort("Uninitialized attribute %s", "_order", LOCATE_metamodel___partial_order, 190);
1020 }
1021 fra.me.REG[0] = ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0]);
1022 stack_frame_head = fra.me.prev;
1023 return fra.me.REG[0];
1024 }
1025 val_t metamodel___partial_order___PartialOrderElement___value(val_t p0){
1026 struct {struct stack_frame_t me;} fra;
1027 val_t REGB0;
1028 val_t tmp;
1029 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1030 fra.me.file = LOCATE_metamodel___partial_order;
1031 fra.me.line = 193;
1032 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrderElement___value;
1033 fra.me.has_broke = 0;
1034 fra.me.REG_size = 1;
1035 fra.me.REG[0] = NIT_NULL;
1036 fra.me.REG[0] = p0;
1037 /* ./metamodel//partial_order.nit:193 */
1038 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____value(fra.me.REG[0])!=NIT_NULL);
1039 if (UNTAG_Bool(REGB0)) {
1040 } else {
1041 nit_abort("Uninitialized attribute %s", "_value", LOCATE_metamodel___partial_order, 193);
1042 }
1043 fra.me.REG[0] = ATTR_metamodel___partial_order___PartialOrderElement____value(fra.me.REG[0]);
1044 stack_frame_head = fra.me.prev;
1045 return fra.me.REG[0];
1046 }
1047 val_t metamodel___partial_order___PartialOrderElement___rank(val_t p0){
1048 struct {struct stack_frame_t me;} fra;
1049 val_t REGB0;
1050 val_t tmp;
1051 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1052 fra.me.file = LOCATE_metamodel___partial_order;
1053 fra.me.line = 196;
1054 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrderElement___rank;
1055 fra.me.has_broke = 0;
1056 fra.me.REG_size = 1;
1057 fra.me.REG[0] = NIT_NULL;
1058 fra.me.REG[0] = p0;
1059 /* ./metamodel//partial_order.nit:196 */
1060 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____rank(fra.me.REG[0])!=NIT_NULL);
1061 if (UNTAG_Bool(REGB0)) {
1062 } else {
1063 nit_abort("Uninitialized attribute %s", "_rank", LOCATE_metamodel___partial_order, 196);
1064 }
1065 REGB0 = ATTR_metamodel___partial_order___PartialOrderElement____rank(fra.me.REG[0]);
1066 stack_frame_head = fra.me.prev;
1067 return REGB0;
1068 }
1069 val_t metamodel___partial_order___PartialOrderElement___direct_greaters(val_t p0){
1070 struct {struct stack_frame_t me;} fra;
1071 val_t REGB0;
1072 val_t tmp;
1073 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1074 fra.me.file = LOCATE_metamodel___partial_order;
1075 fra.me.line = 202;
1076 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrderElement___direct_greaters;
1077 fra.me.has_broke = 0;
1078 fra.me.REG_size = 1;
1079 fra.me.REG[0] = NIT_NULL;
1080 fra.me.REG[0] = p0;
1081 /* ./metamodel//partial_order.nit:202 */
1082 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____direct_greaters(fra.me.REG[0])!=NIT_NULL);
1083 if (UNTAG_Bool(REGB0)) {
1084 } else {
1085 nit_abort("Uninitialized attribute %s", "_direct_greaters", LOCATE_metamodel___partial_order, 202);
1086 }
1087 fra.me.REG[0] = ATTR_metamodel___partial_order___PartialOrderElement____direct_greaters(fra.me.REG[0]);
1088 stack_frame_head = fra.me.prev;
1089 return fra.me.REG[0];
1090 }
1091 val_t metamodel___partial_order___PartialOrderElement___direct_smallers(val_t p0){
1092 struct {struct stack_frame_t me;} fra;
1093 val_t REGB0;
1094 val_t tmp;
1095 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1096 fra.me.file = LOCATE_metamodel___partial_order;
1097 fra.me.line = 205;
1098 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrderElement___direct_smallers;
1099 fra.me.has_broke = 0;
1100 fra.me.REG_size = 1;
1101 fra.me.REG[0] = NIT_NULL;
1102 fra.me.REG[0] = p0;
1103 /* ./metamodel//partial_order.nit:205 */
1104 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____direct_smallers(fra.me.REG[0])!=NIT_NULL);
1105 if (UNTAG_Bool(REGB0)) {
1106 } else {
1107 nit_abort("Uninitialized attribute %s", "_direct_smallers", LOCATE_metamodel___partial_order, 205);
1108 }
1109 fra.me.REG[0] = ATTR_metamodel___partial_order___PartialOrderElement____direct_smallers(fra.me.REG[0]);
1110 stack_frame_head = fra.me.prev;
1111 return fra.me.REG[0];
1112 }
1113 val_t metamodel___partial_order___PartialOrderElement___greaters(val_t p0){
1114 struct {struct stack_frame_t me;} fra;
1115 val_t REGB0;
1116 val_t tmp;
1117 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1118 fra.me.file = LOCATE_metamodel___partial_order;
1119 fra.me.line = 208;
1120 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrderElement___greaters;
1121 fra.me.has_broke = 0;
1122 fra.me.REG_size = 1;
1123 fra.me.REG[0] = NIT_NULL;
1124 fra.me.REG[0] = p0;
1125 /* ./metamodel//partial_order.nit:208 */
1126 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____greaters(fra.me.REG[0])!=NIT_NULL);
1127 if (UNTAG_Bool(REGB0)) {
1128 } else {
1129 nit_abort("Uninitialized attribute %s", "_greaters", LOCATE_metamodel___partial_order, 208);
1130 }
1131 fra.me.REG[0] = ATTR_metamodel___partial_order___PartialOrderElement____greaters(fra.me.REG[0]);
1132 stack_frame_head = fra.me.prev;
1133 return fra.me.REG[0];
1134 }
1135 val_t metamodel___partial_order___PartialOrderElement___greaters_and_self(val_t p0){
1136 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
1137 val_t REGB0;
1138 val_t REGB1;
1139 val_t tmp;
1140 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1141 fra.me.file = LOCATE_metamodel___partial_order;
1142 fra.me.line = 214;
1143 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrderElement___greaters_and_self;
1144 fra.me.has_broke = 0;
1145 fra.me.REG_size = 4;
1146 fra.me.REG[0] = NIT_NULL;
1147 fra.me.REG[1] = NIT_NULL;
1148 fra.me.REG[2] = NIT_NULL;
1149 fra.me.REG[3] = NIT_NULL;
1150 fra.me.REG[0] = p0;
1151 /* ./metamodel//partial_order.nit:214 */
1152 fra.me.REG[1] = fra.me.REG[0];
1153 /* ./metamodel//partial_order.nit:217 */
1154 fra.me.REG[2] = ATTR_metamodel___partial_order___PartialOrderElement____greaters_and_self_cache(fra.me.REG[1]);
1155 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1156 if (UNTAG_Bool(REGB0)) {
1157 } else {
1158 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1159 if (UNTAG_Bool(REGB1)) {
1160 REGB1 = TAG_Bool(false);
1161 REGB0 = REGB1;
1162 } else {
1163 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1164 REGB0 = REGB1;
1165 }
1166 }
1167 if (UNTAG_Bool(REGB0)) {
1168 /* ./metamodel//partial_order.nit:218 */
1169 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____greaters(fra.me.REG[1])!=NIT_NULL);
1170 if (UNTAG_Bool(REGB0)) {
1171 } else {
1172 nit_abort("Uninitialized attribute %s", "_greaters", LOCATE_metamodel___partial_order, 218);
1173 }
1174 fra.me.REG[2] = ATTR_metamodel___partial_order___PartialOrderElement____greaters(fra.me.REG[1]);
1175 fra.me.REG[2] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[2])(fra.me.REG[2]);
1176 ATTR_metamodel___partial_order___PartialOrderElement____greaters_and_self_cache(fra.me.REG[1]) = fra.me.REG[2];
1177 /* ./metamodel//partial_order.nit:219 */
1178 fra.me.REG[2] = ATTR_metamodel___partial_order___PartialOrderElement____greaters_and_self_cache(fra.me.REG[1]);
1179 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____value(fra.me.REG[1])!=NIT_NULL);
1180 if (UNTAG_Bool(REGB0)) {
1181 } else {
1182 nit_abort("Uninitialized attribute %s", "_value", LOCATE_metamodel___partial_order, 219);
1183 }
1184 fra.me.REG[3] = ATTR_metamodel___partial_order___PartialOrderElement____value(fra.me.REG[1]);
1185 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1186 if (UNTAG_Bool(REGB0)) {
1187 nit_abort("Reciever is null", NULL, LOCATE_metamodel___partial_order, 219);
1188 }
1189 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]);
1190 }
1191 /* ./metamodel//partial_order.nit:221 */
1192 fra.me.REG[1] = ATTR_metamodel___partial_order___PartialOrderElement____greaters_and_self_cache(fra.me.REG[1]);
1193 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
1194 if (UNTAG_Bool(REGB0)) {
1195 } else {
1196 nit_abort("Cast failed", NULL, LOCATE_metamodel___partial_order, 221);
1197 }
1198 goto label1;
1199 label1: while(0);
1200 stack_frame_head = fra.me.prev;
1201 return fra.me.REG[1];
1202 }
1203 val_t metamodel___partial_order___PartialOrderElement___smallers(val_t p0){
1204 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1205 val_t REGB0;
1206 val_t REGB1;
1207 val_t REGB2;
1208 val_t tmp;
1209 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1210 fra.me.file = LOCATE_metamodel___partial_order;
1211 fra.me.line = 230;
1212 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrderElement___smallers;
1213 fra.me.has_broke = 0;
1214 fra.me.REG_size = 3;
1215 fra.me.REG[0] = NIT_NULL;
1216 fra.me.REG[1] = NIT_NULL;
1217 fra.me.REG[2] = NIT_NULL;
1218 fra.me.REG[0] = p0;
1219 /* ./metamodel//partial_order.nit:233 */
1220 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____smallers_last_length(fra.me.REG[0])!=NIT_NULL);
1221 if (UNTAG_Bool(REGB0)) {
1222 } else {
1223 nit_abort("Uninitialized attribute %s", "_smallers_last_length", LOCATE_metamodel___partial_order, 233);
1224 }
1225 REGB0 = ATTR_metamodel___partial_order___PartialOrderElement____smallers_last_length(fra.me.REG[0]);
1226 REGB1 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0])!=NIT_NULL);
1227 if (UNTAG_Bool(REGB1)) {
1228 } else {
1229 nit_abort("Uninitialized attribute %s", "_order", LOCATE_metamodel___partial_order, 233);
1230 }
1231 fra.me.REG[1] = ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0]);
1232 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[1])(fra.me.REG[1]);
1233 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1234 if (UNTAG_Bool(REGB2)) {
1235 } else {
1236 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1237 }
1238 /* ./../lib/standard//kernel.nit:232 */
1239 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1240 /* ./metamodel//partial_order.nit:233 */
1241 if (UNTAG_Bool(REGB1)) {
1242 /* ./metamodel//partial_order.nit:234 */
1243 REGB1 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0])!=NIT_NULL);
1244 if (UNTAG_Bool(REGB1)) {
1245 } else {
1246 nit_abort("Uninitialized attribute %s", "_order", LOCATE_metamodel___partial_order, 234);
1247 }
1248 fra.me.REG[1] = ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0]);
1249 REGB1 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____smallers_cache(fra.me.REG[0])!=NIT_NULL);
1250 if (UNTAG_Bool(REGB1)) {
1251 } else {
1252 nit_abort("Uninitialized attribute %s", "_smallers_cache", LOCATE_metamodel___partial_order, 234);
1253 }
1254 fra.me.REG[2] = ATTR_metamodel___partial_order___PartialOrderElement____smallers_cache(fra.me.REG[0]);
1255 CALL_metamodel___partial_order___PartialOrder___compute_smallers_for(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[2]);
1256 /* ./metamodel//partial_order.nit:235 */
1257 REGB1 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0])!=NIT_NULL);
1258 if (UNTAG_Bool(REGB1)) {
1259 } else {
1260 nit_abort("Uninitialized attribute %s", "_order", LOCATE_metamodel___partial_order, 235);
1261 }
1262 fra.me.REG[2] = ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0]);
1263 REGB1 = CALL_standard___collection___abstract_collection___Collection___length(fra.me.REG[2])(fra.me.REG[2]);
1264 ATTR_metamodel___partial_order___PartialOrderElement____smallers_last_length(fra.me.REG[0]) = REGB1;
1265 }
1266 /* ./metamodel//partial_order.nit:237 */
1267 REGB1 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____smallers_cache(fra.me.REG[0])!=NIT_NULL);
1268 if (UNTAG_Bool(REGB1)) {
1269 } else {
1270 nit_abort("Uninitialized attribute %s", "_smallers_cache", LOCATE_metamodel___partial_order, 237);
1271 }
1272 fra.me.REG[0] = ATTR_metamodel___partial_order___PartialOrderElement____smallers_cache(fra.me.REG[0]);
1273 goto label1;
1274 label1: while(0);
1275 stack_frame_head = fra.me.prev;
1276 return fra.me.REG[0];
1277 }
1278 val_t metamodel___partial_order___PartialOrderElement___linear_extension(val_t p0){
1279 struct {struct stack_frame_t me; val_t MORE_REG[9];} fra;
1280 val_t REGB0;
1281 val_t REGB1;
1282 val_t REGB2;
1283 val_t REGB3;
1284 val_t tmp;
1285 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1286 fra.me.file = LOCATE_metamodel___partial_order;
1287 fra.me.line = 243;
1288 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrderElement___linear_extension;
1289 fra.me.has_broke = 0;
1290 fra.me.REG_size = 10;
1291 fra.me.REG[0] = NIT_NULL;
1292 fra.me.REG[1] = NIT_NULL;
1293 fra.me.REG[2] = NIT_NULL;
1294 fra.me.REG[3] = NIT_NULL;
1295 fra.me.REG[4] = NIT_NULL;
1296 fra.me.REG[5] = NIT_NULL;
1297 fra.me.REG[6] = NIT_NULL;
1298 fra.me.REG[7] = NIT_NULL;
1299 fra.me.REG[8] = NIT_NULL;
1300 fra.me.REG[9] = NIT_NULL;
1301 fra.me.REG[0] = p0;
1302 /* ./metamodel//partial_order.nit:243 */
1303 fra.me.REG[1] = fra.me.REG[0];
1304 /* ./metamodel//partial_order.nit:247 */
1305 fra.me.REG[2] = ATTR_metamodel___partial_order___PartialOrderElement____linear_extension_cache(fra.me.REG[1]);
1306 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1307 if (UNTAG_Bool(REGB0)) {
1308 } else {
1309 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1310 if (UNTAG_Bool(REGB1)) {
1311 REGB1 = TAG_Bool(false);
1312 REGB0 = REGB1;
1313 } else {
1314 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1315 REGB0 = REGB1;
1316 }
1317 }
1318 if (UNTAG_Bool(REGB0)) {
1319 /* ./metamodel//partial_order.nit:248 */
1320 fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init();
1321 /* ./metamodel//partial_order.nit:249 */
1322 fra.me.REG[3] = NEW_Array_standard___collection___array___Array___init();
1323 /* ./metamodel//partial_order.nit:250 */
1324 fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___value(fra.me.REG[1])(fra.me.REG[1]);
1325 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1326 /* ./metamodel//partial_order.nit:251 */
1327 fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[1])(fra.me.REG[1]);
1328 /* ./../lib/standard//collection//array.nit:269 */
1329 REGB0 = TAG_Int(0);
1330 /* ./../lib/standard//collection//array.nit:270 */
1331 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
1332 if (UNTAG_Bool(REGB1)) {
1333 } else {
1334 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1335 }
1336 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
1337 /* ./../lib/standard//collection//array.nit:271 */
1338 fra.me.REG[5] = ATTR_standard___collection___array___Array____items(fra.me.REG[4]);
1339 /* ./../lib/standard//collection//array.nit:272 */
1340 while(1) {
1341 /* ./../lib/standard//collection//array.nit:24 */
1342 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL);
1343 if (UNTAG_Bool(REGB1)) {
1344 } else {
1345 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1346 }
1347 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]);
1348 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1349 if (UNTAG_Bool(REGB2)) {
1350 } else {
1351 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1352 }
1353 /* ./../lib/standard//kernel.nit:232 */
1354 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1355 /* ./../lib/standard//collection//array.nit:272 */
1356 if (UNTAG_Bool(REGB1)) {
1357 /* ./../lib/standard//collection//array.nit:273 */
1358 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
1359 if (UNTAG_Bool(REGB1)) {
1360 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1361 }
1362 /* ./../lib/standard//collection//array.nit:718 */
1363 fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)];
1364 /* ./metamodel//partial_order.nit:252 */
1365 fra.me.REG[7] = CALL_metamodel___partial_order___PartialOrderElement___order(fra.me.REG[1])(fra.me.REG[1]);
1366 fra.me.REG[6] = CALL_metamodel___partial_order___PartialOrder_____bra(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]);
1367 fra.me.REG[6] = CALL_metamodel___partial_order___PartialOrderElement___linear_extension(fra.me.REG[6])(fra.me.REG[6]);
1368 /* ./metamodel//partial_order.nit:253 */
1369 CALL_standard___collection___abstract_collection___RemovableCollection___clear(fra.me.REG[3])(fra.me.REG[3]);
1370 /* ./../lib/standard//collection//array.nit:266 */
1371 fra.me.REG[7] = fra.me.REG[2];
1372 /* ./../lib/standard//collection//array.nit:269 */
1373 REGB1 = TAG_Int(0);
1374 /* ./../lib/standard//collection//array.nit:270 */
1375 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
1376 if (UNTAG_Bool(REGB2)) {
1377 } else {
1378 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1379 }
1380 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
1381 /* ./../lib/standard//collection//array.nit:271 */
1382 fra.me.REG[8] = ATTR_standard___collection___array___Array____items(fra.me.REG[7]);
1383 /* ./../lib/standard//collection//array.nit:272 */
1384 while(1) {
1385 /* ./../lib/standard//collection//array.nit:24 */
1386 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL);
1387 if (UNTAG_Bool(REGB2)) {
1388 } else {
1389 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1390 }
1391 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]);
1392 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1393 if (UNTAG_Bool(REGB3)) {
1394 } else {
1395 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1396 }
1397 /* ./../lib/standard//kernel.nit:232 */
1398 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
1399 /* ./../lib/standard//collection//array.nit:272 */
1400 if (UNTAG_Bool(REGB2)) {
1401 /* ./../lib/standard//collection//array.nit:273 */
1402 REGB2 = TAG_Bool(fra.me.REG[8]==NIT_NULL);
1403 if (UNTAG_Bool(REGB2)) {
1404 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1405 }
1406 /* ./../lib/standard//collection//array.nit:718 */
1407 fra.me.REG[9] = ((Nit_NativeArray)fra.me.REG[8])->val[UNTAG_Int(REGB1)];
1408 /* ./metamodel//partial_order.nit:255 */
1409 REGB2 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[9]);
1410 REGB2 = TAG_Bool(!UNTAG_Bool(REGB2));
1411 if (UNTAG_Bool(REGB2)) {
1412 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[9]);
1413 }
1414 /* ./../lib/standard//collection//array.nit:274 */
1415 REGB2 = TAG_Int(1);
1416 /* ./../lib/standard//kernel.nit:235 */
1417 REGB2 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB2));
1418 /* ./../lib/standard//collection//array.nit:274 */
1419 REGB1 = REGB2;
1420 } else {
1421 /* ./../lib/standard//collection//array.nit:272 */
1422 goto label1;
1423 }
1424 }
1425 label1: while(0);
1426 /* ./metamodel//partial_order.nit:257 */
1427 CALL_standard___collection___abstract_collection___Sequence___append(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]);
1428 /* ./metamodel//partial_order.nit:259 */
1429 fra.me.REG[6] = fra.me.REG[2];
1430 /* ./metamodel//partial_order.nit:260 */
1431 fra.me.REG[2] = fra.me.REG[3];
1432 /* ./metamodel//partial_order.nit:261 */
1433 fra.me.REG[3] = fra.me.REG[6];
1434 /* ./../lib/standard//collection//array.nit:274 */
1435 REGB1 = TAG_Int(1);
1436 /* ./../lib/standard//kernel.nit:235 */
1437 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1438 /* ./../lib/standard//collection//array.nit:274 */
1439 REGB0 = REGB1;
1440 } else {
1441 /* ./../lib/standard//collection//array.nit:272 */
1442 goto label2;
1443 }
1444 }
1445 label2: while(0);
1446 /* ./metamodel//partial_order.nit:263 */
1447 ATTR_metamodel___partial_order___PartialOrderElement____linear_extension_cache(fra.me.REG[1]) = fra.me.REG[2];
1448 }
1449 /* ./metamodel//partial_order.nit:265 */
1450 fra.me.REG[1] = ATTR_metamodel___partial_order___PartialOrderElement____linear_extension_cache(fra.me.REG[1]);
1451 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
1452 if (UNTAG_Bool(REGB0)) {
1453 } else {
1454 nit_abort("Cast failed", NULL, LOCATE_metamodel___partial_order, 265);
1455 }
1456 goto label3;
1457 label3: while(0);
1458 stack_frame_head = fra.me.prev;
1459 return fra.me.REG[1];
1460 }
1461 val_t metamodel___partial_order___PartialOrderElement___reverse_linear_extension(val_t p0){
1462 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
1463 val_t REGB0;
1464 val_t REGB1;
1465 val_t REGB2;
1466 val_t tmp;
1467 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1468 fra.me.file = LOCATE_metamodel___partial_order;
1469 fra.me.line = 271;
1470 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrderElement___reverse_linear_extension;
1471 fra.me.has_broke = 0;
1472 fra.me.REG_size = 7;
1473 fra.me.REG[0] = NIT_NULL;
1474 fra.me.REG[1] = NIT_NULL;
1475 fra.me.REG[2] = NIT_NULL;
1476 fra.me.REG[3] = NIT_NULL;
1477 fra.me.REG[4] = NIT_NULL;
1478 fra.me.REG[5] = NIT_NULL;
1479 fra.me.REG[6] = NIT_NULL;
1480 fra.me.REG[0] = p0;
1481 /* ./metamodel//partial_order.nit:271 */
1482 fra.me.REG[1] = fra.me.REG[0];
1483 /* ./metamodel//partial_order.nit:275 */
1484 fra.me.REG[2] = ATTR_metamodel___partial_order___PartialOrderElement____reverse_linear_extension_cache(fra.me.REG[1]);
1485 REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1486 if (UNTAG_Bool(REGB0)) {
1487 } else {
1488 REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL);
1489 if (UNTAG_Bool(REGB1)) {
1490 REGB1 = TAG_Bool(false);
1491 REGB0 = REGB1;
1492 } else {
1493 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL);
1494 REGB0 = REGB1;
1495 }
1496 }
1497 if (UNTAG_Bool(REGB0)) {
1498 /* ./metamodel//partial_order.nit:276 */
1499 fra.me.REG[2] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
1500 /* ./metamodel//partial_order.nit:277 */
1501 fra.me.REG[3] = CALL_metamodel___partial_order___PartialOrderElement___direct_greaters(fra.me.REG[1])(fra.me.REG[1]);
1502 /* ./../lib/standard//collection//array.nit:269 */
1503 REGB0 = TAG_Int(0);
1504 /* ./../lib/standard//collection//array.nit:270 */
1505 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1506 if (UNTAG_Bool(REGB1)) {
1507 } else {
1508 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1509 }
1510 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1511 /* ./../lib/standard//collection//array.nit:271 */
1512 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
1513 /* ./../lib/standard//collection//array.nit:272 */
1514 while(1) {
1515 /* ./../lib/standard//collection//array.nit:24 */
1516 REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1517 if (UNTAG_Bool(REGB1)) {
1518 } else {
1519 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1520 }
1521 REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1522 REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
1523 if (UNTAG_Bool(REGB2)) {
1524 } else {
1525 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1526 }
1527 /* ./../lib/standard//kernel.nit:232 */
1528 REGB1 = TAG_Bool(UNTAG_Int(REGB0)<UNTAG_Int(REGB1));
1529 /* ./../lib/standard//collection//array.nit:272 */
1530 if (UNTAG_Bool(REGB1)) {
1531 /* ./../lib/standard//collection//array.nit:273 */
1532 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1533 if (UNTAG_Bool(REGB1)) {
1534 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1535 }
1536 /* ./../lib/standard//collection//array.nit:718 */
1537 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB0)];
1538 /* ./metamodel//partial_order.nit:278 */
1539 fra.me.REG[6] = CALL_metamodel___partial_order___PartialOrderElement___order(fra.me.REG[1])(fra.me.REG[1]);
1540 fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrder_____bra(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
1541 fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrderElement___linear_extension(fra.me.REG[5])(fra.me.REG[5]);
1542 /* ./metamodel//partial_order.nit:279 */
1543 CALL_standard___collection___abstract_collection___SimpleCollection___add_all(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
1544 /* ./../lib/standard//collection//array.nit:274 */
1545 REGB1 = TAG_Int(1);
1546 /* ./../lib/standard//kernel.nit:235 */
1547 REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1));
1548 /* ./../lib/standard//collection//array.nit:274 */
1549 REGB0 = REGB1;
1550 } else {
1551 /* ./../lib/standard//collection//array.nit:272 */
1552 goto label1;
1553 }
1554 }
1555 label1: while(0);
1556 /* ./metamodel//partial_order.nit:281 */
1557 fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___value(fra.me.REG[1])(fra.me.REG[1]);
1558 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
1559 /* ./metamodel//partial_order.nit:282 */
1560 fra.me.REG[2] = CALL_standard___collection___array___Collection___to_a(fra.me.REG[2])(fra.me.REG[2]);
1561 ATTR_metamodel___partial_order___PartialOrderElement____linear_extension_cache(fra.me.REG[1]) = fra.me.REG[2];
1562 }
1563 /* ./metamodel//partial_order.nit:284 */
1564 fra.me.REG[1] = ATTR_metamodel___partial_order___PartialOrderElement____linear_extension_cache(fra.me.REG[1]);
1565 REGB0 = TAG_Bool(fra.me.REG[1]!=NIT_NULL);
1566 if (UNTAG_Bool(REGB0)) {
1567 } else {
1568 nit_abort("Cast failed", NULL, LOCATE_metamodel___partial_order, 284);
1569 }
1570 goto label2;
1571 label2: while(0);
1572 stack_frame_head = fra.me.prev;
1573 return fra.me.REG[1];
1574 }
1575 val_t metamodel___partial_order___PartialOrderElement_____l(val_t p0, val_t p1){
1576 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1577 val_t REGB0;
1578 val_t tmp;
1579 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1580 fra.me.file = LOCATE_metamodel___partial_order;
1581 fra.me.line = 287;
1582 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrderElement_____l;
1583 fra.me.has_broke = 0;
1584 fra.me.REG_size = 2;
1585 fra.me.REG[0] = NIT_NULL;
1586 fra.me.REG[1] = NIT_NULL;
1587 fra.me.REG[0] = p0;
1588 fra.me.REG[1] = p1;
1589 /* ./metamodel//partial_order.nit:290 */
1590 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____greaters(fra.me.REG[0])!=NIT_NULL);
1591 if (UNTAG_Bool(REGB0)) {
1592 } else {
1593 nit_abort("Uninitialized attribute %s", "_greaters", LOCATE_metamodel___partial_order, 290);
1594 }
1595 fra.me.REG[0] = ATTR_metamodel___partial_order___PartialOrderElement____greaters(fra.me.REG[0]);
1596 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1597 goto label1;
1598 label1: while(0);
1599 stack_frame_head = fra.me.prev;
1600 return REGB0;
1601 }
1602 val_t metamodel___partial_order___PartialOrderElement_____leq(val_t p0, val_t p1){
1603 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1604 val_t REGB0;
1605 val_t REGB1;
1606 val_t tmp;
1607 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1608 fra.me.file = LOCATE_metamodel___partial_order;
1609 fra.me.line = 293;
1610 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrderElement_____leq;
1611 fra.me.has_broke = 0;
1612 fra.me.REG_size = 3;
1613 fra.me.REG[0] = NIT_NULL;
1614 fra.me.REG[1] = NIT_NULL;
1615 fra.me.REG[2] = NIT_NULL;
1616 fra.me.REG[0] = p0;
1617 fra.me.REG[1] = p1;
1618 /* ./metamodel//partial_order.nit:296 */
1619 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____value(fra.me.REG[0])!=NIT_NULL);
1620 if (UNTAG_Bool(REGB0)) {
1621 } else {
1622 nit_abort("Uninitialized attribute %s", "_value", LOCATE_metamodel___partial_order, 296);
1623 }
1624 fra.me.REG[2] = ATTR_metamodel___partial_order___PartialOrderElement____value(fra.me.REG[0]);
1625 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[1]));
1626 if (UNTAG_Bool(REGB0)) {
1627 } else {
1628 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1629 REGB0 = REGB1;
1630 }
1631 if (UNTAG_Bool(REGB0)) {
1632 REGB0 = TAG_Bool(true);
1633 } else {
1634 REGB1 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____greaters(fra.me.REG[0])!=NIT_NULL);
1635 if (UNTAG_Bool(REGB1)) {
1636 } else {
1637 nit_abort("Uninitialized attribute %s", "_greaters", LOCATE_metamodel___partial_order, 296);
1638 }
1639 fra.me.REG[0] = ATTR_metamodel___partial_order___PartialOrderElement____greaters(fra.me.REG[0]);
1640 REGB1 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1641 REGB0 = REGB1;
1642 }
1643 goto label1;
1644 label1: while(0);
1645 stack_frame_head = fra.me.prev;
1646 return REGB0;
1647 }
1648 val_t metamodel___partial_order___PartialOrderElement_____g(val_t p0, val_t p1){
1649 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1650 val_t REGB0;
1651 val_t tmp;
1652 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1653 fra.me.file = LOCATE_metamodel___partial_order;
1654 fra.me.line = 299;
1655 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrderElement_____g;
1656 fra.me.has_broke = 0;
1657 fra.me.REG_size = 3;
1658 fra.me.REG[0] = NIT_NULL;
1659 fra.me.REG[1] = NIT_NULL;
1660 fra.me.REG[2] = NIT_NULL;
1661 fra.me.REG[0] = p0;
1662 fra.me.REG[1] = p1;
1663 /* ./metamodel//partial_order.nit:302 */
1664 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0])!=NIT_NULL);
1665 if (UNTAG_Bool(REGB0)) {
1666 } else {
1667 nit_abort("Uninitialized attribute %s", "_order", LOCATE_metamodel___partial_order, 302);
1668 }
1669 fra.me.REG[2] = ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0]);
1670 fra.me.REG[1] = CALL_metamodel___partial_order___PartialOrder_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1671 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____value(fra.me.REG[0])!=NIT_NULL);
1672 if (UNTAG_Bool(REGB0)) {
1673 } else {
1674 nit_abort("Uninitialized attribute %s", "_value", LOCATE_metamodel___partial_order, 302);
1675 }
1676 fra.me.REG[0] = ATTR_metamodel___partial_order___PartialOrderElement____value(fra.me.REG[0]);
1677 REGB0 = CALL_metamodel___partial_order___PartialOrderElement_____l(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1678 goto label1;
1679 label1: while(0);
1680 stack_frame_head = fra.me.prev;
1681 return REGB0;
1682 }
1683 val_t metamodel___partial_order___PartialOrderElement_____geq(val_t p0, val_t p1){
1684 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
1685 val_t REGB0;
1686 val_t REGB1;
1687 val_t tmp;
1688 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1689 fra.me.file = LOCATE_metamodel___partial_order;
1690 fra.me.line = 305;
1691 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrderElement_____geq;
1692 fra.me.has_broke = 0;
1693 fra.me.REG_size = 3;
1694 fra.me.REG[0] = NIT_NULL;
1695 fra.me.REG[1] = NIT_NULL;
1696 fra.me.REG[2] = NIT_NULL;
1697 fra.me.REG[0] = p0;
1698 fra.me.REG[1] = p1;
1699 /* ./metamodel//partial_order.nit:308 */
1700 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____value(fra.me.REG[0])!=NIT_NULL);
1701 if (UNTAG_Bool(REGB0)) {
1702 } else {
1703 nit_abort("Uninitialized attribute %s", "_value", LOCATE_metamodel___partial_order, 308);
1704 }
1705 fra.me.REG[2] = ATTR_metamodel___partial_order___PartialOrderElement____value(fra.me.REG[0]);
1706 REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[2],fra.me.REG[1]));
1707 if (UNTAG_Bool(REGB0)) {
1708 } else {
1709 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1710 REGB0 = REGB1;
1711 }
1712 if (UNTAG_Bool(REGB0)) {
1713 REGB0 = TAG_Bool(true);
1714 } else {
1715 REGB1 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0])!=NIT_NULL);
1716 if (UNTAG_Bool(REGB1)) {
1717 } else {
1718 nit_abort("Uninitialized attribute %s", "_order", LOCATE_metamodel___partial_order, 308);
1719 }
1720 fra.me.REG[2] = ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0]);
1721 fra.me.REG[1] = CALL_metamodel___partial_order___PartialOrder_____bra(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
1722 REGB1 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____value(fra.me.REG[0])!=NIT_NULL);
1723 if (UNTAG_Bool(REGB1)) {
1724 } else {
1725 nit_abort("Uninitialized attribute %s", "_value", LOCATE_metamodel___partial_order, 308);
1726 }
1727 fra.me.REG[0] = ATTR_metamodel___partial_order___PartialOrderElement____value(fra.me.REG[0]);
1728 REGB1 = CALL_metamodel___partial_order___PartialOrderElement_____l(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
1729 REGB0 = REGB1;
1730 }
1731 goto label1;
1732 label1: while(0);
1733 stack_frame_head = fra.me.prev;
1734 return REGB0;
1735 }
1736 void metamodel___partial_order___PartialOrderElement___register_direct_smallers(val_t p0, val_t p1){
1737 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
1738 val_t REGB0;
1739 val_t tmp;
1740 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1741 fra.me.file = LOCATE_metamodel___partial_order;
1742 fra.me.line = 311;
1743 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrderElement___register_direct_smallers;
1744 fra.me.has_broke = 0;
1745 fra.me.REG_size = 2;
1746 fra.me.REG[0] = NIT_NULL;
1747 fra.me.REG[1] = NIT_NULL;
1748 fra.me.REG[0] = p0;
1749 fra.me.REG[1] = p1;
1750 /* ./metamodel//partial_order.nit:313 */
1751 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____direct_smallers(fra.me.REG[0])!=NIT_NULL);
1752 if (UNTAG_Bool(REGB0)) {
1753 } else {
1754 nit_abort("Uninitialized attribute %s", "_direct_smallers", LOCATE_metamodel___partial_order, 313);
1755 }
1756 fra.me.REG[0] = ATTR_metamodel___partial_order___PartialOrderElement____direct_smallers(fra.me.REG[0]);
1757 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
1758 stack_frame_head = fra.me.prev;
1759 return;
1760 }
1761 void metamodel___partial_order___PartialOrderElement___init(val_t p0, val_t p1, val_t p2, val_t p3, int* init_table){
1762 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_metamodel___partial_order___PartialOrderElement].i;
1763 struct {struct stack_frame_t me; val_t MORE_REG[6];} fra;
1764 val_t REGB0;
1765 val_t REGB1;
1766 val_t REGB2;
1767 val_t REGB3;
1768 val_t tmp;
1769 if (init_table[itpos1]) return;
1770 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1771 fra.me.file = LOCATE_metamodel___partial_order;
1772 fra.me.line = 316;
1773 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrderElement___init;
1774 fra.me.has_broke = 0;
1775 fra.me.REG_size = 7;
1776 fra.me.REG[0] = NIT_NULL;
1777 fra.me.REG[1] = NIT_NULL;
1778 fra.me.REG[2] = NIT_NULL;
1779 fra.me.REG[3] = NIT_NULL;
1780 fra.me.REG[4] = NIT_NULL;
1781 fra.me.REG[5] = NIT_NULL;
1782 fra.me.REG[6] = NIT_NULL;
1783 fra.me.REG[0] = p0;
1784 fra.me.REG[1] = p1;
1785 fra.me.REG[2] = p2;
1786 fra.me.REG[3] = p3;
1787 /* ./metamodel//partial_order.nit:318 */
1788 ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0]) = fra.me.REG[1];
1789 /* ./metamodel//partial_order.nit:319 */
1790 ATTR_metamodel___partial_order___PartialOrderElement____value(fra.me.REG[0]) = fra.me.REG[2];
1791 /* ./metamodel//partial_order.nit:320 */
1792 ATTR_metamodel___partial_order___PartialOrderElement____direct_greaters(fra.me.REG[0]) = fra.me.REG[3];
1793 /* ./metamodel//partial_order.nit:321 */
1794 fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init();
1795 ATTR_metamodel___partial_order___PartialOrderElement____direct_smallers(fra.me.REG[0]) = fra.me.REG[1];
1796 /* ./metamodel//partial_order.nit:323 */
1797 fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
1798 ATTR_metamodel___partial_order___PartialOrderElement____greaters(fra.me.REG[0]) = fra.me.REG[1];
1799 /* ./metamodel//partial_order.nit:324 */
1800 fra.me.REG[1] = NEW_HashSet_standard___collection___hash_collection___HashSet___init();
1801 ATTR_metamodel___partial_order___PartialOrderElement____smallers_cache(fra.me.REG[0]) = fra.me.REG[1];
1802 /* ./metamodel//partial_order.nit:326 */
1803 REGB0 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____greaters(fra.me.REG[0])!=NIT_NULL);
1804 if (UNTAG_Bool(REGB0)) {
1805 } else {
1806 nit_abort("Uninitialized attribute %s", "_greaters", LOCATE_metamodel___partial_order, 326);
1807 }
1808 fra.me.REG[1] = ATTR_metamodel___partial_order___PartialOrderElement____greaters(fra.me.REG[0]);
1809 /* ./metamodel//partial_order.nit:327 */
1810 REGB0 = TAG_Int(0);
1811 /* ./../lib/standard//collection//array.nit:269 */
1812 REGB1 = TAG_Int(0);
1813 /* ./../lib/standard//collection//array.nit:270 */
1814 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1815 if (UNTAG_Bool(REGB2)) {
1816 } else {
1817 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 270);
1818 }
1819 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1820 /* ./../lib/standard//collection//array.nit:271 */
1821 fra.me.REG[4] = ATTR_standard___collection___array___Array____items(fra.me.REG[3]);
1822 /* ./../lib/standard//collection//array.nit:272 */
1823 while(1) {
1824 /* ./../lib/standard//collection//array.nit:24 */
1825 REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL);
1826 if (UNTAG_Bool(REGB2)) {
1827 } else {
1828 nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 24);
1829 }
1830 REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]);
1831 REGB3 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB1), VTID_standard___kernel___Comparable___OTHER(REGB1))) /*cast OTHER*/;
1832 if (UNTAG_Bool(REGB3)) {
1833 } else {
1834 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1835 }
1836 /* ./../lib/standard//kernel.nit:232 */
1837 REGB2 = TAG_Bool(UNTAG_Int(REGB1)<UNTAG_Int(REGB2));
1838 /* ./../lib/standard//collection//array.nit:272 */
1839 if (UNTAG_Bool(REGB2)) {
1840 /* ./../lib/standard//collection//array.nit:273 */
1841 REGB2 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
1842 if (UNTAG_Bool(REGB2)) {
1843 nit_abort("Reciever is null", NULL, LOCATE_standard___collection___array, 273);
1844 }
1845 /* ./../lib/standard//collection//array.nit:718 */
1846 fra.me.REG[5] = ((Nit_NativeArray)fra.me.REG[4])->val[UNTAG_Int(REGB1)];
1847 /* ./metamodel//partial_order.nit:329 */
1848 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[5]);
1849 /* ./metamodel//partial_order.nit:330 */
1850 REGB2 = TAG_Bool(ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0])!=NIT_NULL);
1851 if (UNTAG_Bool(REGB2)) {
1852 } else {
1853 nit_abort("Uninitialized attribute %s", "_order", LOCATE_metamodel___partial_order, 330);
1854 }
1855 fra.me.REG[6] = ATTR_metamodel___partial_order___PartialOrderElement____order(fra.me.REG[0]);
1856 fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrder_____bra(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]);
1857 /* ./metamodel//partial_order.nit:331 */
1858 REGB2 = CALL_metamodel___partial_order___PartialOrderElement___rank(fra.me.REG[5])(fra.me.REG[5]);
1859 REGB3 = TAG_Bool(VAL_ISA(REGB0, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2), VTID_standard___kernel___Comparable___OTHER(REGB2))) /*cast OTHER*/;
1860 if (UNTAG_Bool(REGB3)) {
1861 } else {
1862 nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
1863 }
1864 /* ./../lib/standard//kernel.nit:233 */
1865 REGB2 = TAG_Bool(UNTAG_Int(REGB2)>=UNTAG_Int(REGB0));
1866 /* ./metamodel//partial_order.nit:331 */
1867 if (UNTAG_Bool(REGB2)) {
1868 /* ./metamodel//partial_order.nit:332 */
1869 REGB2 = CALL_metamodel___partial_order___PartialOrderElement___rank(fra.me.REG[5])(fra.me.REG[5]);
1870 REGB3 = TAG_Int(1);
1871 /* ./../lib/standard//kernel.nit:235 */
1872 REGB3 = TAG_Int(UNTAG_Int(REGB2)+UNTAG_Int(REGB3));
1873 /* ./metamodel//partial_order.nit:332 */
1874 REGB0 = REGB3;
1875 }
1876 /* ./metamodel//partial_order.nit:334 */
1877 CALL_metamodel___partial_order___PartialOrderElement___register_direct_smallers(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[2]);
1878 /* ./metamodel//partial_order.nit:335 */
1879 fra.me.REG[5] = CALL_metamodel___partial_order___PartialOrderElement___greaters(fra.me.REG[5])(fra.me.REG[5]);
1880 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[5])(fra.me.REG[5], (&(fra.me)), ((fun_t)OC_metamodel___partial_order___PartialOrderElement___init_1));
1881 /* ./../lib/standard//collection//array.nit:274 */
1882 REGB3 = TAG_Int(1);
1883 /* ./../lib/standard//kernel.nit:235 */
1884 REGB3 = TAG_Int(UNTAG_Int(REGB1)+UNTAG_Int(REGB3));
1885 /* ./../lib/standard//collection//array.nit:274 */
1886 REGB1 = REGB3;
1887 } else {
1888 /* ./../lib/standard//collection//array.nit:272 */
1889 goto label2;
1890 }
1891 }
1892 label2: while(0);
1893 /* ./metamodel//partial_order.nit:339 */
1894 ATTR_metamodel___partial_order___PartialOrderElement____rank(fra.me.REG[0]) = REGB0;
1895 stack_frame_head = fra.me.prev;
1896 init_table[itpos1] = 1;
1897 return;
1898 }
1899 void OC_metamodel___partial_order___PartialOrderElement___init_1(struct stack_frame_t *closctx, val_t p0){
1900 struct {struct stack_frame_t me;} fra;
1901 val_t tmp;
1902 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
1903 fra.me.file = LOCATE_metamodel___partial_order;
1904 fra.me.line = 0;
1905 fra.me.meth = LOCATE_metamodel___partial_order___PartialOrderElement___init;
1906 fra.me.has_broke = 0;
1907 fra.me.REG_size = 1;
1908 fra.me.REG[0] = NIT_NULL;
1909 fra.me.REG[0] = p0;
1910 /* ./metamodel//partial_order.nit:336 */
1911 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx->REG[1])(closctx->REG[1], fra.me.REG[0]);
1912 stack_frame_head = fra.me.prev;
1913 return;
1914 }