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 if(catchStack
.cursor
>= 0){
9 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
11 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ini_file");
12 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 37);
19 /* method ini$ConfigTree$ini_file= for (self: ConfigTree, String) */
20 void ini___ini__ConfigTree___ini_file_61d(val
* self
, val
* p0
) {
21 self
->attrs
[COLOR_ini__ConfigTree___ini_file
].val
= p0
; /* _ini_file on <self:ConfigTree> */
24 /* method ini$ConfigTree$init for (self: ConfigTree) */
25 void ini___ini__ConfigTree___core__kernel__Object__init(val
* self
) {
26 val
* var
/* : String */;
27 val
* var2
/* : String */;
28 short int var3
/* : Bool */;
30 ((void(*)(val
* self
))(self
->class->vft
[COLOR_ini___ini__ConfigTree___core__kernel__Object__init
]))(self
); /* init on <self:ConfigTree>*/
33 { /* Inline ini$ConfigTree$ini_file (self) on <self:ConfigTree> */
34 var2
= self
->attrs
[COLOR_ini__ConfigTree___ini_file
].val
; /* _ini_file on <self:ConfigTree> */
35 if (unlikely(var2
== NULL
)) {
36 if(catchStack
.cursor
>= 0){
37 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
39 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ini_file");
40 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 37);
48 var3
= core__file___Text___file_exists(var
);
52 ini___ini__ConfigTree___load(self
); /* Direct call ini$ConfigTree$load on <self:ConfigTree>*/
58 /* method ini$ConfigTree$[] for (self: ConfigTree, String): nullable String */
59 val
* ini___ini__ConfigTree____91d_93d(val
* self
, val
* p0
) {
60 val
* var
/* : nullable String */;
61 val
* var_key
/* var key: String */;
62 val
* var1
/* : nullable ConfigNode */;
63 val
* var_node
/* var node: nullable ConfigNode */;
64 short int var2
/* : Bool */;
65 short int var3
/* : Bool */;
66 val
* var_other
/* var other: nullable Object */;
67 short int var5
/* : Bool */;
68 short int var7
/* : Bool */;
69 val
* var8
/* : nullable String */;
70 val
* var10
/* : nullable String */;
73 var1
= ini___ini__ConfigTree___get_node(self
, var_key
);
76 if (var_node
== NULL
) {
77 var2
= 1; /* is null */
79 var2
= 0; /* arg is null but recv is not */
82 { /* Inline kernel$Object$== (var_node,((val*)NULL)) on <var_node:nullable ConfigNode> */
83 var_other
= ((val
*)NULL
);
85 { /* Inline kernel$Object$is_same_instance (var_node,var_other) on <var_node:nullable ConfigNode(ConfigNode)> */
86 var7
= var_node
== var_other
;
104 { /* Inline ini$ConfigNode$value (var_node) on <var_node:nullable ConfigNode(ConfigNode)> */
105 var10
= var_node
->attrs
[COLOR_ini__ConfigNode___value
].val
; /* _value on <var_node:nullable ConfigNode(ConfigNode)> */
115 /* method ini$ConfigTree$has_key for (self: ConfigTree, String): Bool */
116 short int ini___ini__ConfigTree___has_key(val
* self
, val
* p0
) {
117 short int var
/* : Bool */;
118 val
* var_key
/* var key: String */;
120 val
* var1
/* : String */;
121 char* var2
/* : CString */;
122 val
* var3
/* : String */;
123 val
* var4
/* : nullable Int */;
124 val
* var5
/* : nullable Int */;
125 val
* var6
/* : nullable Bool */;
126 val
* var7
/* : nullable Bool */;
127 val
* var8
/* : Array[String] */;
128 val
* var9
/* : Array[nullable Object] */;
129 val
* var_parts
/* var parts: Array[String] */;
130 val
* var10
/* : nullable Object */;
131 val
* var11
/* : nullable ConfigNode */;
132 val
* var_node
/* var node: nullable ConfigNode */;
133 short int var12
/* : Bool */;
134 short int var13
/* : Bool */;
135 val
* var_other
/* var other: nullable Object */;
136 short int var15
/* : Bool */;
137 short int var17
/* : Bool */;
138 short int var18
/* : Bool */;
139 short int var19
/* : Bool */;
140 val
* var20
/* : nullable Object */;
141 val
* var21
/* : nullable ConfigNode */;
142 short int var22
/* : Bool */;
143 short int var23
/* : Bool */;
144 short int var25
/* : Bool */;
145 short int var27
/* : Bool */;
147 if (likely(varonce
!=NULL
)) {
151 var4
= (val
*)(1l<<2|1);
152 var5
= (val
*)(1l<<2|1);
153 var6
= (val
*)((long)(0)<<2|3);
154 var7
= (val
*)((long)(0)<<2|3);
155 var3
= core__flat___CString___to_s_unsafe(var2
, var4
, var5
, var6
, var7
);
160 var8
= core__string_search___Text___split(var_key
, var1
);
163 var9
= core___core__AbstractArrayRead___reversed(var8
);
167 var10
= core___core__AbstractArray___core__abstract_collection__Sequence__pop(var_parts
);
170 var11
= ini___ini__ConfigTree___get_root(self
, var10
);
173 if (var_node
== NULL
) {
174 var12
= 1; /* is null */
176 var12
= 0; /* arg is null but recv is not */
179 { /* Inline kernel$Object$== (var_node,((val*)NULL)) on <var_node:nullable ConfigNode> */
180 var_other
= ((val
*)NULL
);
182 { /* Inline kernel$Object$is_same_instance (var_node,var_other) on <var_node:nullable ConfigNode(ConfigNode)> */
183 var17
= var_node
== var_other
;
202 var18
= core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_parts
);
207 var20
= core___core__AbstractArray___core__abstract_collection__Sequence__pop(var_parts
);
210 var21
= ini___ini__ConfigNode___get_child(var_node
, var20
);
213 if (var_node
== NULL
) {
214 var22
= 1; /* is null */
216 var22
= 0; /* arg is null but recv is not */
219 { /* Inline kernel$Object$== (var_node,((val*)NULL)) on <var_node:nullable ConfigNode> */
220 var_other
= ((val
*)NULL
);
222 { /* Inline kernel$Object$is_same_instance (var_node,var_other) on <var_node:nullable ConfigNode(ConfigNode)> */
223 var27
= var_node
== var_other
;
244 BREAK_label
: (void)0;
250 /* method ini$ConfigTree$to_map for (self: ConfigTree): Map[String, String] */
251 val
* ini___ini__ConfigTree___to_map(val
* self
) {
252 val
* var
/* : Map[String, String] */;
253 val
* var1
/* : HashMap[String, String] */;
254 val
* var_map
/* var map: HashMap[String, String] */;
255 val
* var2
/* : Array[ConfigNode] */;
256 val
* var_
/* var : Array[ConfigNode] */;
257 val
* var3
/* : IndexedIterator[nullable Object] */;
258 val
* var_4
/* var : IndexedIterator[ConfigNode] */;
259 short int var5
/* : Bool */;
260 val
* var6
/* : nullable Object */;
261 val
* var_node
/* var node: ConfigNode */;
262 val
* var7
/* : nullable String */;
263 val
* var9
/* : nullable String */;
264 short int var10
/* : Bool */;
265 short int var11
/* : Bool */;
266 val
* var13
/* : String */;
267 val
* var14
/* : nullable String */;
268 val
* var16
/* : nullable String */;
269 val
* var17
/* : String */;
270 var1
= NEW_core__HashMap(&type_core__HashMap__core__String__core__String
);
272 core___core__HashMap___core__kernel__Object__init(var1
); /* Direct call hash_collection$HashMap$init on <var1:HashMap[String, String]>*/
276 var2
= ini___ini__ConfigTree___leaves(self
);
280 var3
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
285 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]>*/
292 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]>*/
296 { /* Inline ini$ConfigNode$value (var_node) on <var_node:ConfigNode> */
297 var9
= var_node
->attrs
[COLOR_ini__ConfigNode___value
].val
; /* _value on <var_node:ConfigNode> */
303 var10
= 1; /* is null */
305 var10
= 0; /* arg is null but recv is not */
308 var11
= ((short int(*)(val
* self
, val
* p0
))(var7
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var7
, ((val
*)NULL
)); /* == on <var7:nullable String>*/
316 var13
= ini___ini__ConfigNode___key(var_node
);
319 { /* Inline ini$ConfigNode$value (var_node) on <var_node:ConfigNode> */
320 var16
= var_node
->attrs
[COLOR_ini__ConfigNode___value
].val
; /* _value on <var_node:ConfigNode> */
326 if(catchStack
.cursor
>= 0){
327 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
329 PRINT_ERROR("Runtime error: %s", "Receiver is null");
330 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 116);
333 var17
= core___core__String___Object__to_s(var14
);
336 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]>*/
338 BREAK_label12
: (void)0;
340 ((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]>*/
343 BREAK_label
: (void)0;
345 ((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]>*/
352 /* method ini$ConfigTree$to_s for (self: ConfigTree): String */
353 val
* ini___ini__ConfigTree___core__abstract_text__Object__to_s(val
* self
) {
354 val
* var
/* : String */;
355 val
* var1
/* : Map[String, String] */;
357 val
* var2
/* : String */;
358 char* var3
/* : CString */;
359 val
* var4
/* : String */;
360 val
* var5
/* : nullable Int */;
361 val
* var6
/* : nullable Int */;
362 val
* var7
/* : nullable Bool */;
363 val
* var8
/* : nullable Bool */;
364 static val
* varonce9
;
365 val
* var10
/* : String */;
366 char* var11
/* : CString */;
367 val
* var12
/* : String */;
368 val
* var13
/* : nullable Int */;
369 val
* var14
/* : nullable Int */;
370 val
* var15
/* : nullable Bool */;
371 val
* var16
/* : nullable Bool */;
372 val
* var17
/* : String */;
374 var1
= ini___ini__ConfigTree___to_map(self
);
376 if (likely(varonce
!=NULL
)) {
380 var5
= (val
*)(2l<<2|1);
381 var6
= (val
*)(2l<<2|1);
382 var7
= (val
*)((long)(0)<<2|3);
383 var8
= (val
*)((long)(0)<<2|3);
384 var4
= core__flat___CString___to_s_unsafe(var3
, var5
, var6
, var7
, var8
);
388 if (likely(varonce9
!=NULL
)) {
392 var13
= (val
*)(1l<<2|1);
393 var14
= (val
*)(1l<<2|1);
394 var15
= (val
*)((long)(0)<<2|3);
395 var16
= (val
*)((long)(0)<<2|3);
396 var12
= core__flat___CString___to_s_unsafe(var11
, var13
, var14
, var15
, var16
);
401 var17
= core__flat___Map___join(var1
, var2
, var10
);
408 /* method ini$ConfigTree$write_to for (self: ConfigTree, Writer) */
409 void ini___ini__ConfigTree___core__stream__Writable__write_to(val
* self
, val
* p0
) {
410 val
* var_stream
/* var stream: Writer */;
411 val
* var
/* : Array[ConfigNode] */;
412 val
* var_
/* var : Array[ConfigNode] */;
413 val
* var1
/* : IndexedIterator[nullable Object] */;
414 val
* var_2
/* var : IndexedIterator[ConfigNode] */;
415 short int var3
/* : Bool */;
416 val
* var4
/* : nullable Object */;
417 val
* var_node
/* var node: ConfigNode */;
418 val
* var5
/* : nullable String */;
419 val
* var7
/* : nullable String */;
420 short int var8
/* : Bool */;
421 short int var9
/* : Bool */;
422 val
* var11
/* : NativeArray[String] */;
424 static val
* varonce12
;
425 val
* var13
/* : String */;
426 char* var14
/* : CString */;
427 val
* var15
/* : String */;
428 val
* var16
/* : nullable Int */;
429 val
* var17
/* : nullable Int */;
430 val
* var18
/* : nullable Bool */;
431 val
* var19
/* : nullable Bool */;
432 static val
* varonce20
;
433 val
* var21
/* : String */;
434 char* var22
/* : CString */;
435 val
* var23
/* : String */;
436 val
* var24
/* : nullable Int */;
437 val
* var25
/* : nullable Int */;
438 val
* var26
/* : nullable Bool */;
439 val
* var27
/* : nullable Bool */;
440 val
* var28
/* : String */;
441 val
* var29
/* : nullable String */;
442 val
* var31
/* : nullable String */;
443 val
* var32
/* : String */;
444 val
* var33
/* : String */;
447 var
= ini___ini__ConfigTree___leaves(self
);
451 var1
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
456 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]>*/
463 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]>*/
467 { /* Inline ini$ConfigNode$value (var_node) on <var_node:ConfigNode> */
468 var7
= var_node
->attrs
[COLOR_ini__ConfigNode___value
].val
; /* _value on <var_node:ConfigNode> */
474 var8
= 1; /* is null */
476 var8
= 0; /* arg is null but recv is not */
479 var9
= ((short int(*)(val
* self
, val
* p0
))(var5
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var5
, ((val
*)NULL
)); /* == on <var5:nullable String>*/
486 if (unlikely(varonce
==NULL
)) {
487 var11
= NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String
);
488 if (likely(varonce12
!=NULL
)) {
492 var16
= (val
*)(1l<<2|1);
493 var17
= (val
*)(1l<<2|1);
494 var18
= (val
*)((long)(0)<<2|3);
495 var19
= (val
*)((long)(0)<<2|3);
496 var15
= core__flat___CString___to_s_unsafe(var14
, var16
, var17
, var18
, var19
);
500 ((struct instance_core__NativeArray
*)var11
)->values
[1]=var13
;
501 if (likely(varonce20
!=NULL
)) {
505 var24
= (val
*)(1l<<2|1);
506 var25
= (val
*)(1l<<2|1);
507 var26
= (val
*)((long)(0)<<2|3);
508 var27
= (val
*)((long)(0)<<2|3);
509 var23
= core__flat___CString___to_s_unsafe(var22
, var24
, var25
, var26
, var27
);
513 ((struct instance_core__NativeArray
*)var11
)->values
[3]=var21
;
519 var28
= ini___ini__ConfigNode___key(var_node
);
521 ((struct instance_core__NativeArray
*)var11
)->values
[0]=var28
;
523 { /* Inline ini$ConfigNode$value (var_node) on <var_node:ConfigNode> */
524 var31
= var_node
->attrs
[COLOR_ini__ConfigNode___value
].val
; /* _value on <var_node:ConfigNode> */
530 if(catchStack
.cursor
>= 0){
531 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
533 PRINT_ERROR("Runtime error: %s", "Receiver is null");
534 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 126);
537 var32
= core___core__String___Object__to_s(var29
);
539 ((struct instance_core__NativeArray
*)var11
)->values
[2]=var32
;
541 var33
= ((val
*(*)(val
* self
))(var11
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var11
); /* native_to_s on <var11:NativeArray[String]>*/
545 core___core__FileWriter___core__stream__Writer__write(var_stream
, var33
); /* Direct call file$FileWriter$write on <var_stream:Writer>*/
547 BREAK_label10
: (void)0;
549 ((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]>*/
552 BREAK_label
: (void)0;
554 ((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]>*/
558 /* method ini$ConfigTree$load for (self: ConfigTree) */
559 void ini___ini__ConfigTree___load(val
* self
) {
560 val
* var
/* : Array[ConfigNode] */;
561 val
* var2
/* : Array[ConfigNode] */;
562 val
* var3
/* : FileReader */;
563 val
* var4
/* : String */;
564 val
* var6
/* : String */;
565 val
* var_stream
/* var stream: FileReader */;
566 val
* var_path
/* var path: nullable String */;
567 long var_line_number
/* var line_number: Int */;
568 short int var7
/* : Bool */;
569 short int var8
/* : Bool */;
570 val
* var9
/* : String */;
571 val
* var_line
/* var line: String */;
572 long var10
/* : Int */;
573 short int var12
/* : Bool */;
576 const char* var_class_name
;
577 long var13
/* : Int */;
578 short int var14
/* : Bool */;
580 val
* var15
/* : String */;
581 char* var16
/* : CString */;
582 val
* var17
/* : String */;
583 val
* var18
/* : nullable Int */;
584 val
* var19
/* : nullable Int */;
585 val
* var20
/* : nullable Bool */;
586 val
* var21
/* : nullable Bool */;
587 short int var22
/* : Bool */;
588 static val
* varonce23
;
589 val
* var24
/* : String */;
590 char* var25
/* : CString */;
591 val
* var26
/* : String */;
592 val
* var27
/* : nullable Int */;
593 val
* var28
/* : nullable Int */;
594 val
* var29
/* : nullable Bool */;
595 val
* var30
/* : nullable Bool */;
596 short int var31
/* : Bool */;
597 val
* var32
/* : Text */;
598 long var33
/* : Int */;
599 long var34
/* : Int */;
600 short int var36
/* : Bool */;
603 const char* var_class_name39
;
604 long var40
/* : Int */;
605 val
* var41
/* : Text */;
606 val
* var_key
/* var key: String */;
607 static val
* varonce42
;
608 val
* var43
/* : String */;
609 char* var44
/* : CString */;
610 val
* var45
/* : String */;
611 val
* var46
/* : nullable Int */;
612 val
* var47
/* : nullable Int */;
613 val
* var48
/* : nullable Bool */;
614 val
* var49
/* : nullable Bool */;
615 val
* var50
/* : Array[String] */;
616 val
* var_parts
/* var parts: Array[String] */;
617 long var51
/* : Int */;
618 long var53
/* : Int */;
619 short int var54
/* : Bool */;
620 short int var56
/* : Bool */;
623 const char* var_class_name59
;
624 short int var60
/* : Bool */;
625 val
* var61
/* : Sys */;
626 val
* var63
/* : NativeArray[String] */;
627 static val
* varonce62
;
628 static val
* varonce64
;
629 val
* var65
/* : String */;
630 char* var66
/* : CString */;
631 val
* var67
/* : String */;
632 val
* var68
/* : nullable Int */;
633 val
* var69
/* : nullable Int */;
634 val
* var70
/* : nullable Bool */;
635 val
* var71
/* : nullable Bool */;
636 val
* var72
/* : String */;
637 val
* var73
/* : String */;
638 val
* var74
/* : nullable Object */;
639 val
* var75
/* : Text */;
640 val
* var_key76
/* var key: String */;
641 val
* var77
/* : nullable Object */;
642 val
* var78
/* : Text */;
643 val
* var_val
/* var val: String */;
644 short int var79
/* : Bool */;
645 short int var80
/* : Bool */;
646 val
* var_other
/* var other: nullable Object */;
647 short int var82
/* : Bool */;
648 short int var83
/* : Bool */;
649 val
* var85
/* : NativeArray[String] */;
650 static val
* varonce84
;
651 static val
* varonce86
;
652 val
* var87
/* : String */;
653 char* var88
/* : CString */;
654 val
* var89
/* : String */;
655 val
* var90
/* : nullable Int */;
656 val
* var91
/* : nullable Int */;
657 val
* var92
/* : nullable Bool */;
658 val
* var93
/* : nullable Bool */;
659 val
* var94
/* : String */;
660 static val
* varonce95
;
661 val
* var96
/* : String */;
662 char* var97
/* : CString */;
663 val
* var98
/* : String */;
664 val
* var99
/* : nullable Int */;
665 val
* var100
/* : nullable Int */;
666 val
* var101
/* : nullable Bool */;
667 val
* var102
/* : nullable Bool */;
668 short int var103
/* : Bool */;
670 { /* Inline ini$ConfigTree$roots (self) on <self:ConfigTree> */
671 var2
= self
->attrs
[COLOR_ini__ConfigTree___roots
].val
; /* _roots on <self:ConfigTree> */
672 if (unlikely(var2
== NULL
)) {
673 if(catchStack
.cursor
>= 0){
674 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
676 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _roots");
677 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 231);
685 core___core__AbstractArray___core__abstract_collection__RemovableCollection__clear(var
); /* Direct call array$AbstractArray$clear on <var:Array[ConfigNode]>*/
687 var3
= NEW_core__FileReader(&type_core__FileReader
);
689 { /* Inline ini$ConfigTree$ini_file (self) on <self:ConfigTree> */
690 var6
= self
->attrs
[COLOR_ini__ConfigTree___ini_file
].val
; /* _ini_file on <self:ConfigTree> */
691 if (unlikely(var6
== NULL
)) {
692 if(catchStack
.cursor
>= 0){
693 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
695 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ini_file");
696 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 37);
704 core___core__FileReader___open(var3
, var4
); /* Direct call file$FileReader$open on <var3:FileReader>*/
707 var_path
= ((val
*)NULL
);
708 var_line_number
= 0l;
711 var7
= core___core__BufferedReader___Reader__eof(var_stream
);
716 var9
= core___core__Reader___read_line(var_stream
);
720 { /* Inline kernel$Int$+ (var_line_number,1l) on <var_line_number:Int> */
721 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
722 /* <1l:Int> isa OTHER */
723 var12
= 1; /* easy <1l:Int> isa OTHER*/
724 if (unlikely(!var12
)) {
725 var_class_name
= type_core__Int
.name
;
726 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
727 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
730 var13
= var_line_number
+ 1l;
736 var_line_number
= var10
;
738 var14
= ((short int(*)(val
* self
))(var_line
->class->vft
[COLOR_core__abstract_text__Text__is_empty
]))(var_line
); /* is_empty on <var_line:String>*/
743 if (likely(varonce
!=NULL
)) {
747 var18
= (val
*)(1l<<2|1);
748 var19
= (val
*)(1l<<2|1);
749 var20
= (val
*)((long)(0)<<2|3);
750 var21
= (val
*)((long)(0)<<2|3);
751 var17
= core__flat___CString___to_s_unsafe(var16
, var18
, var19
, var20
, var21
);
756 var22
= core___core__Text___has_prefix(var_line
, var15
);
761 if (likely(varonce23
!=NULL
)) {
765 var27
= (val
*)(1l<<2|1);
766 var28
= (val
*)(1l<<2|1);
767 var29
= (val
*)((long)(0)<<2|3);
768 var30
= (val
*)((long)(0)<<2|3);
769 var26
= core__flat___CString___to_s_unsafe(var25
, var27
, var28
, var29
, var30
);
774 var31
= core___core__Text___has_prefix(var_line
, var24
);
778 var32
= core___core__Text___trim(var_line
);
782 var33
= ((long(*)(val
* self
))(var_line
->class->vft
[COLOR_core__abstract_text__Text__length
]))(var_line
); /* length on <var_line:String>*/
785 { /* Inline kernel$Int$- (var33,2l) on <var33:Int> */
786 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
787 /* <2l:Int> isa OTHER */
788 var36
= 1; /* easy <2l:Int> isa OTHER*/
789 if (unlikely(!var36
)) {
790 var_class_name39
= type_core__Int
.name
;
791 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39
);
792 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
802 var41
= ((val
*(*)(val
* self
, long p0
, long p1
))(var_line
->class->vft
[COLOR_core__abstract_text__Text__substring
]))(var_line
, 1l, var34
); /* substring on <var_line:String>*/
807 ini___ini__ConfigTree___set_node(self
, var_path
, ((val
*)NULL
)); /* Direct call ini$ConfigTree$set_node on <self:ConfigTree>*/
810 if (likely(varonce42
!=NULL
)) {
814 var46
= (val
*)(1l<<2|1);
815 var47
= (val
*)(1l<<2|1);
816 var48
= (val
*)((long)(0)<<2|3);
817 var49
= (val
*)((long)(0)<<2|3);
818 var45
= core__flat___CString___to_s_unsafe(var44
, var46
, var47
, var48
, var49
);
823 var50
= core__string_search___Text___split(var_line
, var43
);
827 { /* Inline array$AbstractArrayRead$length (var_parts) on <var_parts:Array[String]> */
828 var53
= var_parts
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_parts:Array[String]> */
834 { /* Inline kernel$Int$> (var51,1l) on <var51:Int> */
835 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
836 /* <1l:Int> isa OTHER */
837 var56
= 1; /* easy <1l:Int> isa OTHER*/
838 if (unlikely(!var56
)) {
839 var_class_name59
= type_core__Int
.name
;
840 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name59
);
841 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 727);
850 if (unlikely(!var54
)) {
852 if (unlikely(varonce62
==NULL
)) {
853 var63
= NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String
);
854 if (likely(varonce64
!=NULL
)) {
857 var66
= "Error: malformed ini at line ";
858 var68
= (val
*)(29l<<2|1);
859 var69
= (val
*)(29l<<2|1);
860 var70
= (val
*)((long)(0)<<2|3);
861 var71
= (val
*)((long)(0)<<2|3);
862 var67
= core__flat___CString___to_s_unsafe(var66
, var68
, var69
, var70
, var71
);
866 ((struct instance_core__NativeArray
*)var63
)->values
[0]=var65
;
871 var72
= core__flat___Int___core__abstract_text__Object__to_s(var_line_number
);
872 ((struct instance_core__NativeArray
*)var63
)->values
[1]=var72
;
874 var73
= ((val
*(*)(val
* self
))(var63
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var63
); /* native_to_s on <var63:NativeArray[String]>*/
878 core__file___Sys___print(var61
, var73
); /* Direct call file$Sys$print on <var61:Sys>*/
880 if(catchStack
.cursor
>= 0){
881 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
883 PRINT_ERROR("Runtime error: %s", "Assert failed");
884 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 212);
888 var74
= core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_parts
, 0l);
891 var75
= core___core__Text___trim(var74
);
895 var77
= core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_parts
, 1l);
898 var78
= core___core__Text___trim(var77
);
901 if (var_path
== NULL
) {
902 var79
= 0; /* is null */
904 var79
= 1; /* arg is null and recv is not */
907 { /* Inline kernel$Object$!= (var_path,((val*)NULL)) on <var_path:nullable String> */
908 var_other
= ((val
*)NULL
);
910 var82
= ((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)>*/
920 if (unlikely(varonce84
==NULL
)) {
921 var85
= NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String
);
922 if (likely(varonce86
!=NULL
)) {
926 var90
= (val
*)(1l<<2|1);
927 var91
= (val
*)(1l<<2|1);
928 var92
= (val
*)((long)(0)<<2|3);
929 var93
= (val
*)((long)(0)<<2|3);
930 var89
= core__flat___CString___to_s_unsafe(var88
, var90
, var91
, var92
, var93
);
934 ((struct instance_core__NativeArray
*)var85
)->values
[1]=var87
;
939 ((struct instance_core__NativeArray
*)var85
)->values
[0]=var_path
;
940 ((struct instance_core__NativeArray
*)var85
)->values
[2]=var_key76
;
942 var94
= ((val
*(*)(val
* self
))(var85
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var85
); /* native_to_s on <var85:NativeArray[String]>*/
948 if (likely(varonce95
!=NULL
)) {
952 var99
= (val
*)(2l<<2|1);
953 var100
= (val
*)(2l<<2|1);
954 var101
= (val
*)((long)(0)<<2|3);
955 var102
= (val
*)((long)(0)<<2|3);
956 var98
= core__flat___CString___to_s_unsafe(var97
, var99
, var100
, var101
, var102
);
961 var103
= core___core__Text___has_suffix(var_key76
, var96
);
965 ini___ini__ConfigTree___set_array(self
, var_key76
, var_val
); /* Direct call ini$ConfigTree$set_array on <self:ConfigTree>*/
969 ini___ini__ConfigTree___set_node(self
, var_key76
, var_val
); /* Direct call ini$ConfigTree$set_node on <self:ConfigTree>*/
978 BREAK_label
: (void)0;
980 BREAK_label104
: (void)0;
982 core___core__FileReader___core__stream__Stream__close(var_stream
); /* Direct call file$FileReader$close on <var_stream:FileReader>*/
986 /* method ini$ConfigTree$roots for (self: ConfigTree): Array[ConfigNode] */
987 val
* ini___ini__ConfigTree___roots(val
* self
) {
988 val
* var
/* : Array[ConfigNode] */;
989 val
* var1
/* : Array[ConfigNode] */;
990 var1
= self
->attrs
[COLOR_ini__ConfigTree___roots
].val
; /* _roots on <self:ConfigTree> */
991 if (unlikely(var1
== NULL
)) {
992 if(catchStack
.cursor
>= 0){
993 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
995 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _roots");
996 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 231);
1003 /* method ini$ConfigTree$set_array for (self: ConfigTree, String, nullable String) */
1004 void ini___ini__ConfigTree___set_array(val
* self
, val
* p0
, val
* p1
) {
1005 val
* var_key
/* var key: String */;
1006 val
* var_value
/* var value: nullable String */;
1007 long var
/* : Int */;
1008 long var1
/* : Int */;
1009 short int var3
/* : Bool */;
1012 const char* var_class_name
;
1013 long var4
/* : Int */;
1014 val
* var5
/* : Text */;
1015 long var_len
/* var len: Int */;
1016 short int var6
/* : Bool */;
1017 val
* var7
/* : nullable ConfigNode */;
1018 val
* var8
/* : HashMap[String, ConfigNode] */;
1019 val
* var10
/* : HashMap[String, ConfigNode] */;
1020 long var11
/* : Int */;
1021 val
* var12
/* : NativeArray[String] */;
1022 static val
* varonce
;
1023 static val
* varonce13
;
1024 val
* var14
/* : String */;
1025 char* var15
/* : CString */;
1026 val
* var16
/* : String */;
1027 val
* var17
/* : nullable Int */;
1028 val
* var18
/* : nullable Int */;
1029 val
* var19
/* : nullable Bool */;
1030 val
* var20
/* : nullable Bool */;
1031 val
* var21
/* : String */;
1032 val
* var22
/* : String */;
1036 var
= ((long(*)(val
* self
))(var_key
->class->vft
[COLOR_core__abstract_text__Text__length
]))(var_key
); /* length on <var_key:String>*/
1039 { /* Inline kernel$Int$- (var,2l) on <var:Int> */
1040 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
1041 /* <2l:Int> isa OTHER */
1042 var3
= 1; /* easy <2l:Int> isa OTHER*/
1043 if (unlikely(!var3
)) {
1044 var_class_name
= type_core__Int
.name
;
1045 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1046 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
1056 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>*/
1061 var6
= ini___ini__ConfigTree___has_key(self
, var_key
);
1065 var7
= ini___ini__ConfigTree___get_node(self
, var_key
);
1068 if(catchStack
.cursor
>= 0){
1069 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1071 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1072 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 238);
1075 { /* Inline ini$ConfigNode$children (var7) on <var7:nullable ConfigNode> */
1076 if (unlikely(var7
== NULL
)) {
1077 if(catchStack
.cursor
>= 0){
1078 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1080 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1081 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 304);
1084 var10
= var7
->attrs
[COLOR_ini__ConfigNode___children
].val
; /* _children on <var7:nullable ConfigNode> */
1085 if (unlikely(var10
== NULL
)) {
1086 if(catchStack
.cursor
>= 0){
1087 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1089 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _children");
1090 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 304);
1098 var11
= core___core__HashMap___core__abstract_collection__MapRead__length(var8
);
1103 if (unlikely(varonce
==NULL
)) {
1104 var12
= NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String
);
1105 if (likely(varonce13
!=NULL
)) {
1109 var17
= (val
*)(1l<<2|1);
1110 var18
= (val
*)(1l<<2|1);
1111 var19
= (val
*)((long)(0)<<2|3);
1112 var20
= (val
*)((long)(0)<<2|3);
1113 var16
= core__flat___CString___to_s_unsafe(var15
, var17
, var18
, var19
, var20
);
1117 ((struct instance_core__NativeArray
*)var12
)->values
[1]=var14
;
1122 ((struct instance_core__NativeArray
*)var12
)->values
[0]=var_key
;
1124 var21
= core__flat___Int___core__abstract_text__Object__to_s(var_len
);
1126 ((struct instance_core__NativeArray
*)var12
)->values
[2]=var21
;
1128 var22
= ((val
*(*)(val
* self
))(var12
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var12
); /* native_to_s on <var12:NativeArray[String]>*/
1132 ini___ini__ConfigTree___set_node(self
, var22
, var_value
); /* Direct call ini$ConfigTree$set_node on <self:ConfigTree>*/
1136 /* method ini$ConfigTree$set_node for (self: ConfigTree, String, nullable String) */
1137 void ini___ini__ConfigTree___set_node(val
* self
, val
* p0
, val
* p1
) {
1138 val
* var_key
/* var key: String */;
1139 val
* var_value
/* var value: nullable String */;
1140 static val
* varonce
;
1141 val
* var
/* : String */;
1142 char* var1
/* : CString */;
1143 val
* var2
/* : String */;
1144 val
* var3
/* : nullable Int */;
1145 val
* var4
/* : nullable Int */;
1146 val
* var5
/* : nullable Bool */;
1147 val
* var6
/* : nullable Bool */;
1148 val
* var7
/* : Array[String] */;
1149 val
* var8
/* : Array[nullable Object] */;
1150 val
* var_parts
/* var parts: Array[String] */;
1151 val
* var9
/* : nullable Object */;
1152 val
* var_k
/* var k: String */;
1153 val
* var10
/* : nullable ConfigNode */;
1154 val
* var_root
/* var root: nullable ConfigNode */;
1155 short int var11
/* : Bool */;
1156 short int var12
/* : Bool */;
1157 val
* var_other
/* var other: nullable Object */;
1158 short int var14
/* : Bool */;
1159 short int var16
/* : Bool */;
1160 val
* var17
/* : ConfigNode */;
1161 short int var18
/* : Bool */;
1162 val
* var20
/* : Array[ConfigNode] */;
1163 val
* var22
/* : Array[ConfigNode] */;
1164 short int var23
/* : Bool */;
1165 short int var24
/* : Bool */;
1166 val
* var25
/* : nullable Object */;
1167 val
* var26
/* : nullable ConfigNode */;
1168 val
* var_node
/* var node: nullable ConfigNode */;
1169 short int var27
/* : Bool */;
1170 short int var28
/* : Bool */;
1171 short int var30
/* : Bool */;
1172 short int var32
/* : Bool */;
1173 val
* var33
/* : ConfigNode */;
1174 val
* var35
/* : HashMap[String, ConfigNode] */;
1175 val
* var37
/* : HashMap[String, ConfigNode] */;
1176 val
* var38
/* : String */;
1177 val
* var40
/* : String */;
1178 short int var41
/* : Bool */;
1181 if (likely(varonce
!=NULL
)) {
1185 var3
= (val
*)(1l<<2|1);
1186 var4
= (val
*)(1l<<2|1);
1187 var5
= (val
*)((long)(0)<<2|3);
1188 var6
= (val
*)((long)(0)<<2|3);
1189 var2
= core__flat___CString___to_s_unsafe(var1
, var3
, var4
, var5
, var6
);
1194 var7
= core__string_search___Text___split(var_key
, var
);
1197 var8
= core___core__AbstractArrayRead___reversed(var7
);
1201 var9
= core___core__AbstractArray___core__abstract_collection__Sequence__pop(var_parts
);
1205 var10
= ini___ini__ConfigTree___get_root(self
, var_k
);
1208 if (var_root
== NULL
) {
1209 var11
= 1; /* is null */
1211 var11
= 0; /* arg is null but recv is not */
1214 { /* Inline kernel$Object$== (var_root,((val*)NULL)) on <var_root:nullable ConfigNode> */
1215 var_other
= ((val
*)NULL
);
1217 { /* Inline kernel$Object$is_same_instance (var_root,var_other) on <var_root:nullable ConfigNode(ConfigNode)> */
1218 var16
= var_root
== var_other
;
1221 RET_LABEL15
:(void)0;
1226 RET_LABEL13
:(void)0;
1231 var17
= NEW_ini__ConfigNode(&type_ini__ConfigNode
);
1233 ((void(*)(val
* self
, val
* p0
))(var17
->class->vft
[COLOR_ini__ConfigNode__name_61d
]))(var17
, var_k
); /* name= on <var17:ConfigNode>*/
1236 ((void(*)(val
* self
))(var17
->class->vft
[COLOR_core__kernel__Object__init
]))(var17
); /* init on <var17:ConfigNode>*/
1240 var18
= core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_parts
);
1244 { /* Inline ini$ConfigNode$value= (var_root,var_value) on <var_root:nullable ConfigNode(ConfigNode)> */
1245 var_root
->attrs
[COLOR_ini__ConfigNode___value
].val
= var_value
; /* _value on <var_root:nullable ConfigNode(ConfigNode)> */
1246 RET_LABEL19
:(void)0;
1252 { /* Inline ini$ConfigTree$roots (self) on <self:ConfigTree> */
1253 var22
= self
->attrs
[COLOR_ini__ConfigTree___roots
].val
; /* _roots on <self:ConfigTree> */
1254 if (unlikely(var22
== NULL
)) {
1255 if(catchStack
.cursor
>= 0){
1256 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1258 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _roots");
1259 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 231);
1263 RET_LABEL21
:(void)0;
1267 core___core__Array___core__abstract_collection__SimpleCollection__add(var20
, var_root
); /* Direct call array$Array$add on <var20:Array[ConfigNode]>*/
1273 var23
= core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_parts
);
1278 var25
= core___core__AbstractArray___core__abstract_collection__Sequence__pop(var_parts
);
1282 var26
= ini___ini__ConfigNode___get_child(var_root
, var_k
);
1285 if (var_node
== NULL
) {
1286 var27
= 1; /* is null */
1288 var27
= 0; /* arg is null but recv is not */
1291 { /* Inline kernel$Object$== (var_node,((val*)NULL)) on <var_node:nullable ConfigNode> */
1292 var_other
= ((val
*)NULL
);
1294 { /* Inline kernel$Object$is_same_instance (var_node,var_other) on <var_node:nullable ConfigNode(ConfigNode)> */
1295 var32
= var_node
== var_other
;
1298 RET_LABEL31
:(void)0;
1303 RET_LABEL29
:(void)0;
1308 var33
= NEW_ini__ConfigNode(&type_ini__ConfigNode
);
1310 ((void(*)(val
* self
, val
* p0
))(var33
->class->vft
[COLOR_ini__ConfigNode__name_61d
]))(var33
, var_k
); /* name= on <var33:ConfigNode>*/
1313 ((void(*)(val
* self
))(var33
->class->vft
[COLOR_core__kernel__Object__init
]))(var33
); /* init on <var33:ConfigNode>*/
1317 { /* Inline ini$ConfigNode$parent= (var_node,var_root) on <var_node:nullable ConfigNode(ConfigNode)> */
1318 var_node
->attrs
[COLOR_ini__ConfigNode___parent
].val
= var_root
; /* _parent on <var_node:nullable ConfigNode(ConfigNode)> */
1319 RET_LABEL34
:(void)0;
1323 { /* Inline ini$ConfigNode$children (var_root) on <var_root:nullable ConfigNode(ConfigNode)> */
1324 var37
= var_root
->attrs
[COLOR_ini__ConfigNode___children
].val
; /* _children on <var_root:nullable ConfigNode(ConfigNode)> */
1325 if (unlikely(var37
== NULL
)) {
1326 if(catchStack
.cursor
>= 0){
1327 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1329 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _children");
1330 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 304);
1334 RET_LABEL36
:(void)0;
1338 { /* Inline ini$ConfigNode$name (var_node) on <var_node:nullable ConfigNode(ConfigNode)> */
1339 var40
= var_node
->attrs
[COLOR_ini__ConfigNode___name
].val
; /* _name on <var_node:nullable ConfigNode(ConfigNode)> */
1340 if (unlikely(var40
== NULL
)) {
1341 if(catchStack
.cursor
>= 0){
1342 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1344 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1345 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 305);
1349 RET_LABEL39
:(void)0;
1353 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var35
, var38
, var_node
); /* Direct call hash_collection$HashMap$[]= on <var35:HashMap[String, ConfigNode]>*/
1358 var41
= core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_parts
);
1362 { /* Inline ini$ConfigNode$value= (var_node,var_value) on <var_node:nullable ConfigNode(ConfigNode)> */
1363 var_node
->attrs
[COLOR_ini__ConfigNode___value
].val
= var_value
; /* _value on <var_node:nullable ConfigNode(ConfigNode)> */
1364 RET_LABEL42
:(void)0;
1369 var_root
= var_node
;
1374 BREAK_label
: (void)0;
1377 /* method ini$ConfigTree$get_node for (self: ConfigTree, String): nullable ConfigNode */
1378 val
* ini___ini__ConfigTree___get_node(val
* self
, val
* p0
) {
1379 val
* var
/* : nullable ConfigNode */;
1380 val
* var_key
/* var key: String */;
1381 static val
* varonce
;
1382 val
* var1
/* : String */;
1383 char* var2
/* : CString */;
1384 val
* var3
/* : String */;
1385 val
* var4
/* : nullable Int */;
1386 val
* var5
/* : nullable Int */;
1387 val
* var6
/* : nullable Bool */;
1388 val
* var7
/* : nullable Bool */;
1389 val
* var8
/* : Array[String] */;
1390 val
* var9
/* : Array[nullable Object] */;
1391 val
* var_parts
/* var parts: Array[String] */;
1392 val
* var10
/* : nullable Object */;
1393 val
* var11
/* : nullable ConfigNode */;
1394 val
* var_node
/* var node: nullable ConfigNode */;
1395 short int var12
/* : Bool */;
1396 short int var13
/* : Bool */;
1397 short int var14
/* : Bool */;
1398 val
* var_other
/* var other: nullable Object */;
1399 short int var16
/* : Bool */;
1400 short int var17
/* : Bool */;
1401 short int var_
/* var : Bool */;
1402 short int var18
/* : Bool */;
1403 short int var19
/* : Bool */;
1404 val
* var20
/* : nullable Object */;
1405 val
* var21
/* : nullable ConfigNode */;
1407 if (likely(varonce
!=NULL
)) {
1411 var4
= (val
*)(1l<<2|1);
1412 var5
= (val
*)(1l<<2|1);
1413 var6
= (val
*)((long)(0)<<2|3);
1414 var7
= (val
*)((long)(0)<<2|3);
1415 var3
= core__flat___CString___to_s_unsafe(var2
, var4
, var5
, var6
, var7
);
1420 var8
= core__string_search___Text___split(var_key
, var1
);
1423 var9
= core___core__AbstractArrayRead___reversed(var8
);
1427 var10
= core___core__AbstractArray___core__abstract_collection__Sequence__pop(var_parts
);
1430 var11
= ini___ini__ConfigTree___get_root(self
, var10
);
1434 if (var_node
== NULL
) {
1435 var13
= 0; /* is null */
1437 var13
= 1; /* arg is null and recv is not */
1440 { /* Inline kernel$Object$!= (var_node,((val*)NULL)) on <var_node:nullable ConfigNode> */
1441 var_other
= ((val
*)NULL
);
1443 var16
= ((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)>*/
1448 RET_LABEL15
:(void)0;
1455 var18
= core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_parts
);
1464 var20
= core___core__AbstractArray___core__abstract_collection__Sequence__pop(var_parts
);
1467 var21
= ini___ini__ConfigNode___get_child(var_node
, var20
);
1474 BREAK_label
: (void)0;
1480 /* method ini$ConfigTree$get_root for (self: ConfigTree, String): nullable ConfigNode */
1481 val
* ini___ini__ConfigTree___get_root(val
* self
, val
* p0
) {
1482 val
* var
/* : nullable ConfigNode */;
1483 val
* var_name
/* var name: String */;
1484 val
* var1
/* : Array[ConfigNode] */;
1485 val
* var3
/* : Array[ConfigNode] */;
1486 val
* var_
/* var : Array[ConfigNode] */;
1487 val
* var4
/* : IndexedIterator[nullable Object] */;
1488 val
* var_5
/* var : IndexedIterator[ConfigNode] */;
1489 short int var6
/* : Bool */;
1490 val
* var7
/* : nullable Object */;
1491 val
* var_root
/* var root: ConfigNode */;
1492 val
* var8
/* : String */;
1493 val
* var10
/* : String */;
1494 short int var11
/* : Bool */;
1497 { /* Inline ini$ConfigTree$roots (self) on <self:ConfigTree> */
1498 var3
= self
->attrs
[COLOR_ini__ConfigTree___roots
].val
; /* _roots on <self:ConfigTree> */
1499 if (unlikely(var3
== NULL
)) {
1500 if(catchStack
.cursor
>= 0){
1501 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1503 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _roots");
1504 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 231);
1513 var4
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
1518 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]>*/
1525 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]>*/
1529 { /* Inline ini$ConfigNode$name (var_root) on <var_root:ConfigNode> */
1530 var10
= var_root
->attrs
[COLOR_ini__ConfigNode___name
].val
; /* _name on <var_root:ConfigNode> */
1531 if (unlikely(var10
== NULL
)) {
1532 if(catchStack
.cursor
>= 0){
1533 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1535 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1536 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 305);
1544 var11
= ((short int(*)(val
* self
, val
* p0
))(var8
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var8
, var_name
); /* == on <var8:String>*/
1552 ((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]>*/
1555 BREAK_label
: (void)0;
1557 ((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]>*/
1564 /* method ini$ConfigTree$leaves for (self: ConfigTree): Array[ConfigNode] */
1565 val
* ini___ini__ConfigTree___leaves(val
* self
) {
1566 val
* var
/* : Array[ConfigNode] */;
1567 val
* var1
/* : Array[ConfigNode] */;
1568 val
* var_res
/* var res: Array[ConfigNode] */;
1569 val
* var2
/* : Array[ConfigNode] */;
1570 val
* var_todo
/* var todo: Array[ConfigNode] */;
1571 val
* var3
/* : Array[ConfigNode] */;
1572 val
* var5
/* : Array[ConfigNode] */;
1573 short int var6
/* : Bool */;
1574 short int var7
/* : Bool */;
1575 val
* var8
/* : nullable Object */;
1576 val
* var_node
/* var node: ConfigNode */;
1577 val
* var9
/* : HashMap[String, ConfigNode] */;
1578 val
* var11
/* : HashMap[String, ConfigNode] */;
1579 short int var12
/* : Bool */;
1580 val
* var13
/* : HashMap[String, ConfigNode] */;
1581 val
* var15
/* : HashMap[String, ConfigNode] */;
1582 val
* var16
/* : RemovableCollection[nullable Object] */;
1583 var1
= NEW_core__Array(&type_core__Array__ini__ConfigNode
);
1585 core___core__Array___core__kernel__Object__init(var1
); /* Direct call array$Array$init on <var1:Array[ConfigNode]>*/
1588 var2
= NEW_core__Array(&type_core__Array__ini__ConfigNode
);
1590 core___core__Array___core__kernel__Object__init(var2
); /* Direct call array$Array$init on <var2:Array[ConfigNode]>*/
1594 { /* Inline ini$ConfigTree$roots (self) on <self:ConfigTree> */
1595 var5
= self
->attrs
[COLOR_ini__ConfigTree___roots
].val
; /* _roots on <self:ConfigTree> */
1596 if (unlikely(var5
== NULL
)) {
1597 if(catchStack
.cursor
>= 0){
1598 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1600 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _roots");
1601 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 231);
1609 core___core__Array___core__abstract_collection__SimpleCollection__add_all(var_todo
, var3
); /* Direct call array$Array$add_all on <var_todo:Array[ConfigNode]>*/
1613 var6
= core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_todo
);
1618 var8
= core___core__AbstractArray___core__abstract_collection__Sequence__pop(var_todo
);
1622 { /* Inline ini$ConfigNode$children (var_node) on <var_node:ConfigNode> */
1623 var11
= var_node
->attrs
[COLOR_ini__ConfigNode___children
].val
; /* _children on <var_node:ConfigNode> */
1624 if (unlikely(var11
== NULL
)) {
1625 if(catchStack
.cursor
>= 0){
1626 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1628 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _children");
1629 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 304);
1633 RET_LABEL10
:(void)0;
1637 var12
= core___core__HashMap___core__abstract_collection__MapRead__is_empty(var9
);
1641 core___core__Array___core__abstract_collection__SimpleCollection__add(var_res
, var_node
); /* Direct call array$Array$add on <var_res:Array[ConfigNode]>*/
1645 { /* Inline ini$ConfigNode$children (var_node) on <var_node:ConfigNode> */
1646 var15
= var_node
->attrs
[COLOR_ini__ConfigNode___children
].val
; /* _children on <var_node:ConfigNode> */
1647 if (unlikely(var15
== NULL
)) {
1648 if(catchStack
.cursor
>= 0){
1649 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1651 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _children");
1652 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 304);
1656 RET_LABEL14
:(void)0;
1660 var16
= core___core__HashMap___core__abstract_collection__MapRead__values(var13
);
1663 core___core__Array___core__abstract_collection__SimpleCollection__add_all(var_todo
, var16
); /* Direct call array$Array$add_all on <var_todo:Array[ConfigNode]>*/
1670 BREAK_label
: (void)0;
1676 /* method ini$ConfigNode$parent for (self: ConfigNode): nullable ConfigNode */
1677 val
* ini___ini__ConfigNode___parent(val
* self
) {
1678 val
* var
/* : nullable ConfigNode */;
1679 val
* var1
/* : nullable ConfigNode */;
1680 var1
= self
->attrs
[COLOR_ini__ConfigNode___parent
].val
; /* _parent on <self:ConfigNode> */
1685 /* method ini$ConfigNode$parent= for (self: ConfigNode, nullable ConfigNode) */
1686 void ini___ini__ConfigNode___parent_61d(val
* self
, val
* p0
) {
1687 self
->attrs
[COLOR_ini__ConfigNode___parent
].val
= p0
; /* _parent on <self:ConfigNode> */
1690 /* method ini$ConfigNode$children for (self: ConfigNode): HashMap[String, ConfigNode] */
1691 val
* ini___ini__ConfigNode___children(val
* self
) {
1692 val
* var
/* : HashMap[String, ConfigNode] */;
1693 val
* var1
/* : HashMap[String, ConfigNode] */;
1694 var1
= self
->attrs
[COLOR_ini__ConfigNode___children
].val
; /* _children on <self:ConfigNode> */
1695 if (unlikely(var1
== NULL
)) {
1696 if(catchStack
.cursor
>= 0){
1697 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1699 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _children");
1700 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 304);
1707 /* method ini$ConfigNode$name for (self: ConfigNode): String */
1708 val
* ini___ini__ConfigNode___name(val
* self
) {
1709 val
* var
/* : String */;
1710 val
* var1
/* : String */;
1711 var1
= self
->attrs
[COLOR_ini__ConfigNode___name
].val
; /* _name on <self:ConfigNode> */
1712 if (unlikely(var1
== NULL
)) {
1713 if(catchStack
.cursor
>= 0){
1714 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1716 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1717 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 305);
1724 /* method ini$ConfigNode$name= for (self: ConfigNode, String) */
1725 void ini___ini__ConfigNode___name_61d(val
* self
, val
* p0
) {
1726 self
->attrs
[COLOR_ini__ConfigNode___name
].val
= p0
; /* _name on <self:ConfigNode> */
1729 /* method ini$ConfigNode$value for (self: ConfigNode): nullable String */
1730 val
* ini___ini__ConfigNode___value(val
* self
) {
1731 val
* var
/* : nullable String */;
1732 val
* var1
/* : nullable String */;
1733 var1
= self
->attrs
[COLOR_ini__ConfigNode___value
].val
; /* _value on <self:ConfigNode> */
1738 /* method ini$ConfigNode$value= for (self: ConfigNode, nullable String) */
1739 void ini___ini__ConfigNode___value_61d(val
* self
, val
* p0
) {
1740 self
->attrs
[COLOR_ini__ConfigNode___value
].val
= p0
; /* _value on <self:ConfigNode> */
1743 /* method ini$ConfigNode$key for (self: ConfigNode): String */
1744 val
* ini___ini__ConfigNode___key(val
* self
) {
1745 val
* var
/* : String */;
1746 val
* var1
/* : nullable ConfigNode */;
1747 val
* var3
/* : nullable ConfigNode */;
1748 short int var4
/* : Bool */;
1749 short int var5
/* : Bool */;
1750 val
* var_other
/* var other: nullable Object */;
1751 short int var7
/* : Bool */;
1752 short int var9
/* : Bool */;
1753 val
* var10
/* : String */;
1754 val
* var12
/* : String */;
1755 val
* var13
/* : NativeArray[String] */;
1756 static val
* varonce
;
1757 static val
* varonce14
;
1758 val
* var15
/* : String */;
1759 char* var16
/* : CString */;
1760 val
* var17
/* : String */;
1761 val
* var18
/* : nullable Int */;
1762 val
* var19
/* : nullable Int */;
1763 val
* var20
/* : nullable Bool */;
1764 val
* var21
/* : nullable Bool */;
1765 val
* var22
/* : nullable ConfigNode */;
1766 val
* var24
/* : nullable ConfigNode */;
1767 val
* var25
/* : String */;
1768 val
* var26
/* : String */;
1769 val
* var28
/* : String */;
1770 val
* var29
/* : String */;
1772 { /* Inline ini$ConfigNode$parent (self) on <self:ConfigNode> */
1773 var3
= self
->attrs
[COLOR_ini__ConfigNode___parent
].val
; /* _parent on <self:ConfigNode> */
1779 var4
= 1; /* is null */
1781 var4
= 0; /* arg is null but recv is not */
1784 { /* Inline kernel$Object$== (var1,((val*)NULL)) on <var1:nullable ConfigNode> */
1785 var_other
= ((val
*)NULL
);
1787 { /* Inline kernel$Object$is_same_instance (var1,var_other) on <var1:nullable ConfigNode(ConfigNode)> */
1788 var9
= var1
== var_other
;
1802 { /* Inline ini$ConfigNode$name (self) on <self:ConfigNode> */
1803 var12
= self
->attrs
[COLOR_ini__ConfigNode___name
].val
; /* _name on <self:ConfigNode> */
1804 if (unlikely(var12
== NULL
)) {
1805 if(catchStack
.cursor
>= 0){
1806 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1808 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1809 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 305);
1813 RET_LABEL11
:(void)0;
1820 if (unlikely(varonce
==NULL
)) {
1821 var13
= NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String
);
1822 if (likely(varonce14
!=NULL
)) {
1826 var18
= (val
*)(1l<<2|1);
1827 var19
= (val
*)(1l<<2|1);
1828 var20
= (val
*)((long)(0)<<2|3);
1829 var21
= (val
*)((long)(0)<<2|3);
1830 var17
= core__flat___CString___to_s_unsafe(var16
, var18
, var19
, var20
, var21
);
1834 ((struct instance_core__NativeArray
*)var13
)->values
[1]=var15
;
1840 { /* Inline ini$ConfigNode$parent (self) on <self:ConfigNode> */
1841 var24
= self
->attrs
[COLOR_ini__ConfigNode___parent
].val
; /* _parent on <self:ConfigNode> */
1843 RET_LABEL23
:(void)0;
1846 if (var22
== NULL
) {
1847 if(catchStack
.cursor
>= 0){
1848 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1850 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1851 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 312);
1854 var25
= ini___ini__ConfigNode___key(var22
);
1856 ((struct instance_core__NativeArray
*)var13
)->values
[0]=var25
;
1858 { /* Inline ini$ConfigNode$name (self) on <self:ConfigNode> */
1859 var28
= self
->attrs
[COLOR_ini__ConfigNode___name
].val
; /* _name on <self:ConfigNode> */
1860 if (unlikely(var28
== NULL
)) {
1861 if(catchStack
.cursor
>= 0){
1862 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1864 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1865 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 305);
1869 RET_LABEL27
:(void)0;
1872 ((struct instance_core__NativeArray
*)var13
)->values
[2]=var26
;
1874 var29
= ((val
*(*)(val
* self
))(var13
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var13
); /* native_to_s on <var13:NativeArray[String]>*/
1882 /* method ini$ConfigNode$get_child for (self: ConfigNode, String): nullable ConfigNode */
1883 val
* ini___ini__ConfigNode___get_child(val
* self
, val
* p0
) {
1884 val
* var
/* : nullable ConfigNode */;
1885 val
* var_name
/* var name: String */;
1886 val
* var1
/* : HashMap[String, ConfigNode] */;
1887 val
* var3
/* : HashMap[String, ConfigNode] */;
1888 short int var4
/* : Bool */;
1889 val
* var5
/* : HashMap[String, ConfigNode] */;
1890 val
* var7
/* : HashMap[String, ConfigNode] */;
1891 val
* var8
/* : nullable Object */;
1894 { /* Inline ini$ConfigNode$children (self) on <self:ConfigNode> */
1895 var3
= self
->attrs
[COLOR_ini__ConfigNode___children
].val
; /* _children on <self:ConfigNode> */
1896 if (unlikely(var3
== NULL
)) {
1897 if(catchStack
.cursor
>= 0){
1898 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1900 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _children");
1901 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 304);
1909 var4
= core___core__HashMap___core__abstract_collection__MapRead__has_key(var1
, var_name
);
1913 { /* Inline ini$ConfigNode$children (self) on <self:ConfigNode> */
1914 var7
= self
->attrs
[COLOR_ini__ConfigNode___children
].val
; /* _children on <self:ConfigNode> */
1915 if (unlikely(var7
== NULL
)) {
1916 if(catchStack
.cursor
>= 0){
1917 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1919 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _children");
1920 PRINT_ERROR(" (%s:%d)\n", FILE_ini
, 304);
1928 var8
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var5
, var_name
);
1939 /* method ini$ConfigNode$init for (self: ConfigNode) */
1940 void ini___ini__ConfigNode___core__kernel__Object__init(val
* self
) {
1942 ((void(*)(val
* self
))(self
->class->vft
[COLOR_ini___ini__ConfigNode___core__kernel__Object__init
]))(self
); /* init on <self:ConfigNode>*/