+/* method ordered_tree#OrderedTreeIterator#next for (self: OrderedTreeIterator[Object]) */
+void ordered_tree___ordered_tree__OrderedTreeIterator___standard__abstract_collection__Iterator__next(val* self) {
+short int var /* : Bool */;
+val* var1 /* : OrderedTree[Object] */;
+val* var3 /* : OrderedTree[Object] */;
+val* var4 /* : HashMap[Object, Array[Object]] */;
+val* var6 /* : HashMap[Object, Array[Object]] */;
+val* var7 /* : Object */;
+short int var8 /* : Bool */;
+val* var9 /* : Array[Iterator[Object]] */;
+val* var11 /* : Array[Iterator[Object]] */;
+val* var12 /* : OrderedTree[Object] */;
+val* var14 /* : OrderedTree[Object] */;
+val* var15 /* : HashMap[Object, Array[Object]] */;
+val* var17 /* : HashMap[Object, Array[Object]] */;
+val* var18 /* : Object */;
+val* var19 /* : nullable Object */;
+val* var20 /* : ArrayIterator[nullable Object] */;
+val* var21 /* : Array[Iterator[Object]] */;
+val* var23 /* : Array[Iterator[Object]] */;
+val* var24 /* : nullable Object */;
+short int var25 /* : Bool */;
+short int var26 /* : Bool */;
+short int var_ /* var : Bool */;
+val* var27 /* : Array[Iterator[Object]] */;
+val* var29 /* : Array[Iterator[Object]] */;
+val* var30 /* : nullable Object */;
+short int var31 /* : Bool */;
+short int var32 /* : Bool */;
+val* var33 /* : Array[Iterator[Object]] */;
+val* var35 /* : Array[Iterator[Object]] */;
+val* var36 /* : nullable Object */;
+short int var37 /* : Bool */;
+short int var38 /* : Bool */;
+short int var_39 /* var : Bool */;
+val* var40 /* : Array[Iterator[Object]] */;
+val* var42 /* : Array[Iterator[Object]] */;
+val* var43 /* : nullable Object */;
+short int var44 /* : Bool */;
+val* var45 /* : Array[Iterator[Object]] */;
+val* var47 /* : Array[Iterator[Object]] */;
+val* var48 /* : nullable Object */;
+{
+var = ordered_tree___ordered_tree__OrderedTreeIterator___standard__abstract_collection__Iterator__is_ok(self);
+}
+if (unlikely(!var)) {
+PRINT_ERROR("Runtime error: %s", "Assert failed");
+PRINT_ERROR(" (%s:%d)\n", FILE_ordered_tree, 207);
+fatal_exit(1);
+}
+{
+{ /* Inline ordered_tree#OrderedTreeIterator#tree (self) on <self:OrderedTreeIterator[Object]> */
+var3 = self->attrs[COLOR_ordered_tree__OrderedTreeIterator___tree].val; /* _tree on <self:OrderedTreeIterator[Object]> */
+if (unlikely(var3 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tree");
+PRINT_ERROR(" (%s:%d)\n", FILE_ordered_tree, 189);
+fatal_exit(1);
+}
+var1 = var3;
+RET_LABEL2:(void)0;
+}
+}
+{
+{ /* Inline ordered_tree#OrderedTree#sub (var1) on <var1:OrderedTree[Object]> */
+var6 = var1->attrs[COLOR_ordered_tree__OrderedTree___sub].val; /* _sub on <var1:OrderedTree[Object]> */
+if (unlikely(var6 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _sub");
+PRINT_ERROR(" (%s:%d)\n", FILE_ordered_tree, 68);
+fatal_exit(1);
+}
+var4 = var6;
+RET_LABEL5:(void)0;
+}
+}
+{
+var7 = ordered_tree___ordered_tree__OrderedTreeIterator___standard__abstract_collection__Iterator__item(self);
+}
+{
+var8 = standard___standard__HashMap___standard__abstract_collection__MapRead__has_key(var4, var7);
+}
+if (var8){
+{
+{ /* Inline ordered_tree#OrderedTreeIterator#iterators (self) on <self:OrderedTreeIterator[Object]> */
+var11 = self->attrs[COLOR_ordered_tree__OrderedTreeIterator___iterators].val; /* _iterators on <self:OrderedTreeIterator[Object]> */
+if (unlikely(var11 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iterators");
+PRINT_ERROR(" (%s:%d)\n", FILE_ordered_tree, 191);
+fatal_exit(1);
+}
+var9 = var11;
+RET_LABEL10:(void)0;
+}
+}
+{
+{ /* Inline ordered_tree#OrderedTreeIterator#tree (self) on <self:OrderedTreeIterator[Object]> */
+var14 = self->attrs[COLOR_ordered_tree__OrderedTreeIterator___tree].val; /* _tree on <self:OrderedTreeIterator[Object]> */
+if (unlikely(var14 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _tree");
+PRINT_ERROR(" (%s:%d)\n", FILE_ordered_tree, 189);
+fatal_exit(1);
+}
+var12 = var14;
+RET_LABEL13:(void)0;
+}
+}
+{
+{ /* Inline ordered_tree#OrderedTree#sub (var12) on <var12:OrderedTree[Object]> */
+var17 = var12->attrs[COLOR_ordered_tree__OrderedTree___sub].val; /* _sub on <var12:OrderedTree[Object]> */
+if (unlikely(var17 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _sub");
+PRINT_ERROR(" (%s:%d)\n", FILE_ordered_tree, 68);
+fatal_exit(1);
+}
+var15 = var17;
+RET_LABEL16:(void)0;
+}
+}
+{
+var18 = ordered_tree___ordered_tree__OrderedTreeIterator___standard__abstract_collection__Iterator__item(self);
+}
+{
+var19 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var15, var18);
+}
+{
+var20 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var19);
+}
+{
+standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var9, var20); /* Direct call array#Array#add on <var9:Array[Iterator[Object]]>*/
+}
+} else {
+{
+{ /* Inline ordered_tree#OrderedTreeIterator#iterators (self) on <self:OrderedTreeIterator[Object]> */
+var23 = self->attrs[COLOR_ordered_tree__OrderedTreeIterator___iterators].val; /* _iterators on <self:OrderedTreeIterator[Object]> */
+if (unlikely(var23 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iterators");
+PRINT_ERROR(" (%s:%d)\n", FILE_ordered_tree, 191);
+fatal_exit(1);
+}
+var21 = var23;
+RET_LABEL22:(void)0;
+}
+}
+{
+var24 = standard___standard__SequenceRead___last(var21);
+}
+{
+((void(*)(val* self))((((long)var24&3)?class_info[((long)var24&3)]:var24->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var24); /* next on <var24:nullable Object(Iterator[Object])>*/
+}
+for(;;) {
+{
+var26 = ordered_tree___ordered_tree__OrderedTreeIterator___standard__abstract_collection__Iterator__is_ok(self);
+}
+var_ = var26;
+if (var26){
+{
+{ /* Inline ordered_tree#OrderedTreeIterator#iterators (self) on <self:OrderedTreeIterator[Object]> */
+var29 = self->attrs[COLOR_ordered_tree__OrderedTreeIterator___iterators].val; /* _iterators on <self:OrderedTreeIterator[Object]> */
+if (unlikely(var29 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iterators");
+PRINT_ERROR(" (%s:%d)\n", FILE_ordered_tree, 191);
+fatal_exit(1);
+}
+var27 = var29;
+RET_LABEL28:(void)0;
+}
+}
+{
+var30 = standard___standard__SequenceRead___last(var27);
+}
+{
+var31 = ((short int(*)(val* self))((((long)var30&3)?class_info[((long)var30&3)]:var30->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var30); /* is_ok on <var30:nullable Object(Iterator[Object])>*/
+}
+var32 = !var31;
+var25 = var32;
+} else {
+var25 = var_;
+}
+if (var25){
+{
+{ /* Inline ordered_tree#OrderedTreeIterator#iterators (self) on <self:OrderedTreeIterator[Object]> */
+var35 = self->attrs[COLOR_ordered_tree__OrderedTreeIterator___iterators].val; /* _iterators on <self:OrderedTreeIterator[Object]> */
+if (unlikely(var35 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iterators");
+PRINT_ERROR(" (%s:%d)\n", FILE_ordered_tree, 191);
+fatal_exit(1);
+}
+var33 = var35;
+RET_LABEL34:(void)0;
+}
+}
+{
+var36 = standard___standard__AbstractArray___standard__abstract_collection__Sequence__pop(var33);
+}
+{
+var38 = ordered_tree___ordered_tree__OrderedTreeIterator___standard__abstract_collection__Iterator__is_ok(self);
+}
+var_39 = var38;
+if (var38){
+{
+{ /* Inline ordered_tree#OrderedTreeIterator#iterators (self) on <self:OrderedTreeIterator[Object]> */
+var42 = self->attrs[COLOR_ordered_tree__OrderedTreeIterator___iterators].val; /* _iterators on <self:OrderedTreeIterator[Object]> */
+if (unlikely(var42 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iterators");
+PRINT_ERROR(" (%s:%d)\n", FILE_ordered_tree, 191);
+fatal_exit(1);
+}
+var40 = var42;
+RET_LABEL41:(void)0;
+}
+}
+{
+var43 = standard___standard__SequenceRead___last(var40);
+}
+{
+var44 = ((short int(*)(val* self))((((long)var43&3)?class_info[((long)var43&3)]:var43->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var43); /* is_ok on <var43:nullable Object(Iterator[Object])>*/
+}
+var37 = var44;
+} else {
+var37 = var_39;
+}
+if (var37){
+{
+{ /* Inline ordered_tree#OrderedTreeIterator#iterators (self) on <self:OrderedTreeIterator[Object]> */
+var47 = self->attrs[COLOR_ordered_tree__OrderedTreeIterator___iterators].val; /* _iterators on <self:OrderedTreeIterator[Object]> */
+if (unlikely(var47 == NULL)) {
+PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iterators");
+PRINT_ERROR(" (%s:%d)\n", FILE_ordered_tree, 191);
+fatal_exit(1);
+}
+var45 = var47;
+RET_LABEL46:(void)0;
+}
+}
+{
+var48 = standard___standard__SequenceRead___last(var45);
+}
+{
+((void(*)(val* self))((((long)var48&3)?class_info[((long)var48&3)]:var48->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var48); /* next on <var48:nullable Object(Iterator[Object])>*/
+}
+} else {
+}
+} else {
+goto BREAK_label;
+}
+}
+BREAK_label: (void)0;
+}