2 /* method ini#ConfigTree#ini_file for (self: ConfigTree): String */
3 val
* ini___ini__ConfigTree___ini_file(val
* self
) {
4 val
* var
/* : String */;
5 val
* var1
/* : String */;
6 var1
= self
->attrs
[COLOR_ini__ConfigTree___ini_file
].val
; /* _ini_file on <self:ConfigTree> */
7 if (unlikely(var1
== NULL
)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ini_file");
9 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 37);
16 /* method ini#ConfigTree#ini_file= for (self: ConfigTree, String) */
17 void ini___ini__ConfigTree___ini_file_61d(val
* self
, val
* p0
) {
18 self
->attrs
[COLOR_ini__ConfigTree___ini_file
].val
= p0
; /* _ini_file on <self:ConfigTree> */
21 /* method ini#ConfigTree#init for (self: ConfigTree) */
22 void ini___ini__ConfigTree___core__kernel__Object__init(val
* self
) {
23 val
* var
/* : String */;
24 val
* var2
/* : String */;
25 short int var3
/* : Bool */;
27 ((void(*)(val
* self
))(self
->class->vft
[COLOR_ini___ini__ConfigTree___core__kernel__Object__init
]))(self
); /* init on <self:ConfigTree>*/
30 { /* Inline ini#ConfigTree#ini_file (self) on <self:ConfigTree> */
31 var2
= self
->attrs
[COLOR_ini__ConfigTree___ini_file
].val
; /* _ini_file on <self:ConfigTree> */
32 if (unlikely(var2
== NULL
)) {
33 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ini_file");
34 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 37);
42 var3
= core__file___String___file_exists(var
);
46 ini___ini__ConfigTree___load(self
); /* Direct call ini#ConfigTree#load on <self:ConfigTree>*/
52 /* method ini#ConfigTree#[] for (self: ConfigTree, String): nullable String */
53 val
* ini___ini__ConfigTree____91d_93d(val
* self
, val
* p0
) {
54 val
* var
/* : nullable String */;
55 val
* var_key
/* var key: String */;
56 val
* var1
/* : nullable ConfigNode */;
57 val
* var_node
/* var node: nullable ConfigNode */;
58 short int var2
/* : Bool */;
59 short int var3
/* : Bool */;
60 val
* var_other
/* var other: nullable Object */;
61 short int var5
/* : Bool */;
62 short int var7
/* : Bool */;
63 val
* var8
/* : nullable String */;
64 val
* var10
/* : nullable String */;
67 var1
= ini___ini__ConfigTree___get_node(self
, var_key
);
70 if (var_node
== NULL
) {
71 var2
= 1; /* is null */
73 var2
= 0; /* arg is null but recv is not */
76 { /* Inline kernel#Object#== (var_node,((val*)NULL)) on <var_node:nullable ConfigNode> */
77 var_other
= ((val
*)NULL
);
79 { /* Inline kernel#Object#is_same_instance (var_node,var_other) on <var_node:nullable ConfigNode(ConfigNode)> */
80 var7
= var_node
== var_other
;
98 { /* Inline ini#ConfigNode#value (var_node) on <var_node:nullable ConfigNode(ConfigNode)> */
99 var10
= var_node
->attrs
[COLOR_ini__ConfigNode___value
].val
; /* _value on <var_node:nullable ConfigNode(ConfigNode)> */
109 /* method ini#ConfigTree#has_key for (self: ConfigTree, String): Bool */
110 short int ini___ini__ConfigTree___has_key(val
* self
, val
* p0
) {
111 short int var
/* : Bool */;
112 val
* var_key
/* var key: String */;
114 val
* var1
/* : String */;
115 char* var2
/* : NativeString */;
116 val
* var3
/* : String */;
117 val
* var4
/* : Array[String] */;
118 val
* var5
/* : Array[nullable Object] */;
119 val
* var_parts
/* var parts: Array[String] */;
120 val
* var6
/* : nullable Object */;
121 val
* var7
/* : nullable ConfigNode */;
122 val
* var_node
/* var node: nullable ConfigNode */;
123 short int var8
/* : Bool */;
124 short int var9
/* : Bool */;
125 val
* var_other
/* var other: nullable Object */;
126 short int var11
/* : Bool */;
127 short int var13
/* : Bool */;
128 short int var14
/* : Bool */;
129 short int var15
/* : Bool */;
130 val
* var16
/* : nullable Object */;
131 val
* var17
/* : nullable ConfigNode */;
132 short int var18
/* : Bool */;
133 short int var19
/* : Bool */;
134 short int var21
/* : Bool */;
135 short int var23
/* : Bool */;
137 if (likely(varonce
!=NULL
)) {
141 var3
= core__flat___NativeString___to_s_full(var2
, 1l, 1l);
146 var4
= core__string_search___Text___split(var_key
, var1
);
149 var5
= core___core__AbstractArrayRead___reversed(var4
);
153 var6
= core___core__AbstractArray___core__abstract_collection__Sequence__pop(var_parts
);
156 var7
= ini___ini__ConfigTree___get_root(self
, var6
);
159 if (var_node
== NULL
) {
160 var8
= 1; /* is null */
162 var8
= 0; /* arg is null but recv is not */
165 { /* Inline kernel#Object#== (var_node,((val*)NULL)) on <var_node:nullable ConfigNode> */
166 var_other
= ((val
*)NULL
);
168 { /* Inline kernel#Object#is_same_instance (var_node,var_other) on <var_node:nullable ConfigNode(ConfigNode)> */
169 var13
= var_node
== var_other
;
188 var14
= core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_parts
);
193 var16
= core___core__AbstractArray___core__abstract_collection__Sequence__pop(var_parts
);
196 var17
= ini___ini__ConfigNode___get_child(var_node
, var16
);
199 if (var_node
== NULL
) {
200 var18
= 1; /* is null */
202 var18
= 0; /* arg is null but recv is not */
205 { /* Inline kernel#Object#== (var_node,((val*)NULL)) on <var_node:nullable ConfigNode> */
206 var_other
= ((val
*)NULL
);
208 { /* Inline kernel#Object#is_same_instance (var_node,var_other) on <var_node:nullable ConfigNode(ConfigNode)> */
209 var23
= var_node
== var_other
;
230 BREAK_label
: (void)0;
236 /* method ini#ConfigTree#to_map for (self: ConfigTree): Map[String, String] */
237 val
* ini___ini__ConfigTree___to_map(val
* self
) {
238 val
* var
/* : Map[String, String] */;
239 val
* var1
/* : HashMap[String, String] */;
240 val
* var_map
/* var map: HashMap[String, String] */;
241 val
* var2
/* : Array[ConfigNode] */;
242 val
* var_
/* var : Array[ConfigNode] */;
243 val
* var3
/* : IndexedIterator[nullable Object] */;
244 val
* var_4
/* var : IndexedIterator[ConfigNode] */;
245 short int var5
/* : Bool */;
246 val
* var6
/* : nullable Object */;
247 val
* var_node
/* var node: ConfigNode */;
248 val
* var7
/* : nullable String */;
249 val
* var9
/* : nullable String */;
250 short int var10
/* : Bool */;
251 short int var11
/* : Bool */;
252 val
* var13
/* : String */;
253 val
* var14
/* : nullable String */;
254 val
* var16
/* : nullable String */;
255 val
* var17
/* : String */;
256 var1
= NEW_core__HashMap(&type_core__HashMap__core__String__core__String
);
258 core___core__HashMap___core__kernel__Object__init(var1
); /* Direct call hash_collection#HashMap#init on <var1:HashMap[String, String]>*/
262 var2
= ini___ini__ConfigTree___leaves(self
);
266 var3
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
271 var5
= ((short int(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_4
); /* is_ok on <var_4:IndexedIterator[ConfigNode]>*/
278 var6
= ((val
*(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_4
); /* item on <var_4:IndexedIterator[ConfigNode]>*/
282 { /* Inline ini#ConfigNode#value (var_node) on <var_node:ConfigNode> */
283 var9
= var_node
->attrs
[COLOR_ini__ConfigNode___value
].val
; /* _value on <var_node:ConfigNode> */
289 var10
= 1; /* is null */
291 var10
= 0; /* arg is null but recv is not */
294 var11
= ((short int(*)(val
* self
, val
* p0
))(var7
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var7
, ((val
*)NULL
)); /* == on <var7:nullable String>*/
302 var13
= ini___ini__ConfigNode___key(var_node
);
305 { /* Inline ini#ConfigNode#value (var_node) on <var_node:ConfigNode> */
306 var16
= var_node
->attrs
[COLOR_ini__ConfigNode___value
].val
; /* _value on <var_node:ConfigNode> */
312 PRINT_ERROR("Runtime error: %s", "Receiver is null");
313 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 116);
316 var17
= core___core__String___Object__to_s(var14
);
319 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var_map
, var13
, var17
); /* Direct call hash_collection#HashMap#[]= on <var_map:HashMap[String, String]>*/
321 BREAK_label12
: (void)0;
323 ((void(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_4
); /* next on <var_4:IndexedIterator[ConfigNode]>*/
326 BREAK_label
: (void)0;
328 ((void(*)(val
* self
))((((long)var_4
&3)?class_info
[((long)var_4
&3)]:var_4
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_4
); /* finish on <var_4:IndexedIterator[ConfigNode]>*/
335 /* method ini#ConfigTree#to_s for (self: ConfigTree): String */
336 val
* ini___ini__ConfigTree___core__abstract_text__Object__to_s(val
* self
) {
337 val
* var
/* : String */;
338 val
* var1
/* : Map[String, String] */;
340 val
* var2
/* : String */;
341 char* var3
/* : NativeString */;
342 val
* var4
/* : String */;
343 static val
* varonce5
;
344 val
* var6
/* : String */;
345 char* var7
/* : NativeString */;
346 val
* var8
/* : String */;
347 val
* var9
/* : String */;
349 var1
= ini___ini__ConfigTree___to_map(self
);
351 if (likely(varonce
!=NULL
)) {
355 var4
= core__flat___NativeString___to_s_full(var3
, 2l, 2l);
359 if (likely(varonce5
!=NULL
)) {
363 var8
= core__flat___NativeString___to_s_full(var7
, 1l, 1l);
368 var9
= core__flat___Map___join(var1
, var2
, var6
);
375 /* method ini#ConfigTree#write_to for (self: ConfigTree, Writer) */
376 void ini___ini__ConfigTree___core__stream__Writable__write_to(val
* self
, val
* p0
) {
377 val
* var_stream
/* var stream: Writer */;
378 val
* var
/* : Array[ConfigNode] */;
379 val
* var_
/* var : Array[ConfigNode] */;
380 val
* var1
/* : IndexedIterator[nullable Object] */;
381 val
* var_2
/* var : IndexedIterator[ConfigNode] */;
382 short int var3
/* : Bool */;
383 val
* var4
/* : nullable Object */;
384 val
* var_node
/* var node: ConfigNode */;
385 val
* var5
/* : nullable String */;
386 val
* var7
/* : nullable String */;
387 short int var8
/* : Bool */;
388 short int var9
/* : Bool */;
389 val
* var11
/* : NativeArray[String] */;
391 static val
* varonce12
;
392 val
* var13
/* : String */;
393 char* var14
/* : NativeString */;
394 val
* var15
/* : String */;
395 static val
* varonce16
;
396 val
* var17
/* : String */;
397 char* var18
/* : NativeString */;
398 val
* var19
/* : String */;
399 val
* var20
/* : String */;
400 val
* var21
/* : nullable String */;
401 val
* var23
/* : nullable String */;
402 val
* var24
/* : String */;
403 val
* var25
/* : String */;
406 var
= ini___ini__ConfigTree___leaves(self
);
410 var1
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
415 var3
= ((short int(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_2
); /* is_ok on <var_2:IndexedIterator[ConfigNode]>*/
422 var4
= ((val
*(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_2
); /* item on <var_2:IndexedIterator[ConfigNode]>*/
426 { /* Inline ini#ConfigNode#value (var_node) on <var_node:ConfigNode> */
427 var7
= var_node
->attrs
[COLOR_ini__ConfigNode___value
].val
; /* _value on <var_node:ConfigNode> */
433 var8
= 1; /* is null */
435 var8
= 0; /* arg is null but recv is not */
438 var9
= ((short int(*)(val
* self
, val
* p0
))(var5
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var5
, ((val
*)NULL
)); /* == on <var5:nullable String>*/
445 if (unlikely(varonce
==NULL
)) {
446 var11
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
447 if (likely(varonce12
!=NULL
)) {
451 var15
= core__flat___NativeString___to_s_full(var14
, 1l, 1l);
455 ((struct instance_core__NativeArray
*)var11
)->values
[1]=var13
;
456 if (likely(varonce16
!=NULL
)) {
460 var19
= core__flat___NativeString___to_s_full(var18
, 1l, 1l);
464 ((struct instance_core__NativeArray
*)var11
)->values
[3]=var17
;
470 var20
= ini___ini__ConfigNode___key(var_node
);
472 ((struct instance_core__NativeArray
*)var11
)->values
[0]=var20
;
474 { /* Inline ini#ConfigNode#value (var_node) on <var_node:ConfigNode> */
475 var23
= var_node
->attrs
[COLOR_ini__ConfigNode___value
].val
; /* _value on <var_node:ConfigNode> */
481 PRINT_ERROR("Runtime error: %s", "Receiver is null");
482 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 126);
485 var24
= core___core__String___Object__to_s(var21
);
487 ((struct instance_core__NativeArray
*)var11
)->values
[2]=var24
;
489 var25
= ((val
*(*)(val
* self
))(var11
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var11
); /* native_to_s on <var11:NativeArray[String]>*/
493 core___core__FileWriter___core__stream__Writer__write(var_stream
, var25
); /* Direct call file#FileWriter#write on <var_stream:Writer>*/
495 BREAK_label10
: (void)0;
497 ((void(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_2
); /* next on <var_2:IndexedIterator[ConfigNode]>*/
500 BREAK_label
: (void)0;
502 ((void(*)(val
* self
))((((long)var_2
&3)?class_info
[((long)var_2
&3)]:var_2
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_2
); /* finish on <var_2:IndexedIterator[ConfigNode]>*/
506 /* method ini#ConfigTree#load for (self: ConfigTree) */
507 void ini___ini__ConfigTree___load(val
* self
) {
508 val
* var
/* : Array[ConfigNode] */;
509 val
* var2
/* : Array[ConfigNode] */;
510 val
* var3
/* : FileReader */;
511 val
* var4
/* : String */;
512 val
* var6
/* : String */;
513 val
* var_stream
/* var stream: FileReader */;
514 val
* var_path
/* var path: nullable String */;
515 long var_line_number
/* var line_number: Int */;
516 short int var7
/* : Bool */;
517 short int var8
/* : Bool */;
518 val
* var9
/* : String */;
519 val
* var_line
/* var line: String */;
520 long var10
/* : Int */;
521 short int var12
/* : Bool */;
524 const char* var_class_name
;
525 long var13
/* : Int */;
526 short int var14
/* : Bool */;
528 val
* var15
/* : String */;
529 char* var16
/* : NativeString */;
530 val
* var17
/* : String */;
531 short int var18
/* : Bool */;
532 static val
* varonce19
;
533 val
* var20
/* : String */;
534 char* var21
/* : NativeString */;
535 val
* var22
/* : String */;
536 short int var23
/* : Bool */;
537 val
* var24
/* : Text */;
538 long var25
/* : Int */;
539 long var26
/* : Int */;
540 short int var28
/* : Bool */;
543 const char* var_class_name31
;
544 long var32
/* : Int */;
545 val
* var33
/* : Text */;
546 val
* var_key
/* var key: String */;
547 static val
* varonce34
;
548 val
* var35
/* : String */;
549 char* var36
/* : NativeString */;
550 val
* var37
/* : String */;
551 val
* var38
/* : Array[String] */;
552 val
* var_parts
/* var parts: Array[String] */;
553 long var39
/* : Int */;
554 long var41
/* : Int */;
555 short int var42
/* : Bool */;
556 short int var44
/* : Bool */;
559 const char* var_class_name47
;
560 short int var48
/* : Bool */;
561 val
* var49
/* : Sys */;
562 val
* var51
/* : NativeArray[String] */;
563 static val
* varonce50
;
564 static val
* varonce52
;
565 val
* var53
/* : String */;
566 char* var54
/* : NativeString */;
567 val
* var55
/* : String */;
568 val
* var56
/* : String */;
569 val
* var57
/* : String */;
570 val
* var58
/* : nullable Object */;
571 val
* var59
/* : Text */;
572 val
* var_key60
/* var key: String */;
573 val
* var61
/* : nullable Object */;
574 val
* var62
/* : Text */;
575 val
* var_val
/* var val: String */;
576 short int var63
/* : Bool */;
577 short int var64
/* : Bool */;
578 val
* var_other
/* var other: nullable Object */;
579 short int var66
/* : Bool */;
580 short int var67
/* : Bool */;
581 val
* var69
/* : NativeArray[String] */;
582 static val
* varonce68
;
583 static val
* varonce70
;
584 val
* var71
/* : String */;
585 char* var72
/* : NativeString */;
586 val
* var73
/* : String */;
587 val
* var74
/* : String */;
588 static val
* varonce75
;
589 val
* var76
/* : String */;
590 char* var77
/* : NativeString */;
591 val
* var78
/* : String */;
592 short int var79
/* : Bool */;
594 { /* Inline ini#ConfigTree#roots (self) on <self:ConfigTree> */
595 var2
= self
->attrs
[COLOR_ini__ConfigTree___roots
].val
; /* _roots on <self:ConfigTree> */
596 if (unlikely(var2
== NULL
)) {
597 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _roots");
598 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 231);
606 core___core__AbstractArray___core__abstract_collection__RemovableCollection__clear(var
); /* Direct call array#AbstractArray#clear on <var:Array[ConfigNode]>*/
608 var3
= NEW_core__FileReader(&type_core__FileReader
);
610 { /* Inline ini#ConfigTree#ini_file (self) on <self:ConfigTree> */
611 var6
= self
->attrs
[COLOR_ini__ConfigTree___ini_file
].val
; /* _ini_file on <self:ConfigTree> */
612 if (unlikely(var6
== NULL
)) {
613 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ini_file");
614 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 37);
622 core___core__FileReader___open(var3
, var4
); /* Direct call file#FileReader#open on <var3:FileReader>*/
625 var_path
= ((val
*)NULL
);
626 var_line_number
= 0l;
629 var7
= core___core__BufferedReader___Reader__eof(var_stream
);
634 var9
= core___core__Reader___read_line(var_stream
);
638 { /* Inline kernel#Int#+ (var_line_number,1l) on <var_line_number:Int> */
639 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
640 /* <1l:Int> isa OTHER */
641 var12
= 1; /* easy <1l:Int> isa OTHER*/
642 if (unlikely(!var12
)) {
643 var_class_name
= type_core__Int
.name
;
644 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
645 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
648 var13
= var_line_number
+ 1l;
654 var_line_number
= var10
;
656 var14
= ((short int(*)(val
* self
))(var_line
->class->vft
[COLOR_core__abstract_text__Text__is_empty
]))(var_line
); /* is_empty on <var_line:String>*/
661 if (likely(varonce
!=NULL
)) {
665 var17
= core__flat___NativeString___to_s_full(var16
, 1l, 1l);
670 var18
= core___core__Text___has_prefix(var_line
, var15
);
675 if (likely(varonce19
!=NULL
)) {
679 var22
= core__flat___NativeString___to_s_full(var21
, 1l, 1l);
684 var23
= core___core__Text___has_prefix(var_line
, var20
);
688 var24
= core___core__Text___trim(var_line
);
692 var25
= ((long(*)(val
* self
))(var_line
->class->vft
[COLOR_core__abstract_text__Text__length
]))(var_line
); /* length on <var_line:String>*/
695 { /* Inline kernel#Int#- (var25,2l) on <var25:Int> */
696 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
697 /* <2l:Int> isa OTHER */
698 var28
= 1; /* easy <2l:Int> isa OTHER*/
699 if (unlikely(!var28
)) {
700 var_class_name31
= type_core__Int
.name
;
701 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31
);
702 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 734);
712 var33
= ((val
*(*)(val
* self
, long p0
, long p1
))(var_line
->class->vft
[COLOR_core__abstract_text__Text__substring
]))(var_line
, 1l, var26
); /* substring on <var_line:String>*/
717 ini___ini__ConfigTree___set_node(self
, var_path
, ((val
*)NULL
)); /* Direct call ini#ConfigTree#set_node on <self:ConfigTree>*/
720 if (likely(varonce34
!=NULL
)) {
724 var37
= core__flat___NativeString___to_s_full(var36
, 1l, 1l);
729 var38
= core__string_search___Text___split(var_line
, var35
);
733 { /* Inline array#AbstractArrayRead#length (var_parts) on <var_parts:Array[String]> */
734 var41
= var_parts
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_parts:Array[String]> */
740 { /* Inline kernel#Int#> (var39,1l) on <var39:Int> */
741 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
742 /* <1l:Int> isa OTHER */
743 var44
= 1; /* easy <1l:Int> isa OTHER*/
744 if (unlikely(!var44
)) {
745 var_class_name47
= type_core__Int
.name
;
746 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name47
);
747 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 730);
756 if (unlikely(!var42
)) {
758 if (unlikely(varonce50
==NULL
)) {
759 var51
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
760 if (likely(varonce52
!=NULL
)) {
763 var54
= "Error: malformed ini at line ";
764 var55
= core__flat___NativeString___to_s_full(var54
, 29l, 29l);
768 ((struct instance_core__NativeArray
*)var51
)->values
[0]=var53
;
773 var56
= core__flat___Int___core__abstract_text__Object__to_s(var_line_number
);
774 ((struct instance_core__NativeArray
*)var51
)->values
[1]=var56
;
776 var57
= ((val
*(*)(val
* self
))(var51
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var51
); /* native_to_s on <var51:NativeArray[String]>*/
780 core__file___Sys___print(var49
, var57
); /* Direct call file#Sys#print on <var49:Sys>*/
782 PRINT_ERROR("Runtime error: %s", "Assert failed");
783 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 212);
787 var58
= core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_parts
, 0l);
790 var59
= core___core__Text___trim(var58
);
794 var61
= core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_parts
, 1l);
797 var62
= core___core__Text___trim(var61
);
800 if (var_path
== NULL
) {
801 var63
= 0; /* is null */
803 var63
= 1; /* arg is null and recv is not */
806 { /* Inline kernel#Object#!= (var_path,((val*)NULL)) on <var_path:nullable String> */
807 var_other
= ((val
*)NULL
);
809 var66
= ((short int(*)(val
* self
, val
* p0
))(var_path
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_path
, var_other
); /* == on <var_path:nullable String(String)>*/
819 if (unlikely(varonce68
==NULL
)) {
820 var69
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
821 if (likely(varonce70
!=NULL
)) {
825 var73
= core__flat___NativeString___to_s_full(var72
, 1l, 1l);
829 ((struct instance_core__NativeArray
*)var69
)->values
[1]=var71
;
834 ((struct instance_core__NativeArray
*)var69
)->values
[0]=var_path
;
835 ((struct instance_core__NativeArray
*)var69
)->values
[2]=var_key60
;
837 var74
= ((val
*(*)(val
* self
))(var69
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var69
); /* native_to_s on <var69:NativeArray[String]>*/
843 if (likely(varonce75
!=NULL
)) {
847 var78
= core__flat___NativeString___to_s_full(var77
, 2l, 2l);
852 var79
= core___core__Text___has_suffix(var_key60
, var76
);
856 ini___ini__ConfigTree___set_array(self
, var_key60
, var_val
); /* Direct call ini#ConfigTree#set_array on <self:ConfigTree>*/
860 ini___ini__ConfigTree___set_node(self
, var_key60
, var_val
); /* Direct call ini#ConfigTree#set_node on <self:ConfigTree>*/
869 BREAK_label
: (void)0;
871 BREAK_label80
: (void)0;
873 core___core__FileReader___core__stream__Stream__close(var_stream
); /* Direct call file#FileReader#close on <var_stream:FileReader>*/
877 /* method ini#ConfigTree#roots for (self: ConfigTree): Array[ConfigNode] */
878 val
* ini___ini__ConfigTree___roots(val
* self
) {
879 val
* var
/* : Array[ConfigNode] */;
880 val
* var1
/* : Array[ConfigNode] */;
881 var1
= self
->attrs
[COLOR_ini__ConfigTree___roots
].val
; /* _roots on <self:ConfigTree> */
882 if (unlikely(var1
== NULL
)) {
883 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _roots");
884 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 231);
891 /* method ini#ConfigTree#set_array for (self: ConfigTree, String, nullable String) */
892 void ini___ini__ConfigTree___set_array(val
* self
, val
* p0
, val
* p1
) {
893 val
* var_key
/* var key: String */;
894 val
* var_value
/* var value: nullable String */;
895 long var
/* : Int */;
896 long var1
/* : Int */;
897 short int var3
/* : Bool */;
900 const char* var_class_name
;
901 long var4
/* : Int */;
902 val
* var5
/* : Text */;
903 long var_len
/* var len: Int */;
904 short int var6
/* : Bool */;
905 val
* var7
/* : nullable ConfigNode */;
906 val
* var8
/* : HashMap[String, ConfigNode] */;
907 val
* var10
/* : HashMap[String, ConfigNode] */;
908 long var11
/* : Int */;
909 val
* var12
/* : NativeArray[String] */;
911 static val
* varonce13
;
912 val
* var14
/* : String */;
913 char* var15
/* : NativeString */;
914 val
* var16
/* : String */;
915 val
* var17
/* : String */;
916 val
* var18
/* : String */;
920 var
= ((long(*)(val
* self
))(var_key
->class->vft
[COLOR_core__abstract_text__Text__length
]))(var_key
); /* length on <var_key:String>*/
923 { /* Inline kernel#Int#- (var,2l) on <var:Int> */
924 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
925 /* <2l:Int> isa OTHER */
926 var3
= 1; /* easy <2l:Int> isa OTHER*/
927 if (unlikely(!var3
)) {
928 var_class_name
= type_core__Int
.name
;
929 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
930 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 734);
940 var5
= ((val
*(*)(val
* self
, long p0
, long p1
))(var_key
->class->vft
[COLOR_core__abstract_text__Text__substring
]))(var_key
, 0l, var1
); /* substring on <var_key:String>*/
945 var6
= ini___ini__ConfigTree___has_key(self
, var_key
);
949 var7
= ini___ini__ConfigTree___get_node(self
, var_key
);
952 PRINT_ERROR("Runtime error: %s", "Receiver is null");
953 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 238);
956 { /* Inline ini#ConfigNode#children (var7) on <var7:nullable ConfigNode> */
957 if (unlikely(var7
== NULL
)) {
958 PRINT_ERROR("Runtime error: %s", "Receiver is null");
959 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 304);
962 var10
= var7
->attrs
[COLOR_ini__ConfigNode___children
].val
; /* _children on <var7:nullable ConfigNode> */
963 if (unlikely(var10
== NULL
)) {
964 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _children");
965 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 304);
973 var11
= core___core__HashMap___core__abstract_collection__MapRead__length(var8
);
978 if (unlikely(varonce
==NULL
)) {
979 var12
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
980 if (likely(varonce13
!=NULL
)) {
984 var16
= core__flat___NativeString___to_s_full(var15
, 1l, 1l);
988 ((struct instance_core__NativeArray
*)var12
)->values
[1]=var14
;
993 ((struct instance_core__NativeArray
*)var12
)->values
[0]=var_key
;
995 var17
= core__flat___Int___core__abstract_text__Object__to_s(var_len
);
997 ((struct instance_core__NativeArray
*)var12
)->values
[2]=var17
;
999 var18
= ((val
*(*)(val
* self
))(var12
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var12
); /* native_to_s on <var12:NativeArray[String]>*/
1003 ini___ini__ConfigTree___set_node(self
, var18
, var_value
); /* Direct call ini#ConfigTree#set_node on <self:ConfigTree>*/
1007 /* method ini#ConfigTree#set_node for (self: ConfigTree, String, nullable String) */
1008 void ini___ini__ConfigTree___set_node(val
* self
, val
* p0
, val
* p1
) {
1009 val
* var_key
/* var key: String */;
1010 val
* var_value
/* var value: nullable String */;
1011 static val
* varonce
;
1012 val
* var
/* : String */;
1013 char* var1
/* : NativeString */;
1014 val
* var2
/* : String */;
1015 val
* var3
/* : Array[String] */;
1016 val
* var4
/* : Array[nullable Object] */;
1017 val
* var_parts
/* var parts: Array[String] */;
1018 val
* var5
/* : nullable Object */;
1019 val
* var_k
/* var k: String */;
1020 val
* var6
/* : nullable ConfigNode */;
1021 val
* var_root
/* var root: nullable ConfigNode */;
1022 short int var7
/* : Bool */;
1023 short int var8
/* : Bool */;
1024 val
* var_other
/* var other: nullable Object */;
1025 short int var10
/* : Bool */;
1026 short int var12
/* : Bool */;
1027 val
* var13
/* : ConfigNode */;
1028 short int var14
/* : Bool */;
1029 val
* var16
/* : Array[ConfigNode] */;
1030 val
* var18
/* : Array[ConfigNode] */;
1031 short int var19
/* : Bool */;
1032 short int var20
/* : Bool */;
1033 val
* var21
/* : nullable Object */;
1034 val
* var22
/* : nullable ConfigNode */;
1035 val
* var_node
/* var node: nullable ConfigNode */;
1036 short int var23
/* : Bool */;
1037 short int var24
/* : Bool */;
1038 short int var26
/* : Bool */;
1039 short int var28
/* : Bool */;
1040 val
* var29
/* : ConfigNode */;
1041 val
* var31
/* : HashMap[String, ConfigNode] */;
1042 val
* var33
/* : HashMap[String, ConfigNode] */;
1043 val
* var34
/* : String */;
1044 val
* var36
/* : String */;
1045 short int var37
/* : Bool */;
1048 if (likely(varonce
!=NULL
)) {
1052 var2
= core__flat___NativeString___to_s_full(var1
, 1l, 1l);
1057 var3
= core__string_search___Text___split(var_key
, var
);
1060 var4
= core___core__AbstractArrayRead___reversed(var3
);
1064 var5
= core___core__AbstractArray___core__abstract_collection__Sequence__pop(var_parts
);
1068 var6
= ini___ini__ConfigTree___get_root(self
, var_k
);
1071 if (var_root
== NULL
) {
1072 var7
= 1; /* is null */
1074 var7
= 0; /* arg is null but recv is not */
1077 { /* Inline kernel#Object#== (var_root,((val*)NULL)) on <var_root:nullable ConfigNode> */
1078 var_other
= ((val
*)NULL
);
1080 { /* Inline kernel#Object#is_same_instance (var_root,var_other) on <var_root:nullable ConfigNode(ConfigNode)> */
1081 var12
= var_root
== var_other
;
1084 RET_LABEL11
:(void)0;
1094 var13
= NEW_ini__ConfigNode(&type_ini__ConfigNode
);
1096 ((void(*)(val
* self
, val
* p0
))(var13
->class->vft
[COLOR_ini__ConfigNode__name_61d
]))(var13
, var_k
); /* name= on <var13:ConfigNode>*/
1099 ((void(*)(val
* self
))(var13
->class->vft
[COLOR_core__kernel__Object__init
]))(var13
); /* init on <var13:ConfigNode>*/
1103 var14
= core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_parts
);
1107 { /* Inline ini#ConfigNode#value= (var_root,var_value) on <var_root:nullable ConfigNode(ConfigNode)> */
1108 var_root
->attrs
[COLOR_ini__ConfigNode___value
].val
= var_value
; /* _value on <var_root:nullable ConfigNode(ConfigNode)> */
1109 RET_LABEL15
:(void)0;
1115 { /* Inline ini#ConfigTree#roots (self) on <self:ConfigTree> */
1116 var18
= self
->attrs
[COLOR_ini__ConfigTree___roots
].val
; /* _roots on <self:ConfigTree> */
1117 if (unlikely(var18
== NULL
)) {
1118 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _roots");
1119 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 231);
1123 RET_LABEL17
:(void)0;
1127 core___core__Array___core__abstract_collection__SimpleCollection__add(var16
, var_root
); /* Direct call array#Array#add on <var16:Array[ConfigNode]>*/
1133 var19
= core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_parts
);
1138 var21
= core___core__AbstractArray___core__abstract_collection__Sequence__pop(var_parts
);
1142 var22
= ini___ini__ConfigNode___get_child(var_root
, var_k
);
1145 if (var_node
== NULL
) {
1146 var23
= 1; /* is null */
1148 var23
= 0; /* arg is null but recv is not */
1151 { /* Inline kernel#Object#== (var_node,((val*)NULL)) on <var_node:nullable ConfigNode> */
1152 var_other
= ((val
*)NULL
);
1154 { /* Inline kernel#Object#is_same_instance (var_node,var_other) on <var_node:nullable ConfigNode(ConfigNode)> */
1155 var28
= var_node
== var_other
;
1158 RET_LABEL27
:(void)0;
1163 RET_LABEL25
:(void)0;
1168 var29
= NEW_ini__ConfigNode(&type_ini__ConfigNode
);
1170 ((void(*)(val
* self
, val
* p0
))(var29
->class->vft
[COLOR_ini__ConfigNode__name_61d
]))(var29
, var_k
); /* name= on <var29:ConfigNode>*/
1173 ((void(*)(val
* self
))(var29
->class->vft
[COLOR_core__kernel__Object__init
]))(var29
); /* init on <var29:ConfigNode>*/
1177 { /* Inline ini#ConfigNode#parent= (var_node,var_root) on <var_node:nullable ConfigNode(ConfigNode)> */
1178 var_node
->attrs
[COLOR_ini__ConfigNode___parent
].val
= var_root
; /* _parent on <var_node:nullable ConfigNode(ConfigNode)> */
1179 RET_LABEL30
:(void)0;
1183 { /* Inline ini#ConfigNode#children (var_root) on <var_root:nullable ConfigNode(ConfigNode)> */
1184 var33
= var_root
->attrs
[COLOR_ini__ConfigNode___children
].val
; /* _children on <var_root:nullable ConfigNode(ConfigNode)> */
1185 if (unlikely(var33
== NULL
)) {
1186 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _children");
1187 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 304);
1191 RET_LABEL32
:(void)0;
1195 { /* Inline ini#ConfigNode#name (var_node) on <var_node:nullable ConfigNode(ConfigNode)> */
1196 var36
= var_node
->attrs
[COLOR_ini__ConfigNode___name
].val
; /* _name on <var_node:nullable ConfigNode(ConfigNode)> */
1197 if (unlikely(var36
== NULL
)) {
1198 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1199 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 305);
1203 RET_LABEL35
:(void)0;
1207 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var31
, var34
, var_node
); /* Direct call hash_collection#HashMap#[]= on <var31:HashMap[String, ConfigNode]>*/
1212 var37
= core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_parts
);
1216 { /* Inline ini#ConfigNode#value= (var_node,var_value) on <var_node:nullable ConfigNode(ConfigNode)> */
1217 var_node
->attrs
[COLOR_ini__ConfigNode___value
].val
= var_value
; /* _value on <var_node:nullable ConfigNode(ConfigNode)> */
1218 RET_LABEL38
:(void)0;
1223 var_root
= var_node
;
1228 BREAK_label
: (void)0;
1231 /* method ini#ConfigTree#get_node for (self: ConfigTree, String): nullable ConfigNode */
1232 val
* ini___ini__ConfigTree___get_node(val
* self
, val
* p0
) {
1233 val
* var
/* : nullable ConfigNode */;
1234 val
* var_key
/* var key: String */;
1235 static val
* varonce
;
1236 val
* var1
/* : String */;
1237 char* var2
/* : NativeString */;
1238 val
* var3
/* : String */;
1239 val
* var4
/* : Array[String] */;
1240 val
* var5
/* : Array[nullable Object] */;
1241 val
* var_parts
/* var parts: Array[String] */;
1242 val
* var6
/* : nullable Object */;
1243 val
* var7
/* : nullable ConfigNode */;
1244 val
* var_node
/* var node: nullable ConfigNode */;
1245 short int var8
/* : Bool */;
1246 short int var9
/* : Bool */;
1247 short int var10
/* : Bool */;
1248 val
* var_other
/* var other: nullable Object */;
1249 short int var12
/* : Bool */;
1250 short int var13
/* : Bool */;
1251 short int var_
/* var : Bool */;
1252 short int var14
/* : Bool */;
1253 short int var15
/* : Bool */;
1254 val
* var16
/* : nullable Object */;
1255 val
* var17
/* : nullable ConfigNode */;
1257 if (likely(varonce
!=NULL
)) {
1261 var3
= core__flat___NativeString___to_s_full(var2
, 1l, 1l);
1266 var4
= core__string_search___Text___split(var_key
, var1
);
1269 var5
= core___core__AbstractArrayRead___reversed(var4
);
1273 var6
= core___core__AbstractArray___core__abstract_collection__Sequence__pop(var_parts
);
1276 var7
= ini___ini__ConfigTree___get_root(self
, var6
);
1280 if (var_node
== NULL
) {
1281 var9
= 0; /* is null */
1283 var9
= 1; /* arg is null and recv is not */
1286 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable ConfigNode> */
1287 var_other
= ((val
*)NULL
);
1289 var12
= ((short int(*)(val
* self
, val
* p0
))(var_node
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_node
, var_other
); /* == on <var_node:nullable ConfigNode(ConfigNode)>*/
1294 RET_LABEL11
:(void)0;
1301 var14
= core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_parts
);
1310 var16
= core___core__AbstractArray___core__abstract_collection__Sequence__pop(var_parts
);
1313 var17
= ini___ini__ConfigNode___get_child(var_node
, var16
);
1320 BREAK_label
: (void)0;
1326 /* method ini#ConfigTree#get_root for (self: ConfigTree, String): nullable ConfigNode */
1327 val
* ini___ini__ConfigTree___get_root(val
* self
, val
* p0
) {
1328 val
* var
/* : nullable ConfigNode */;
1329 val
* var_name
/* var name: String */;
1330 val
* var1
/* : Array[ConfigNode] */;
1331 val
* var3
/* : Array[ConfigNode] */;
1332 val
* var_
/* var : Array[ConfigNode] */;
1333 val
* var4
/* : IndexedIterator[nullable Object] */;
1334 val
* var_5
/* var : IndexedIterator[ConfigNode] */;
1335 short int var6
/* : Bool */;
1336 val
* var7
/* : nullable Object */;
1337 val
* var_root
/* var root: ConfigNode */;
1338 val
* var8
/* : String */;
1339 val
* var10
/* : String */;
1340 short int var11
/* : Bool */;
1343 { /* Inline ini#ConfigTree#roots (self) on <self:ConfigTree> */
1344 var3
= self
->attrs
[COLOR_ini__ConfigTree___roots
].val
; /* _roots on <self:ConfigTree> */
1345 if (unlikely(var3
== NULL
)) {
1346 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _roots");
1347 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 231);
1356 var4
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
1361 var6
= ((short int(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_5
); /* is_ok on <var_5:IndexedIterator[ConfigNode]>*/
1368 var7
= ((val
*(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_5
); /* item on <var_5:IndexedIterator[ConfigNode]>*/
1372 { /* Inline ini#ConfigNode#name (var_root) on <var_root:ConfigNode> */
1373 var10
= var_root
->attrs
[COLOR_ini__ConfigNode___name
].val
; /* _name on <var_root:ConfigNode> */
1374 if (unlikely(var10
== NULL
)) {
1375 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1376 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 305);
1384 var11
= ((short int(*)(val
* self
, val
* p0
))(var8
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var8
, var_name
); /* == on <var8:String>*/
1392 ((void(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_5
); /* next on <var_5:IndexedIterator[ConfigNode]>*/
1395 BREAK_label
: (void)0;
1397 ((void(*)(val
* self
))((((long)var_5
&3)?class_info
[((long)var_5
&3)]:var_5
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_5
); /* finish on <var_5:IndexedIterator[ConfigNode]>*/
1404 /* method ini#ConfigTree#leaves for (self: ConfigTree): Array[ConfigNode] */
1405 val
* ini___ini__ConfigTree___leaves(val
* self
) {
1406 val
* var
/* : Array[ConfigNode] */;
1407 val
* var1
/* : Array[ConfigNode] */;
1408 val
* var_res
/* var res: Array[ConfigNode] */;
1409 val
* var2
/* : Array[ConfigNode] */;
1410 val
* var_todo
/* var todo: Array[ConfigNode] */;
1411 val
* var3
/* : Array[ConfigNode] */;
1412 val
* var5
/* : Array[ConfigNode] */;
1413 short int var6
/* : Bool */;
1414 short int var7
/* : Bool */;
1415 val
* var8
/* : nullable Object */;
1416 val
* var_node
/* var node: ConfigNode */;
1417 val
* var9
/* : HashMap[String, ConfigNode] */;
1418 val
* var11
/* : HashMap[String, ConfigNode] */;
1419 short int var12
/* : Bool */;
1420 val
* var13
/* : HashMap[String, ConfigNode] */;
1421 val
* var15
/* : HashMap[String, ConfigNode] */;
1422 val
* var16
/* : RemovableCollection[nullable Object] */;
1423 var1
= NEW_core__Array(&type_core__Array__ini__ConfigNode
);
1425 core___core__Array___core__kernel__Object__init(var1
); /* Direct call array#Array#init on <var1:Array[ConfigNode]>*/
1428 var2
= NEW_core__Array(&type_core__Array__ini__ConfigNode
);
1430 core___core__Array___core__kernel__Object__init(var2
); /* Direct call array#Array#init on <var2:Array[ConfigNode]>*/
1434 { /* Inline ini#ConfigTree#roots (self) on <self:ConfigTree> */
1435 var5
= self
->attrs
[COLOR_ini__ConfigTree___roots
].val
; /* _roots on <self:ConfigTree> */
1436 if (unlikely(var5
== NULL
)) {
1437 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _roots");
1438 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 231);
1446 core___core__Array___core__abstract_collection__SimpleCollection__add_all(var_todo
, var3
); /* Direct call array#Array#add_all on <var_todo:Array[ConfigNode]>*/
1450 var6
= core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_todo
);
1455 var8
= core___core__AbstractArray___core__abstract_collection__Sequence__pop(var_todo
);
1459 { /* Inline ini#ConfigNode#children (var_node) on <var_node:ConfigNode> */
1460 var11
= var_node
->attrs
[COLOR_ini__ConfigNode___children
].val
; /* _children on <var_node:ConfigNode> */
1461 if (unlikely(var11
== NULL
)) {
1462 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _children");
1463 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 304);
1467 RET_LABEL10
:(void)0;
1471 var12
= core___core__HashMap___core__abstract_collection__MapRead__is_empty(var9
);
1475 core___core__Array___core__abstract_collection__SimpleCollection__add(var_res
, var_node
); /* Direct call array#Array#add on <var_res:Array[ConfigNode]>*/
1479 { /* Inline ini#ConfigNode#children (var_node) on <var_node:ConfigNode> */
1480 var15
= var_node
->attrs
[COLOR_ini__ConfigNode___children
].val
; /* _children on <var_node:ConfigNode> */
1481 if (unlikely(var15
== NULL
)) {
1482 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _children");
1483 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 304);
1487 RET_LABEL14
:(void)0;
1491 var16
= core___core__HashMap___core__abstract_collection__MapRead__values(var13
);
1494 core___core__Array___core__abstract_collection__SimpleCollection__add_all(var_todo
, var16
); /* Direct call array#Array#add_all on <var_todo:Array[ConfigNode]>*/
1501 BREAK_label
: (void)0;
1507 /* method ini#ConfigNode#parent for (self: ConfigNode): nullable ConfigNode */
1508 val
* ini___ini__ConfigNode___parent(val
* self
) {
1509 val
* var
/* : nullable ConfigNode */;
1510 val
* var1
/* : nullable ConfigNode */;
1511 var1
= self
->attrs
[COLOR_ini__ConfigNode___parent
].val
; /* _parent on <self:ConfigNode> */
1516 /* method ini#ConfigNode#parent= for (self: ConfigNode, nullable ConfigNode) */
1517 void ini___ini__ConfigNode___parent_61d(val
* self
, val
* p0
) {
1518 self
->attrs
[COLOR_ini__ConfigNode___parent
].val
= p0
; /* _parent on <self:ConfigNode> */
1521 /* method ini#ConfigNode#children for (self: ConfigNode): HashMap[String, ConfigNode] */
1522 val
* ini___ini__ConfigNode___children(val
* self
) {
1523 val
* var
/* : HashMap[String, ConfigNode] */;
1524 val
* var1
/* : HashMap[String, ConfigNode] */;
1525 var1
= self
->attrs
[COLOR_ini__ConfigNode___children
].val
; /* _children on <self:ConfigNode> */
1526 if (unlikely(var1
== NULL
)) {
1527 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _children");
1528 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 304);
1535 /* method ini#ConfigNode#name for (self: ConfigNode): String */
1536 val
* ini___ini__ConfigNode___name(val
* self
) {
1537 val
* var
/* : String */;
1538 val
* var1
/* : String */;
1539 var1
= self
->attrs
[COLOR_ini__ConfigNode___name
].val
; /* _name on <self:ConfigNode> */
1540 if (unlikely(var1
== NULL
)) {
1541 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1542 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 305);
1549 /* method ini#ConfigNode#name= for (self: ConfigNode, String) */
1550 void ini___ini__ConfigNode___name_61d(val
* self
, val
* p0
) {
1551 self
->attrs
[COLOR_ini__ConfigNode___name
].val
= p0
; /* _name on <self:ConfigNode> */
1554 /* method ini#ConfigNode#value for (self: ConfigNode): nullable String */
1555 val
* ini___ini__ConfigNode___value(val
* self
) {
1556 val
* var
/* : nullable String */;
1557 val
* var1
/* : nullable String */;
1558 var1
= self
->attrs
[COLOR_ini__ConfigNode___value
].val
; /* _value on <self:ConfigNode> */
1563 /* method ini#ConfigNode#value= for (self: ConfigNode, nullable String) */
1564 void ini___ini__ConfigNode___value_61d(val
* self
, val
* p0
) {
1565 self
->attrs
[COLOR_ini__ConfigNode___value
].val
= p0
; /* _value on <self:ConfigNode> */
1568 /* method ini#ConfigNode#key for (self: ConfigNode): String */
1569 val
* ini___ini__ConfigNode___key(val
* self
) {
1570 val
* var
/* : String */;
1571 val
* var1
/* : nullable ConfigNode */;
1572 val
* var3
/* : nullable ConfigNode */;
1573 short int var4
/* : Bool */;
1574 short int var5
/* : Bool */;
1575 val
* var_other
/* var other: nullable Object */;
1576 short int var7
/* : Bool */;
1577 short int var9
/* : Bool */;
1578 val
* var10
/* : String */;
1579 val
* var12
/* : String */;
1580 val
* var13
/* : NativeArray[String] */;
1581 static val
* varonce
;
1582 static val
* varonce14
;
1583 val
* var15
/* : String */;
1584 char* var16
/* : NativeString */;
1585 val
* var17
/* : String */;
1586 val
* var18
/* : nullable ConfigNode */;
1587 val
* var20
/* : nullable ConfigNode */;
1588 val
* var21
/* : String */;
1589 val
* var22
/* : String */;
1590 val
* var24
/* : String */;
1591 val
* var25
/* : String */;
1593 { /* Inline ini#ConfigNode#parent (self) on <self:ConfigNode> */
1594 var3
= self
->attrs
[COLOR_ini__ConfigNode___parent
].val
; /* _parent on <self:ConfigNode> */
1600 var4
= 1; /* is null */
1602 var4
= 0; /* arg is null but recv is not */
1605 { /* Inline kernel#Object#== (var1,((val*)NULL)) on <var1:nullable ConfigNode> */
1606 var_other
= ((val
*)NULL
);
1608 { /* Inline kernel#Object#is_same_instance (var1,var_other) on <var1:nullable ConfigNode(ConfigNode)> */
1609 var9
= var1
== var_other
;
1623 { /* Inline ini#ConfigNode#name (self) on <self:ConfigNode> */
1624 var12
= self
->attrs
[COLOR_ini__ConfigNode___name
].val
; /* _name on <self:ConfigNode> */
1625 if (unlikely(var12
== NULL
)) {
1626 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1627 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 305);
1631 RET_LABEL11
:(void)0;
1638 if (unlikely(varonce
==NULL
)) {
1639 var13
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
1640 if (likely(varonce14
!=NULL
)) {
1644 var17
= core__flat___NativeString___to_s_full(var16
, 1l, 1l);
1648 ((struct instance_core__NativeArray
*)var13
)->values
[1]=var15
;
1654 { /* Inline ini#ConfigNode#parent (self) on <self:ConfigNode> */
1655 var20
= self
->attrs
[COLOR_ini__ConfigNode___parent
].val
; /* _parent on <self:ConfigNode> */
1657 RET_LABEL19
:(void)0;
1660 if (var18
== NULL
) {
1661 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1662 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 312);
1665 var21
= ini___ini__ConfigNode___key(var18
);
1667 ((struct instance_core__NativeArray
*)var13
)->values
[0]=var21
;
1669 { /* Inline ini#ConfigNode#name (self) on <self:ConfigNode> */
1670 var24
= self
->attrs
[COLOR_ini__ConfigNode___name
].val
; /* _name on <self:ConfigNode> */
1671 if (unlikely(var24
== NULL
)) {
1672 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1673 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 305);
1677 RET_LABEL23
:(void)0;
1680 ((struct instance_core__NativeArray
*)var13
)->values
[2]=var22
;
1682 var25
= ((val
*(*)(val
* self
))(var13
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var13
); /* native_to_s on <var13:NativeArray[String]>*/
1690 /* method ini#ConfigNode#get_child for (self: ConfigNode, String): nullable ConfigNode */
1691 val
* ini___ini__ConfigNode___get_child(val
* self
, val
* p0
) {
1692 val
* var
/* : nullable ConfigNode */;
1693 val
* var_name
/* var name: String */;
1694 val
* var1
/* : HashMap[String, ConfigNode] */;
1695 val
* var3
/* : HashMap[String, ConfigNode] */;
1696 short int var4
/* : Bool */;
1697 val
* var5
/* : HashMap[String, ConfigNode] */;
1698 val
* var7
/* : HashMap[String, ConfigNode] */;
1699 val
* var8
/* : nullable Object */;
1702 { /* Inline ini#ConfigNode#children (self) on <self:ConfigNode> */
1703 var3
= self
->attrs
[COLOR_ini__ConfigNode___children
].val
; /* _children on <self:ConfigNode> */
1704 if (unlikely(var3
== NULL
)) {
1705 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _children");
1706 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 304);
1714 var4
= core___core__HashMap___core__abstract_collection__MapRead__has_key(var1
, var_name
);
1718 { /* Inline ini#ConfigNode#children (self) on <self:ConfigNode> */
1719 var7
= self
->attrs
[COLOR_ini__ConfigNode___children
].val
; /* _children on <self:ConfigNode> */
1720 if (unlikely(var7
== NULL
)) {
1721 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _children");
1722 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 304);
1730 var8
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var5
, var_name
);
1741 /* method ini#ConfigNode#init for (self: ConfigNode) */
1742 void ini___ini__ConfigNode___core__kernel__Object__init(val
* self
) {
1744 ((void(*)(val
* self
))(self
->class->vft
[COLOR_ini___ini__ConfigNode___core__kernel__Object__init
]))(self
); /* init on <self:ConfigNode>*/