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