1 #include "ordered_tree.sep.0.h"
2 /* method ordered_tree#OrderedTree#roots for (self: OrderedTree[Object]): Array[Object] */
3 val
* ordered_tree__OrderedTree__roots(val
* self
) {
4 val
* var
/* : Array[Object] */;
5 val
* var1
/* : Array[Object] */;
6 var1
= self
->attrs
[COLOR_ordered_tree__OrderedTree___64droots
].val
; /* @roots on <self:OrderedTree[Object]> */
8 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @roots");
9 fprintf(stderr
, " (%s:%d)\n", "lib/ordered_tree.nit", 27);
16 /* method ordered_tree#OrderedTree#roots for (self: Object): Array[Object] */
17 val
* VIRTUAL_ordered_tree__OrderedTree__roots(val
* self
) {
18 val
* var
/* : Array[Object] */;
19 val
* var1
/* : Array[Object] */;
20 var1
= ordered_tree__OrderedTree__roots(self
);
25 /* method ordered_tree#OrderedTree#roots= for (self: OrderedTree[Object], Array[Object]) */
26 void ordered_tree__OrderedTree__roots_61d(val
* self
, val
* p0
) {
27 short int var
/* : Bool */;
30 const struct type
* type_struct
;
31 const char* var_class_name
;
32 /* Covariant cast for argument 0 (roots) <p0:Array[Object]> isa Array[OrderedTree#0] */
33 /* <p0:Array[Object]> isa Array[OrderedTree#0] */
34 type_struct
= self
->type
->resolution_table
->types
[COLOR_array__Arrayordered_tree__OrderedTree_FT0
];
35 cltype
= type_struct
->color
;
36 idtype
= type_struct
->id
;
37 if(cltype
>= p0
->type
->table_size
) {
40 var
= p0
->type
->type_table
[cltype
] == idtype
;
43 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
44 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[OrderedTree#0]", var_class_name
);
45 fprintf(stderr
, " (%s:%d)\n", "lib/ordered_tree.nit", 27);
48 self
->attrs
[COLOR_ordered_tree__OrderedTree___64droots
].val
= p0
; /* @roots on <self:OrderedTree[Object]> */
51 /* method ordered_tree#OrderedTree#roots= for (self: Object, Array[Object]) */
52 void VIRTUAL_ordered_tree__OrderedTree__roots_61d(val
* self
, val
* p0
) {
53 ordered_tree__OrderedTree__roots_61d(self
, p0
);
56 /* method ordered_tree#OrderedTree#sub for (self: OrderedTree[Object]): HashMap[Object, Array[Object]] */
57 val
* ordered_tree__OrderedTree__sub(val
* self
) {
58 val
* var
/* : HashMap[Object, Array[Object]] */;
59 val
* var1
/* : HashMap[Object, Array[Object]] */;
60 var1
= self
->attrs
[COLOR_ordered_tree__OrderedTree___64dsub
].val
; /* @sub on <self:OrderedTree[Object]> */
62 fprintf(stderr
, "Runtime error: %s", "Uninitialized attribute @sub");
63 fprintf(stderr
, " (%s:%d)\n", "lib/ordered_tree.nit", 29);
70 /* method ordered_tree#OrderedTree#sub for (self: Object): HashMap[Object, Array[Object]] */
71 val
* VIRTUAL_ordered_tree__OrderedTree__sub(val
* self
) {
72 val
* var
/* : HashMap[Object, Array[Object]] */;
73 val
* var1
/* : HashMap[Object, Array[Object]] */;
74 var1
= ordered_tree__OrderedTree__sub(self
);
79 /* method ordered_tree#OrderedTree#sub= for (self: OrderedTree[Object], HashMap[Object, Array[Object]]) */
80 void ordered_tree__OrderedTree__sub_61d(val
* self
, val
* p0
) {
81 short int var
/* : Bool */;
84 const struct type
* type_struct
;
85 const char* var_class_name
;
86 /* Covariant cast for argument 0 (sub) <p0:HashMap[Object, Array[Object]]> isa HashMap[OrderedTree#0, Array[OrderedTree#0]] */
87 /* <p0:HashMap[Object, Array[Object]]> isa HashMap[OrderedTree#0, Array[OrderedTree#0]] */
88 type_struct
= self
->type
->resolution_table
->types
[COLOR_hash_collection__HashMapordered_tree__OrderedTree_FT0array__Arrayordered_tree__OrderedTree_FT0
];
89 cltype
= type_struct
->color
;
90 idtype
= type_struct
->id
;
91 if(cltype
>= p0
->type
->table_size
) {
94 var
= p0
->type
->type_table
[cltype
] == idtype
;
97 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
98 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "HashMap[OrderedTree#0, Array[OrderedTree#0]]", var_class_name
);
99 fprintf(stderr
, " (%s:%d)\n", "lib/ordered_tree.nit", 29);
102 self
->attrs
[COLOR_ordered_tree__OrderedTree___64dsub
].val
= p0
; /* @sub on <self:OrderedTree[Object]> */
105 /* method ordered_tree#OrderedTree#sub= for (self: Object, HashMap[Object, Array[Object]]) */
106 void VIRTUAL_ordered_tree__OrderedTree__sub_61d(val
* self
, val
* p0
) {
107 ordered_tree__OrderedTree__sub_61d(self
, p0
);
110 /* method ordered_tree#OrderedTree#add for (self: OrderedTree[Object], nullable Object, Object) */
111 void ordered_tree__OrderedTree__add(val
* self
, val
* p0
, val
* p1
) {
112 short int var
/* : Bool */;
115 const struct type
* type_struct
;
116 const char* var_class_name
;
117 short int var1
/* : Bool */;
120 const struct type
* type_struct4
;
121 const char* var_class_name5
;
122 val
* var_p
/* var p: nullable Object */;
123 val
* var_e
/* var e: Object */;
124 val
* var6
/* : null */;
125 short int var7
/* : Bool */;
126 val
* var8
/* : Array[Object] */;
127 val
* var9
/* : HashMap[Object, Array[Object]] */;
128 short int var10
/* : Bool */;
129 val
* var11
/* : HashMap[Object, Array[Object]] */;
130 val
* var12
/* : nullable Object */;
131 val
* var13
/* : HashMap[Object, Array[Object]] */;
132 val
* var14
/* : Array[Object] */;
133 long var15
/* : Int */;
134 val
* var16
/* : NativeArray[Object] */;
135 /* Covariant cast for argument 0 (p) <p0:nullable Object> isa nullable OrderedTree#0 */
136 /* <p0:nullable Object> isa nullable OrderedTree#0 */
137 type_struct
= self
->type
->resolution_table
->types
[COLOR_nullable_ordered_tree__OrderedTree_FT0
];
138 cltype
= type_struct
->color
;
139 idtype
= type_struct
->id
;
143 if(cltype
>= p0
->type
->table_size
) {
146 var
= p0
->type
->type_table
[cltype
] == idtype
;
150 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
151 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable OrderedTree#0", var_class_name
);
152 fprintf(stderr
, " (%s:%d)\n", "lib/ordered_tree.nit", 31);
155 /* Covariant cast for argument 1 (e) <p1:Object> isa OrderedTree#0 */
156 /* <p1:Object> isa OrderedTree#0 */
157 type_struct4
= self
->type
->resolution_table
->types
[COLOR_ordered_tree__OrderedTree_FT0
];
158 cltype2
= type_struct4
->color
;
159 idtype3
= type_struct4
->id
;
160 if(cltype2
>= p1
->type
->table_size
) {
163 var1
= p1
->type
->type_table
[cltype2
] == idtype3
;
166 var_class_name5
= p1
== NULL ?
"null" : p1
->type
->name
;
167 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OrderedTree#0", var_class_name5
);
168 fprintf(stderr
, " (%s:%d)\n", "lib/ordered_tree.nit", 31);
175 var7
= 1; /* is null */
177 var7
= 0; /* arg is null but recv is not */
180 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_ordered_tree__OrderedTree__roots
]))(self
) /* roots on <self:OrderedTree[Object]>*/;
181 ((void (*)(val
*, val
*))(var8
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var8
, var_e
) /* add on <var8:Array[Object]>*/;
183 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_ordered_tree__OrderedTree__sub
]))(self
) /* sub on <self:OrderedTree[Object]>*/;
184 var10
= ((short int (*)(val
*, val
*))(var9
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var9
, var_p
) /* has_key on <var9:HashMap[Object, Array[Object]]>*/;
186 var11
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_ordered_tree__OrderedTree__sub
]))(self
) /* sub on <self:OrderedTree[Object]>*/;
187 var12
= ((val
* (*)(val
*, val
*))(var11
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var11
, var_p
) /* [] on <var11:HashMap[Object, Array[Object]]>*/;
188 ((void (*)(val
*, val
*))(var12
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var12
, var_e
) /* add on <var12:nullable Object(Array[Object])>*/;
190 var13
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_ordered_tree__OrderedTree__sub
]))(self
) /* sub on <self:OrderedTree[Object]>*/;
191 var14
= NEW_array__Array(self
->type
->resolution_table
->types
[COLOR_array__Arrayordered_tree__OrderedTree_FT0
]);
192 { /* var14 = array_instance Array[OrderedTree#0] */
194 var16
= NEW_array__NativeArray(var15
, self
->type
->resolution_table
->types
[COLOR_array__NativeArrayordered_tree__OrderedTree_FT0
]);
195 ((struct instance_array__NativeArray
*)var16
)->values
[0] = (val
*) var_e
;
196 ((void (*)(val
*, val
*, long))(var14
->class->vft
[COLOR_array__Array__with_native
]))(var14
, var16
, var15
) /* with_native on <var14:Array[Object]>*/;
198 ((void (*)(val
*, val
*, val
*))(var13
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var13
, var_p
, var14
) /* []= on <var13:HashMap[Object, Array[Object]]>*/;
203 /* method ordered_tree#OrderedTree#add for (self: Object, nullable Object, Object) */
204 void VIRTUAL_ordered_tree__OrderedTree__add(val
* self
, val
* p0
, val
* p1
) {
205 ordered_tree__OrderedTree__add(self
, p0
, p1
);
208 /* method ordered_tree#OrderedTree#pretty for (self: OrderedTree[Object], OStream) */
209 void ordered_tree__OrderedTree__pretty(val
* self
, val
* p0
) {
210 val
* var_o
/* var o: OStream */;
211 val
* var
/* : Array[Object] */;
212 val
* var1
/* : nullable Object */;
213 val
* var_last
/* var last: Object */;
214 val
* var2
/* : Array[Object] */;
215 val
* var3
/* : Iterator[nullable Object] */;
216 short int var4
/* : Bool */;
217 val
* var5
/* : nullable Object */;
218 val
* var_r
/* var r: Object */;
219 val
* var6
/* : String */;
221 val
* var7
/* : String */;
222 char* var8
/* : NativeString */;
223 long var9
/* : Int */;
224 val
* var10
/* : String */;
225 static val
* varonce11
;
226 val
* var12
/* : String */;
227 char* var13
/* : NativeString */;
228 long var14
/* : Int */;
229 val
* var15
/* : String */;
231 var
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_ordered_tree__OrderedTree__roots
]))(self
) /* roots on <self:OrderedTree[Object]>*/;
232 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var
) /* last on <var:Array[Object]>*/;
234 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_ordered_tree__OrderedTree__roots
]))(self
) /* roots on <self:OrderedTree[Object]>*/;
235 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var2
) /* iterator on <var2:Array[Object]>*/;
237 var4
= ((short int (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var3
) /* is_ok on <var3:Iterator[nullable Object]>*/;
239 var5
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var3
) /* item on <var3:Iterator[nullable Object]>*/;
241 var6
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_ordered_tree__OrderedTree__display
]))(self
, var_r
) /* display on <self:OrderedTree[Object]>*/;
242 ((void (*)(val
*, val
*))(var_o
->class->vft
[COLOR_stream__OStream__write
]))(var_o
, var6
) /* write on <var_o:OStream>*/;
248 var10
= string__NativeString__to_s_with_length(var8
, var9
);
252 ((void (*)(val
*, val
*))(var_o
->class->vft
[COLOR_stream__OStream__write
]))(var_o
, var7
) /* write on <var_o:OStream>*/;
258 var15
= string__NativeString__to_s_with_length(var13
, var14
);
262 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_ordered_tree__OrderedTree__sub_pretty
]))(self
, var_o
, var_r
, var12
) /* sub_pretty on <self:OrderedTree[Object]>*/;
263 CONTINUE_label
: (void)0;
264 ((void (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var3
) /* next on <var3:Iterator[nullable Object]>*/;
266 BREAK_label
: (void)0;
269 /* method ordered_tree#OrderedTree#pretty for (self: Object, OStream) */
270 void VIRTUAL_ordered_tree__OrderedTree__pretty(val
* self
, val
* p0
) {
271 ordered_tree__OrderedTree__pretty(self
, p0
);
274 /* method ordered_tree#OrderedTree#sub_pretty for (self: OrderedTree[Object], OStream, Object, String) */
275 void ordered_tree__OrderedTree__sub_pretty(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
276 short int var
/* : Bool */;
279 const struct type
* type_struct
;
280 const char* var_class_name
;
281 val
* var_o
/* var o: OStream */;
282 val
* var_e
/* var e: Object */;
283 val
* var_prefix
/* var prefix: String */;
284 val
* var1
/* : HashMap[Object, Array[Object]] */;
285 short int var2
/* : Bool */;
286 short int var3
/* : Bool */;
287 val
* var4
/* : HashMap[Object, Array[Object]] */;
288 val
* var5
/* : nullable Object */;
289 val
* var_subs
/* var subs: Array[Object] */;
290 val
* var6
/* : nullable Object */;
291 val
* var_last
/* var last: Object */;
292 val
* var7
/* : Iterator[nullable Object] */;
293 short int var8
/* : Bool */;
294 val
* var9
/* : nullable Object */;
295 val
* var_e2
/* var e2: Object */;
296 short int var10
/* : Bool */;
298 val
* var11
/* : String */;
299 char* var12
/* : NativeString */;
300 long var13
/* : Int */;
301 val
* var14
/* : String */;
302 val
* var15
/* : String */;
303 static val
* varonce16
;
304 val
* var17
/* : String */;
305 char* var18
/* : NativeString */;
306 long var19
/* : Int */;
307 val
* var20
/* : String */;
308 val
* var21
/* : Array[Object] */;
309 long var22
/* : Int */;
310 val
* var23
/* : NativeArray[Object] */;
311 val
* var24
/* : String */;
312 static val
* varonce25
;
313 val
* var26
/* : String */;
314 char* var27
/* : NativeString */;
315 long var28
/* : Int */;
316 val
* var29
/* : String */;
317 val
* var30
/* : String */;
318 static val
* varonce31
;
319 val
* var32
/* : String */;
320 char* var33
/* : NativeString */;
321 long var34
/* : Int */;
322 val
* var35
/* : String */;
323 val
* var36
/* : String */;
324 static val
* varonce37
;
325 val
* var38
/* : String */;
326 char* var39
/* : NativeString */;
327 long var40
/* : Int */;
328 val
* var41
/* : String */;
329 val
* var42
/* : Array[Object] */;
330 long var43
/* : Int */;
331 val
* var44
/* : NativeArray[Object] */;
332 val
* var45
/* : String */;
333 static val
* varonce46
;
334 val
* var47
/* : String */;
335 char* var48
/* : NativeString */;
336 long var49
/* : Int */;
337 val
* var50
/* : String */;
338 val
* var51
/* : String */;
339 /* Covariant cast for argument 1 (e) <p1:Object> isa OrderedTree#0 */
340 /* <p1:Object> isa OrderedTree#0 */
341 type_struct
= self
->type
->resolution_table
->types
[COLOR_ordered_tree__OrderedTree_FT0
];
342 cltype
= type_struct
->color
;
343 idtype
= type_struct
->id
;
344 if(cltype
>= p1
->type
->table_size
) {
347 var
= p1
->type
->type_table
[cltype
] == idtype
;
350 var_class_name
= p1
== NULL ?
"null" : p1
->type
->name
;
351 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OrderedTree#0", var_class_name
);
352 fprintf(stderr
, " (%s:%d)\n", "lib/ordered_tree.nit", 62);
358 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_ordered_tree__OrderedTree__sub
]))(self
) /* sub on <self:OrderedTree[Object]>*/;
359 var2
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var1
, var_e
) /* has_key on <var1:HashMap[Object, Array[Object]]>*/;
365 var4
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_ordered_tree__OrderedTree__sub
]))(self
) /* sub on <self:OrderedTree[Object]>*/;
366 var5
= ((val
* (*)(val
*, val
*))(var4
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var4
, var_e
) /* [] on <var4:HashMap[Object, Array[Object]]>*/;
368 var6
= ((val
* (*)(val
*))(var_subs
->class->vft
[COLOR_abstract_collection__SequenceRead__last
]))(var_subs
) /* last on <var_subs:Array[Object]>*/;
370 var7
= ((val
* (*)(val
*))(var_subs
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var_subs
) /* iterator on <var_subs:Array[Object]>*/;
372 var8
= ((short int (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var7
) /* is_ok on <var7:Iterator[nullable Object]>*/;
374 var9
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var7
) /* item on <var7:Iterator[nullable Object]>*/;
376 var10
= ((short int (*)(val
*, val
*))(var_e2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_e2
, var_last
) /* != on <var_e2:Object>*/;
383 var14
= string__NativeString__to_s_with_length(var12
, var13
);
387 var15
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_ordered_tree__OrderedTree__display
]))(self
, var_e2
) /* display on <self:OrderedTree[Object]>*/;
393 var20
= string__NativeString__to_s_with_length(var18
, var19
);
397 var21
= NEW_array__Array(&type_array__Arraykernel__Object
);
398 { /* var21 = array_instance Array[Object] */
400 var23
= NEW_array__NativeArray(var22
, &type_array__NativeArraykernel__Object
);
401 ((struct instance_array__NativeArray
*)var23
)->values
[0] = (val
*) var_prefix
;
402 ((struct instance_array__NativeArray
*)var23
)->values
[1] = (val
*) var11
;
403 ((struct instance_array__NativeArray
*)var23
)->values
[2] = (val
*) var15
;
404 ((struct instance_array__NativeArray
*)var23
)->values
[3] = (val
*) var17
;
405 ((void (*)(val
*, val
*, long))(var21
->class->vft
[COLOR_array__Array__with_native
]))(var21
, var23
, var22
) /* with_native on <var21:Array[Object]>*/;
407 var24
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_string__Object__to_s
]))(var21
) /* to_s on <var21:Array[Object]>*/;
408 ((void (*)(val
*, val
*))(var_o
->class->vft
[COLOR_stream__OStream__write
]))(var_o
, var24
) /* write on <var_o:OStream>*/;
414 var29
= string__NativeString__to_s_with_length(var27
, var28
);
418 var30
= ((val
* (*)(val
*, val
*))(var_prefix
->class->vft
[COLOR_string__String___43d
]))(var_prefix
, var26
) /* + on <var_prefix:String>*/;
419 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_ordered_tree__OrderedTree__sub_pretty
]))(self
, var_o
, var_e2
, var30
) /* sub_pretty on <self:OrderedTree[Object]>*/;
426 var35
= string__NativeString__to_s_with_length(var33
, var34
);
430 var36
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_ordered_tree__OrderedTree__display
]))(self
, var_e2
) /* display on <self:OrderedTree[Object]>*/;
436 var41
= string__NativeString__to_s_with_length(var39
, var40
);
440 var42
= NEW_array__Array(&type_array__Arraykernel__Object
);
441 { /* var42 = array_instance Array[Object] */
443 var44
= NEW_array__NativeArray(var43
, &type_array__NativeArraykernel__Object
);
444 ((struct instance_array__NativeArray
*)var44
)->values
[0] = (val
*) var_prefix
;
445 ((struct instance_array__NativeArray
*)var44
)->values
[1] = (val
*) var32
;
446 ((struct instance_array__NativeArray
*)var44
)->values
[2] = (val
*) var36
;
447 ((struct instance_array__NativeArray
*)var44
)->values
[3] = (val
*) var38
;
448 ((void (*)(val
*, val
*, long))(var42
->class->vft
[COLOR_array__Array__with_native
]))(var42
, var44
, var43
) /* with_native on <var42:Array[Object]>*/;
450 var45
= ((val
* (*)(val
*))(var42
->class->vft
[COLOR_string__Object__to_s
]))(var42
) /* to_s on <var42:Array[Object]>*/;
451 ((void (*)(val
*, val
*))(var_o
->class->vft
[COLOR_stream__OStream__write
]))(var_o
, var45
) /* write on <var_o:OStream>*/;
457 var50
= string__NativeString__to_s_with_length(var48
, var49
);
461 var51
= ((val
* (*)(val
*, val
*))(var_prefix
->class->vft
[COLOR_string__String___43d
]))(var_prefix
, var47
) /* + on <var_prefix:String>*/;
462 ((void (*)(val
*, val
*, val
*, val
*))(self
->class->vft
[COLOR_ordered_tree__OrderedTree__sub_pretty
]))(self
, var_o
, var_e2
, var51
) /* sub_pretty on <self:OrderedTree[Object]>*/;
464 CONTINUE_label
: (void)0;
465 ((void (*)(val
*))(var7
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var7
) /* next on <var7:Iterator[nullable Object]>*/;
467 BREAK_label
: (void)0;
470 /* method ordered_tree#OrderedTree#sub_pretty for (self: Object, OStream, Object, String) */
471 void VIRTUAL_ordered_tree__OrderedTree__sub_pretty(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
472 ordered_tree__OrderedTree__sub_pretty(self
, p0
, p1
, p2
);
475 /* method ordered_tree#OrderedTree#sort_with for (self: OrderedTree[Object], AbstractSorter[Object]) */
476 void ordered_tree__OrderedTree__sort_with(val
* self
, val
* p0
) {
477 short int var
/* : Bool */;
480 const struct type
* type_struct
;
481 const char* var_class_name
;
482 val
* var_comparator
/* var comparator: AbstractSorter[Object] */;
483 val
* var1
/* : Array[Object] */;
484 val
* var2
/* : HashMap[Object, Array[Object]] */;
485 val
* var3
/* : Collection[nullable Object] */;
486 val
* var4
/* : Iterator[nullable Object] */;
487 short int var5
/* : Bool */;
488 val
* var6
/* : nullable Object */;
489 val
* var_a
/* var a: Array[Object] */;
490 /* Covariant cast for argument 0 (comparator) <p0:AbstractSorter[Object]> isa AbstractSorter[OrderedTree#0] */
491 /* <p0:AbstractSorter[Object]> isa AbstractSorter[OrderedTree#0] */
492 type_struct
= self
->type
->resolution_table
->types
[COLOR_sorter__AbstractSorterordered_tree__OrderedTree_FT0
];
493 cltype
= type_struct
->color
;
494 idtype
= type_struct
->id
;
495 if(cltype
>= p0
->type
->table_size
) {
498 var
= p0
->type
->type_table
[cltype
] == idtype
;
501 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
502 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractSorter[OrderedTree#0]", var_class_name
);
503 fprintf(stderr
, " (%s:%d)\n", "lib/ordered_tree.nit", 78);
507 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_ordered_tree__OrderedTree__roots
]))(self
) /* roots on <self:OrderedTree[Object]>*/;
508 ((void (*)(val
*, val
*))(var_comparator
->class->vft
[COLOR_sorter__AbstractSorter__sort
]))(var_comparator
, var1
) /* sort on <var_comparator:AbstractSorter[Object]>*/;
509 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_ordered_tree__OrderedTree__sub
]))(self
) /* sub on <self:OrderedTree[Object]>*/;
510 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_abstract_collection__MapRead__values
]))(var2
) /* values on <var2:HashMap[Object, Array[Object]]>*/;
511 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var3
) /* iterator on <var3:Collection[nullable Object](HashMapValues[Object, Array[Object]])>*/;
513 var5
= ((short int (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var4
) /* is_ok on <var4:Iterator[nullable Object]>*/;
515 var6
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var4
) /* item on <var4:Iterator[nullable Object]>*/;
517 ((void (*)(val
*, val
*))(var_comparator
->class->vft
[COLOR_sorter__AbstractSorter__sort
]))(var_comparator
, var_a
) /* sort on <var_comparator:AbstractSorter[Object]>*/;
518 CONTINUE_label
: (void)0;
519 ((void (*)(val
*))(var4
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var4
) /* next on <var4:Iterator[nullable Object]>*/;
521 BREAK_label
: (void)0;
524 /* method ordered_tree#OrderedTree#sort_with for (self: Object, AbstractSorter[Object]) */
525 void VIRTUAL_ordered_tree__OrderedTree__sort_with(val
* self
, val
* p0
) {
526 ordered_tree__OrderedTree__sort_with(self
, p0
);
529 /* method ordered_tree#OrderedTree#display for (self: OrderedTree[Object], Object): String */
530 val
* ordered_tree__OrderedTree__display(val
* self
, val
* p0
) {
531 val
* var
/* : String */;
532 short int var1
/* : Bool */;
535 const struct type
* type_struct
;
536 const char* var_class_name
;
537 val
* var_e
/* var e: Object */;
538 val
* var2
/* : String */;
539 /* Covariant cast for argument 0 (e) <p0:Object> isa OrderedTree#0 */
540 /* <p0:Object> isa OrderedTree#0 */
541 type_struct
= self
->type
->resolution_table
->types
[COLOR_ordered_tree__OrderedTree_FT0
];
542 cltype
= type_struct
->color
;
543 idtype
= type_struct
->id
;
544 if(cltype
>= p0
->type
->table_size
) {
547 var1
= p0
->type
->type_table
[cltype
] == idtype
;
550 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
551 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "OrderedTree#0", var_class_name
);
552 fprintf(stderr
, " (%s:%d)\n", "lib/ordered_tree.nit", 88);
556 var2
= ((val
* (*)(val
*))(var_e
->class->vft
[COLOR_string__Object__to_s
]))(var_e
) /* to_s on <var_e:Object>*/;
562 /* method ordered_tree#OrderedTree#display for (self: Object, Object): String */
563 val
* VIRTUAL_ordered_tree__OrderedTree__display(val
* self
, val
* p0
) {
564 val
* var
/* : String */;
565 val
* var1
/* : String */;
566 var1
= ordered_tree__OrderedTree__display(self
, p0
);
571 /* method ordered_tree#OrderedTree#init for (self: OrderedTree[Object]) */
572 void ordered_tree__OrderedTree__init(val
* self
) {
575 /* method ordered_tree#OrderedTree#init for (self: Object) */
576 void VIRTUAL_ordered_tree__OrderedTree__init(val
* self
) {
577 ordered_tree__OrderedTree__init(self
);