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