kaitai-struct-compiler 0.11.0-SNAPSHOT20240403.134844.751f059 → 0.11.0-SNAPSHOT20240415.175433.32227fc

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2030,6 +2030,26 @@ function $m_Lio_kaitai_struct_EncodingList$() {
2030
2030
  return $n_Lio_kaitai_struct_EncodingList$
2031
2031
  }
2032
2032
  /** @constructor */
2033
+ function $c_Lio_kaitai_struct_ExternalType() {
2034
+ /*<skip>*/
2035
+ }
2036
+ $c_Lio_kaitai_struct_ExternalType.prototype = new $h_O();
2037
+ $c_Lio_kaitai_struct_ExternalType.prototype.constructor = $c_Lio_kaitai_struct_ExternalType;
2038
+ /** @constructor */
2039
+ function $h_Lio_kaitai_struct_ExternalType() {
2040
+ /*<skip>*/
2041
+ }
2042
+ $h_Lio_kaitai_struct_ExternalType.prototype = $c_Lio_kaitai_struct_ExternalType.prototype;
2043
+ function $as_Lio_kaitai_struct_ExternalType(obj) {
2044
+ return (((obj instanceof $c_Lio_kaitai_struct_ExternalType) || (obj === null)) ? obj : $throwClassCastException(obj, "io.kaitai.struct.ExternalType"))
2045
+ }
2046
+ function $isArrayOf_Lio_kaitai_struct_ExternalType(obj, depth) {
2047
+ return (!(!(((obj && obj.$classData) && (obj.$classData.arrayDepth === depth)) && obj.$classData.arrayBase.ancestors.Lio_kaitai_struct_ExternalType)))
2048
+ }
2049
+ function $asArrayOf_Lio_kaitai_struct_ExternalType(obj, depth) {
2050
+ return (($isArrayOf_Lio_kaitai_struct_ExternalType(obj, depth) || (obj === null)) ? obj : $throwArrayCastException(obj, "Lio.kaitai.struct.ExternalType;", depth))
2051
+ }
2052
+ /** @constructor */
2033
2053
  function $c_Lio_kaitai_struct_ImportList() {
2034
2054
  this.Lio_kaitai_struct_ImportList__f_list = null;
2035
2055
  var elems = $m_sci_Nil$();
@@ -2599,40 +2619,38 @@ function $h_Lio_kaitai_struct_TypeProcessor$() {
2599
2619
  /*<skip>*/
2600
2620
  }
2601
2621
  $h_Lio_kaitai_struct_TypeProcessor$.prototype = $c_Lio_kaitai_struct_TypeProcessor$.prototype;
2602
- $c_Lio_kaitai_struct_TypeProcessor$.prototype.getOpaqueClasses__Lio_kaitai_struct_format_ClassSpec__sc_Iterable = (function(curClass) {
2622
+ $c_Lio_kaitai_struct_TypeProcessor$.prototype.getExternalTypes__Lio_kaitai_struct_format_ClassSpec__sc_Iterable = (function(curClass) {
2603
2623
  var res = $as_scm_Set($m_scm_Set$().apply__sci_Seq__O($m_sci_Nil$()));
2604
- var this$3 = $n($n(curClass).Lio_kaitai_struct_format_ClassSpec__f_seq);
2605
- var f = ((attr$2) => {
2606
- var attr = $as_Lio_kaitai_struct_format_AttrSpec(attr$2);
2624
+ var this$1 = $n($n(curClass).Lio_kaitai_struct_format_ClassSpec__f_seq);
2625
+ var these = this$1;
2626
+ while ((!$n(these).isEmpty__Z())) {
2627
+ var arg1 = $n(these).head__O();
2628
+ var attr = $as_Lio_kaitai_struct_format_AttrSpec(arg1);
2607
2629
  var this$2 = $n(res);
2608
- var xs = $m_Lio_kaitai_struct_TypeProcessor$().getOpaqueDataTypes__Lio_kaitai_struct_datatype_DataType__sc_Iterable($n(attr).Lio_kaitai_struct_format_AttrSpec__f_dataType);
2609
- return this$2.addAll__sc_IterableOnce__scm_HashSet(xs)
2610
- });
2611
- if ((this$3 === $m_sci_Nil$())) {
2612
- $m_sci_Nil$()
2613
- } else {
2614
- var arg1 = this$3.head__O();
2615
- var h = new $c_sci_$colon$colon(f(arg1), $m_sci_Nil$());
2616
- var t = h;
2617
- var rest = $as_sci_List(this$3.tail__O());
2618
- while ((rest !== $m_sci_Nil$())) {
2619
- var arg1$1 = $n(rest).head__O();
2620
- var nx = new $c_sci_$colon$colon(f(arg1$1), $m_sci_Nil$());
2621
- $n(t).sci_$colon$colon__f_next = nx;
2622
- t = nx;
2623
- rest = $as_sci_List($n(rest).tail__O())
2624
- }
2630
+ var xs = $m_Lio_kaitai_struct_TypeProcessor$().getExternalTypesFromDataType__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_format_ClassSpec__sc_Iterable($n(attr).Lio_kaitai_struct_format_AttrSpec__f_dataType, curClass);
2631
+ this$2.addAll__sc_IterableOnce__scm_HashSet(xs);
2632
+ these = $as_sci_List($n(these).tail__O())
2625
2633
  };
2626
- var this$5 = $n($n(curClass).Lio_kaitai_struct_format_ClassSpec__f_instances);
2627
- var f$1 = new $c_sjsr_AnonFunction1(((x0$1$2) => {
2634
+ var this$3 = $n($n(curClass).Lio_kaitai_struct_format_ClassSpec__f_params);
2635
+ var these$1 = this$3;
2636
+ while ((!$n(these$1).isEmpty__Z())) {
2637
+ var arg1$1 = $n(these$1).head__O();
2638
+ var param = $as_Lio_kaitai_struct_format_ParamDefSpec(arg1$1);
2639
+ var this$4 = $n(res);
2640
+ var xs$1 = $m_Lio_kaitai_struct_TypeProcessor$().getExternalTypesFromDataType__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_format_ClassSpec__sc_Iterable($n(param).Lio_kaitai_struct_format_ParamDefSpec__f_dataType, curClass);
2641
+ this$4.addAll__sc_IterableOnce__scm_HashSet(xs$1);
2642
+ these$1 = $as_sci_List($n(these$1).tail__O())
2643
+ };
2644
+ var this$6 = $n($n(curClass).Lio_kaitai_struct_format_ClassSpec__f_instances);
2645
+ var f = new $c_sjsr_AnonFunction1(((x0$1$2) => {
2628
2646
  var x0$1 = $as_T2(x0$1$2);
2629
2647
  if ((x0$1 !== null)) {
2630
2648
  var inst = $as_Lio_kaitai_struct_format_InstanceSpec($n(x0$1).T2__f__2);
2631
2649
  if ((inst instanceof $c_Lio_kaitai_struct_format_ParseInstanceSpec)) {
2632
2650
  var x2 = $as_Lio_kaitai_struct_format_ParseInstanceSpec(inst);
2633
- var this$4 = $n(res);
2634
- var xs$1 = $m_Lio_kaitai_struct_TypeProcessor$().getOpaqueDataTypes__Lio_kaitai_struct_datatype_DataType__sc_Iterable($n(x2).Lio_kaitai_struct_format_ParseInstanceSpec__f_dataType);
2635
- return this$4.addAll__sc_IterableOnce__scm_HashSet(xs$1)
2651
+ var this$5 = $n(res);
2652
+ var xs$2 = $m_Lio_kaitai_struct_TypeProcessor$().getExternalTypesFromDataType__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_format_ClassSpec__sc_Iterable($n(x2).Lio_kaitai_struct_format_ParseInstanceSpec__f_dataType, curClass);
2653
+ return this$5.addAll__sc_IterableOnce__scm_HashSet(xs$2)
2636
2654
  } else {
2637
2655
  return $m_s_None$()
2638
2656
  }
@@ -2640,57 +2658,73 @@ $c_Lio_kaitai_struct_TypeProcessor$.prototype.getOpaqueClasses__Lio_kaitai_struc
2640
2658
  throw new $c_s_MatchError(x0$1)
2641
2659
  }
2642
2660
  }));
2643
- $m_sci_RedBlackTree$().foreach__sci_RedBlackTree$Tree__F1__V(this$5.sci_TreeMap__f_tree, f$1);
2644
- var this$7 = $n($n(curClass).Lio_kaitai_struct_format_ClassSpec__f_types);
2645
- var f$2 = new $c_sjsr_AnonFunction1(((x0$2$2) => {
2661
+ $m_sci_RedBlackTree$().foreach__sci_RedBlackTree$Tree__F1__V(this$6.sci_TreeMap__f_tree, f);
2662
+ var this$8 = $n($n(curClass).Lio_kaitai_struct_format_ClassSpec__f_types);
2663
+ var f$1 = new $c_sjsr_AnonFunction1(((x0$2$2) => {
2646
2664
  var x0$2 = $as_T2(x0$2$2);
2647
2665
  if ((x0$2 !== null)) {
2648
2666
  var nestedType = $as_Lio_kaitai_struct_format_ClassSpec($n(x0$2).T2__f__2);
2649
- var this$6 = $n(res);
2650
- var xs$2 = $m_Lio_kaitai_struct_TypeProcessor$().getOpaqueClasses__Lio_kaitai_struct_format_ClassSpec__sc_Iterable(nestedType);
2651
- return this$6.addAll__sc_IterableOnce__scm_HashSet(xs$2)
2667
+ var this$7 = $n(res);
2668
+ var xs$3 = $m_Lio_kaitai_struct_TypeProcessor$().getExternalTypes__Lio_kaitai_struct_format_ClassSpec__sc_Iterable(nestedType);
2669
+ return this$7.addAll__sc_IterableOnce__scm_HashSet(xs$3)
2652
2670
  } else {
2653
2671
  throw new $c_s_MatchError(x0$2)
2654
2672
  }
2655
2673
  }));
2656
- $m_sci_RedBlackTree$().foreach__sci_RedBlackTree$Tree__F1__V(this$7.sci_TreeMap__f_tree, f$2);
2674
+ $m_sci_RedBlackTree$().foreach__sci_RedBlackTree$Tree__F1__V(this$8.sci_TreeMap__f_tree, f$1);
2657
2675
  return res
2658
2676
  });
2659
- $c_Lio_kaitai_struct_TypeProcessor$.prototype.getOpaqueDataTypes__Lio_kaitai_struct_datatype_DataType__sc_Iterable = (function(dataType) {
2660
- if ((dataType instanceof $c_Lio_kaitai_struct_datatype_DataType$UserType)) {
2661
- var x2 = $as_Lio_kaitai_struct_datatype_DataType$UserType(dataType);
2662
- if ($n(x2).isOpaque__Z()) {
2663
- $n($m_s_package$().s_package$__f_List);
2664
- var array = [$as_Lio_kaitai_struct_format_ClassSpec($n($n(x2).Lio_kaitai_struct_datatype_DataType$UserType__f_classSpec).get__O())];
2665
- var elems = $ct_sjsr_WrappedVarArgs__sjs_js_Array__(new $c_sjsr_WrappedVarArgs(), array);
2666
- return $m_sci_Nil$().prependedAll__sc_IterableOnce__sci_List(elems)
2677
+ $c_Lio_kaitai_struct_TypeProcessor$.prototype.getExternalTypesFromDataType__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_format_ClassSpec__sc_Iterable = (function(dataType, curClass) {
2678
+ while (true) {
2679
+ var x1 = dataType;
2680
+ if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$UserType)) {
2681
+ var x2 = $as_Lio_kaitai_struct_datatype_DataType$UserType(x1);
2682
+ if ($n(x2).isExternal__Lio_kaitai_struct_format_ClassSpec__Z(curClass)) {
2683
+ $n($m_s_package$().s_package$__f_List);
2684
+ var array = [new $c_Lio_kaitai_struct_ExternalUserType($as_Lio_kaitai_struct_format_ClassSpec($n($n(x2).Lio_kaitai_struct_datatype_DataType$UserType__f_classSpec).get__O()))];
2685
+ var elems = $ct_sjsr_WrappedVarArgs__sjs_js_Array__(new $c_sjsr_WrappedVarArgs(), array);
2686
+ return $m_sci_Nil$().prependedAll__sc_IterableOnce__sci_List(elems)
2687
+ } else {
2688
+ return $m_sci_Nil$()
2689
+ }
2690
+ } else if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$EnumType)) {
2691
+ var x3 = $as_Lio_kaitai_struct_datatype_DataType$EnumType(x1);
2692
+ if ($n(x3).isExternal__Lio_kaitai_struct_format_ClassSpec__Z(curClass)) {
2693
+ $n($m_s_package$().s_package$__f_List);
2694
+ var array$1 = [new $c_Lio_kaitai_struct_ExternalEnum($as_Lio_kaitai_struct_format_EnumSpec($n($n(x3).Lio_kaitai_struct_datatype_DataType$EnumType__f_enumSpec).get__O()))];
2695
+ var elems$1 = $ct_sjsr_WrappedVarArgs__sjs_js_Array__(new $c_sjsr_WrappedVarArgs(), array$1);
2696
+ return $m_sci_Nil$().prependedAll__sc_IterableOnce__sci_List(elems$1)
2697
+ } else {
2698
+ return $m_sci_Nil$()
2699
+ }
2700
+ } else if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$SwitchType)) {
2701
+ var x4 = $as_Lio_kaitai_struct_datatype_DataType$SwitchType(x1);
2702
+ var this$9 = $n($n(x4).Lio_kaitai_struct_datatype_DataType$SwitchType__f_cases);
2703
+ var b = $m_sci_Iterable$().newBuilder__scm_Builder();
2704
+ $m_sci_RedBlackTree$();
2705
+ var tree = this$9.sci_TreeMap__f_tree;
2706
+ $m_sci_RedBlackTree$();
2707
+ var start = $m_s_None$();
2708
+ var evidence$16 = this$9.sci_TreeMap__f_ordering;
2709
+ var it = new $c_sci_RedBlackTree$EntriesIterator(tree, start, evidence$16);
2710
+ while (it.hasNext__Z()) {
2711
+ var this$12 = $n(b);
2712
+ var arg1 = it.next__O();
2713
+ var x0$1 = $as_T2(arg1);
2714
+ if ((x0$1 === null)) {
2715
+ throw new $c_s_MatchError(x0$1)
2716
+ };
2717
+ var ut = $as_Lio_kaitai_struct_datatype_DataType($n(x0$1).T2__f__2);
2718
+ var xs = $m_Lio_kaitai_struct_TypeProcessor$().getExternalTypesFromDataType__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_format_ClassSpec__sc_Iterable(ut, curClass);
2719
+ this$12.addAll__sc_IterableOnce__scm_Growable(xs)
2720
+ };
2721
+ return $as_sc_Iterable($n(b).result__O())
2722
+ } else if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$ArrayType)) {
2723
+ var x5 = $as_Lio_kaitai_struct_datatype_DataType$ArrayType(x1);
2724
+ dataType = $n(x5).Lio_kaitai_struct_datatype_DataType$ArrayType__f_elType
2667
2725
  } else {
2668
2726
  return $m_sci_Nil$()
2669
2727
  }
2670
- } else if ((dataType instanceof $c_Lio_kaitai_struct_datatype_DataType$SwitchType)) {
2671
- var x3 = $as_Lio_kaitai_struct_datatype_DataType$SwitchType(dataType);
2672
- var this$5 = $n($n(x3).Lio_kaitai_struct_datatype_DataType$SwitchType__f_cases);
2673
- var b = $m_sci_Iterable$().newBuilder__scm_Builder();
2674
- $m_sci_RedBlackTree$();
2675
- var tree = this$5.sci_TreeMap__f_tree;
2676
- $m_sci_RedBlackTree$();
2677
- var start = $m_s_None$();
2678
- var evidence$16 = this$5.sci_TreeMap__f_ordering;
2679
- var it = new $c_sci_RedBlackTree$EntriesIterator(tree, start, evidence$16);
2680
- while (it.hasNext__Z()) {
2681
- var this$8 = $n(b);
2682
- var arg1 = it.next__O();
2683
- var x0$1 = $as_T2(arg1);
2684
- if ((x0$1 === null)) {
2685
- throw new $c_s_MatchError(x0$1)
2686
- };
2687
- var ut = $as_Lio_kaitai_struct_datatype_DataType($n(x0$1).T2__f__2);
2688
- var xs = $m_Lio_kaitai_struct_TypeProcessor$().getOpaqueDataTypes__Lio_kaitai_struct_datatype_DataType__sc_Iterable(ut);
2689
- this$8.addAll__sc_IterableOnce__scm_Growable(xs)
2690
- };
2691
- return $as_sc_Iterable($n(b).result__O())
2692
- } else {
2693
- return $m_sci_Nil$()
2694
2728
  }
2695
2729
  });
2696
2730
  var $d_Lio_kaitai_struct_TypeProcessor$ = new $TypeData().initClass({
@@ -3010,8 +3044,8 @@ function $m_Lio_kaitai_struct_Utils$() {
3010
3044
  function $c_Lio_kaitai_struct_Version$() {
3011
3045
  this.Lio_kaitai_struct_Version$__f_version = null;
3012
3046
  this.Lio_kaitai_struct_Version$__f_gitTime = null;
3013
- this.Lio_kaitai_struct_Version$__f_version = "0.11-SNAPSHOT20240403.134844.751f059";
3014
- this.Lio_kaitai_struct_Version$__f_gitTime = "2024-04-03T13:48:44+00:00"
3047
+ this.Lio_kaitai_struct_Version$__f_version = "0.11-SNAPSHOT20240415.175433.32227fc";
3048
+ this.Lio_kaitai_struct_Version$__f_gitTime = "2024-04-15T17:54:33+00:00"
3015
3049
  }
3016
3050
  $c_Lio_kaitai_struct_Version$.prototype = new $h_O();
3017
3051
  $c_Lio_kaitai_struct_Version$.prototype.constructor = $c_Lio_kaitai_struct_Version$;
@@ -20324,10 +20358,9 @@ $c_Lio_kaitai_struct_translators_TypeDetector.prototype.detectTypeRaw__Lio_kaita
20324
20358
  var x11 = $as_Lio_kaitai_struct_exprlang_Ast$expr$EnumByLabel(v);
20325
20359
  var enumType = $n(x11).Lio_kaitai_struct_exprlang_Ast$expr$EnumByLabel__f_enumName;
20326
20360
  var inType = $n(x11).Lio_kaitai_struct_exprlang_Ast$expr$EnumByLabel__f_inType;
20327
- $n($m_s_package$().s_package$__f_List);
20328
- var array = [$n(enumType).Lio_kaitai_struct_exprlang_Ast$identifier__f_name];
20329
- var elems = $ct_sjsr_WrappedVarArgs__sjs_js_Array__(new $c_sjsr_WrappedVarArgs(), array);
20330
- var t = new $c_Lio_kaitai_struct_datatype_DataType$EnumType($m_sci_Nil$().prependedAll__sc_IterableOnce__sci_List(elems), $m_Lio_kaitai_struct_datatype_DataType$CalcIntType$());
20361
+ var this$7 = $n($n($n(inType).Lio_kaitai_struct_exprlang_Ast$typeId__f_names).toList__sci_List());
20362
+ var elem = $n(enumType).Lio_kaitai_struct_exprlang_Ast$identifier__f_name;
20363
+ var t = new $c_Lio_kaitai_struct_datatype_DataType$EnumType($as_sci_List($f_sc_StrictOptimizedSeqOps__appended__O__O(this$7, elem)), $m_Lio_kaitai_struct_datatype_DataType$CalcIntType$());
20331
20364
  t.Lio_kaitai_struct_datatype_DataType$EnumType__f_enumSpec = new $c_s_Some($n(this.Lio_kaitai_struct_translators_TypeDetector__f_provider).resolveEnum__Lio_kaitai_struct_exprlang_Ast$typeId__T__Lio_kaitai_struct_format_EnumSpec(inType, $n(enumType).Lio_kaitai_struct_exprlang_Ast$identifier__f_name));
20332
20365
  return t
20333
20366
  };
@@ -20336,9 +20369,9 @@ $c_Lio_kaitai_struct_translators_TypeDetector.prototype.detectTypeRaw__Lio_kaita
20336
20369
  var enumType$2 = $n(x13).Lio_kaitai_struct_exprlang_Ast$expr$EnumById__f_enumName;
20337
20370
  var inType$2 = $n(x13).Lio_kaitai_struct_exprlang_Ast$expr$EnumById__f_inType;
20338
20371
  $n($m_s_package$().s_package$__f_List);
20339
- var array$1 = [$n(enumType$2).Lio_kaitai_struct_exprlang_Ast$identifier__f_name];
20340
- var elems$1 = $ct_sjsr_WrappedVarArgs__sjs_js_Array__(new $c_sjsr_WrappedVarArgs(), array$1);
20341
- var t$2 = new $c_Lio_kaitai_struct_datatype_DataType$EnumType($m_sci_Nil$().prependedAll__sc_IterableOnce__sci_List(elems$1), $m_Lio_kaitai_struct_datatype_DataType$CalcIntType$());
20372
+ var array = [$n(enumType$2).Lio_kaitai_struct_exprlang_Ast$identifier__f_name];
20373
+ var elems = $ct_sjsr_WrappedVarArgs__sjs_js_Array__(new $c_sjsr_WrappedVarArgs(), array);
20374
+ var t$2 = new $c_Lio_kaitai_struct_datatype_DataType$EnumType($m_sci_Nil$().prependedAll__sc_IterableOnce__sci_List(elems), $m_Lio_kaitai_struct_datatype_DataType$CalcIntType$());
20342
20375
  t$2.Lio_kaitai_struct_datatype_DataType$EnumType__f_enumSpec = new $c_s_Some($n(this.Lio_kaitai_struct_translators_TypeDetector__f_provider).resolveEnum__Lio_kaitai_struct_exprlang_Ast$typeId__T__Lio_kaitai_struct_format_EnumSpec(inType$2, $n(enumType$2).Lio_kaitai_struct_exprlang_Ast$identifier__f_name));
20343
20376
  return t$2
20344
20377
  };
@@ -20346,9 +20379,9 @@ $c_Lio_kaitai_struct_translators_TypeDetector.prototype.detectTypeRaw__Lio_kaita
20346
20379
  var x15 = $as_Lio_kaitai_struct_exprlang_Ast$expr$Name(v);
20347
20380
  var name = $n(x15).Lio_kaitai_struct_exprlang_Ast$expr$Name__f_id;
20348
20381
  if ((name !== null)) {
20349
- var this$15 = $n(this.Lio_kaitai_struct_translators_TypeDetector__f_provider);
20382
+ var this$12 = $n(this.Lio_kaitai_struct_translators_TypeDetector__f_provider);
20350
20383
  var attrName = $n(name).Lio_kaitai_struct_exprlang_Ast$identifier__f_name;
20351
- var qual$1 = this$15.determineType__Lio_kaitai_struct_format_ClassSpec__T__Lio_kaitai_struct_datatype_DataType(this$15.Lio_kaitai_struct_ClassTypeProvider__f_nowClass, attrName);
20384
+ var qual$1 = this$12.determineType__Lio_kaitai_struct_format_ClassSpec__T__Lio_kaitai_struct_datatype_DataType(this$12.Lio_kaitai_struct_ClassTypeProvider__f_nowClass, attrName);
20352
20385
  var x$1 = $n(qual$1).asNonOwning$default$1__Z();
20353
20386
  return $n(qual$1).asNonOwning__Z__Lio_kaitai_struct_datatype_DataType(x$1)
20354
20387
  }
@@ -20356,8 +20389,8 @@ $c_Lio_kaitai_struct_translators_TypeDetector.prototype.detectTypeRaw__Lio_kaita
20356
20389
  if ((v instanceof $c_Lio_kaitai_struct_exprlang_Ast$expr$InternalName)) {
20357
20390
  var x17 = $as_Lio_kaitai_struct_exprlang_Ast$expr$InternalName(v);
20358
20391
  var id = $n(x17).Lio_kaitai_struct_exprlang_Ast$expr$InternalName__f_id;
20359
- var this$16 = $n(this.Lio_kaitai_struct_translators_TypeDetector__f_provider);
20360
- return this$16.determineType__Lio_kaitai_struct_format_ClassSpec__Lio_kaitai_struct_format_Identifier__Lio_kaitai_struct_datatype_DataType(this$16.Lio_kaitai_struct_ClassTypeProvider__f_nowClass, id)
20392
+ var this$13 = $n(this.Lio_kaitai_struct_translators_TypeDetector__f_provider);
20393
+ return this$13.determineType__Lio_kaitai_struct_format_ClassSpec__Lio_kaitai_struct_format_Identifier__Lio_kaitai_struct_datatype_DataType(this$13.Lio_kaitai_struct_ClassTypeProvider__f_nowClass, id)
20361
20394
  };
20362
20395
  if ((v instanceof $c_Lio_kaitai_struct_exprlang_Ast$expr$UnaryOp)) {
20363
20396
  var x18 = $as_Lio_kaitai_struct_exprlang_Ast$expr$UnaryOp(v);
@@ -20513,8 +20546,8 @@ $c_Lio_kaitai_struct_translators_TypeDetector.prototype.detectTypeRaw__Lio_kaita
20513
20546
  var x1$5 = this.detectType__Lio_kaitai_struct_exprlang_Ast$expr__Lio_kaitai_struct_datatype_DataType(container);
20514
20547
  if ((x1$5 instanceof $c_Lio_kaitai_struct_datatype_DataType$ArrayTypeInStream)) {
20515
20548
  var x2$2 = $as_Lio_kaitai_struct_datatype_DataType$ArrayTypeInStream(x1$5);
20516
- var this$18 = $n(x2$2);
20517
- var elType = this$18.Lio_kaitai_struct_datatype_DataType$ArrayType__f_elType;
20549
+ var this$15 = $n(x2$2);
20550
+ var elType = this$15.Lio_kaitai_struct_datatype_DataType$ArrayType__f_elType;
20518
20551
  if ((elType !== null)) {
20519
20552
  var x1$6 = this.detectType__Lio_kaitai_struct_exprlang_Ast$expr__Lio_kaitai_struct_datatype_DataType(idx);
20520
20553
  if ((x1$6 instanceof $c_Lio_kaitai_struct_datatype_DataType$IntType)) {
@@ -20533,8 +20566,8 @@ $c_Lio_kaitai_struct_translators_TypeDetector.prototype.detectTypeRaw__Lio_kaita
20533
20566
  };
20534
20567
  if ((x1$5 instanceof $c_Lio_kaitai_struct_datatype_DataType$CalcArrayType)) {
20535
20568
  var x4$2 = $as_Lio_kaitai_struct_datatype_DataType$CalcArrayType(x1$5);
20536
- var this$19 = $n(x4$2);
20537
- var elType$2 = this$19.Lio_kaitai_struct_datatype_DataType$ArrayType__f_elType;
20569
+ var this$16 = $n(x4$2);
20570
+ var elType$2 = this$16.Lio_kaitai_struct_datatype_DataType$ArrayType__f_elType;
20538
20571
  if ((elType$2 !== null)) {
20539
20572
  var x1$8 = this.detectType__Lio_kaitai_struct_exprlang_Ast$expr__Lio_kaitai_struct_datatype_DataType(idx);
20540
20573
  if ((x1$8 instanceof $c_Lio_kaitai_struct_datatype_DataType$IntType)) {
@@ -33672,7 +33705,7 @@ $c_Lio_kaitai_struct_ClassCompiler.prototype.topClass__Lio_kaitai_struct_format_
33672
33705
  });
33673
33706
  $c_Lio_kaitai_struct_ClassCompiler.prototype.compile__Lio_kaitai_struct_CompileLog$SpecSuccess = (function() {
33674
33707
  $n(this.Lio_kaitai_struct_ClassCompiler__f_lang).fileHeader__T__V($as_T($n(this.Lio_kaitai_struct_ClassCompiler__f_topClassName).head__O()));
33675
- this.compileOpaqueClasses__Lio_kaitai_struct_format_ClassSpec__V(this.topClass__Lio_kaitai_struct_format_ClassSpec());
33708
+ this.compileExternalTypes__Lio_kaitai_struct_format_ClassSpec__V(this.topClass__Lio_kaitai_struct_format_ClassSpec());
33676
33709
  this.compileClass__Lio_kaitai_struct_format_ClassSpec__V(this.topClass__Lio_kaitai_struct_format_ClassSpec());
33677
33710
  $n(this.Lio_kaitai_struct_ClassCompiler__f_lang).fileFooter__T__V($as_T($n(this.Lio_kaitai_struct_ClassCompiler__f_topClassName).head__O()));
33678
33711
  return new $c_Lio_kaitai_struct_CompileLog$SpecSuccess($n(this.Lio_kaitai_struct_ClassCompiler__f_lang).type2class__T__T($as_T($n(this.Lio_kaitai_struct_ClassCompiler__f_topClassName).head__O())), $n($as_sc_IterableOnceOps($n($n(this.Lio_kaitai_struct_ClassCompiler__f_lang).results__Lio_kaitai_struct_format_ClassSpec__sci_Map(this.topClass__Lio_kaitai_struct_format_ClassSpec())).map__F1__O(new $c_sjsr_AnonFunction1(((x0$1$2) => {
@@ -33686,24 +33719,14 @@ $c_Lio_kaitai_struct_ClassCompiler.prototype.compile__Lio_kaitai_struct_CompileL
33686
33719
  }
33687
33720
  }))))).toList__sci_List())
33688
33721
  });
33689
- $c_Lio_kaitai_struct_ClassCompiler.prototype.compileOpaqueClasses__Lio_kaitai_struct_format_ClassSpec__V = (function(topClass) {
33690
- $n($m_Lio_kaitai_struct_TypeProcessor$().getOpaqueClasses__Lio_kaitai_struct_format_ClassSpec__sc_Iterable(topClass)).foreach__F1__V(new $c_sjsr_AnonFunction1(((classSpec$2) => {
33691
- var classSpec = $as_Lio_kaitai_struct_format_ClassSpec(classSpec$2);
33692
- if ((!((classSpec === null) ? (topClass === null) : $n(classSpec).equals__O__Z(topClass)))) {
33693
- $n(this.Lio_kaitai_struct_ClassCompiler__f_lang).opaqueClassDeclaration__Lio_kaitai_struct_format_ClassSpec__V(classSpec)
33694
- }
33722
+ $c_Lio_kaitai_struct_ClassCompiler.prototype.compileExternalTypes__Lio_kaitai_struct_format_ClassSpec__V = (function(topClass) {
33723
+ $n($m_Lio_kaitai_struct_TypeProcessor$().getExternalTypes__Lio_kaitai_struct_format_ClassSpec__sc_Iterable(topClass)).foreach__F1__V(new $c_sjsr_AnonFunction1(((extType$2) => {
33724
+ var extType = $as_Lio_kaitai_struct_ExternalType(extType$2);
33725
+ $n(this.Lio_kaitai_struct_ClassCompiler__f_lang).externalTypeDeclaration__Lio_kaitai_struct_ExternalType__V(extType)
33695
33726
  })))
33696
33727
  });
33697
33728
  $c_Lio_kaitai_struct_ClassCompiler.prototype.compileClass__Lio_kaitai_struct_format_ClassSpec__V = (function(curClass) {
33698
33729
  $n(this.Lio_kaitai_struct_ClassCompiler__f_provider).Lio_kaitai_struct_ClassTypeProvider__f_nowClass = curClass;
33699
- var this$1 = $n($n($n(curClass).Lio_kaitai_struct_format_ClassSpec__f_meta).Lio_kaitai_struct_format_MetaSpec__f_imports);
33700
- var these = this$1;
33701
- while ((!$n(these).isEmpty__Z())) {
33702
- var arg1 = $n(these).head__O();
33703
- var file = $as_T(arg1);
33704
- $n(this.Lio_kaitai_struct_ClassCompiler__f_lang).importFile__T__V(file);
33705
- these = $as_sci_List($n(these).tail__O())
33706
- };
33707
33730
  if ((!$n(this.Lio_kaitai_struct_ClassCompiler__f_lang).innerDocstrings__Z())) {
33708
33731
  this.compileClassDoc__Lio_kaitai_struct_format_ClassSpec__V(curClass)
33709
33732
  };
@@ -33711,7 +33734,7 @@ $c_Lio_kaitai_struct_ClassCompiler.prototype.compileClass__Lio_kaitai_struct_for
33711
33734
  if ($n(this.Lio_kaitai_struct_ClassCompiler__f_lang).innerDocstrings__Z()) {
33712
33735
  this.compileClassDoc__Lio_kaitai_struct_format_ClassSpec__V(curClass)
33713
33736
  };
33714
- var this$7 = $n($n(curClass).Lio_kaitai_struct_format_ClassSpec__f_types);
33737
+ var this$6 = $n($n(curClass).Lio_kaitai_struct_format_ClassSpec__f_types);
33715
33738
  var f = new $c_sjsr_AnonFunction1(((x0$1$2) => {
33716
33739
  var x0$1 = $as_T2(x0$1$2);
33717
33740
  if ((x0$1 !== null)) {
@@ -33725,22 +33748,7 @@ $c_Lio_kaitai_struct_ClassCompiler.prototype.compileClass__Lio_kaitai_struct_for
33725
33748
  throw new $c_s_MatchError(x0$1)
33726
33749
  }
33727
33750
  }));
33728
- $m_sci_RedBlackTree$().foreach__sci_RedBlackTree$Tree__F1__V(this$7.sci_TreeMap__f_tree, f);
33729
- var this$8 = $n($n(curClass).Lio_kaitai_struct_format_ClassSpec__f_params);
33730
- var these$1 = this$8;
33731
- while ((!$n(these$1).isEmpty__Z())) {
33732
- var arg1$1 = $n(these$1).head__O();
33733
- var paramDefSpec = $as_Lio_kaitai_struct_format_ParamDefSpec(arg1$1);
33734
- var x1 = $n(paramDefSpec).Lio_kaitai_struct_format_ParamDefSpec__f_dataType;
33735
- if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$UserType)) {
33736
- var x2 = $as_Lio_kaitai_struct_datatype_DataType$UserType(x1);
33737
- if ($n(x2).isExternal__Lio_kaitai_struct_format_ClassSpec__Z(curClass)) {
33738
- var externalTypeName = $n($as_Lio_kaitai_struct_format_ClassSpec($n($n(x2).Lio_kaitai_struct_datatype_DataType$UserType__f_classSpec).get__O())).Lio_kaitai_struct_format_ClassSpec__f_name;
33739
- $n(this.Lio_kaitai_struct_ClassCompiler__f_lang).classForwardDeclaration__sci_List__V(externalTypeName)
33740
- }
33741
- };
33742
- these$1 = $as_sci_List($n(these$1).tail__O())
33743
- };
33751
+ $m_sci_RedBlackTree$().foreach__sci_RedBlackTree$Tree__F1__V(this$6.sci_TreeMap__f_tree, f);
33744
33752
  if ($n(this.Lio_kaitai_struct_ClassCompiler__f_lang).innerEnums__Z()) {
33745
33753
  this.compileEnums__Lio_kaitai_struct_format_ClassSpec__V(curClass)
33746
33754
  };
@@ -33755,26 +33763,26 @@ $c_Lio_kaitai_struct_ClassCompiler.prototype.compileClass__Lio_kaitai_struct_for
33755
33763
  $n(this.Lio_kaitai_struct_ClassCompiler__f_provider).Lio_kaitai_struct_ClassTypeProvider__f_nowClass = curClass
33756
33764
  };
33757
33765
  this.compileInstances__Lio_kaitai_struct_format_ClassSpec__V(curClass);
33758
- var this$9 = $n($n(curClass).Lio_kaitai_struct_format_ClassSpec__f_seq);
33766
+ var this$7 = $n($n(curClass).Lio_kaitai_struct_format_ClassSpec__f_seq);
33759
33767
  var suffix = $n(curClass).Lio_kaitai_struct_format_ClassSpec__f_params;
33760
- var this$22 = $n(this$9.appendedAll__sc_IterableOnce__sci_List(suffix));
33768
+ var this$20 = $n(this$7.appendedAll__sc_IterableOnce__sci_List(suffix));
33761
33769
  $n($m_s_package$().s_package$__f_List);
33762
33770
  var $$x4 = new $c_Lio_kaitai_struct_format_AttrSpec($m_sci_Nil$(), $m_Lio_kaitai_struct_format_RootIdentifier$(), new $c_Lio_kaitai_struct_datatype_DataType$CalcUserType(this.Lio_kaitai_struct_ClassCompiler__f_topClassName, $m_s_None$(), $as_sci_Seq($n($m_s_package$().s_package$__f_Seq).apply__sci_Seq__sc_SeqOps($m_sci_Nil$())), false), ($m_Lio_kaitai_struct_format_AttrSpec$(), new $c_Lio_kaitai_struct_format_ConditionalSpec($m_s_None$(), $m_Lio_kaitai_struct_format_NoRepeat$())), ($m_Lio_kaitai_struct_format_AttrSpec$(), $m_s_None$()), ($m_Lio_kaitai_struct_format_AttrSpec$(), $m_Lio_kaitai_struct_format_DocSpec$().Lio_kaitai_struct_format_DocSpec$__f_EMPTY));
33763
33771
  var $$x3 = $m_sci_Nil$();
33764
33772
  var $$x2 = $m_Lio_kaitai_struct_format_ParentIdentifier$();
33765
- var this$14 = $n(curClass);
33766
- var array$1 = [$$x4, new $c_Lio_kaitai_struct_format_AttrSpec($$x3, $$x2, $n(this$14.Lio_kaitai_struct_format_ClassSpec__f_parentClass).toDataType__Lio_kaitai_struct_datatype_DataType(), ($m_Lio_kaitai_struct_format_AttrSpec$(), new $c_Lio_kaitai_struct_format_ConditionalSpec($m_s_None$(), $m_Lio_kaitai_struct_format_NoRepeat$())), ($m_Lio_kaitai_struct_format_AttrSpec$(), $m_s_None$()), ($m_Lio_kaitai_struct_format_AttrSpec$(), $m_Lio_kaitai_struct_format_DocSpec$().Lio_kaitai_struct_format_DocSpec$__f_EMPTY))];
33773
+ var this$12 = $n(curClass);
33774
+ var array$1 = [$$x4, new $c_Lio_kaitai_struct_format_AttrSpec($$x3, $$x2, $n(this$12.Lio_kaitai_struct_format_ClassSpec__f_parentClass).toDataType__Lio_kaitai_struct_datatype_DataType(), ($m_Lio_kaitai_struct_format_AttrSpec$(), new $c_Lio_kaitai_struct_format_ConditionalSpec($m_s_None$(), $m_Lio_kaitai_struct_format_NoRepeat$())), ($m_Lio_kaitai_struct_format_AttrSpec$(), $m_s_None$()), ($m_Lio_kaitai_struct_format_AttrSpec$(), $m_Lio_kaitai_struct_format_DocSpec$().Lio_kaitai_struct_format_DocSpec$__f_EMPTY))];
33767
33775
  var elems$1 = $ct_sjsr_WrappedVarArgs__sjs_js_Array__(new $c_sjsr_WrappedVarArgs(), array$1);
33768
33776
  var suffix$1 = $m_sci_Nil$().prependedAll__sc_IterableOnce__sci_List(elems$1);
33769
- var this$23 = $n(this$22.appendedAll__sc_IterableOnce__sci_List(suffix$1));
33777
+ var this$21 = $n(this$20.appendedAll__sc_IterableOnce__sci_List(suffix$1));
33770
33778
  var suffix$2 = $m_Lio_kaitai_struct_languages_components_ExtraAttrs$().forClassSpec__Lio_kaitai_struct_format_ClassSpec__Lio_kaitai_struct_languages_components_ExtraAttrs__sci_List(curClass, this.Lio_kaitai_struct_ClassCompiler__f_lang);
33771
- var allAttrs = this$23.appendedAll__sc_IterableOnce__sci_List(suffix$2);
33779
+ var allAttrs = this$21.appendedAll__sc_IterableOnce__sci_List(suffix$2);
33772
33780
  this.compileAttrDeclarations__sci_List__V(allAttrs);
33773
33781
  this.compileAttrReaders__sci_List__V(allAttrs);
33774
- var this$24 = $n($n(curClass).Lio_kaitai_struct_format_ClassSpec__f_toStringExpr);
33775
- if ((!this$24.isEmpty__Z())) {
33776
- var arg1$2 = this$24.get__O();
33777
- var expr = $as_Lio_kaitai_struct_exprlang_Ast$expr(arg1$2);
33782
+ var this$22 = $n($n(curClass).Lio_kaitai_struct_format_ClassSpec__f_toStringExpr);
33783
+ if ((!this$22.isEmpty__Z())) {
33784
+ var arg1 = this$22.get__O();
33785
+ var expr = $as_Lio_kaitai_struct_exprlang_Ast$expr(arg1);
33778
33786
  $n(this.Lio_kaitai_struct_ClassCompiler__f_lang).classToString__Lio_kaitai_struct_exprlang_Ast$expr__V(expr)
33779
33787
  };
33780
33788
  $n(this.Lio_kaitai_struct_ClassCompiler__f_lang).classFooter__sci_List__V($n(curClass).Lio_kaitai_struct_format_ClassSpec__f_name);
@@ -43551,8 +43559,7 @@ $c_Lio_kaitai_struct_NimClassCompiler.prototype.compile__Lio_kaitai_struct_Compi
43551
43559
  var $$x1 = $n(this.Lio_kaitai_struct_ClassCompiler__f_lang);
43552
43560
  var theClass = this.Lio_kaitai_struct_ClassCompiler__f_topClass;
43553
43561
  $n($$x1).fileHeader__T__V($n(this.Lio_kaitai_struct_NimClassCompiler__f_nimlang).namespaced__sci_List__T($n(theClass).Lio_kaitai_struct_format_ClassSpec__f_name));
43554
- this.compileOpaqueClasses__Lio_kaitai_struct_format_ClassSpec__V(this.Lio_kaitai_struct_ClassCompiler__f_topClass);
43555
- this.compileImports__Lio_kaitai_struct_format_ClassSpec__V(this.Lio_kaitai_struct_ClassCompiler__f_topClass);
43562
+ this.compileExternalTypes__Lio_kaitai_struct_format_ClassSpec__V(this.Lio_kaitai_struct_ClassCompiler__f_topClass);
43556
43563
  $n(this.Lio_kaitai_struct_NimClassCompiler__f_nimlang).typeSectionHeader__V();
43557
43564
  this.compileTypes__Lio_kaitai_struct_format_ClassSpec__V(this.Lio_kaitai_struct_ClassCompiler__f_topClass);
43558
43565
  $n(this.Lio_kaitai_struct_NimClassCompiler__f_nimlang).typeSectionFooter__V();
@@ -43688,31 +43695,6 @@ $c_Lio_kaitai_struct_NimClassCompiler.prototype.compileInstance__sci_List__Lio_k
43688
43695
  $n(this.Lio_kaitai_struct_ClassCompiler__f_lang).instanceReturn__Lio_kaitai_struct_format_InstanceIdentifier__Lio_kaitai_struct_datatype_DataType__V(instName, dataType);
43689
43696
  $n(this.Lio_kaitai_struct_ClassCompiler__f_lang).instanceFooter__V()
43690
43697
  });
43691
- $c_Lio_kaitai_struct_NimClassCompiler.prototype.compileImports__Lio_kaitai_struct_format_ClassSpec__V = (function(curClass) {
43692
- $n(this.Lio_kaitai_struct_ClassCompiler__f_provider).Lio_kaitai_struct_ClassTypeProvider__f_nowClass = curClass;
43693
- var this$1 = $n($n($n(curClass).Lio_kaitai_struct_format_ClassSpec__f_meta).Lio_kaitai_struct_format_MetaSpec__f_imports);
43694
- var these = this$1;
43695
- while ((!$n(these).isEmpty__Z())) {
43696
- var arg1 = $n(these).head__O();
43697
- var file = $as_T(arg1);
43698
- $n(this.Lio_kaitai_struct_ClassCompiler__f_lang).importFile__T__V(file);
43699
- these = $as_sci_List($n(these).tail__O())
43700
- };
43701
- this.compileImportsRec__Lio_kaitai_struct_format_ClassSpec__V(curClass)
43702
- });
43703
- $c_Lio_kaitai_struct_NimClassCompiler.prototype.compileImportsRec__Lio_kaitai_struct_format_ClassSpec__V = (function(curClass) {
43704
- var this$2 = $n($n(curClass).Lio_kaitai_struct_format_ClassSpec__f_types);
43705
- var f = new $c_sjsr_AnonFunction1(((x0$1$2) => {
43706
- var x0$1 = $as_T2(x0$1$2);
43707
- if ((x0$1 !== null)) {
43708
- var subClass = $as_Lio_kaitai_struct_format_ClassSpec($n(x0$1).T2__f__2);
43709
- this.compileImports__Lio_kaitai_struct_format_ClassSpec__V(subClass)
43710
- } else {
43711
- throw new $c_s_MatchError(x0$1)
43712
- }
43713
- }));
43714
- $m_sci_RedBlackTree$().foreach__sci_RedBlackTree$Tree__F1__V(this$2.sci_TreeMap__f_tree, f)
43715
- });
43716
43698
  $c_Lio_kaitai_struct_NimClassCompiler.prototype.compileTypes__Lio_kaitai_struct_format_ClassSpec__V = (function(curClass) {
43717
43699
  $n(this.Lio_kaitai_struct_ClassCompiler__f_provider).Lio_kaitai_struct_ClassTypeProvider__f_nowClass = curClass;
43718
43700
  $n(this.Lio_kaitai_struct_NimClassCompiler__f_nimlang).classHeader__sci_List__V($n(curClass).Lio_kaitai_struct_format_ClassSpec__f_name);
@@ -44186,6 +44168,12 @@ $h_Lio_kaitai_struct_languages_CppCompiler$.prototype = $c_Lio_kaitai_struct_lan
44186
44168
  $c_Lio_kaitai_struct_languages_CppCompiler$.prototype.getCompiler__Lio_kaitai_struct_ClassTypeProvider__Lio_kaitai_struct_RuntimeConfig__Lio_kaitai_struct_languages_components_LanguageCompiler = (function(tp, config) {
44187
44169
  return new $c_Lio_kaitai_struct_languages_CppCompiler(tp, config)
44188
44170
  });
44171
+ $c_Lio_kaitai_struct_languages_CppCompiler$.prototype.outFileNameSource__T__T = (function(className) {
44172
+ return (className + ".cpp")
44173
+ });
44174
+ $c_Lio_kaitai_struct_languages_CppCompiler$.prototype.outFileNameHeader__T__T = (function(className) {
44175
+ return (className + ".h")
44176
+ });
44189
44177
  $c_Lio_kaitai_struct_languages_CppCompiler$.prototype.idToStr__Lio_kaitai_struct_format_Identifier__T = (function(id) {
44190
44178
  if ((id instanceof $c_Lio_kaitai_struct_format_SpecialIdentifier)) {
44191
44179
  var x2 = $as_Lio_kaitai_struct_format_SpecialIdentifier(id);
@@ -44218,17 +44206,17 @@ $c_Lio_kaitai_struct_languages_CppCompiler$.prototype.idToStr__Lio_kaitai_struct
44218
44206
  throw new $c_s_MatchError(id)
44219
44207
  }
44220
44208
  });
44221
- $c_Lio_kaitai_struct_languages_CppCompiler$.prototype.kaitaiType2NativeType__Lio_kaitai_struct_CppRuntimeConfig__Lio_kaitai_struct_datatype_DataType__Z__T = (function(config, attrType, absolute) {
44209
+ $c_Lio_kaitai_struct_languages_CppCompiler$.prototype.kaitaiType2NativeType__Lio_kaitai_struct_CppRuntimeConfig__Lio_kaitai_struct_languages_components_CppImportList__Lio_kaitai_struct_datatype_DataType__Z__T = (function(config, importListHdr, attrType, absolute) {
44222
44210
  while (true) {
44223
- var rc72 = false;
44211
+ var rc70 = false;
44224
44212
  var x2 = null;
44225
- var rc73 = false;
44213
+ var rc71 = false;
44226
44214
  var x5 = null;
44227
- var rc74 = false;
44215
+ var rc72 = false;
44228
44216
  var x44 = null;
44229
44217
  var x1 = attrType;
44230
44218
  if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$Int1Type)) {
44231
- rc72 = true;
44219
+ rc70 = true;
44232
44220
  x2 = $as_Lio_kaitai_struct_datatype_DataType$Int1Type(x1);
44233
44221
  var p3 = $n(x2).Lio_kaitai_struct_datatype_DataType$Int1Type__f_signed;
44234
44222
  if ((p3 === false)) {
@@ -44236,7 +44224,7 @@ $c_Lio_kaitai_struct_languages_CppCompiler$.prototype.kaitaiType2NativeType__Lio
44236
44224
  }
44237
44225
  };
44238
44226
  if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$IntMultiType)) {
44239
- rc73 = true;
44227
+ rc71 = true;
44240
44228
  x5 = $as_Lio_kaitai_struct_datatype_DataType$IntMultiType(x1);
44241
44229
  var p6 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_signed;
44242
44230
  var p7 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_width;
@@ -44250,7 +44238,7 @@ $c_Lio_kaitai_struct_languages_CppCompiler$.prototype.kaitaiType2NativeType__Lio
44250
44238
  return "uint16_t"
44251
44239
  }
44252
44240
  };
44253
- if (rc73) {
44241
+ if (rc71) {
44254
44242
  var p12 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_signed;
44255
44243
  var p13 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_width;
44256
44244
  if ((p12 === false)) {
@@ -44263,7 +44251,7 @@ $c_Lio_kaitai_struct_languages_CppCompiler$.prototype.kaitaiType2NativeType__Lio
44263
44251
  return "uint32_t"
44264
44252
  }
44265
44253
  };
44266
- if (rc73) {
44254
+ if (rc71) {
44267
44255
  var p18 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_signed;
44268
44256
  var p19 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_width;
44269
44257
  if ((p18 === false)) {
@@ -44276,13 +44264,13 @@ $c_Lio_kaitai_struct_languages_CppCompiler$.prototype.kaitaiType2NativeType__Lio
44276
44264
  return "uint64_t"
44277
44265
  }
44278
44266
  };
44279
- if (rc72) {
44267
+ if (rc70) {
44280
44268
  var p24 = $n(x2).Lio_kaitai_struct_datatype_DataType$Int1Type__f_signed;
44281
44269
  if ((p24 === true)) {
44282
44270
  return "int8_t"
44283
44271
  }
44284
44272
  };
44285
- if (rc73) {
44273
+ if (rc71) {
44286
44274
  var p27 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_signed;
44287
44275
  var p28 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_width;
44288
44276
  if ((p27 === true)) {
@@ -44295,7 +44283,7 @@ $c_Lio_kaitai_struct_languages_CppCompiler$.prototype.kaitaiType2NativeType__Lio
44295
44283
  return "int16_t"
44296
44284
  }
44297
44285
  };
44298
- if (rc73) {
44286
+ if (rc71) {
44299
44287
  var p33 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_signed;
44300
44288
  var p34 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_width;
44301
44289
  if ((p33 === true)) {
@@ -44308,7 +44296,7 @@ $c_Lio_kaitai_struct_languages_CppCompiler$.prototype.kaitaiType2NativeType__Lio
44308
44296
  return "int32_t"
44309
44297
  }
44310
44298
  };
44311
- if (rc73) {
44299
+ if (rc71) {
44312
44300
  var p39 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_signed;
44313
44301
  var p40 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_width;
44314
44302
  if ((p39 === true)) {
@@ -44322,7 +44310,7 @@ $c_Lio_kaitai_struct_languages_CppCompiler$.prototype.kaitaiType2NativeType__Lio
44322
44310
  }
44323
44311
  };
44324
44312
  if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$FloatMultiType)) {
44325
- rc74 = true;
44313
+ rc72 = true;
44326
44314
  x44 = $as_Lio_kaitai_struct_datatype_DataType$FloatMultiType(x1);
44327
44315
  var p45 = $n(x44).Lio_kaitai_struct_datatype_DataType$FloatMultiType__f_width;
44328
44316
  var x$13 = $m_Lio_kaitai_struct_datatype_DataType$Width4$();
@@ -44330,7 +44318,7 @@ $c_Lio_kaitai_struct_languages_CppCompiler$.prototype.kaitaiType2NativeType__Lio
44330
44318
  return "float"
44331
44319
  }
44332
44320
  };
44333
- if (rc74) {
44321
+ if (rc72) {
44334
44322
  var p49 = $n(x44).Lio_kaitai_struct_datatype_DataType$FloatMultiType__f_width;
44335
44323
  var x$15 = $m_Lio_kaitai_struct_datatype_DataType$Width8$();
44336
44324
  if ((x$15 === p49)) {
@@ -44377,57 +44365,51 @@ $c_Lio_kaitai_struct_languages_CppCompiler$.prototype.kaitaiType2NativeType__Lio
44377
44365
  var x61 = $as_Lio_kaitai_struct_datatype_DataType$EnumType(x1);
44378
44366
  return this.types2class__sci_List__T((absolute ? $n($as_Lio_kaitai_struct_format_EnumSpec($n($n(x61).Lio_kaitai_struct_datatype_DataType$EnumType__f_enumSpec).get__O())).Lio_kaitai_struct_format_EnumSpec__f_name : $n(x61).Lio_kaitai_struct_datatype_DataType$EnumType__f_name))
44379
44367
  };
44380
- if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$ArrayTypeInStream)) {
44381
- var x62 = $as_Lio_kaitai_struct_datatype_DataType$ArrayTypeInStream(x1);
44382
- var this$1 = $n(x62);
44383
- var inType = this$1.Lio_kaitai_struct_datatype_DataType$ArrayType__f_elType;
44384
- var x1$3 = $n(config).Lio_kaitai_struct_CppRuntimeConfig__f_pointers;
44385
- var x$25 = $m_Lio_kaitai_struct_CppRuntimeConfig$RawPointers$();
44386
- if ((x$25 === x1$3)) {
44387
- return (("std::vector<" + this.kaitaiType2NativeType__Lio_kaitai_struct_CppRuntimeConfig__Lio_kaitai_struct_datatype_DataType__Z__T(config, inType, absolute)) + ">*")
44388
- } else {
44389
- var x$27 = $m_Lio_kaitai_struct_CppRuntimeConfig$UniqueAndRawPointers$();
44390
- if ((x$27 === x1$3)) {
44391
- return (("std::unique_ptr<std::vector<" + this.kaitaiType2NativeType__Lio_kaitai_struct_CppRuntimeConfig__Lio_kaitai_struct_datatype_DataType__Z__T(config, inType, absolute)) + ">>")
44392
- } else {
44393
- throw new $c_s_MatchError(x1$3)
44394
- }
44368
+ if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$ArrayType)) {
44369
+ var x62 = $as_Lio_kaitai_struct_datatype_DataType$ArrayType(x1);
44370
+ $n(importListHdr).addSystem__T__V("vector");
44371
+ var vecType = (("std::vector<" + this.kaitaiType2NativeType__Lio_kaitai_struct_CppRuntimeConfig__Lio_kaitai_struct_languages_components_CppImportList__Lio_kaitai_struct_datatype_DataType__Z__T(config, importListHdr, $n(x62).Lio_kaitai_struct_datatype_DataType$ArrayType__f_elType, absolute)) + ">");
44372
+ var _2 = $n(config).Lio_kaitai_struct_CppRuntimeConfig__f_pointers;
44373
+ if ((x62 instanceof $c_Lio_kaitai_struct_datatype_DataType$ArrayTypeInStream)) {
44374
+ var x$25 = $m_Lio_kaitai_struct_CppRuntimeConfig$UniqueAndRawPointers$();
44375
+ var $$x7 = (x$25 === _2)
44376
+ } else {
44377
+ var $$x7 = false
44378
+ };
44379
+ if ($$x7) {
44380
+ return (("std::unique_ptr<" + vecType) + ">")
44381
+ } else {
44382
+ return (vecType + "*")
44395
44383
  }
44396
44384
  };
44397
- if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$CalcArrayType)) {
44398
- var x63 = $as_Lio_kaitai_struct_datatype_DataType$CalcArrayType(x1);
44399
- var this$2 = $n(x63);
44400
- var inType$2 = this$2.Lio_kaitai_struct_datatype_DataType$ArrayType__f_elType;
44401
- return (("std::vector<" + this.kaitaiType2NativeType__Lio_kaitai_struct_CppRuntimeConfig__Lio_kaitai_struct_datatype_DataType__Z__T(config, inType$2, absolute)) + ">*")
44402
- };
44403
- var x$29 = $m_Lio_kaitai_struct_datatype_DataType$OwnedKaitaiStreamType$();
44404
- if ((x$29 === x1)) {
44385
+ var x$27 = $m_Lio_kaitai_struct_datatype_DataType$OwnedKaitaiStreamType$();
44386
+ if ((x$27 === x1)) {
44405
44387
  var x1$4 = $n(config).Lio_kaitai_struct_CppRuntimeConfig__f_pointers;
44406
- var x$31 = $m_Lio_kaitai_struct_CppRuntimeConfig$RawPointers$();
44407
- if ((x$31 === x1$4)) {
44388
+ var x$29 = $m_Lio_kaitai_struct_CppRuntimeConfig$RawPointers$();
44389
+ if ((x$29 === x1$4)) {
44408
44390
  return "kaitai::kstream*"
44409
44391
  } else {
44410
- var x$33 = $m_Lio_kaitai_struct_CppRuntimeConfig$UniqueAndRawPointers$();
44411
- if ((x$33 === x1$4)) {
44392
+ var x$31 = $m_Lio_kaitai_struct_CppRuntimeConfig$UniqueAndRawPointers$();
44393
+ if ((x$31 === x1$4)) {
44412
44394
  return "std::unique_ptr<kaitai::kstream>"
44413
44395
  } else {
44414
44396
  throw new $c_s_MatchError(x1$4)
44415
44397
  }
44416
44398
  }
44417
44399
  };
44418
- var x$35 = $m_Lio_kaitai_struct_datatype_DataType$KaitaiStreamType$();
44419
- if ((x$35 === x1)) {
44400
+ var x$33 = $m_Lio_kaitai_struct_datatype_DataType$KaitaiStreamType$();
44401
+ if ((x$33 === x1)) {
44420
44402
  return "kaitai::kstream*"
44421
44403
  };
44422
- var x$37 = $m_Lio_kaitai_struct_datatype_DataType$KaitaiStructType$();
44423
- if ((x$37 === x1)) {
44404
+ var x$35 = $m_Lio_kaitai_struct_datatype_DataType$KaitaiStructType$();
44405
+ if ((x$35 === x1)) {
44424
44406
  var x1$5 = $n(config).Lio_kaitai_struct_CppRuntimeConfig__f_pointers;
44425
- var x$39 = $m_Lio_kaitai_struct_CppRuntimeConfig$RawPointers$();
44426
- if ((x$39 === x1$5)) {
44407
+ var x$37 = $m_Lio_kaitai_struct_CppRuntimeConfig$RawPointers$();
44408
+ if ((x$37 === x1$5)) {
44427
44409
  return "kaitai::kstruct*"
44428
44410
  } else {
44429
- var x$41 = $m_Lio_kaitai_struct_CppRuntimeConfig$UniqueAndRawPointers$();
44430
- if ((x$41 === x1$5)) {
44411
+ var x$39 = $m_Lio_kaitai_struct_CppRuntimeConfig$UniqueAndRawPointers$();
44412
+ if ((x$39 === x1$5)) {
44431
44413
  return "std::unique_ptr<kaitai::kstruct>"
44432
44414
  } else {
44433
44415
  throw new $c_s_MatchError(x1$5)
@@ -44438,8 +44420,8 @@ $c_Lio_kaitai_struct_languages_CppCompiler$.prototype.kaitaiType2NativeType__Lio
44438
44420
  return "kaitai::kstruct*"
44439
44421
  };
44440
44422
  if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$SwitchType)) {
44441
- var x70 = $as_Lio_kaitai_struct_datatype_DataType$SwitchType(x1);
44442
- attrType = this.combineSwitchType__Lio_kaitai_struct_datatype_DataType$SwitchType__Lio_kaitai_struct_datatype_DataType(x70);
44423
+ var x68 = $as_Lio_kaitai_struct_datatype_DataType$SwitchType(x1);
44424
+ attrType = this.combineSwitchType__Lio_kaitai_struct_datatype_DataType$SwitchType__Lio_kaitai_struct_datatype_DataType(x68);
44443
44425
  continue
44444
44426
  };
44445
44427
  throw new $c_s_MatchError(x1)
@@ -49636,7 +49618,7 @@ $c_Lio_kaitai_struct_datatype_DataType$UserType.prototype.isExternal__Lio_kaitai
49636
49618
  });
49637
49619
  $c_Lio_kaitai_struct_datatype_DataType$UserType.prototype.isOpaque__Z = (function() {
49638
49620
  var cs = $as_Lio_kaitai_struct_format_ClassSpec($n(this.Lio_kaitai_struct_datatype_DataType$UserType__f_classSpec).get__O());
49639
- return ($n(cs).Lio_kaitai_struct_format_ClassSpec__f_isTopLevel || $n($n(cs).Lio_kaitai_struct_format_ClassSpec__f_meta).Lio_kaitai_struct_format_MetaSpec__f_isOpaque)
49621
+ return $n($n(cs).Lio_kaitai_struct_format_ClassSpec__f_meta).Lio_kaitai_struct_format_MetaSpec__f_isOpaque
49640
49622
  });
49641
49623
  function $as_Lio_kaitai_struct_datatype_DataType$UserType(obj) {
49642
49624
  return (((obj instanceof $c_Lio_kaitai_struct_datatype_DataType$UserType) || (obj === null)) ? obj : $throwClassCastException(obj, "io.kaitai.struct.datatype.DataType$UserType"))
@@ -50497,20 +50479,20 @@ $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.idToStr__Lio_kaitai_struc
50497
50479
  throw new $c_s_MatchError(id)
50498
50480
  }
50499
50481
  });
50500
- $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaType__Lio_kaitai_struct_datatype_DataType__Z__T = (function(attrType, isNullable) {
50501
- return (isNullable ? this.kaitaiType2JavaTypeBoxed__Lio_kaitai_struct_datatype_DataType__T(attrType) : this.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__T(attrType))
50482
+ $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaType__Lio_kaitai_struct_datatype_DataType__Z__Lio_kaitai_struct_ImportList__T = (function(attrType, isNullable, importList) {
50483
+ return (isNullable ? this.kaitaiType2JavaTypeBoxed__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_ImportList__T(attrType, importList) : this.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_ImportList__T(attrType, importList))
50502
50484
  });
50503
- $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__T = (function(attrType) {
50485
+ $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_ImportList__T = (function(attrType, importList) {
50504
50486
  while (true) {
50505
- var rc76 = false;
50487
+ var rc72 = false;
50506
50488
  var x2 = null;
50507
- var rc77 = false;
50489
+ var rc73 = false;
50508
50490
  var x5 = null;
50509
- var rc78 = false;
50491
+ var rc74 = false;
50510
50492
  var x44 = null;
50511
50493
  var x1 = attrType;
50512
50494
  if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$Int1Type)) {
50513
- rc76 = true;
50495
+ rc72 = true;
50514
50496
  x2 = $as_Lio_kaitai_struct_datatype_DataType$Int1Type(x1);
50515
50497
  var p3 = $n(x2).Lio_kaitai_struct_datatype_DataType$Int1Type__f_signed;
50516
50498
  if ((p3 === false)) {
@@ -50518,7 +50500,7 @@ $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaTypePrim__
50518
50500
  }
50519
50501
  };
50520
50502
  if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$IntMultiType)) {
50521
- rc77 = true;
50503
+ rc73 = true;
50522
50504
  x5 = $as_Lio_kaitai_struct_datatype_DataType$IntMultiType(x1);
50523
50505
  var p6 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_signed;
50524
50506
  var p7 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_width;
@@ -50532,7 +50514,7 @@ $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaTypePrim__
50532
50514
  return "int"
50533
50515
  }
50534
50516
  };
50535
- if (rc77) {
50517
+ if (rc73) {
50536
50518
  var p12 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_signed;
50537
50519
  var p13 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_width;
50538
50520
  if ((p12 === false)) {
@@ -50545,7 +50527,7 @@ $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaTypePrim__
50545
50527
  return "long"
50546
50528
  }
50547
50529
  };
50548
- if (rc77) {
50530
+ if (rc73) {
50549
50531
  var p18 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_signed;
50550
50532
  var p19 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_width;
50551
50533
  if ((p18 === false)) {
@@ -50558,13 +50540,13 @@ $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaTypePrim__
50558
50540
  return "long"
50559
50541
  }
50560
50542
  };
50561
- if (rc76) {
50543
+ if (rc72) {
50562
50544
  var p24 = $n(x2).Lio_kaitai_struct_datatype_DataType$Int1Type__f_signed;
50563
50545
  if ((p24 === true)) {
50564
50546
  return "byte"
50565
50547
  }
50566
50548
  };
50567
- if (rc77) {
50549
+ if (rc73) {
50568
50550
  var p27 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_signed;
50569
50551
  var p28 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_width;
50570
50552
  if ((p27 === true)) {
@@ -50577,7 +50559,7 @@ $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaTypePrim__
50577
50559
  return "short"
50578
50560
  }
50579
50561
  };
50580
- if (rc77) {
50562
+ if (rc73) {
50581
50563
  var p33 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_signed;
50582
50564
  var p34 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_width;
50583
50565
  if ((p33 === true)) {
@@ -50590,7 +50572,7 @@ $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaTypePrim__
50590
50572
  return "int"
50591
50573
  }
50592
50574
  };
50593
- if (rc77) {
50575
+ if (rc73) {
50594
50576
  var p39 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_signed;
50595
50577
  var p40 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_width;
50596
50578
  if ((p39 === true)) {
@@ -50604,7 +50586,7 @@ $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaTypePrim__
50604
50586
  }
50605
50587
  };
50606
50588
  if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$FloatMultiType)) {
50607
- rc78 = true;
50589
+ rc74 = true;
50608
50590
  x44 = $as_Lio_kaitai_struct_datatype_DataType$FloatMultiType(x1);
50609
50591
  var p45 = $n(x44).Lio_kaitai_struct_datatype_DataType$FloatMultiType__f_width;
50610
50592
  var x$13 = $m_Lio_kaitai_struct_datatype_DataType$Width4$();
@@ -50612,7 +50594,7 @@ $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaTypePrim__
50612
50594
  return "float"
50613
50595
  }
50614
50596
  };
50615
- if (rc78) {
50597
+ if (rc74) {
50616
50598
  var p49 = $n(x44).Lio_kaitai_struct_datatype_DataType$FloatMultiType__f_width;
50617
50599
  var x$15 = $m_Lio_kaitai_struct_datatype_DataType$Width8$();
50618
50600
  if ((x$15 === p49)) {
@@ -50666,28 +50648,28 @@ $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaTypePrim__
50666
50648
  var name = $n(x67).Lio_kaitai_struct_datatype_DataType$EnumType__f_name;
50667
50649
  return this.types2class__sci_List__T(name)
50668
50650
  };
50669
- if (((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$ArrayTypeInStream) || (x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$CalcArrayType))) {
50670
- return this.kaitaiType2JavaTypeBoxed__Lio_kaitai_struct_datatype_DataType__T(attrType)
50651
+ if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$ArrayType)) {
50652
+ return this.kaitaiType2JavaTypeBoxed__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_ImportList__T(attrType, importList)
50671
50653
  };
50672
50654
  if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$SwitchType)) {
50673
- var x74 = $as_Lio_kaitai_struct_datatype_DataType$SwitchType(x1);
50674
- attrType = $n(x74).combinedType__Lio_kaitai_struct_datatype_DataType();
50655
+ var x70 = $as_Lio_kaitai_struct_datatype_DataType$SwitchType(x1);
50656
+ attrType = $n(x70).combinedType__Lio_kaitai_struct_datatype_DataType();
50675
50657
  continue
50676
50658
  };
50677
50659
  throw new $c_s_MatchError(x1)
50678
50660
  }
50679
50661
  });
50680
- $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaTypeBoxed__Lio_kaitai_struct_datatype_DataType__T = (function(attrType) {
50662
+ $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaTypeBoxed__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_ImportList__T = (function(attrType, importList) {
50681
50663
  while (true) {
50682
- var rc74 = false;
50664
+ var rc72 = false;
50683
50665
  var x2 = null;
50684
- var rc75 = false;
50666
+ var rc73 = false;
50685
50667
  var x5 = null;
50686
- var rc76 = false;
50668
+ var rc74 = false;
50687
50669
  var x44 = null;
50688
50670
  var x1 = attrType;
50689
50671
  if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$Int1Type)) {
50690
- rc74 = true;
50672
+ rc72 = true;
50691
50673
  x2 = $as_Lio_kaitai_struct_datatype_DataType$Int1Type(x1);
50692
50674
  var p3 = $n(x2).Lio_kaitai_struct_datatype_DataType$Int1Type__f_signed;
50693
50675
  if ((p3 === false)) {
@@ -50695,7 +50677,7 @@ $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaTypeBoxed_
50695
50677
  }
50696
50678
  };
50697
50679
  if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$IntMultiType)) {
50698
- rc75 = true;
50680
+ rc73 = true;
50699
50681
  x5 = $as_Lio_kaitai_struct_datatype_DataType$IntMultiType(x1);
50700
50682
  var p6 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_signed;
50701
50683
  var p7 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_width;
@@ -50709,7 +50691,7 @@ $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaTypeBoxed_
50709
50691
  return "Integer"
50710
50692
  }
50711
50693
  };
50712
- if (rc75) {
50694
+ if (rc73) {
50713
50695
  var p12 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_signed;
50714
50696
  var p13 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_width;
50715
50697
  if ((p12 === false)) {
@@ -50722,7 +50704,7 @@ $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaTypeBoxed_
50722
50704
  return "Long"
50723
50705
  }
50724
50706
  };
50725
- if (rc75) {
50707
+ if (rc73) {
50726
50708
  var p18 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_signed;
50727
50709
  var p19 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_width;
50728
50710
  if ((p18 === false)) {
@@ -50735,13 +50717,13 @@ $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaTypeBoxed_
50735
50717
  return "Long"
50736
50718
  }
50737
50719
  };
50738
- if (rc74) {
50720
+ if (rc72) {
50739
50721
  var p24 = $n(x2).Lio_kaitai_struct_datatype_DataType$Int1Type__f_signed;
50740
50722
  if ((p24 === true)) {
50741
50723
  return "Byte"
50742
50724
  }
50743
50725
  };
50744
- if (rc75) {
50726
+ if (rc73) {
50745
50727
  var p27 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_signed;
50746
50728
  var p28 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_width;
50747
50729
  if ((p27 === true)) {
@@ -50754,7 +50736,7 @@ $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaTypeBoxed_
50754
50736
  return "Short"
50755
50737
  }
50756
50738
  };
50757
- if (rc75) {
50739
+ if (rc73) {
50758
50740
  var p33 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_signed;
50759
50741
  var p34 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_width;
50760
50742
  if ((p33 === true)) {
@@ -50767,7 +50749,7 @@ $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaTypeBoxed_
50767
50749
  return "Integer"
50768
50750
  }
50769
50751
  };
50770
- if (rc75) {
50752
+ if (rc73) {
50771
50753
  var p39 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_signed;
50772
50754
  var p40 = $n(x5).Lio_kaitai_struct_datatype_DataType$IntMultiType__f_width;
50773
50755
  if ((p39 === true)) {
@@ -50781,7 +50763,7 @@ $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaTypeBoxed_
50781
50763
  }
50782
50764
  };
50783
50765
  if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$FloatMultiType)) {
50784
- rc76 = true;
50766
+ rc74 = true;
50785
50767
  x44 = $as_Lio_kaitai_struct_datatype_DataType$FloatMultiType(x1);
50786
50768
  var p45 = $n(x44).Lio_kaitai_struct_datatype_DataType$FloatMultiType__f_width;
50787
50769
  var x$13 = $m_Lio_kaitai_struct_datatype_DataType$Width4$();
@@ -50789,7 +50771,7 @@ $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaTypeBoxed_
50789
50771
  return "Float"
50790
50772
  }
50791
50773
  };
50792
- if (rc76) {
50774
+ if (rc74) {
50793
50775
  var p49 = $n(x44).Lio_kaitai_struct_datatype_DataType$FloatMultiType__f_width;
50794
50776
  var x$15 = $m_Lio_kaitai_struct_datatype_DataType$Width8$();
50795
50777
  if ((x$15 === p49)) {
@@ -50843,21 +50825,15 @@ $c_Lio_kaitai_struct_languages_JavaCompiler$.prototype.kaitaiType2JavaTypeBoxed_
50843
50825
  var name = $n(x67).Lio_kaitai_struct_datatype_DataType$EnumType__f_name;
50844
50826
  return this.types2class__sci_List__T(name)
50845
50827
  };
50846
- if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$ArrayTypeInStream)) {
50847
- var x69 = $as_Lio_kaitai_struct_datatype_DataType$ArrayTypeInStream(x1);
50848
- var this$1 = $n(x69);
50849
- var inType = this$1.Lio_kaitai_struct_datatype_DataType$ArrayType__f_elType;
50850
- return (("ArrayList<" + this.kaitaiType2JavaTypeBoxed__Lio_kaitai_struct_datatype_DataType__T(inType)) + ">")
50851
- };
50852
- if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$CalcArrayType)) {
50853
- var x70 = $as_Lio_kaitai_struct_datatype_DataType$CalcArrayType(x1);
50854
- var this$2 = $n(x70);
50855
- var inType$2 = this$2.Lio_kaitai_struct_datatype_DataType$ArrayType__f_elType;
50856
- return (("ArrayList<" + this.kaitaiType2JavaTypeBoxed__Lio_kaitai_struct_datatype_DataType__T(inType$2)) + ">")
50828
+ if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$ArrayType)) {
50829
+ var x69 = $as_Lio_kaitai_struct_datatype_DataType$ArrayType(x1);
50830
+ var this$1 = $n(importList);
50831
+ $m_Lio_kaitai_struct_Utils$().addUniqueAttr__scm_ListBuffer__O__V(this$1.Lio_kaitai_struct_ImportList__f_list, "java.util.ArrayList");
50832
+ return (("ArrayList<" + this.kaitaiType2JavaTypeBoxed__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_ImportList__T($n(x69).Lio_kaitai_struct_datatype_DataType$ArrayType__f_elType, importList)) + ">")
50857
50833
  };
50858
50834
  if ((x1 instanceof $c_Lio_kaitai_struct_datatype_DataType$SwitchType)) {
50859
- var x72 = $as_Lio_kaitai_struct_datatype_DataType$SwitchType(x1);
50860
- attrType = $n(x72).combinedType__Lio_kaitai_struct_datatype_DataType();
50835
+ var x70 = $as_Lio_kaitai_struct_datatype_DataType$SwitchType(x1);
50836
+ attrType = $n(x70).combinedType__Lio_kaitai_struct_datatype_DataType();
50861
50837
  continue
50862
50838
  };
50863
50839
  throw new $c_s_MatchError(x1)
@@ -50959,6 +50935,9 @@ $c_Lio_kaitai_struct_languages_RubyCompiler$.prototype.ksErrorName__Lio_kaitai_s
50959
50935
  }
50960
50936
  }
50961
50937
  });
50938
+ $c_Lio_kaitai_struct_languages_RubyCompiler$.prototype.enumValue__T__T__T = (function(enumName, label) {
50939
+ return (((":" + enumName) + "_") + label)
50940
+ });
50962
50941
  $c_Lio_kaitai_struct_languages_RubyCompiler$.prototype.inverseEnumName__T__T = (function(enumName) {
50963
50942
  return ("I__" + enumName)
50964
50943
  });
@@ -51024,7 +51003,7 @@ function $f_Lio_kaitai_struct_languages_components_EveryReadIsExpression__attrPa
51024
51003
  $f_Lio_kaitai_struct_languages_components_EveryReadIsExpression__handleAssignment__Lio_kaitai_struct_format_Identifier__T__Lio_kaitai_struct_format_RepeatSpec__Z__V($thiz, id, expr, rep, isRaw)
51025
51004
  } else if ((dataType instanceof $c_Lio_kaitai_struct_datatype_DataType$EnumType)) {
51026
51005
  var x6 = $as_Lio_kaitai_struct_datatype_DataType$EnumType(dataType);
51027
- var expr$2 = $n($thiz.translator__Lio_kaitai_struct_translators_BaseTranslator()).doEnumById__sci_List__T__T($n($as_Lio_kaitai_struct_format_EnumSpec($n($n(x6).Lio_kaitai_struct_datatype_DataType$EnumType__f_enumSpec).get__O())).Lio_kaitai_struct_format_EnumSpec__f_name, $thiz.parseExpr__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_datatype_DataType__T__s_Option__T($n(x6).Lio_kaitai_struct_datatype_DataType$EnumType__f_basedOn, $n(x6).Lio_kaitai_struct_datatype_DataType$EnumType__f_basedOn, io, defEndian));
51006
+ var expr$2 = $n($thiz.translator__Lio_kaitai_struct_translators_BaseTranslator()).doEnumById__Lio_kaitai_struct_format_EnumSpec__T__T($as_Lio_kaitai_struct_format_EnumSpec($n($n(x6).Lio_kaitai_struct_datatype_DataType$EnumType__f_enumSpec).get__O()), $thiz.parseExpr__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_datatype_DataType__T__s_Option__T($n(x6).Lio_kaitai_struct_datatype_DataType$EnumType__f_basedOn, $n(x6).Lio_kaitai_struct_datatype_DataType$EnumType__f_basedOn, io, defEndian));
51028
51007
  $f_Lio_kaitai_struct_languages_components_EveryReadIsExpression__handleAssignment__Lio_kaitai_struct_format_Identifier__T__Lio_kaitai_struct_format_RepeatSpec__Z__V($thiz, id, expr$2, rep, isRaw)
51029
51008
  } else {
51030
51009
  var expr$3 = $thiz.parseExpr__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_datatype_DataType__T__s_Option__T(dataType, assignType, io, defEndian);
@@ -56334,6 +56313,154 @@ function $m_Lio_kaitai_struct_CppRuntimeConfig$UniqueAndRawPointers$() {
56334
56313
  return $n_Lio_kaitai_struct_CppRuntimeConfig$UniqueAndRawPointers$
56335
56314
  }
56336
56315
  /** @constructor */
56316
+ function $c_Lio_kaitai_struct_ExternalEnum(enumSpec) {
56317
+ this.Lio_kaitai_struct_ExternalEnum__f_enumSpec = null;
56318
+ this.Lio_kaitai_struct_ExternalEnum__f_enumSpec = enumSpec
56319
+ }
56320
+ $c_Lio_kaitai_struct_ExternalEnum.prototype = new $h_Lio_kaitai_struct_ExternalType();
56321
+ $c_Lio_kaitai_struct_ExternalEnum.prototype.constructor = $c_Lio_kaitai_struct_ExternalEnum;
56322
+ /** @constructor */
56323
+ function $h_Lio_kaitai_struct_ExternalEnum() {
56324
+ /*<skip>*/
56325
+ }
56326
+ $h_Lio_kaitai_struct_ExternalEnum.prototype = $c_Lio_kaitai_struct_ExternalEnum.prototype;
56327
+ $c_Lio_kaitai_struct_ExternalEnum.prototype.name__sci_List = (function() {
56328
+ return $n(this.Lio_kaitai_struct_ExternalEnum__f_enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name
56329
+ });
56330
+ $c_Lio_kaitai_struct_ExternalEnum.prototype.isOpaque__Z = (function() {
56331
+ return false
56332
+ });
56333
+ $c_Lio_kaitai_struct_ExternalEnum.prototype.productPrefix__T = (function() {
56334
+ return "ExternalEnum"
56335
+ });
56336
+ $c_Lio_kaitai_struct_ExternalEnum.prototype.productArity__I = (function() {
56337
+ return 1
56338
+ });
56339
+ $c_Lio_kaitai_struct_ExternalEnum.prototype.productElement__I__O = (function(x$1) {
56340
+ return ((x$1 === 0) ? this.Lio_kaitai_struct_ExternalEnum__f_enumSpec : $m_sr_Statics$().ioobe__I__O(x$1))
56341
+ });
56342
+ $c_Lio_kaitai_struct_ExternalEnum.prototype.productIterator__sc_Iterator = (function() {
56343
+ return new $c_sr_ScalaRunTime$$anon$1(this)
56344
+ });
56345
+ $c_Lio_kaitai_struct_ExternalEnum.prototype.hashCode__I = (function() {
56346
+ var this$2 = $m_s_util_hashing_MurmurHash3$();
56347
+ return this$2.productHash__s_Product__I__Z__I(this, (-889275714), false)
56348
+ });
56349
+ $c_Lio_kaitai_struct_ExternalEnum.prototype.toString__T = (function() {
56350
+ return $m_sr_ScalaRunTime$()._toString__s_Product__T(this)
56351
+ });
56352
+ $c_Lio_kaitai_struct_ExternalEnum.prototype.equals__O__Z = (function(x$1) {
56353
+ if ((this === x$1)) {
56354
+ return true
56355
+ } else if ((x$1 instanceof $c_Lio_kaitai_struct_ExternalEnum)) {
56356
+ var ExternalEnum$1 = $as_Lio_kaitai_struct_ExternalEnum(x$1);
56357
+ var x = this.Lio_kaitai_struct_ExternalEnum__f_enumSpec;
56358
+ var x$2 = $n(ExternalEnum$1).Lio_kaitai_struct_ExternalEnum__f_enumSpec;
56359
+ if (((x === null) ? (x$2 === null) : $n(x).equals__O__Z(x$2))) {
56360
+ $n(ExternalEnum$1);
56361
+ return true
56362
+ } else {
56363
+ return false
56364
+ }
56365
+ } else {
56366
+ return false
56367
+ }
56368
+ });
56369
+ function $as_Lio_kaitai_struct_ExternalEnum(obj) {
56370
+ return (((obj instanceof $c_Lio_kaitai_struct_ExternalEnum) || (obj === null)) ? obj : $throwClassCastException(obj, "io.kaitai.struct.ExternalEnum"))
56371
+ }
56372
+ function $isArrayOf_Lio_kaitai_struct_ExternalEnum(obj, depth) {
56373
+ return (!(!(((obj && obj.$classData) && (obj.$classData.arrayDepth === depth)) && obj.$classData.arrayBase.ancestors.Lio_kaitai_struct_ExternalEnum)))
56374
+ }
56375
+ function $asArrayOf_Lio_kaitai_struct_ExternalEnum(obj, depth) {
56376
+ return (($isArrayOf_Lio_kaitai_struct_ExternalEnum(obj, depth) || (obj === null)) ? obj : $throwArrayCastException(obj, "Lio.kaitai.struct.ExternalEnum;", depth))
56377
+ }
56378
+ var $d_Lio_kaitai_struct_ExternalEnum = new $TypeData().initClass({
56379
+ Lio_kaitai_struct_ExternalEnum: 0
56380
+ }, false, "io.kaitai.struct.ExternalEnum", {
56381
+ Lio_kaitai_struct_ExternalEnum: 1,
56382
+ Lio_kaitai_struct_ExternalType: 1,
56383
+ O: 1,
56384
+ s_Product: 1,
56385
+ s_Equals: 1,
56386
+ Ljava_io_Serializable: 1
56387
+ });
56388
+ $c_Lio_kaitai_struct_ExternalEnum.prototype.$classData = $d_Lio_kaitai_struct_ExternalEnum;
56389
+ /** @constructor */
56390
+ function $c_Lio_kaitai_struct_ExternalUserType(classSpec) {
56391
+ this.Lio_kaitai_struct_ExternalUserType__f_classSpec = null;
56392
+ this.Lio_kaitai_struct_ExternalUserType__f_classSpec = classSpec
56393
+ }
56394
+ $c_Lio_kaitai_struct_ExternalUserType.prototype = new $h_Lio_kaitai_struct_ExternalType();
56395
+ $c_Lio_kaitai_struct_ExternalUserType.prototype.constructor = $c_Lio_kaitai_struct_ExternalUserType;
56396
+ /** @constructor */
56397
+ function $h_Lio_kaitai_struct_ExternalUserType() {
56398
+ /*<skip>*/
56399
+ }
56400
+ $h_Lio_kaitai_struct_ExternalUserType.prototype = $c_Lio_kaitai_struct_ExternalUserType.prototype;
56401
+ $c_Lio_kaitai_struct_ExternalUserType.prototype.name__sci_List = (function() {
56402
+ return $n(this.Lio_kaitai_struct_ExternalUserType__f_classSpec).Lio_kaitai_struct_format_ClassSpec__f_name
56403
+ });
56404
+ $c_Lio_kaitai_struct_ExternalUserType.prototype.isOpaque__Z = (function() {
56405
+ return $n($n(this.Lio_kaitai_struct_ExternalUserType__f_classSpec).Lio_kaitai_struct_format_ClassSpec__f_meta).Lio_kaitai_struct_format_MetaSpec__f_isOpaque
56406
+ });
56407
+ $c_Lio_kaitai_struct_ExternalUserType.prototype.productPrefix__T = (function() {
56408
+ return "ExternalUserType"
56409
+ });
56410
+ $c_Lio_kaitai_struct_ExternalUserType.prototype.productArity__I = (function() {
56411
+ return 1
56412
+ });
56413
+ $c_Lio_kaitai_struct_ExternalUserType.prototype.productElement__I__O = (function(x$1) {
56414
+ return ((x$1 === 0) ? this.Lio_kaitai_struct_ExternalUserType__f_classSpec : $m_sr_Statics$().ioobe__I__O(x$1))
56415
+ });
56416
+ $c_Lio_kaitai_struct_ExternalUserType.prototype.productIterator__sc_Iterator = (function() {
56417
+ return new $c_sr_ScalaRunTime$$anon$1(this)
56418
+ });
56419
+ $c_Lio_kaitai_struct_ExternalUserType.prototype.hashCode__I = (function() {
56420
+ var this$2 = $m_s_util_hashing_MurmurHash3$();
56421
+ return this$2.productHash__s_Product__I__Z__I(this, (-889275714), false)
56422
+ });
56423
+ $c_Lio_kaitai_struct_ExternalUserType.prototype.toString__T = (function() {
56424
+ return $m_sr_ScalaRunTime$()._toString__s_Product__T(this)
56425
+ });
56426
+ $c_Lio_kaitai_struct_ExternalUserType.prototype.equals__O__Z = (function(x$1) {
56427
+ if ((this === x$1)) {
56428
+ return true
56429
+ } else if ((x$1 instanceof $c_Lio_kaitai_struct_ExternalUserType)) {
56430
+ var ExternalUserType$1 = $as_Lio_kaitai_struct_ExternalUserType(x$1);
56431
+ var x = this.Lio_kaitai_struct_ExternalUserType__f_classSpec;
56432
+ var x$2 = $n(ExternalUserType$1).Lio_kaitai_struct_ExternalUserType__f_classSpec;
56433
+ if (((x === null) ? (x$2 === null) : $n(x).equals__O__Z(x$2))) {
56434
+ $n(ExternalUserType$1);
56435
+ return true
56436
+ } else {
56437
+ return false
56438
+ }
56439
+ } else {
56440
+ return false
56441
+ }
56442
+ });
56443
+ function $as_Lio_kaitai_struct_ExternalUserType(obj) {
56444
+ return (((obj instanceof $c_Lio_kaitai_struct_ExternalUserType) || (obj === null)) ? obj : $throwClassCastException(obj, "io.kaitai.struct.ExternalUserType"))
56445
+ }
56446
+ function $isArrayOf_Lio_kaitai_struct_ExternalUserType(obj, depth) {
56447
+ return (!(!(((obj && obj.$classData) && (obj.$classData.arrayDepth === depth)) && obj.$classData.arrayBase.ancestors.Lio_kaitai_struct_ExternalUserType)))
56448
+ }
56449
+ function $asArrayOf_Lio_kaitai_struct_ExternalUserType(obj, depth) {
56450
+ return (($isArrayOf_Lio_kaitai_struct_ExternalUserType(obj, depth) || (obj === null)) ? obj : $throwArrayCastException(obj, "Lio.kaitai.struct.ExternalUserType;", depth))
56451
+ }
56452
+ var $d_Lio_kaitai_struct_ExternalUserType = new $TypeData().initClass({
56453
+ Lio_kaitai_struct_ExternalUserType: 0
56454
+ }, false, "io.kaitai.struct.ExternalUserType", {
56455
+ Lio_kaitai_struct_ExternalUserType: 1,
56456
+ Lio_kaitai_struct_ExternalType: 1,
56457
+ O: 1,
56458
+ s_Product: 1,
56459
+ s_Equals: 1,
56460
+ Ljava_io_Serializable: 1
56461
+ });
56462
+ $c_Lio_kaitai_struct_ExternalUserType.prototype.$classData = $d_Lio_kaitai_struct_ExternalUserType;
56463
+ /** @constructor */
56337
56464
  function $c_Lio_kaitai_struct_NullLogger$() {
56338
56465
  /*<skip>*/
56339
56466
  }
@@ -56643,6 +56770,9 @@ $c_Lio_kaitai_struct_datatype_DataType$EnumType.prototype.asNonOwning__Z__Lio_ka
56643
56770
  $c_Lio_kaitai_struct_datatype_DataType$EnumType.prototype.asNonOwning$default$1__Z = (function() {
56644
56771
  return false
56645
56772
  });
56773
+ $c_Lio_kaitai_struct_datatype_DataType$EnumType.prototype.isExternal__Lio_kaitai_struct_format_ClassSpec__Z = (function(curClass) {
56774
+ return $n($as_Lio_kaitai_struct_format_EnumSpec($n(this.Lio_kaitai_struct_datatype_DataType$EnumType__f_enumSpec).get__O())).isExternal__Lio_kaitai_struct_format_ClassSpec__Z(curClass)
56775
+ });
56646
56776
  $c_Lio_kaitai_struct_datatype_DataType$EnumType.prototype.productPrefix__T = (function() {
56647
56777
  return "EnumType"
56648
56778
  });
@@ -60182,6 +60312,11 @@ $h_Lio_kaitai_struct_format_EnumSpec.prototype = $c_Lio_kaitai_struct_format_Enu
60182
60312
  $c_Lio_kaitai_struct_format_EnumSpec.prototype.path__sci_List = (function() {
60183
60313
  return this.Lio_kaitai_struct_format_EnumSpec__f_path
60184
60314
  });
60315
+ $c_Lio_kaitai_struct_format_EnumSpec.prototype.isExternal__Lio_kaitai_struct_format_ClassSpec__Z = (function(curClass) {
60316
+ var x = $n(this.Lio_kaitai_struct_format_EnumSpec__f_name).head__O();
60317
+ var y = $n($n(curClass).Lio_kaitai_struct_format_ClassSpec__f_name).head__O();
60318
+ return (!$m_sr_BoxesRunTime$().equals__O__O__Z(x, y))
60319
+ });
60185
60320
  $c_Lio_kaitai_struct_format_EnumSpec.prototype.productPrefix__T = (function() {
60186
60321
  return "EnumSpec"
60187
60322
  });
@@ -63079,11 +63214,17 @@ $c_Lio_kaitai_struct_languages_JavaScriptCompiler$.prototype.ksErrorName__Lio_ka
63079
63214
  return ("KaitaiStream." + $n(err).name__T())
63080
63215
  }
63081
63216
  });
63082
- $c_Lio_kaitai_struct_languages_JavaScriptCompiler$.prototype.types2class__sci_List__T = (function(types) {
63217
+ $c_Lio_kaitai_struct_languages_JavaScriptCompiler$.prototype.types2class__sci_List__Z__T = (function(types, isExternal) {
63218
+ if (isExternal) {
63219
+ var name = $as_T($n(types).head__O());
63220
+ var prefix = ($m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(name) + "_.")
63221
+ } else {
63222
+ var prefix = ""
63223
+ };
63083
63224
  var this$3 = $n(types);
63084
63225
  var f = ((name$2) => {
63085
- var name = $as_T(name$2);
63086
- return $m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(name)
63226
+ var name$1 = $as_T(name$2);
63227
+ return $m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(name$1)
63087
63228
  });
63088
63229
  if ((this$3 === $m_sci_Nil$())) {
63089
63230
  var $$x1 = $m_sci_Nil$()
@@ -63102,7 +63243,7 @@ $c_Lio_kaitai_struct_languages_JavaScriptCompiler$.prototype.types2class__sci_Li
63102
63243
  var $$x1 = h
63103
63244
  };
63104
63245
  var this$4 = $n($$x1);
63105
- return $f_sc_IterableOnceOps__mkString__T__T__T__T(this$4, "", ".", "")
63246
+ return (prefix + $f_sc_IterableOnceOps__mkString__T__T__T__T(this$4, "", ".", ""))
63106
63247
  });
63107
63248
  var $d_Lio_kaitai_struct_languages_JavaScriptCompiler$ = new $TypeData().initClass({
63108
63249
  Lio_kaitai_struct_languages_JavaScriptCompiler$: 0
@@ -63758,6 +63899,14 @@ $c_Lio_kaitai_struct_languages_PerlCompiler$.prototype.types2class__sci_List__T
63758
63899
  var this$4 = $n($$x1);
63759
63900
  return $f_sc_IterableOnceOps__mkString__T__T__T__T(this$4, "", "::", "")
63760
63901
  });
63902
+ $c_Lio_kaitai_struct_languages_PerlCompiler$.prototype.enumValue__T__T__T = (function(enumName, label) {
63903
+ $m_Lio_kaitai_struct_Utils$();
63904
+ var this$3 = $n(enumName);
63905
+ var $$x1 = $as_T(this$3.toUpperCase());
63906
+ $m_Lio_kaitai_struct_Utils$();
63907
+ var this$6 = $n(label);
63908
+ return ((("$" + $$x1) + "_") + $as_T(this$6.toUpperCase()))
63909
+ });
63761
63910
  var $d_Lio_kaitai_struct_languages_PerlCompiler$ = new $TypeData().initClass({
63762
63911
  Lio_kaitai_struct_languages_PerlCompiler$: 0
63763
63912
  }, false, "io.kaitai.struct.languages.PerlCompiler$", {
@@ -63837,7 +63986,8 @@ $c_Lio_kaitai_struct_languages_PythonCompiler$.prototype.ksErrorName__Lio_kaitai
63837
63986
  }
63838
63987
  }
63839
63988
  });
63840
- $c_Lio_kaitai_struct_languages_PythonCompiler$.prototype.types2class__sci_List__T = (function(name) {
63989
+ $c_Lio_kaitai_struct_languages_PythonCompiler$.prototype.types2class__sci_List__Z__T = (function(name, isExternal) {
63990
+ var prefix = (isExternal ? ($n(name).head__O() + ".") : "");
63841
63991
  var this$3 = $n(name);
63842
63992
  var f = ((x$2) => {
63843
63993
  var x = $as_T(x$2);
@@ -63860,7 +64010,20 @@ $c_Lio_kaitai_struct_languages_PythonCompiler$.prototype.types2class__sci_List__
63860
64010
  var $$x1 = h
63861
64011
  };
63862
64012
  var this$4 = $n($$x1);
63863
- return $f_sc_IterableOnceOps__mkString__T__T__T__T(this$4, "", ".", "")
64013
+ return (prefix + $f_sc_IterableOnceOps__mkString__T__T__T__T(this$4, "", ".", ""))
64014
+ });
64015
+ $c_Lio_kaitai_struct_languages_PythonCompiler$.prototype.externalTypeDeclaration__Lio_kaitai_struct_ExternalType__Lio_kaitai_struct_ImportList__Lio_kaitai_struct_RuntimeConfig__V = (function(extType, importList, config) {
64016
+ var moduleName = $as_T($n($n(extType).name__sci_List()).head__O());
64017
+ var this$4 = $n(importList);
64018
+ $m_sc_StringOps$();
64019
+ var x = $n(config).Lio_kaitai_struct_RuntimeConfig__f_pythonPackage;
64020
+ var this$3 = $n(x);
64021
+ if ((!(this$3 === ""))) {
64022
+ var s = ((("from " + $n(config).Lio_kaitai_struct_RuntimeConfig__f_pythonPackage) + " import ") + moduleName)
64023
+ } else {
64024
+ var s = ("import " + moduleName)
64025
+ };
64026
+ $m_Lio_kaitai_struct_Utils$().addUniqueAttr__scm_ListBuffer__O__V(this$4.Lio_kaitai_struct_ImportList__f_list, s)
63864
64027
  });
63865
64028
  var $d_Lio_kaitai_struct_languages_PythonCompiler$ = new $TypeData().initClass({
63866
64029
  Lio_kaitai_struct_languages_PythonCompiler$: 0
@@ -64285,10 +64448,7 @@ $c_Lio_kaitai_struct_languages_components_LanguageCompiler.prototype.innerDocstr
64285
64448
  $c_Lio_kaitai_struct_languages_components_LanguageCompiler.prototype.fileFooter__T__V = (function(topClassName) {
64286
64449
  /*<skip>*/
64287
64450
  });
64288
- $c_Lio_kaitai_struct_languages_components_LanguageCompiler.prototype.importFile__T__V = (function(file) {
64289
- /*<skip>*/
64290
- });
64291
- $c_Lio_kaitai_struct_languages_components_LanguageCompiler.prototype.opaqueClassDeclaration__Lio_kaitai_struct_format_ClassSpec__V = (function(classSpec) {
64451
+ $c_Lio_kaitai_struct_languages_components_LanguageCompiler.prototype.externalTypeDeclaration__Lio_kaitai_struct_ExternalType__V = (function(extType) {
64292
64452
  /*<skip>*/
64293
64453
  });
64294
64454
  $c_Lio_kaitai_struct_languages_components_LanguageCompiler.prototype.classDoc__sci_List__Lio_kaitai_struct_format_DocSpec__V = (function(name, doc) {
@@ -76191,6 +76351,17 @@ function $f_sc_StrictOptimizedSeqOps__distinctBy__F1__O($thiz, f) {
76191
76351
  };
76192
76352
  return $n(builder).result__O()
76193
76353
  }
76354
+ function $f_sc_StrictOptimizedSeqOps__appended__O__O($thiz, elem) {
76355
+ var b = $n($thiz.iterableFactory__sc_SeqFactory()).newBuilder__scm_Builder();
76356
+ if (($thiz.knownSize__I() >= 0)) {
76357
+ $n(b).sizeHint__I__V(((1 + $thiz.length__I()) | 0))
76358
+ };
76359
+ var this$1 = $n(b);
76360
+ this$1.addAll__sc_IterableOnce__scm_Growable($thiz);
76361
+ var this$2 = $n(b);
76362
+ this$2.addOne__O__scm_Growable(elem);
76363
+ return $n(b).result__O()
76364
+ }
76194
76365
  function $f_sc_StrictOptimizedSeqOps__appendedAll__sc_IterableOnce__O($thiz, suffix) {
76195
76366
  var b = $n($thiz.iterableFactory__sc_SeqFactory()).newBuilder__scm_Builder();
76196
76367
  var this$1 = $n(b);
@@ -82579,7 +82750,7 @@ $c_Lio_kaitai_struct_translators_BaseTranslator.prototype.translate__Lio_kaitai_
82579
82750
  var id = $n(x7).Lio_kaitai_struct_exprlang_Ast$expr$EnumById__f_id;
82580
82751
  var inType = $n(x7).Lio_kaitai_struct_exprlang_Ast$expr$EnumById__f_inType;
82581
82752
  var enumSpec = $n(this.Lio_kaitai_struct_translators_BaseTranslator__f_provider).resolveEnum__Lio_kaitai_struct_exprlang_Ast$typeId__T__Lio_kaitai_struct_format_EnumSpec(inType, $n(enumType).Lio_kaitai_struct_exprlang_Ast$identifier__f_name);
82582
- return this.doEnumById__sci_List__T__T($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name, this.translate__Lio_kaitai_struct_exprlang_Ast$expr__I__T(id, 0))
82753
+ return this.doEnumById__Lio_kaitai_struct_format_EnumSpec__T__T(enumSpec, this.translate__Lio_kaitai_struct_exprlang_Ast$expr__I__T(id, 0))
82583
82754
  };
82584
82755
  if ((v instanceof $c_Lio_kaitai_struct_exprlang_Ast$expr$EnumByLabel)) {
82585
82756
  var x8 = $as_Lio_kaitai_struct_exprlang_Ast$expr$EnumByLabel(v);
@@ -82587,7 +82758,7 @@ $c_Lio_kaitai_struct_translators_BaseTranslator.prototype.translate__Lio_kaitai_
82587
82758
  var label = $n(x8).Lio_kaitai_struct_exprlang_Ast$expr$EnumByLabel__f_label;
82588
82759
  var inType$2 = $n(x8).Lio_kaitai_struct_exprlang_Ast$expr$EnumByLabel__f_inType;
82589
82760
  var enumSpec$2 = $n(this.Lio_kaitai_struct_translators_BaseTranslator__f_provider).resolveEnum__Lio_kaitai_struct_exprlang_Ast$typeId__T__Lio_kaitai_struct_format_EnumSpec(inType$2, $n(enumType$2).Lio_kaitai_struct_exprlang_Ast$identifier__f_name);
82590
- return this.doEnumByLabel__sci_List__T__T($n(enumSpec$2).Lio_kaitai_struct_format_EnumSpec__f_name, $n(label).Lio_kaitai_struct_exprlang_Ast$identifier__f_name)
82761
+ return this.doEnumByLabel__Lio_kaitai_struct_format_EnumSpec__T__T(enumSpec$2, $n(label).Lio_kaitai_struct_exprlang_Ast$identifier__f_name)
82591
82762
  };
82592
82763
  if ((v instanceof $c_Lio_kaitai_struct_exprlang_Ast$expr$Name)) {
82593
82764
  var x9 = $as_Lio_kaitai_struct_exprlang_Ast$expr$Name(v);
@@ -85343,11 +85514,11 @@ $c_Lio_kaitai_struct_translators_CSharpTranslator.prototype.doName__T__T = (func
85343
85514
  $c_Lio_kaitai_struct_translators_CSharpTranslator.prototype.doInternalName__Lio_kaitai_struct_format_Identifier__T = (function(id) {
85344
85515
  return ("" + $m_Lio_kaitai_struct_languages_CSharpCompiler$().publicMemberName__Lio_kaitai_struct_format_Identifier__T(id))
85345
85516
  });
85346
- $c_Lio_kaitai_struct_translators_CSharpTranslator.prototype.doEnumByLabel__sci_List__T__T = (function(enumTypeAbs, label) {
85347
- return ((this.enumClass__sci_List__T(enumTypeAbs) + ".") + $m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(label))
85517
+ $c_Lio_kaitai_struct_translators_CSharpTranslator.prototype.doEnumByLabel__Lio_kaitai_struct_format_EnumSpec__T__T = (function(enumSpec, label) {
85518
+ return ((this.enumClass__sci_List__T($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name) + ".") + $m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(label))
85348
85519
  });
85349
- $c_Lio_kaitai_struct_translators_CSharpTranslator.prototype.doEnumById__sci_List__T__T = (function(enumTypeAbs, id) {
85350
- return (((("((" + this.enumClass__sci_List__T(enumTypeAbs)) + ") ") + id) + ")")
85520
+ $c_Lio_kaitai_struct_translators_CSharpTranslator.prototype.doEnumById__Lio_kaitai_struct_format_EnumSpec__T__T = (function(enumSpec, id) {
85521
+ return (((("((" + this.enumClass__sci_List__T($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name)) + ") ") + id) + ")")
85351
85522
  });
85352
85523
  $c_Lio_kaitai_struct_translators_CSharpTranslator.prototype.enumClass__sci_List__T = (function(enumTypeAbs) {
85353
85524
  var enumTypeRel = $m_Lio_kaitai_struct_Utils$().relClass__sci_List__sci_List__sci_List(enumTypeAbs, $n($n(this.Lio_kaitai_struct_translators_BaseTranslator__f_provider).Lio_kaitai_struct_ClassTypeProvider__f_nowClass).Lio_kaitai_struct_format_ClassSpec__f_name);
@@ -85510,13 +85681,15 @@ var $d_Lio_kaitai_struct_translators_CSharpTranslator = new $TypeData().initClas
85510
85681
  });
85511
85682
  $c_Lio_kaitai_struct_translators_CSharpTranslator.prototype.$classData = $d_Lio_kaitai_struct_translators_CSharpTranslator;
85512
85683
  /** @constructor */
85513
- function $c_Lio_kaitai_struct_translators_JavaScriptTranslator(provider) {
85684
+ function $c_Lio_kaitai_struct_translators_JavaScriptTranslator(provider, importList) {
85514
85685
  this.Lio_kaitai_struct_translators_TypeDetector__f_provider = null;
85515
85686
  this.Lio_kaitai_struct_translators_BaseTranslator__f_provider = null;
85516
85687
  this.Lio_kaitai_struct_translators_BaseTranslator__f_METHODS_BY_TYPE = null;
85517
85688
  this.Lio_kaitai_struct_translators_BaseTranslator__f_METHOD_PRECEDENCE = 0;
85518
85689
  this.Lio_kaitai_struct_translators_BaseTranslator__f_OPERATOR_PRECEDENCE = null;
85519
85690
  this.Lio_kaitai_struct_translators_BaseTranslator__f_asciiCharQuoteMap = null;
85691
+ this.Lio_kaitai_struct_translators_JavaScriptTranslator__f_importList = null;
85692
+ this.Lio_kaitai_struct_translators_JavaScriptTranslator__f_importList = importList;
85520
85693
  $ct_Lio_kaitai_struct_translators_BaseTranslator__Lio_kaitai_struct_translators_TypeProvider__(this, provider)
85521
85694
  }
85522
85695
  $c_Lio_kaitai_struct_translators_JavaScriptTranslator.prototype = new $h_Lio_kaitai_struct_translators_BaseTranslator();
@@ -85604,14 +85777,22 @@ $c_Lio_kaitai_struct_translators_JavaScriptTranslator.prototype.doName__T__T = (
85604
85777
  $c_Lio_kaitai_struct_translators_JavaScriptTranslator.prototype.doInternalName__Lio_kaitai_struct_format_Identifier__T = (function(id) {
85605
85778
  return ("this." + $m_Lio_kaitai_struct_languages_JavaScriptCompiler$().publicMemberName__Lio_kaitai_struct_format_Identifier__T(id))
85606
85779
  });
85607
- $c_Lio_kaitai_struct_translators_JavaScriptTranslator.prototype.doEnumByLabel__sci_List__T__T = (function(enumType, label) {
85608
- var $$x1 = $m_Lio_kaitai_struct_languages_JavaScriptCompiler$().types2class__sci_List__T(enumType);
85780
+ $c_Lio_kaitai_struct_translators_JavaScriptTranslator.prototype.doEnumByLabel__Lio_kaitai_struct_format_EnumSpec__T__T = (function(enumSpec, label) {
85781
+ var isExternal = $n(enumSpec).isExternal__Lio_kaitai_struct_format_ClassSpec__Z($n(this.Lio_kaitai_struct_translators_BaseTranslator__f_provider).Lio_kaitai_struct_ClassTypeProvider__f_nowClass);
85782
+ if (isExternal) {
85783
+ var name = $as_T($n($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name).head__O());
85784
+ var className = $m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(name);
85785
+ var this$2 = $n(this.Lio_kaitai_struct_translators_JavaScriptTranslator__f_importList);
85786
+ var s = ("./" + className);
85787
+ $m_Lio_kaitai_struct_Utils$().addUniqueAttr__scm_ListBuffer__O__V(this$2.Lio_kaitai_struct_ImportList__f_list, s)
85788
+ };
85789
+ var $$x1 = $m_Lio_kaitai_struct_languages_JavaScriptCompiler$().types2class__sci_List__Z__T($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name, isExternal);
85609
85790
  $m_Lio_kaitai_struct_Utils$();
85610
- var this$3 = $n(label);
85611
- return (($$x1 + ".") + $as_T(this$3.toUpperCase()))
85791
+ var this$5 = $n(label);
85792
+ return (($$x1 + ".") + $as_T(this$5.toUpperCase()))
85612
85793
  });
85613
- $c_Lio_kaitai_struct_translators_JavaScriptTranslator.prototype.doEnumById__sci_List__T__T = (function(enumTypeAbs, label) {
85614
- return label
85794
+ $c_Lio_kaitai_struct_translators_JavaScriptTranslator.prototype.doEnumById__Lio_kaitai_struct_format_EnumSpec__T__T = (function(enumSpec, id) {
85795
+ return id
85615
85796
  });
85616
85797
  $c_Lio_kaitai_struct_translators_JavaScriptTranslator.prototype.doBytesCompareOp__Lio_kaitai_struct_exprlang_Ast$expr__Lio_kaitai_struct_exprlang_Ast$cmpop__Lio_kaitai_struct_exprlang_Ast$expr__T = (function(left, op, right) {
85617
85798
  return (((((("(KaitaiStream.byteArrayCompare(" + this.translate__Lio_kaitai_struct_exprlang_Ast$expr__I__T(left, 0)) + ", ") + this.translate__Lio_kaitai_struct_exprlang_Ast$expr__I__T(right, 0)) + ") ") + $f_Lio_kaitai_struct_translators_CommonOps__cmpOp__Lio_kaitai_struct_exprlang_Ast$cmpop__T(this, op)) + " 0)")
@@ -85781,7 +85962,7 @@ $c_Lio_kaitai_struct_translators_JavaTranslator.prototype.doIntLiteral__s_math_B
85781
85962
  return (literal + suffix)
85782
85963
  });
85783
85964
  $c_Lio_kaitai_struct_translators_JavaTranslator.prototype.doArrayLiteral__Lio_kaitai_struct_datatype_DataType__sci_Seq__T = (function(t, value) {
85784
- var javaType = $m_Lio_kaitai_struct_languages_JavaCompiler$().kaitaiType2JavaTypeBoxed__Lio_kaitai_struct_datatype_DataType__T(t);
85965
+ var javaType = $m_Lio_kaitai_struct_languages_JavaCompiler$().kaitaiType2JavaTypeBoxed__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_ImportList__T(t, this.Lio_kaitai_struct_translators_JavaTranslator__f_importList);
85785
85966
  var this$2 = $n($as_sc_IterableOnceOps($n(value).map__F1__O(new $c_sjsr_AnonFunction1(((v$2) => {
85786
85967
  var v = $as_Lio_kaitai_struct_exprlang_Ast$expr(v$2);
85787
85968
  return this.translate__Lio_kaitai_struct_exprlang_Ast$expr__I__T(v, 0)
@@ -85830,14 +86011,14 @@ $c_Lio_kaitai_struct_translators_JavaTranslator.prototype.doInternalName__Lio_ka
85830
86011
  var this$1 = $m_Lio_kaitai_struct_languages_JavaCompiler$();
85831
86012
  return (this$1.idToStr__Lio_kaitai_struct_format_Identifier__T(id) + "()")
85832
86013
  });
85833
- $c_Lio_kaitai_struct_translators_JavaTranslator.prototype.doEnumByLabel__sci_List__T__T = (function(enumTypeAbs, label) {
85834
- var $$x1 = this.enumClass__sci_List__T(enumTypeAbs);
86014
+ $c_Lio_kaitai_struct_translators_JavaTranslator.prototype.doEnumByLabel__Lio_kaitai_struct_format_EnumSpec__T__T = (function(enumSpec, label) {
86015
+ var $$x1 = this.enumClass__sci_List__T($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name);
85835
86016
  $m_Lio_kaitai_struct_Utils$();
85836
86017
  var this$3 = $n(label);
85837
86018
  return (($$x1 + ".") + $as_T(this$3.toUpperCase()))
85838
86019
  });
85839
- $c_Lio_kaitai_struct_translators_JavaTranslator.prototype.doEnumById__sci_List__T__T = (function(enumTypeAbs, id) {
85840
- return (((this.enumClass__sci_List__T(enumTypeAbs) + ".byId(") + id) + ")")
86020
+ $c_Lio_kaitai_struct_translators_JavaTranslator.prototype.doEnumById__Lio_kaitai_struct_format_EnumSpec__T__T = (function(enumSpec, id) {
86021
+ return (((this.enumClass__sci_List__T($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name) + ".byId(") + id) + ")")
85841
86022
  });
85842
86023
  $c_Lio_kaitai_struct_translators_JavaTranslator.prototype.enumClass__sci_List__T = (function(enumTypeAbs) {
85843
86024
  var enumTypeRel = $m_Lio_kaitai_struct_Utils$().relClass__sci_List__sci_List__sci_List(enumTypeAbs, $n($n(this.Lio_kaitai_struct_translators_BaseTranslator__f_provider).Lio_kaitai_struct_ClassTypeProvider__f_nowClass).Lio_kaitai_struct_format_ClassSpec__f_name);
@@ -85903,7 +86084,8 @@ $c_Lio_kaitai_struct_translators_JavaTranslator.prototype.doIfExp__Lio_kaitai_st
85903
86084
  });
85904
86085
  $c_Lio_kaitai_struct_translators_JavaTranslator.prototype.doCast__Lio_kaitai_struct_exprlang_Ast$expr__Lio_kaitai_struct_datatype_DataType__T = (function(value, typeName) {
85905
86086
  var this$1 = $m_Lio_kaitai_struct_languages_JavaCompiler$();
85906
- return (((("((" + this$1.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__T(typeName)) + ") (") + this.translate__Lio_kaitai_struct_exprlang_Ast$expr__I__T(value, 0)) + "))")
86087
+ var importList = this.Lio_kaitai_struct_translators_JavaTranslator__f_importList;
86088
+ return (((("((" + this$1.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_ImportList__T(typeName, importList)) + ") (") + this.translate__Lio_kaitai_struct_exprlang_Ast$expr__I__T(value, 0)) + "))")
85907
86089
  });
85908
86090
  $c_Lio_kaitai_struct_translators_JavaTranslator.prototype.strToInt__Lio_kaitai_struct_exprlang_Ast$expr__Lio_kaitai_struct_exprlang_Ast$expr__T = (function(s, base) {
85909
86091
  return (((("Long.parseLong(" + this.translate__Lio_kaitai_struct_exprlang_Ast$expr__I__T(s, 0)) + ", ") + this.translate__Lio_kaitai_struct_exprlang_Ast$expr__I__T(base, 0)) + ")")
@@ -86090,11 +86272,11 @@ $h_Lio_kaitai_struct_translators_NimTranslator.prototype = $c_Lio_kaitai_struct_
86090
86272
  $c_Lio_kaitai_struct_translators_NimTranslator.prototype.bytesToStr__T__T__T = (function(bytesExpr, encoding) {
86091
86273
  return (((("encode(" + bytesExpr) + ", \"") + encoding) + "\")")
86092
86274
  });
86093
- $c_Lio_kaitai_struct_translators_NimTranslator.prototype.doEnumById__sci_List__T__T = (function(enumTypeAbs, id) {
86094
- return ((($m_Lio_kaitai_struct_languages_NimCompiler$().namespaced__sci_List__T(enumTypeAbs) + "(") + id) + ")")
86275
+ $c_Lio_kaitai_struct_translators_NimTranslator.prototype.doEnumById__Lio_kaitai_struct_format_EnumSpec__T__T = (function(enumSpec, id) {
86276
+ return ((($m_Lio_kaitai_struct_languages_NimCompiler$().namespaced__sci_List__T($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name) + "(") + id) + ")")
86095
86277
  });
86096
- $c_Lio_kaitai_struct_translators_NimTranslator.prototype.doEnumByLabel__sci_List__T__T = (function(enumTypeAbs, label) {
86097
- return (($n(enumTypeAbs).head__O() + ".") + label)
86278
+ $c_Lio_kaitai_struct_translators_NimTranslator.prototype.doEnumByLabel__Lio_kaitai_struct_format_EnumSpec__T__T = (function(enumSpec, label) {
86279
+ return (($n($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name).head__O() + ".") + label)
86098
86280
  });
86099
86281
  $c_Lio_kaitai_struct_translators_NimTranslator.prototype.doName__T__T = (function(s) {
86100
86282
  return (($m_Lio_kaitai_struct_format_Identifier$().Lio_kaitai_struct_format_Identifier$__f_ROOT === s) ? "root" : (($m_Lio_kaitai_struct_format_Identifier$().Lio_kaitai_struct_format_Identifier$__f_PARENT === s) ? "parent" : (($m_Lio_kaitai_struct_format_Identifier$().Lio_kaitai_struct_format_Identifier$__f_IO === s) ? "io" : (($m_Lio_kaitai_struct_format_Identifier$().Lio_kaitai_struct_format_Identifier$__f_ITERATOR === s) ? "it" : (($m_Lio_kaitai_struct_format_Identifier$().Lio_kaitai_struct_format_Identifier$__f_ITERATOR2 === s) ? "buf" : (($m_Lio_kaitai_struct_format_Identifier$().Lio_kaitai_struct_format_Identifier$__f_INDEX === s) ? "i" : (($m_Lio_kaitai_struct_format_Identifier$().Lio_kaitai_struct_format_Identifier$__f_SWITCH_ON === s) ? "on" : (($m_Lio_kaitai_struct_format_Identifier$().Lio_kaitai_struct_format_Identifier$__f_IS_LE === s) ? "isLe" : (($m_Lio_kaitai_struct_format_Identifier$().Lio_kaitai_struct_format_Identifier$__f_SIZEOF === s) ? "size" : ("" + $m_Lio_kaitai_struct_languages_NimCompiler$().camelCase__T__Z__T(s, false)))))))))))
@@ -86476,23 +86658,30 @@ $c_Lio_kaitai_struct_translators_PerlTranslator.prototype.doInternalName__Lio_ka
86476
86658
  var this$1 = $m_Lio_kaitai_struct_languages_PerlCompiler$();
86477
86659
  return (("$self->" + this$1.idToStr__Lio_kaitai_struct_format_Identifier__T(id)) + "()")
86478
86660
  });
86479
- $c_Lio_kaitai_struct_translators_PerlTranslator.prototype.doEnumByLabel__sci_List__T__T = (function(enumType, label) {
86480
- var enumClass = $m_Lio_kaitai_struct_languages_PerlCompiler$().types2class__sci_List__T($as_sci_List($n(enumType).init__O()));
86481
- var this$1 = $n(enumClass);
86482
- if ((this$1 === "")) {
86661
+ $c_Lio_kaitai_struct_translators_PerlTranslator.prototype.doEnumByLabel__Lio_kaitai_struct_format_EnumSpec__T__T = (function(enumSpec, label) {
86662
+ var isExternal = $n(enumSpec).isExternal__Lio_kaitai_struct_format_ClassSpec__Z($n(this.Lio_kaitai_struct_translators_BaseTranslator__f_provider).Lio_kaitai_struct_ClassTypeProvider__f_nowClass);
86663
+ if (isExternal) {
86664
+ var this$2 = $n(this.Lio_kaitai_struct_translators_PerlTranslator__f_importList);
86665
+ var name = $as_T($n($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name).head__O());
86666
+ var s = $m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(name);
86667
+ $m_Lio_kaitai_struct_Utils$().addUniqueAttr__scm_ListBuffer__O__V(this$2.Lio_kaitai_struct_ImportList__f_list, s)
86668
+ };
86669
+ var enumClass = $m_Lio_kaitai_struct_languages_PerlCompiler$().types2class__sci_List__T($as_sci_List($n($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name).init__O()));
86670
+ var this$3 = $n(enumClass);
86671
+ if ((this$3 === "")) {
86483
86672
  var enumClassWithScope = ""
86484
86673
  } else {
86485
86674
  var enumClassWithScope = (enumClass + "::")
86486
86675
  };
86487
86676
  $m_Lio_kaitai_struct_Utils$();
86488
- var s = $as_T($n(enumType).last__O());
86489
- var this$4 = $n(s);
86490
- var enumName = $as_T(this$4.toUpperCase());
86677
+ var s$1 = $as_T($n($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name).last__O());
86678
+ var this$6 = $n(s$1);
86679
+ var enumName = $as_T(this$6.toUpperCase());
86491
86680
  $m_Lio_kaitai_struct_Utils$();
86492
- var this$7 = $n(label);
86493
- return (((("$" + enumClassWithScope) + enumName) + "_") + $as_T(this$7.toUpperCase()))
86681
+ var this$9 = $n(label);
86682
+ return (((("$" + enumClassWithScope) + enumName) + "_") + $as_T(this$9.toUpperCase()))
86494
86683
  });
86495
- $c_Lio_kaitai_struct_translators_PerlTranslator.prototype.doEnumById__sci_List__T__T = (function(enumTypeAbs, id) {
86684
+ $c_Lio_kaitai_struct_translators_PerlTranslator.prototype.doEnumById__Lio_kaitai_struct_format_EnumSpec__T__T = (function(enumSpec, id) {
86496
86685
  return id
86497
86686
  });
86498
86687
  $c_Lio_kaitai_struct_translators_PerlTranslator.prototype.doStrCompareOp__Lio_kaitai_struct_exprlang_Ast$expr__Lio_kaitai_struct_exprlang_Ast$cmpop__Lio_kaitai_struct_exprlang_Ast$expr__T = (function(left, op, right) {
@@ -86728,8 +86917,9 @@ var $d_Lio_kaitai_struct_translators_PerlTranslator = new $TypeData().initClass(
86728
86917
  Lio_kaitai_struct_translators_ByteArraysAsTrueArrays: 1
86729
86918
  });
86730
86919
  $c_Lio_kaitai_struct_translators_PerlTranslator.prototype.$classData = $d_Lio_kaitai_struct_translators_PerlTranslator;
86731
- function $ct_Lio_kaitai_struct_translators_PythonTranslator__Lio_kaitai_struct_translators_TypeProvider__Lio_kaitai_struct_ImportList__($thiz, provider, importList) {
86920
+ function $ct_Lio_kaitai_struct_translators_PythonTranslator__Lio_kaitai_struct_translators_TypeProvider__Lio_kaitai_struct_ImportList__Lio_kaitai_struct_RuntimeConfig__($thiz, provider, importList, config) {
86732
86921
  $thiz.Lio_kaitai_struct_translators_PythonTranslator__f_importList = importList;
86922
+ $thiz.Lio_kaitai_struct_translators_PythonTranslator__f_config = config;
86733
86923
  $ct_Lio_kaitai_struct_translators_BaseTranslator__Lio_kaitai_struct_translators_TypeProvider__($thiz, provider);
86734
86924
  var this$22 = $n($m_s_Predef$().s_Predef$__f_Map);
86735
86925
  var array = [new $c_T2($bC(9), "\\t"), new $c_T2($bC(10), "\\n"), new $c_T2($bC(13), "\\r"), new $c_T2($bC(34), "\\\""), new $c_T2($bC(92), "\\\\"), new $c_T2($bC(7), "\\a"), new $c_T2($bC(12), "\\f"), new $c_T2($bC(11), "\\v"), new $c_T2($bC(8), "\\b")];
@@ -86746,6 +86936,7 @@ function $c_Lio_kaitai_struct_translators_PythonTranslator() {
86746
86936
  this.Lio_kaitai_struct_translators_BaseTranslator__f_OPERATOR_PRECEDENCE = null;
86747
86937
  this.Lio_kaitai_struct_translators_BaseTranslator__f_asciiCharQuoteMap = null;
86748
86938
  this.Lio_kaitai_struct_translators_PythonTranslator__f_importList = null;
86939
+ this.Lio_kaitai_struct_translators_PythonTranslator__f_config = null;
86749
86940
  this.Lio_kaitai_struct_translators_PythonTranslator__f_asciiCharQuoteMap = null
86750
86941
  }
86751
86942
  $c_Lio_kaitai_struct_translators_PythonTranslator.prototype = new $h_Lio_kaitai_struct_translators_BaseTranslator();
@@ -86805,11 +86996,15 @@ $c_Lio_kaitai_struct_translators_PythonTranslator.prototype.doName__T__T = (func
86805
86996
  $c_Lio_kaitai_struct_translators_PythonTranslator.prototype.doInternalName__Lio_kaitai_struct_format_Identifier__T = (function(id) {
86806
86997
  return ("self." + $m_Lio_kaitai_struct_languages_PythonCompiler$().publicMemberName__Lio_kaitai_struct_format_Identifier__T(id))
86807
86998
  });
86808
- $c_Lio_kaitai_struct_translators_PythonTranslator.prototype.doEnumByLabel__sci_List__T__T = (function(enumTypeAbs, label) {
86809
- return (($m_Lio_kaitai_struct_languages_PythonCompiler$().types2class__sci_List__T(enumTypeAbs) + ".") + label)
86999
+ $c_Lio_kaitai_struct_translators_PythonTranslator.prototype.doEnumByLabel__Lio_kaitai_struct_format_EnumSpec__T__T = (function(enumSpec, label) {
87000
+ var isExternal = $n(enumSpec).isExternal__Lio_kaitai_struct_format_ClassSpec__Z($n(this.Lio_kaitai_struct_translators_BaseTranslator__f_provider).Lio_kaitai_struct_ClassTypeProvider__f_nowClass);
87001
+ if (isExternal) {
87002
+ $m_Lio_kaitai_struct_languages_PythonCompiler$().externalTypeDeclaration__Lio_kaitai_struct_ExternalType__Lio_kaitai_struct_ImportList__Lio_kaitai_struct_RuntimeConfig__V(new $c_Lio_kaitai_struct_ExternalEnum(enumSpec), this.Lio_kaitai_struct_translators_PythonTranslator__f_importList, this.Lio_kaitai_struct_translators_PythonTranslator__f_config)
87003
+ };
87004
+ return (($m_Lio_kaitai_struct_languages_PythonCompiler$().types2class__sci_List__Z__T($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name, isExternal) + ".") + label)
86810
87005
  });
86811
- $c_Lio_kaitai_struct_translators_PythonTranslator.prototype.doEnumById__sci_List__T__T = (function(enumTypeAbs, id) {
86812
- return (((("KaitaiStream.resolve_enum(" + $m_Lio_kaitai_struct_languages_PythonCompiler$().types2class__sci_List__T(enumTypeAbs)) + ", ") + id) + ")")
87006
+ $c_Lio_kaitai_struct_translators_PythonTranslator.prototype.doEnumById__Lio_kaitai_struct_format_EnumSpec__T__T = (function(enumSpec, id) {
87007
+ return (((("KaitaiStream.resolve_enum(" + $m_Lio_kaitai_struct_languages_PythonCompiler$().types2class__sci_List__Z__T($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name, $n(enumSpec).isExternal__Lio_kaitai_struct_format_ClassSpec__Z($n(this.Lio_kaitai_struct_translators_BaseTranslator__f_provider).Lio_kaitai_struct_ClassTypeProvider__f_nowClass))) + ", ") + id) + ")")
86813
87008
  });
86814
87009
  $c_Lio_kaitai_struct_translators_PythonTranslator.prototype.booleanOp__Lio_kaitai_struct_exprlang_Ast$boolop__T = (function(op) {
86815
87010
  var x = $m_Lio_kaitai_struct_exprlang_Ast$boolop$Or$();
@@ -87040,11 +87235,11 @@ $c_Lio_kaitai_struct_translators_RubyTranslator.prototype.doInternalName__Lio_ka
87040
87235
  var this$1 = $m_Lio_kaitai_struct_languages_RubyCompiler$();
87041
87236
  return this$1.idToStr__Lio_kaitai_struct_format_Identifier__T(id)
87042
87237
  });
87043
- $c_Lio_kaitai_struct_translators_RubyTranslator.prototype.doEnumByLabel__sci_List__T__T = (function(enumTypeAbs, label) {
87044
- return (((":" + $n(enumTypeAbs).last__O()) + "_") + label)
87238
+ $c_Lio_kaitai_struct_translators_RubyTranslator.prototype.doEnumByLabel__Lio_kaitai_struct_format_EnumSpec__T__T = (function(enumSpec, label) {
87239
+ return $m_Lio_kaitai_struct_languages_RubyCompiler$().enumValue__T__T__T($as_T($n($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name).last__O()), label)
87045
87240
  });
87046
- $c_Lio_kaitai_struct_translators_RubyTranslator.prototype.doEnumById__sci_List__T__T = (function(enumType, id) {
87047
- return (((("Kaitai::Struct::Stream::resolve_enum(" + this.enumDirectMap__sci_List__T(enumType)) + ", ") + id) + ")")
87241
+ $c_Lio_kaitai_struct_translators_RubyTranslator.prototype.doEnumById__Lio_kaitai_struct_format_EnumSpec__T__T = (function(enumSpec, id) {
87242
+ return (((("Kaitai::Struct::Stream::resolve_enum(" + this.enumDirectMap__sci_List__T($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name)) + ", ") + id) + ")")
87048
87243
  });
87049
87244
  $c_Lio_kaitai_struct_translators_RubyTranslator.prototype.enumDirectMap__sci_List__T = (function(enumTypeAndName) {
87050
87245
  var this$1 = $n(enumTypeAndName);
@@ -87305,13 +87500,13 @@ $c_Lio_kaitai_struct_translators_RustTranslator.prototype.doLocalName__T__T = (f
87305
87500
  $c_Lio_kaitai_struct_translators_RustTranslator.prototype.doName__T__T = (function(s) {
87306
87501
  return s
87307
87502
  });
87308
- $c_Lio_kaitai_struct_translators_RustTranslator.prototype.doEnumByLabel__sci_List__T__T = (function(enumTypeAbs, label) {
87309
- var enumClass = this.types2classAbs__sci_List__T(enumTypeAbs);
87503
+ $c_Lio_kaitai_struct_translators_RustTranslator.prototype.doEnumByLabel__Lio_kaitai_struct_format_EnumSpec__T__T = (function(enumSpec, label) {
87504
+ var enumClass = this.types2classAbs__sci_List__T($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name);
87310
87505
  $m_Lio_kaitai_struct_Utils$();
87311
87506
  var this$3 = $n(label);
87312
87507
  return ((enumClass + "::") + $as_T(this$3.toUpperCase()))
87313
87508
  });
87314
- $c_Lio_kaitai_struct_translators_RustTranslator.prototype.doEnumById__sci_List__T__T = (function(enumTypeAbs, id) {
87509
+ $c_Lio_kaitai_struct_translators_RustTranslator.prototype.doEnumById__Lio_kaitai_struct_format_EnumSpec__T__T = (function(enumSpec, id) {
87315
87510
  return id
87316
87511
  });
87317
87512
  $c_Lio_kaitai_struct_translators_RustTranslator.prototype.arraySubscript__Lio_kaitai_struct_exprlang_Ast$expr__Lio_kaitai_struct_exprlang_Ast$expr__T = (function(container, idx) {
@@ -88041,8 +88236,9 @@ function $c_Lio_kaitai_struct_translators_ConstructTranslator(provider, importLi
88041
88236
  this.Lio_kaitai_struct_translators_BaseTranslator__f_OPERATOR_PRECEDENCE = null;
88042
88237
  this.Lio_kaitai_struct_translators_BaseTranslator__f_asciiCharQuoteMap = null;
88043
88238
  this.Lio_kaitai_struct_translators_PythonTranslator__f_importList = null;
88239
+ this.Lio_kaitai_struct_translators_PythonTranslator__f_config = null;
88044
88240
  this.Lio_kaitai_struct_translators_PythonTranslator__f_asciiCharQuoteMap = null;
88045
- $ct_Lio_kaitai_struct_translators_PythonTranslator__Lio_kaitai_struct_translators_TypeProvider__Lio_kaitai_struct_ImportList__(this, provider, importList)
88241
+ $ct_Lio_kaitai_struct_translators_PythonTranslator__Lio_kaitai_struct_translators_TypeProvider__Lio_kaitai_struct_ImportList__Lio_kaitai_struct_RuntimeConfig__(this, provider, importList, new $c_Lio_kaitai_struct_RuntimeConfig(true, false, false, true, new $c_Lio_kaitai_struct_CppRuntimeConfig($m_sci_Nil$(), false, false, false, $m_Lio_kaitai_struct_CppRuntimeConfig$RawPointers$()), "", new $c_Lio_kaitai_struct_JavaRuntimeConfig("", "io.kaitai.struct.ByteBufferKaitaiStream", "java.nio.BufferUnderflowException"), "Kaitai", "", "", "kaitai_struct_nim_runtime", ""))
88046
88242
  }
88047
88243
  $c_Lio_kaitai_struct_translators_ConstructTranslator.prototype = new $h_Lio_kaitai_struct_translators_PythonTranslator();
88048
88244
  $c_Lio_kaitai_struct_translators_ConstructTranslator.prototype.constructor = $c_Lio_kaitai_struct_translators_ConstructTranslator;
@@ -88057,7 +88253,7 @@ $c_Lio_kaitai_struct_translators_ConstructTranslator.prototype.doLocalName__T__T
88057
88253
  $c_Lio_kaitai_struct_translators_ConstructTranslator.prototype.doName__T__T = (function(s) {
88058
88254
  return (($m_Lio_kaitai_struct_format_Identifier$().Lio_kaitai_struct_format_Identifier$__f_PARENT === s) ? "_" : s)
88059
88255
  });
88060
- $c_Lio_kaitai_struct_translators_ConstructTranslator.prototype.doEnumByLabel__sci_List__T__T = (function(enumTypeAbs, label) {
88256
+ $c_Lio_kaitai_struct_translators_ConstructTranslator.prototype.doEnumByLabel__Lio_kaitai_struct_format_EnumSpec__T__T = (function(enumSpec, label) {
88061
88257
  return (("'" + label) + "'")
88062
88258
  });
88063
88259
  $c_Lio_kaitai_struct_translators_ConstructTranslator.prototype.kaitaiStreamSize__Lio_kaitai_struct_exprlang_Ast$expr__T = (function(value) {
@@ -88226,7 +88422,7 @@ $c_Lio_kaitai_struct_translators_CppTranslator.prototype.asciiCharQuoteMap__sci_
88226
88422
  $c_Lio_kaitai_struct_translators_CppTranslator.prototype.doArrayLiteral__Lio_kaitai_struct_datatype_DataType__sci_Seq__T = (function(t, values) {
88227
88423
  if ($n($n(this.Lio_kaitai_struct_translators_CppTranslator__f_config).Lio_kaitai_struct_RuntimeConfig__f_cppConfig).Lio_kaitai_struct_CppRuntimeConfig__f_useListInitializers) {
88228
88424
  $n(this.Lio_kaitai_struct_translators_CppTranslator__f_importListHdr).addSystem__T__V("vector");
88229
- var cppElType = $m_Lio_kaitai_struct_languages_CppCompiler$().kaitaiType2NativeType__Lio_kaitai_struct_CppRuntimeConfig__Lio_kaitai_struct_datatype_DataType__Z__T($n(this.Lio_kaitai_struct_translators_CppTranslator__f_config).Lio_kaitai_struct_RuntimeConfig__f_cppConfig, t, false);
88425
+ var cppElType = $m_Lio_kaitai_struct_languages_CppCompiler$().kaitaiType2NativeType__Lio_kaitai_struct_CppRuntimeConfig__Lio_kaitai_struct_languages_components_CppImportList__Lio_kaitai_struct_datatype_DataType__Z__T($n(this.Lio_kaitai_struct_translators_CppTranslator__f_config).Lio_kaitai_struct_RuntimeConfig__f_cppConfig, this.Lio_kaitai_struct_translators_CppTranslator__f_importListHdr, t, false);
88230
88426
  var this$2 = $n($as_sc_IterableOnceOps($n(values).map__F1__O(new $c_sjsr_AnonFunction1(((value$2) => {
88231
88427
  var value = $as_Lio_kaitai_struct_exprlang_Ast$expr(value$2);
88232
88428
  return this.translate__Lio_kaitai_struct_exprlang_Ast$expr__I__T(value, 0)
@@ -88280,16 +88476,20 @@ $c_Lio_kaitai_struct_translators_CppTranslator.prototype.doInternalName__Lio_kai
88280
88476
  var this$1 = $m_Lio_kaitai_struct_languages_CppCompiler$();
88281
88477
  return (this$1.idToStr__Lio_kaitai_struct_format_Identifier__T(id) + "()")
88282
88478
  });
88283
- $c_Lio_kaitai_struct_translators_CppTranslator.prototype.doEnumByLabel__sci_List__T__T = (function(enumType, label) {
88479
+ $c_Lio_kaitai_struct_translators_CppTranslator.prototype.doEnumByLabel__Lio_kaitai_struct_format_EnumSpec__T__T = (function(enumSpec, label) {
88480
+ var isExternal = $n(enumSpec).isExternal__Lio_kaitai_struct_format_ClassSpec__Z($n(this.Lio_kaitai_struct_translators_BaseTranslator__f_provider).Lio_kaitai_struct_ClassTypeProvider__f_nowClass);
88481
+ if (isExternal) {
88482
+ $n(this.Lio_kaitai_struct_translators_CppTranslator__f_importListHdr).addLocal__T__V($m_Lio_kaitai_struct_languages_CppCompiler$().outFileNameHeader__T__T($as_T($n($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name).head__O())))
88483
+ };
88284
88484
  var $$x2 = $m_Lio_kaitai_struct_languages_CppCompiler$();
88285
- var this$1 = $n(enumType);
88485
+ var this$1 = $n($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name);
88286
88486
  var $$x1 = $n($$x2).types2class__sci_List__T($as_sci_List($f_sc_StrictOptimizedIterableOps__dropRight__I__O(this$1, 1)));
88287
88487
  $m_Lio_kaitai_struct_Utils$();
88288
- var s = (($as_T($n(enumType).last__O()) + "_") + label);
88488
+ var s = (($as_T($n($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name).last__O()) + "_") + label);
88289
88489
  return (($$x1 + "::") + $as_T(s.toUpperCase()))
88290
88490
  });
88291
- $c_Lio_kaitai_struct_translators_CppTranslator.prototype.doEnumById__sci_List__T__T = (function(enumType, id) {
88292
- return (((("static_cast<" + $m_Lio_kaitai_struct_languages_CppCompiler$().types2class__sci_List__T(enumType)) + ">(") + id) + ")")
88491
+ $c_Lio_kaitai_struct_translators_CppTranslator.prototype.doEnumById__Lio_kaitai_struct_format_EnumSpec__T__T = (function(enumSpec, id) {
88492
+ return (((("static_cast<" + $m_Lio_kaitai_struct_languages_CppCompiler$().types2class__sci_List__T($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name)) + ">(") + id) + ")")
88293
88493
  });
88294
88494
  $c_Lio_kaitai_struct_translators_CppTranslator.prototype.doStrCompareOp__Lio_kaitai_struct_exprlang_Ast$expr__Lio_kaitai_struct_exprlang_Ast$cmpop__Lio_kaitai_struct_exprlang_Ast$expr__T = (function(left, op, right) {
88295
88495
  var x$2 = $m_Lio_kaitai_struct_exprlang_Ast$cmpop$Eq$();
@@ -88323,7 +88523,7 @@ $c_Lio_kaitai_struct_translators_CppTranslator.prototype.doIfExp__Lio_kaitai_str
88323
88523
  return (((((("((" + this.translate__Lio_kaitai_struct_exprlang_Ast$expr__I__T(condition, 0)) + ") ? (") + this.translate__Lio_kaitai_struct_exprlang_Ast$expr__I__T(ifTrue, 0)) + ") : (") + this.translate__Lio_kaitai_struct_exprlang_Ast$expr__I__T(ifFalse, 0)) + "))")
88324
88524
  });
88325
88525
  $c_Lio_kaitai_struct_translators_CppTranslator.prototype.doCast__Lio_kaitai_struct_exprlang_Ast$expr__Lio_kaitai_struct_datatype_DataType__T = (function(value, typeName) {
88326
- return (((("static_cast<" + $m_Lio_kaitai_struct_languages_CppCompiler$().kaitaiType2NativeType__Lio_kaitai_struct_CppRuntimeConfig__Lio_kaitai_struct_datatype_DataType__Z__T($n(this.Lio_kaitai_struct_translators_CppTranslator__f_config).Lio_kaitai_struct_RuntimeConfig__f_cppConfig, typeName, false)) + ">(") + this.translate__Lio_kaitai_struct_exprlang_Ast$expr__I__T(value, 0)) + ")")
88526
+ return (((("static_cast<" + $m_Lio_kaitai_struct_languages_CppCompiler$().kaitaiType2NativeType__Lio_kaitai_struct_CppRuntimeConfig__Lio_kaitai_struct_languages_components_CppImportList__Lio_kaitai_struct_datatype_DataType__Z__T($n(this.Lio_kaitai_struct_translators_CppTranslator__f_config).Lio_kaitai_struct_RuntimeConfig__f_cppConfig, this.Lio_kaitai_struct_translators_CppTranslator__f_importListHdr, typeName, false)) + ">(") + this.translate__Lio_kaitai_struct_exprlang_Ast$expr__I__T(value, 0)) + ")")
88327
88527
  });
88328
88528
  $c_Lio_kaitai_struct_translators_CppTranslator.prototype.strToInt__Lio_kaitai_struct_exprlang_Ast$expr__Lio_kaitai_struct_exprlang_Ast$expr__T = (function(s, base) {
88329
88529
  var baseStr = this.translate__Lio_kaitai_struct_exprlang_Ast$expr__I__T(base, 0);
@@ -88593,11 +88793,11 @@ $c_Lio_kaitai_struct_translators_LuaTranslator.prototype.doName__T__T = (functio
88593
88793
  $c_Lio_kaitai_struct_translators_LuaTranslator.prototype.doInternalName__Lio_kaitai_struct_format_Identifier__T = (function(id) {
88594
88794
  return ("self." + $m_Lio_kaitai_struct_languages_LuaCompiler$().publicMemberName__Lio_kaitai_struct_format_Identifier__T(id))
88595
88795
  });
88596
- $c_Lio_kaitai_struct_translators_LuaTranslator.prototype.doEnumByLabel__sci_List__T__T = (function(enumTypeAbs, label) {
88597
- return (($m_Lio_kaitai_struct_languages_LuaCompiler$().types2class__sci_List__T(enumTypeAbs) + ".") + label)
88796
+ $c_Lio_kaitai_struct_translators_LuaTranslator.prototype.doEnumByLabel__Lio_kaitai_struct_format_EnumSpec__T__T = (function(enumSpec, label) {
88797
+ return (($m_Lio_kaitai_struct_languages_LuaCompiler$().types2class__sci_List__T($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name) + ".") + label)
88598
88798
  });
88599
- $c_Lio_kaitai_struct_translators_LuaTranslator.prototype.doEnumById__sci_List__T__T = (function(enumTypeAbs, id) {
88600
- return ((($m_Lio_kaitai_struct_languages_LuaCompiler$().types2class__sci_List__T(enumTypeAbs) + "(") + id) + ")")
88799
+ $c_Lio_kaitai_struct_translators_LuaTranslator.prototype.doEnumById__Lio_kaitai_struct_format_EnumSpec__T__T = (function(enumSpec, id) {
88800
+ return ((($m_Lio_kaitai_struct_languages_LuaCompiler$().types2class__sci_List__T($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name) + "(") + id) + ")")
88601
88801
  });
88602
88802
  $c_Lio_kaitai_struct_translators_LuaTranslator.prototype.strConcat__Lio_kaitai_struct_exprlang_Ast$expr__Lio_kaitai_struct_exprlang_Ast$expr__I__T = (function(left, right, extPrec) {
88603
88803
  return ((this.translate__Lio_kaitai_struct_exprlang_Ast$expr__I__T(left, 0) + " .. ") + this.translate__Lio_kaitai_struct_exprlang_Ast$expr__I__T(right, 0))
@@ -88930,13 +89130,13 @@ $c_Lio_kaitai_struct_translators_PHPTranslator.prototype.doInternalName__Lio_kai
88930
89130
  var this$1 = $m_Lio_kaitai_struct_languages_PHPCompiler$();
88931
89131
  return (("$this->" + this$1.idToStr__Lio_kaitai_struct_format_Identifier__T(id)) + "()")
88932
89132
  });
88933
- $c_Lio_kaitai_struct_translators_PHPTranslator.prototype.doEnumByLabel__sci_List__T__T = (function(enumTypeAbs, label) {
88934
- var enumClass = this.types2classAbs__sci_List__T(enumTypeAbs);
89133
+ $c_Lio_kaitai_struct_translators_PHPTranslator.prototype.doEnumByLabel__Lio_kaitai_struct_format_EnumSpec__T__T = (function(enumSpec, label) {
89134
+ var enumClass = this.types2classAbs__sci_List__T($n(enumSpec).Lio_kaitai_struct_format_EnumSpec__f_name);
88935
89135
  $m_Lio_kaitai_struct_Utils$();
88936
89136
  var this$3 = $n(label);
88937
89137
  return ((enumClass + "::") + $as_T(this$3.toUpperCase()))
88938
89138
  });
88939
- $c_Lio_kaitai_struct_translators_PHPTranslator.prototype.doEnumById__sci_List__T__T = (function(enumTypeAbs, id) {
89139
+ $c_Lio_kaitai_struct_translators_PHPTranslator.prototype.doEnumById__Lio_kaitai_struct_format_EnumSpec__T__T = (function(enumSpec, id) {
88940
89140
  return id
88941
89141
  });
88942
89142
  $c_Lio_kaitai_struct_translators_PHPTranslator.prototype.arraySubscript__Lio_kaitai_struct_exprlang_Ast$expr__Lio_kaitai_struct_exprlang_Ast$expr__T = (function(container, idx) {
@@ -90099,7 +90299,7 @@ $c_Lio_kaitai_struct_languages_CppCompiler.prototype.results__Lio_kaitai_struct_
90099
90299
  var this$2 = $n(this$1.Lio_kaitai_struct_format_ClassSpec__f_name);
90100
90300
  var className = $f_sc_IterableOnceOps__mkString__T__T__T__T(this$2, "", "::", "");
90101
90301
  var this$18 = $n($m_s_Predef$().s_Predef$__f_Map);
90102
- var self = this.outFileNameSource__T__T(className);
90302
+ var self = $m_Lio_kaitai_struct_languages_CppCompiler$().outFileNameSource__T__T(className);
90103
90303
  var this$4 = $n(this.Lio_kaitai_struct_languages_CppCompiler__f_outSrcHeader);
90104
90304
  var this$5 = $n(this$4.Lio_kaitai_struct_StringLanguageOutputWriter__f_sb);
90105
90305
  var $$x4 = $n(this$5.scm_StringBuilder__f_underlying).jl_StringBuilder__f_java$lang$StringBuilder$$content;
@@ -90108,7 +90308,7 @@ $c_Lio_kaitai_struct_languages_CppCompiler.prototype.results__Lio_kaitai_struct_
90108
90308
  var this$7 = $n(this$6.Lio_kaitai_struct_StringLanguageOutputWriter__f_sb);
90109
90309
  var y = ((("" + $$x4) + $$x3) + $n(this$7.scm_StringBuilder__f_underlying).jl_StringBuilder__f_java$lang$StringBuilder$$content);
90110
90310
  var $$x5 = new $c_T2(self, y);
90111
- var self$1 = this.outFileNameHeader__T__T(className);
90311
+ var self$1 = $m_Lio_kaitai_struct_languages_CppCompiler$().outFileNameHeader__T__T(className);
90112
90312
  var this$10 = $n(this.Lio_kaitai_struct_languages_CppCompiler__f_outHdrHeader);
90113
90313
  var this$11 = $n(this$10.Lio_kaitai_struct_StringLanguageOutputWriter__f_sb);
90114
90314
  var $$x2 = $n(this$11.scm_StringBuilder__f_underlying).jl_StringBuilder__f_java$lang$StringBuilder$$content;
@@ -90123,17 +90323,11 @@ $c_Lio_kaitai_struct_languages_CppCompiler.prototype.results__Lio_kaitai_struct_
90123
90323
  $c_Lio_kaitai_struct_languages_CppCompiler.prototype.indent__T = (function() {
90124
90324
  return " "
90125
90325
  });
90126
- $c_Lio_kaitai_struct_languages_CppCompiler.prototype.outFileNameSource__T__T = (function(className) {
90127
- return (className + ".cpp")
90128
- });
90129
- $c_Lio_kaitai_struct_languages_CppCompiler.prototype.outFileNameHeader__T__T = (function(className) {
90130
- return (className + ".h")
90131
- });
90132
90326
  $c_Lio_kaitai_struct_languages_CppCompiler.prototype.fileHeader__T__V = (function(topClassName) {
90133
90327
  $n(this.Lio_kaitai_struct_languages_CppCompiler__f_outSrcHeader).puts__T__V("// This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild");
90134
90328
  var this$1 = $n(this.Lio_kaitai_struct_languages_CppCompiler__f_outSrcHeader);
90135
90329
  $n(this$1.Lio_kaitai_struct_StringLanguageOutputWriter__f_sb).append__T__scm_StringBuilder("\n");
90136
- $n(this.Lio_kaitai_struct_languages_CppCompiler__f_importListSrc).addLocal__T__V(this.outFileNameHeader__T__T(topClassName));
90330
+ $n(this.Lio_kaitai_struct_languages_CppCompiler__f_importListSrc).addLocal__T__V($m_Lio_kaitai_struct_languages_CppCompiler$().outFileNameHeader__T__T(topClassName));
90137
90331
  if ($n($n(this.Lio_kaitai_struct_languages_components_LanguageCompiler__f_config).Lio_kaitai_struct_RuntimeConfig__f_cppConfig).Lio_kaitai_struct_CppRuntimeConfig__f_usePragmaOnce) {
90138
90332
  $n(this.Lio_kaitai_struct_languages_CppCompiler__f_outHdrHeader).puts__T__V("#pragma once")
90139
90333
  } else {
@@ -90145,8 +90339,11 @@ $c_Lio_kaitai_struct_languages_CppCompiler.prototype.fileHeader__T__V = (functio
90145
90339
  $n(this.Lio_kaitai_struct_languages_CppCompiler__f_outHdrHeader).puts__T__V("// This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild");
90146
90340
  var this$3 = $n(this.Lio_kaitai_struct_languages_CppCompiler__f_outHdrHeader);
90147
90341
  $n(this$3.Lio_kaitai_struct_StringLanguageOutputWriter__f_sb).append__T__scm_StringBuilder("\n");
90148
- var this$4 = $n(this.Lio_kaitai_struct_languages_CppCompiler__f_importListHdr);
90149
- this$4.addLocal__T__V("kaitai/kaitaistruct.h");
90342
+ $n(this.Lio_kaitai_struct_languages_CppCompiler__f_outHdrHeader).puts__T__V((("class " + $m_Lio_kaitai_struct_languages_CppCompiler$().type2class__T__T(topClassName)) + ";"));
90343
+ var this$4 = $n(this.Lio_kaitai_struct_languages_CppCompiler__f_outHdrHeader);
90344
+ $n(this$4.Lio_kaitai_struct_StringLanguageOutputWriter__f_sb).append__T__scm_StringBuilder("\n");
90345
+ var this$5 = $n(this.Lio_kaitai_struct_languages_CppCompiler__f_importListHdr);
90346
+ this$5.addLocal__T__V("kaitai/kaitaistruct.h");
90150
90347
  $n(this.Lio_kaitai_struct_languages_CppCompiler__f_importListHdr).addSystem__T__V("stdint.h");
90151
90348
  var x1 = $n($n(this.Lio_kaitai_struct_languages_components_LanguageCompiler__f_config).Lio_kaitai_struct_RuntimeConfig__f_cppConfig).Lio_kaitai_struct_CppRuntimeConfig__f_pointers;
90152
90349
  var x = $m_Lio_kaitai_struct_CppRuntimeConfig$UniqueAndRawPointers$();
@@ -90159,13 +90356,13 @@ $c_Lio_kaitai_struct_languages_CppCompiler.prototype.fileHeader__T__V = (functio
90159
90356
  }
90160
90357
  };
90161
90358
  var minVer = $n($m_Lio_kaitai_struct_format_KSVersion$().Lio_kaitai_struct_format_KSVersion$__f_minimalRuntime).toInt__I();
90162
- var this$5 = $n(this.Lio_kaitai_struct_languages_CppCompiler__f_outHdr);
90163
- $n(this$5.Lio_kaitai_struct_StringLanguageOutputWriter__f_sb).append__T__scm_StringBuilder("\n");
90359
+ var this$6 = $n(this.Lio_kaitai_struct_languages_CppCompiler__f_outHdr);
90360
+ $n(this$6.Lio_kaitai_struct_StringLanguageOutputWriter__f_sb).append__T__scm_StringBuilder("\n");
90164
90361
  $n(this.Lio_kaitai_struct_languages_CppCompiler__f_outHdr).puts__T__V((("#if KAITAI_STRUCT_VERSION < " + minVer) + "L"));
90165
90362
  $n(this.Lio_kaitai_struct_languages_CppCompiler__f_outHdr).puts__T__V((("#error \"Incompatible Kaitai Struct C++/STL API: version " + $m_Lio_kaitai_struct_format_KSVersion$().Lio_kaitai_struct_format_KSVersion$__f_minimalRuntime) + " or later is required\""));
90166
90363
  $n(this.Lio_kaitai_struct_languages_CppCompiler__f_outHdr).puts__T__V("#endif");
90167
- var this$6 = $n($n($n(this.Lio_kaitai_struct_languages_components_LanguageCompiler__f_config).Lio_kaitai_struct_RuntimeConfig__f_cppConfig).Lio_kaitai_struct_CppRuntimeConfig__f_namespace);
90168
- var these = this$6;
90364
+ var this$7 = $n($n($n(this.Lio_kaitai_struct_languages_components_LanguageCompiler__f_config).Lio_kaitai_struct_RuntimeConfig__f_cppConfig).Lio_kaitai_struct_CppRuntimeConfig__f_namespace);
90365
+ var these = this$7;
90169
90366
  while ((!$n(these).isEmpty__Z())) {
90170
90367
  var arg1 = $n(these).head__O();
90171
90368
  var namespace = $as_T(arg1);
@@ -90194,9 +90391,8 @@ $c_Lio_kaitai_struct_languages_CppCompiler.prototype.fileFooter__T__V = (functio
90194
90391
  $n(this.Lio_kaitai_struct_languages_CppCompiler__f_outHdr).puts__T__V(("#endif // " + this.defineName__T__T(topClassName)))
90195
90392
  }
90196
90393
  });
90197
- $c_Lio_kaitai_struct_languages_CppCompiler.prototype.opaqueClassDeclaration__Lio_kaitai_struct_format_ClassSpec__V = (function(classSpec) {
90198
- this.classForwardDeclaration__sci_List__V($n(classSpec).Lio_kaitai_struct_format_ClassSpec__f_name);
90199
- $n(this.Lio_kaitai_struct_languages_CppCompiler__f_importListHdr).addLocal__T__V(this.outFileNameHeader__T__T($as_T($n($n(classSpec).Lio_kaitai_struct_format_ClassSpec__f_name).head__O())))
90394
+ $c_Lio_kaitai_struct_languages_CppCompiler.prototype.externalTypeDeclaration__Lio_kaitai_struct_ExternalType__V = (function(extType) {
90395
+ $n(this.Lio_kaitai_struct_languages_CppCompiler__f_importListHdr).addLocal__T__V($m_Lio_kaitai_struct_languages_CppCompiler$().outFileNameHeader__T__T($as_T($n($n(extType).name__sci_List()).head__O())))
90200
90396
  });
90201
90397
  $c_Lio_kaitai_struct_languages_CppCompiler.prototype.classHeader__sci_List__V = (function(name) {
90202
90398
  var $$x1 = $m_Lio_kaitai_struct_languages_CppCompiler$();
@@ -90223,7 +90419,7 @@ $c_Lio_kaitai_struct_languages_CppCompiler.prototype.importDataType__Lio_kaitai_
90223
90419
  var x2 = $as_Lio_kaitai_struct_datatype_DataType$UserType(dt);
90224
90420
  var classSpec = $as_Lio_kaitai_struct_format_ClassSpec($n($n(x2).Lio_kaitai_struct_datatype_DataType$UserType__f_classSpec).get__O());
90225
90421
  if ($n(classSpec).Lio_kaitai_struct_format_ClassSpec__f_isTopLevel) {
90226
- $n(this.Lio_kaitai_struct_languages_CppCompiler__f_importListSrc).addLocal__T__V(this.outFileNameHeader__T__T($as_T($n($n(classSpec).Lio_kaitai_struct_format_ClassSpec__f_name).head__O())))
90422
+ $n(this.Lio_kaitai_struct_languages_CppCompiler__f_importListSrc).addLocal__T__V($m_Lio_kaitai_struct_languages_CppCompiler$().outFileNameHeader__T__T($as_T($n($n(classSpec).Lio_kaitai_struct_format_ClassSpec__f_name).head__O())))
90227
90423
  }
90228
90424
  }
90229
90425
  });
@@ -90281,7 +90477,7 @@ $c_Lio_kaitai_struct_languages_CppCompiler.prototype.classConstructorHeader__sci
90281
90477
  $n(this.Lio_kaitai_struct_languages_CppCompiler__f_outSrc).puts__T__V((((((((((($m_Lio_kaitai_struct_languages_CppCompiler$().types2class__sci_List__T(name) + "::") + classNameBrief) + "(") + paramsArg) + ((tIo + " ") + pIo)) + ", ") + ((tParent + " ") + pParent)) + ", ") + (((((tRoot + " ") + pRoot) + endianSuffixSrc) + ") : kaitai::kstruct(") + pIo)) + ") {"));
90282
90478
  $n(this.Lio_kaitai_struct_languages_CppCompiler__f_outSrc).inc__V();
90283
90479
  this.handleAssignmentSimple__Lio_kaitai_struct_format_Identifier__T__V($m_Lio_kaitai_struct_format_ParentIdentifier$(), pParent);
90284
- this.handleAssignmentSimple__Lio_kaitai_struct_format_Identifier__T__V($m_Lio_kaitai_struct_format_RootIdentifier$(), (((name === null) ? (rootClassName === null) : $n(name).equals__O__Z(rootClassName)) ? "this" : pRoot));
90480
+ this.handleAssignmentSimple__Lio_kaitai_struct_format_Identifier__T__V($m_Lio_kaitai_struct_format_RootIdentifier$(), (((name === null) ? (rootClassName === null) : $n(name).equals__O__Z(rootClassName)) ? (((pRoot + " ? ") + pRoot) + " : this") : pRoot));
90285
90481
  var x1$2 = $n($n($n(this.Lio_kaitai_struct_languages_components_LanguageCompiler__f_typeProvider).Lio_kaitai_struct_ClassTypeProvider__f_nowClass).Lio_kaitai_struct_format_ClassSpec__f_meta).Lio_kaitai_struct_format_MetaSpec__f_endian;
90286
90482
  matchEnd12: {
90287
90483
  var $$x4;
@@ -90694,7 +90890,7 @@ $c_Lio_kaitai_struct_languages_CppCompiler.prototype.attrProcess__Lio_kaitai_str
90694
90890
  var this$3 = $n($$x1);
90695
90891
  var procClass = $f_sc_IterableOnceOps__mkString__T__T__T__T(this$3, "", "::", "");
90696
90892
  var procName$2 = ("_process_" + $m_Lio_kaitai_struct_languages_CppCompiler$().idToStr__Lio_kaitai_struct_format_Identifier__T(varSrc));
90697
- $n(this.Lio_kaitai_struct_languages_CppCompiler__f_importListSrc).addLocal__T__V(this.outFileNameHeader__T__T($as_T($n(name).last__O())));
90893
+ $n(this.Lio_kaitai_struct_languages_CppCompiler__f_importListSrc).addLocal__T__V($m_Lio_kaitai_struct_languages_CppCompiler$().outFileNameHeader__T__T($as_T($n(name).last__O())));
90698
90894
  var this$4 = $n($as_sc_IterableOnceOps($n(args).map__F1__O(new $c_sjsr_AnonFunction1(((e$2) => {
90699
90895
  var e = $as_Lio_kaitai_struct_exprlang_Ast$expr(e$2);
90700
90896
  return $f_Lio_kaitai_struct_languages_components_ObjectOrientedLanguage__expression__Lio_kaitai_struct_exprlang_Ast$expr__T(this, e)
@@ -91287,7 +91483,7 @@ $c_Lio_kaitai_struct_languages_CppCompiler.prototype.type2class__T__T = (functio
91287
91483
  return $m_Lio_kaitai_struct_languages_CppCompiler$().type2class__T__T(className)
91288
91484
  });
91289
91485
  $c_Lio_kaitai_struct_languages_CppCompiler.prototype.kaitaiType2NativeType__Lio_kaitai_struct_datatype_DataType__Z__T = (function(attrType, absolute) {
91290
- return $m_Lio_kaitai_struct_languages_CppCompiler$().kaitaiType2NativeType__Lio_kaitai_struct_CppRuntimeConfig__Lio_kaitai_struct_datatype_DataType__Z__T($n(this.Lio_kaitai_struct_languages_components_LanguageCompiler__f_config).Lio_kaitai_struct_RuntimeConfig__f_cppConfig, attrType, absolute)
91486
+ return $m_Lio_kaitai_struct_languages_CppCompiler$().kaitaiType2NativeType__Lio_kaitai_struct_CppRuntimeConfig__Lio_kaitai_struct_languages_components_CppImportList__Lio_kaitai_struct_datatype_DataType__Z__T($n(this.Lio_kaitai_struct_languages_components_LanguageCompiler__f_config).Lio_kaitai_struct_RuntimeConfig__f_cppConfig, this.Lio_kaitai_struct_languages_CppCompiler__f_importListHdr, attrType, absolute)
91291
91487
  });
91292
91488
  $c_Lio_kaitai_struct_languages_CppCompiler.prototype.nullPtr__T = (function() {
91293
91489
  var x1 = $n($n(this.Lio_kaitai_struct_languages_components_LanguageCompiler__f_config).Lio_kaitai_struct_RuntimeConfig__f_cppConfig).Lio_kaitai_struct_CppRuntimeConfig__f_pointers;
@@ -92701,7 +92897,7 @@ function $c_Lio_kaitai_struct_languages_JavaScriptCompiler(typeProvider, config)
92701
92897
  this.Lio_kaitai_struct_languages_JavaScriptCompiler__f_importList = null;
92702
92898
  $ct_Lio_kaitai_struct_languages_components_LanguageCompiler__Lio_kaitai_struct_ClassTypeProvider__Lio_kaitai_struct_RuntimeConfig__(this, typeProvider, config);
92703
92899
  $f_Lio_kaitai_struct_languages_components_SingleOutputFile__$init$__V(this);
92704
- this.Lio_kaitai_struct_languages_JavaScriptCompiler__f_translator = new $c_Lio_kaitai_struct_translators_JavaScriptTranslator(this.Lio_kaitai_struct_languages_components_LanguageCompiler__f_typeProvider);
92900
+ this.Lio_kaitai_struct_languages_JavaScriptCompiler__f_translator = new $c_Lio_kaitai_struct_translators_JavaScriptTranslator(this.Lio_kaitai_struct_languages_components_LanguageCompiler__f_typeProvider, this.Lio_kaitai_struct_languages_JavaScriptCompiler__f_importList);
92705
92901
  this.Lio_kaitai_struct_languages_JavaScriptCompiler__f_NAME_SWITCH_ON = new $c_Lio_kaitai_struct_exprlang_Ast$expr$Name(new $c_Lio_kaitai_struct_exprlang_Ast$identifier($m_Lio_kaitai_struct_format_Identifier$().Lio_kaitai_struct_format_Identifier$__f_SWITCH_ON))
92706
92902
  }
92707
92903
  $c_Lio_kaitai_struct_languages_JavaScriptCompiler.prototype = new $h_Lio_kaitai_struct_languages_components_LanguageCompiler();
@@ -92822,7 +93018,7 @@ $c_Lio_kaitai_struct_languages_JavaScriptCompiler.prototype.outImports__Lio_kait
92822
93018
  var this$7 = $n($$x1);
92823
93019
  var this$8 = $n(this$7.prepended__O__sci_List("exports"));
92824
93020
  var exportsArgs = $f_sc_IterableOnceOps__mkString__T__T__T__T(this$8, "", ", ", "");
92825
- var rassoc$3 = $m_Lio_kaitai_struct_languages_JavaScriptCompiler$().types2class__sci_List__T($n(topClass).Lio_kaitai_struct_format_ClassSpec__f_name);
93021
+ var rassoc$3 = $m_Lio_kaitai_struct_languages_JavaScriptCompiler$().types2class__sci_List__Z__T($n(topClass).Lio_kaitai_struct_format_ClassSpec__f_name, false);
92826
93022
  var this$11 = $n(impList);
92827
93023
  var f$2 = ((x$4$2) => {
92828
93024
  var x$4 = $as_T(x$4$2);
@@ -92907,8 +93103,8 @@ $c_Lio_kaitai_struct_languages_JavaScriptCompiler.prototype.fileFooter__T__V = (
92907
93103
  $n(this.Lio_kaitai_struct_languages_JavaScriptCompiler__f_out).puts__T__V(((((($m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(name) + "_.") + $m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(name)) + " = ") + $m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(name)) + ";"));
92908
93104
  $n(this.Lio_kaitai_struct_languages_JavaScriptCompiler__f_out).puts__T__V("});")
92909
93105
  });
92910
- $c_Lio_kaitai_struct_languages_JavaScriptCompiler.prototype.opaqueClassDeclaration__Lio_kaitai_struct_format_ClassSpec__V = (function(classSpec) {
92911
- var name = $as_T($n($n(classSpec).Lio_kaitai_struct_format_ClassSpec__f_name).head__O());
93106
+ $c_Lio_kaitai_struct_languages_JavaScriptCompiler.prototype.externalTypeDeclaration__Lio_kaitai_struct_ExternalType__V = (function(extType) {
93107
+ var name = $as_T($n($n(extType).name__sci_List()).head__O());
92912
93108
  var className = $m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(name);
92913
93109
  var this$1 = $n(this.Lio_kaitai_struct_languages_JavaScriptCompiler__f_importList);
92914
93110
  var s = ("./" + className);
@@ -92919,7 +93115,7 @@ $c_Lio_kaitai_struct_languages_JavaScriptCompiler.prototype.classHeader__sci_Lis
92919
93115
  var shortClassName = $m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(name$1);
92920
93116
  var this$1 = $n(name);
92921
93117
  if ((this$1.length__I() > 1)) {
92922
- var addNameExpr = (" = " + $m_Lio_kaitai_struct_languages_JavaScriptCompiler$().types2class__sci_List__T($n(name).takeRight__I__sci_List(2)))
93118
+ var addNameExpr = (" = " + $m_Lio_kaitai_struct_languages_JavaScriptCompiler$().types2class__sci_List__Z__T($n(name).takeRight__I__sci_List(2), false))
92923
93119
  } else {
92924
93120
  var addNameExpr = ""
92925
93121
  };
@@ -92969,7 +93165,11 @@ $c_Lio_kaitai_struct_languages_JavaScriptCompiler.prototype.classConstructorHead
92969
93165
  $n(this.Lio_kaitai_struct_languages_JavaScriptCompiler__f_out).inc__V();
92970
93166
  $n(this.Lio_kaitai_struct_languages_JavaScriptCompiler__f_out).puts__T__V("this._io = _io;");
92971
93167
  $n(this.Lio_kaitai_struct_languages_JavaScriptCompiler__f_out).puts__T__V("this._parent = _parent;");
92972
- $n(this.Lio_kaitai_struct_languages_JavaScriptCompiler__f_out).puts__T__V("this._root = _root || this;");
93168
+ if (((name === null) ? (rootClassName === null) : $n(name).equals__O__Z(rootClassName))) {
93169
+ $n(this.Lio_kaitai_struct_languages_JavaScriptCompiler__f_out).puts__T__V("this._root = _root || this;")
93170
+ } else {
93171
+ $n(this.Lio_kaitai_struct_languages_JavaScriptCompiler__f_out).puts__T__V("this._root = _root;")
93172
+ };
92973
93173
  if (isHybrid) {
92974
93174
  $n(this.Lio_kaitai_struct_languages_JavaScriptCompiler__f_out).puts__T__V("this._is_le = _is_le;")
92975
93175
  };
@@ -93190,7 +93390,7 @@ $c_Lio_kaitai_struct_languages_JavaScriptCompiler.prototype.attrDebugStart__Lio_
93190
93390
  };
93191
93391
  if ((attrType instanceof $c_Lio_kaitai_struct_datatype_DataType$EnumType)) {
93192
93392
  var x2 = $as_Lio_kaitai_struct_datatype_DataType$EnumType(attrType);
93193
- var enumNameProps = (("enumName: \"" + $m_Lio_kaitai_struct_languages_JavaScriptCompiler$().types2class__sci_List__T($n($as_Lio_kaitai_struct_format_EnumSpec($n($n(x2).Lio_kaitai_struct_datatype_DataType$EnumType__f_enumSpec).get__O())).Lio_kaitai_struct_format_EnumSpec__f_name)) + "\"")
93393
+ var enumNameProps = (("enumName: \"" + $m_Lio_kaitai_struct_languages_JavaScriptCompiler$().types2class__sci_List__Z__T($n($as_Lio_kaitai_struct_format_EnumSpec($n($n(x2).Lio_kaitai_struct_datatype_DataType$EnumType__f_enumSpec).get__O())).Lio_kaitai_struct_format_EnumSpec__f_name, false)) + "\"")
93194
93394
  } else {
93195
93395
  var enumNameProps = ""
93196
93396
  };
@@ -93344,25 +93544,7 @@ $c_Lio_kaitai_struct_languages_JavaScriptCompiler.prototype.parseExpr__Lio_kaita
93344
93544
  var this$3 = $n(this.Lio_kaitai_struct_languages_JavaScriptCompiler__f_translator);
93345
93545
  return this$3.translate__Lio_kaitai_struct_exprlang_Ast$expr__I__T(a, 0)
93346
93546
  })))), ", ", ", ", "");
93347
- var this$4 = $n($n(x10).Lio_kaitai_struct_datatype_DataType$UserType__f_classSpec);
93348
- if (this$4.isEmpty__Z()) {
93349
- var $$x1 = $m_s_None$()
93350
- } else {
93351
- var arg1 = this$4.get__O();
93352
- var classSpec = $as_Lio_kaitai_struct_format_ClassSpec(arg1);
93353
- var x$1 = $n(x10).Lio_kaitai_struct_datatype_DataType$UserType__f_name;
93354
- var x$2 = $n(classSpec).Lio_kaitai_struct_format_ClassSpec__f_name;
93355
- var $$x1 = new $c_s_Some(((x$1 === null) ? (x$2 === null) : $n(x$1).equals__O__Z(x$2)))
93356
- };
93357
- var this$5 = $n($$x1);
93358
- if ($uZ((this$5.isEmpty__Z() ? false : this$5.get__O()))) {
93359
- var this$6 = $n($n(x10).Lio_kaitai_struct_datatype_DataType$UserType__f_name);
93360
- var name = $as_T($f_sc_LinearSeqOps__apply__I__O(this$6, 0));
93361
- var topLevelModulePrefix = ($m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(name) + "_.")
93362
- } else {
93363
- var topLevelModulePrefix = ""
93364
- };
93365
- return ((((((((((("new " + topLevelModulePrefix) + $m_Lio_kaitai_struct_languages_JavaScriptCompiler$().types2class__sci_List__T($n(x10).Lio_kaitai_struct_datatype_DataType$UserType__f_name)) + "(") + io) + ", ") + parent$2) + ", ") + root) + addEndian) + addParams) + ")")
93547
+ return (((((((((("new " + $m_Lio_kaitai_struct_languages_JavaScriptCompiler$().types2class__sci_List__Z__T($n(x10).Lio_kaitai_struct_datatype_DataType$UserType__f_name, $n(x10).isExternal__Lio_kaitai_struct_format_ClassSpec__Z($n(this.Lio_kaitai_struct_languages_components_LanguageCompiler__f_typeProvider).Lio_kaitai_struct_ClassTypeProvider__f_nowClass))) + "(") + io) + ", ") + parent$2) + ", ") + root) + addEndian) + addParams) + ")")
93366
93548
  } else {
93367
93549
  throw new $c_s_MatchError(dataType)
93368
93550
  }
@@ -93850,9 +94032,10 @@ $c_Lio_kaitai_struct_languages_PHPCompiler.prototype.classConstructorHeader__sci
93850
94032
  var pRoot = this.paramName__Lio_kaitai_struct_format_Identifier__T($m_Lio_kaitai_struct_format_RootIdentifier$());
93851
94033
  var tParent = this.kaitaiType2NativeType__Lio_kaitai_struct_datatype_DataType__T(parentType);
93852
94034
  var tRoot = $n(this.Lio_kaitai_struct_languages_PHPCompiler__f_translator).types2classAbs__sci_List__T(rootClassName);
94035
+ var pRootValue = (((name === null) ? (rootClassName === null) : $n(name).equals__O__Z(rootClassName)) ? ((pRoot + " === null ? $this : ") + pRoot) : pRoot);
93853
94036
  $n(this.Lio_kaitai_struct_languages_PHPCompiler__f_out).puts__T__V(((((((((("public function __construct(" + paramsArg) + ("\\Kaitai\\Struct\\Stream " + pIo)) + ", ") + ((tParent + " ") + pParent)) + " = null, ") + ((tRoot + " ") + pRoot)) + " = null") + endianAdd) + ") {"));
93854
94037
  $n(this.Lio_kaitai_struct_languages_PHPCompiler__f_out).inc__V();
93855
- $n(this.Lio_kaitai_struct_languages_PHPCompiler__f_out).puts__T__V((((((("parent::__construct(" + pIo) + ", ") + pParent) + ", ") + pRoot) + ");"));
94038
+ $n(this.Lio_kaitai_struct_languages_PHPCompiler__f_out).puts__T__V((((((("parent::__construct(" + pIo) + ", ") + pParent) + ", ") + pRootValue) + ");"));
93856
94039
  if (isHybrid) {
93857
94040
  this.handleAssignmentSimple__Lio_kaitai_struct_format_Identifier__T__V($m_Lio_kaitai_struct_format_EndianIdentifier$(), "$is_le")
93858
94041
  };
@@ -94586,10 +94769,11 @@ $c_Lio_kaitai_struct_languages_PerlCompiler.prototype.fileFooter__T__V = (functi
94586
94769
  $n(this$1.Lio_kaitai_struct_StringLanguageOutputWriter__f_sb).append__T__scm_StringBuilder("\n");
94587
94770
  $n(this.Lio_kaitai_struct_languages_PerlCompiler__f_out).puts__T__V("1;")
94588
94771
  });
94589
- $c_Lio_kaitai_struct_languages_PerlCompiler.prototype.opaqueClassDeclaration__Lio_kaitai_struct_format_ClassSpec__V = (function(classSpec) {
94590
- var $$x1 = $n(this.Lio_kaitai_struct_languages_PerlCompiler__f_out);
94591
- var name = $as_T($n($n(classSpec).Lio_kaitai_struct_format_ClassSpec__f_name).head__O());
94592
- $n($$x1).puts__T__V((("use " + $m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(name)) + ";"))
94772
+ $c_Lio_kaitai_struct_languages_PerlCompiler.prototype.externalTypeDeclaration__Lio_kaitai_struct_ExternalType__V = (function(extType) {
94773
+ var this$1 = $n(this.Lio_kaitai_struct_languages_PerlCompiler__f_importList);
94774
+ var name = $as_T($n($n(extType).name__sci_List()).head__O());
94775
+ var s = $m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(name);
94776
+ $m_Lio_kaitai_struct_Utils$().addUniqueAttr__scm_ListBuffer__O__V(this$1.Lio_kaitai_struct_ImportList__f_list, s)
94593
94777
  });
94594
94778
  $c_Lio_kaitai_struct_languages_PerlCompiler.prototype.classHeader__sci_List__V = (function(name) {
94595
94779
  var this$1 = $n(this.Lio_kaitai_struct_languages_PerlCompiler__f_out);
@@ -94617,6 +94801,7 @@ $c_Lio_kaitai_struct_languages_PerlCompiler.prototype.classFooter__sci_List__V =
94617
94801
  });
94618
94802
  $c_Lio_kaitai_struct_languages_PerlCompiler.prototype.classConstructorHeader__sci_List__Lio_kaitai_struct_datatype_DataType__sci_List__Z__sci_List__V = (function(name, parentType, rootClassName, isHybrid, params) {
94619
94803
  var endianSuffix = (isHybrid ? ", $_is_le" : "");
94804
+ var pRootValue = (((name === null) ? (rootClassName === null) : $n(name).equals__O__Z(rootClassName)) ? "$_root || $self" : "$_root");
94620
94805
  var this$1 = $n(this.Lio_kaitai_struct_languages_PerlCompiler__f_out);
94621
94806
  $n(this$1.Lio_kaitai_struct_StringLanguageOutputWriter__f_sb).append__T__scm_StringBuilder("\n");
94622
94807
  $n(this.Lio_kaitai_struct_languages_PerlCompiler__f_out).puts__T__V("sub new {");
@@ -94627,7 +94812,7 @@ $c_Lio_kaitai_struct_languages_PerlCompiler.prototype.classConstructorHeader__sc
94627
94812
  $n(this$2.Lio_kaitai_struct_StringLanguageOutputWriter__f_sb).append__T__scm_StringBuilder("\n");
94628
94813
  $n(this.Lio_kaitai_struct_languages_PerlCompiler__f_out).puts__T__V("bless $self, $class;");
94629
94814
  this.handleAssignmentSimple__Lio_kaitai_struct_format_Identifier__T__V($m_Lio_kaitai_struct_format_ParentIdentifier$(), "$_parent");
94630
- this.handleAssignmentSimple__Lio_kaitai_struct_format_Identifier__T__V($m_Lio_kaitai_struct_format_RootIdentifier$(), "$_root || $self;");
94815
+ this.handleAssignmentSimple__Lio_kaitai_struct_format_Identifier__T__V($m_Lio_kaitai_struct_format_RootIdentifier$(), pRootValue);
94631
94816
  if (isHybrid) {
94632
94817
  this.handleAssignmentSimple__Lio_kaitai_struct_format_Identifier__T__V($m_Lio_kaitai_struct_format_EndianIdentifier$(), "$_is_le")
94633
94818
  };
@@ -94996,7 +95181,7 @@ $c_Lio_kaitai_struct_languages_PerlCompiler.prototype.enumDeclaration__sci_List_
94996
95181
  var hi = t.RTLong__f_hi;
94997
95182
  var label = $as_Lio_kaitai_struct_format_EnumValueSpec($n(x0$1).T2__f__2);
94998
95183
  var $$x2 = $n(this.Lio_kaitai_struct_languages_PerlCompiler__f_out);
94999
- var $$x1 = this.enumValue__T__T__T(enumName, $n(label).Lio_kaitai_struct_format_EnumValueSpec__f_name);
95184
+ var $$x1 = $m_Lio_kaitai_struct_languages_PerlCompiler$().enumValue__T__T__T(enumName, $n(label).Lio_kaitai_struct_format_EnumValueSpec__f_name);
95000
95185
  $n(this.Lio_kaitai_struct_languages_PerlCompiler__f_translator);
95001
95186
  var this$4 = $m_s_math_BigInt$();
95002
95187
  var n = this$4.apply__J__s_math_BigInt(new $c_RTLong(lo, hi));
@@ -95006,13 +95191,6 @@ $c_Lio_kaitai_struct_languages_PerlCompiler.prototype.enumDeclaration__sci_List_
95006
95191
  }
95007
95192
  })))
95008
95193
  });
95009
- $c_Lio_kaitai_struct_languages_PerlCompiler.prototype.enumValue__T__T__T = (function(enumName, enumLabel) {
95010
- var $$x1 = $n(this.Lio_kaitai_struct_languages_PerlCompiler__f_translator);
95011
- $n($m_s_package$().s_package$__f_List);
95012
- var array = [enumName];
95013
- var elems = $ct_sjsr_WrappedVarArgs__sjs_js_Array__(new $c_sjsr_WrappedVarArgs(), array);
95014
- return $n($$x1).doEnumByLabel__sci_List__T__T($m_sci_Nil$().prependedAll__sc_IterableOnce__sci_List(elems), enumLabel)
95015
- });
95016
95194
  $c_Lio_kaitai_struct_languages_PerlCompiler.prototype.classToString__Lio_kaitai_struct_exprlang_Ast$expr__V = (function(toStringExpr) {
95017
95195
  var this$1 = $n(this.Lio_kaitai_struct_languages_PerlCompiler__f_out);
95018
95196
  $n(this$1.Lio_kaitai_struct_StringLanguageOutputWriter__f_sb).append__T__scm_StringBuilder("\n");
@@ -95224,14 +95402,14 @@ $c_Lio_kaitai_struct_languages_RustCompiler.prototype.fileHeader__T__V = (functi
95224
95402
  var this$10 = $n(this.Lio_kaitai_struct_languages_RustCompiler__f_out);
95225
95403
  $n(this$10.Lio_kaitai_struct_StringLanguageOutputWriter__f_sb).append__T__scm_StringBuilder("\n")
95226
95404
  });
95227
- $c_Lio_kaitai_struct_languages_RustCompiler.prototype.opaqueClassDeclaration__Lio_kaitai_struct_format_ClassSpec__V = (function(classSpec) {
95228
- var name = $as_T($n($n(classSpec).Lio_kaitai_struct_format_ClassSpec__f_name).last__O());
95229
- var name$1 = $m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(name);
95230
- var names = $n(classSpec).Lio_kaitai_struct_format_ClassSpec__f_name;
95405
+ $c_Lio_kaitai_struct_languages_RustCompiler.prototype.externalTypeDeclaration__Lio_kaitai_struct_ExternalType__V = (function(extType) {
95406
+ var name = $as_T($n($n(extType).name__sci_List()).last__O());
95407
+ var className = $m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(name);
95408
+ var names = $n(extType).name__sci_List();
95231
95409
  var this$1 = $n(names);
95232
95410
  var pkg = $f_sc_IterableOnceOps__mkString__T__T__T__T(this$1, "", "::", "");
95233
95411
  var this$2 = $n(this.Lio_kaitai_struct_languages_RustCompiler__f_importList);
95234
- var s = ((pkg + "::") + name$1);
95412
+ var s = ((pkg + "::") + className);
95235
95413
  $m_Lio_kaitai_struct_Utils$().addUniqueAttr__scm_ListBuffer__O__V(this$2.Lio_kaitai_struct_ImportList__f_list, s)
95236
95414
  });
95237
95415
  $c_Lio_kaitai_struct_languages_RustCompiler.prototype.classHeader__sci_List__V = (function(name) {
@@ -97283,8 +97461,10 @@ $c_Lio_kaitai_struct_languages_LuaCompiler.prototype.outImports__Lio_kaitai_stru
97283
97461
  var this$2 = $n($n(this$1.Lio_kaitai_struct_ImportList__f_list).toList__sci_List());
97284
97462
  return $f_sc_IterableOnceOps__mkString__T__T__T__T(this$2, "", "\n", "\n")
97285
97463
  });
97286
- $c_Lio_kaitai_struct_languages_LuaCompiler.prototype.opaqueClassDeclaration__Lio_kaitai_struct_format_ClassSpec__V = (function(classSpec) {
97287
- $n(this.Lio_kaitai_struct_languages_LuaCompiler__f_out).puts__T__V((("require(\"" + $n($n(classSpec).Lio_kaitai_struct_format_ClassSpec__f_name).head__O()) + "\")"))
97464
+ $c_Lio_kaitai_struct_languages_LuaCompiler.prototype.externalTypeDeclaration__Lio_kaitai_struct_ExternalType__V = (function(extType) {
97465
+ var this$1 = $n(this.Lio_kaitai_struct_languages_LuaCompiler__f_importList);
97466
+ var s = (("require(\"" + $n($n(extType).name__sci_List()).head__O()) + "\")");
97467
+ $m_Lio_kaitai_struct_Utils$().addUniqueAttr__scm_ListBuffer__O__V(this$1.Lio_kaitai_struct_ImportList__f_list, s)
97288
97468
  });
97289
97469
  $c_Lio_kaitai_struct_languages_LuaCompiler.prototype.fileHeader__T__V = (function(topClassName) {
97290
97470
  $n(this.Lio_kaitai_struct_languages_LuaCompiler__f_outHeader).puts__T__V("-- This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild");
@@ -97394,7 +97574,11 @@ $c_Lio_kaitai_struct_languages_LuaCompiler.prototype.classConstructorHeader__sci
97394
97574
  $n(this.Lio_kaitai_struct_languages_LuaCompiler__f_out).inc__V();
97395
97575
  $n(this.Lio_kaitai_struct_languages_LuaCompiler__f_out).puts__T__V("KaitaiStruct._init(self, io)");
97396
97576
  $n(this.Lio_kaitai_struct_languages_LuaCompiler__f_out).puts__T__V("self._parent = parent");
97397
- $n(this.Lio_kaitai_struct_languages_LuaCompiler__f_out).puts__T__V("self._root = root or self");
97577
+ if (((name === null) ? (rootClassName === null) : $n(name).equals__O__Z(rootClassName))) {
97578
+ $n(this.Lio_kaitai_struct_languages_LuaCompiler__f_out).puts__T__V("self._root = root or self")
97579
+ } else {
97580
+ $n(this.Lio_kaitai_struct_languages_LuaCompiler__f_out).puts__T__V("self._root = root")
97581
+ };
97398
97582
  if (isHybrid) {
97399
97583
  $n(this.Lio_kaitai_struct_languages_LuaCompiler__f_out).puts__T__V("self._is_le = is_le")
97400
97584
  };
@@ -98056,8 +98240,10 @@ $c_Lio_kaitai_struct_languages_NimCompiler.prototype.classToString__Lio_kaitai_s
98056
98240
  var this$3 = $n(this.Lio_kaitai_struct_languages_NimCompiler__f_out);
98057
98241
  $n(this$3.Lio_kaitai_struct_StringLanguageOutputWriter__f_sb).append__T__scm_StringBuilder("\n")
98058
98242
  });
98059
- $c_Lio_kaitai_struct_languages_NimCompiler.prototype.opaqueClassDeclaration__Lio_kaitai_struct_format_ClassSpec__V = (function(classSpec) {
98060
- $n(this.Lio_kaitai_struct_languages_NimCompiler__f_out).puts__T__V((("import \"" + $n($n(classSpec).Lio_kaitai_struct_format_ClassSpec__f_name).head__O()) + "\""))
98243
+ $c_Lio_kaitai_struct_languages_NimCompiler.prototype.externalTypeDeclaration__Lio_kaitai_struct_ExternalType__V = (function(extType) {
98244
+ var this$1 = $n(this.Lio_kaitai_struct_languages_NimCompiler__f_importList);
98245
+ var s = $as_T($n($n(extType).name__sci_List()).head__O());
98246
+ $m_Lio_kaitai_struct_Utils$().addUniqueAttr__scm_ListBuffer__O__V(this$1.Lio_kaitai_struct_ImportList__f_list, s)
98061
98247
  });
98062
98248
  $c_Lio_kaitai_struct_languages_NimCompiler.prototype.innerEnums__Z = (function() {
98063
98249
  return false
@@ -98099,10 +98285,6 @@ $c_Lio_kaitai_struct_languages_NimCompiler.prototype.outImports__Lio_kaitai_stru
98099
98285
  var this$4 = $n($$x1);
98100
98286
  return ($f_sc_IterableOnceOps__mkString__T__T__T__T(this$4, "", "\n", "") + "\n\n")
98101
98287
  });
98102
- $c_Lio_kaitai_struct_languages_NimCompiler.prototype.importFile__T__V = (function(file) {
98103
- var this$1 = $n(this.Lio_kaitai_struct_languages_NimCompiler__f_importList);
98104
- $m_Lio_kaitai_struct_Utils$().addUniqueAttr__scm_ListBuffer__O__V(this$1.Lio_kaitai_struct_ImportList__f_list, file)
98105
- });
98106
98288
  $c_Lio_kaitai_struct_languages_NimCompiler.prototype.alignToByte__T__V = (function(io) {
98107
98289
  $n(this.Lio_kaitai_struct_languages_NimCompiler__f_out).puts__T__V((("alignToByte(" + io) + ")"))
98108
98290
  });
@@ -98882,36 +99064,15 @@ $c_Lio_kaitai_struct_languages_RubyCompiler.prototype.indent__T = (function() {
98882
99064
  });
98883
99065
  $c_Lio_kaitai_struct_languages_RubyCompiler.prototype.outImports__Lio_kaitai_struct_format_ClassSpec__T = (function(topClass) {
98884
99066
  var this$1 = $n(this.Lio_kaitai_struct_languages_RubyCompiler__f_importList);
98885
- var this$3 = $n($n(this$1.Lio_kaitai_struct_ImportList__f_list).toList__sci_List());
98886
- var f = ((x$2) => {
98887
- var x = $as_T(x$2);
98888
- return (("require '" + x) + "'")
98889
- });
98890
- if ((this$3 === $m_sci_Nil$())) {
98891
- var $$x1 = $m_sci_Nil$()
98892
- } else {
98893
- var arg1 = this$3.head__O();
98894
- var h = new $c_sci_$colon$colon(f(arg1), $m_sci_Nil$());
98895
- var t = h;
98896
- var rest = $as_sci_List(this$3.tail__O());
98897
- while ((rest !== $m_sci_Nil$())) {
98898
- var arg1$1 = $n(rest).head__O();
98899
- var nx = new $c_sci_$colon$colon(f(arg1$1), $m_sci_Nil$());
98900
- $n(t).sci_$colon$colon__f_next = nx;
98901
- t = nx;
98902
- rest = $as_sci_List($n(rest).tail__O())
98903
- };
98904
- var $$x1 = h
98905
- };
98906
- var this$4 = $n($$x1);
98907
- return ($f_sc_IterableOnceOps__mkString__T__T__T__T(this$4, "", "\n", "") + "\n")
99067
+ var this$2 = $n($n(this$1.Lio_kaitai_struct_ImportList__f_list).toList__sci_List());
99068
+ return $f_sc_IterableOnceOps__mkString__T__T__T__T(this$2, "", "\n", "\n")
98908
99069
  });
98909
99070
  $c_Lio_kaitai_struct_languages_RubyCompiler.prototype.fileHeader__T__V = (function(topClassName) {
98910
99071
  $n(this.Lio_kaitai_struct_languages_RubyCompiler__f_outHeader).puts__T__V("# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild");
98911
99072
  var this$1 = $n(this.Lio_kaitai_struct_languages_RubyCompiler__f_outHeader);
98912
99073
  $n(this$1.Lio_kaitai_struct_StringLanguageOutputWriter__f_sb).append__T__scm_StringBuilder("\n");
98913
99074
  var this$2 = $n(this.Lio_kaitai_struct_languages_RubyCompiler__f_importList);
98914
- $m_Lio_kaitai_struct_Utils$().addUniqueAttr__scm_ListBuffer__O__V(this$2.Lio_kaitai_struct_ImportList__f_list, "kaitai/struct/struct");
99075
+ $m_Lio_kaitai_struct_Utils$().addUniqueAttr__scm_ListBuffer__O__V(this$2.Lio_kaitai_struct_ImportList__f_list, "require 'kaitai/struct/struct'");
98915
99076
  var this$3 = $n(this.Lio_kaitai_struct_languages_RubyCompiler__f_out);
98916
99077
  $n(this$3.Lio_kaitai_struct_StringLanguageOutputWriter__f_sb).append__T__scm_StringBuilder("\n");
98917
99078
  $n(this.Lio_kaitai_struct_languages_RubyCompiler__f_out).puts__T__V((("unless Gem::Version.new(Kaitai::Struct::VERSION) >= Gem::Version.new('" + $m_Lio_kaitai_struct_format_KSVersion$().Lio_kaitai_struct_format_KSVersion$__f_minimalRuntime) + "')"));
@@ -98922,6 +99083,14 @@ $c_Lio_kaitai_struct_languages_RubyCompiler.prototype.fileHeader__T__V = (functi
98922
99083
  var this$4 = $n(this.Lio_kaitai_struct_languages_RubyCompiler__f_out);
98923
99084
  $n(this$4.Lio_kaitai_struct_StringLanguageOutputWriter__f_sb).append__T__scm_StringBuilder("\n")
98924
99085
  });
99086
+ $c_Lio_kaitai_struct_languages_RubyCompiler.prototype.externalTypeDeclaration__Lio_kaitai_struct_ExternalType__V = (function(extType) {
99087
+ if ($n(extType).isOpaque__Z()) {
99088
+ return (void 0)
99089
+ };
99090
+ var this$1 = $n(this.Lio_kaitai_struct_languages_RubyCompiler__f_importList);
99091
+ var s = (("require_relative '" + $n($n(extType).name__sci_List()).head__O()) + "'");
99092
+ $m_Lio_kaitai_struct_Utils$().addUniqueAttr__scm_ListBuffer__O__V(this$1.Lio_kaitai_struct_ImportList__f_list, s)
99093
+ });
98925
99094
  $c_Lio_kaitai_struct_languages_RubyCompiler.prototype.classHeader__T__V = (function(name) {
98926
99095
  $n(this.Lio_kaitai_struct_languages_RubyCompiler__f_out).puts__T__V((("class " + $m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(name)) + " < Kaitai::Struct::Struct"));
98927
99096
  $n(this.Lio_kaitai_struct_languages_RubyCompiler__f_out).inc__V();
@@ -98955,9 +99124,10 @@ $c_Lio_kaitai_struct_languages_RubyCompiler.prototype.classConstructorHeader__T_
98955
99124
  var $$x1 = h
98956
99125
  };
98957
99126
  var paramsList = $n($$x2).join__sc_IterableOnce__T__T__T__T($$x1, ", ", ", ", "");
98958
- $n(this.Lio_kaitai_struct_languages_RubyCompiler__f_out).puts__T__V(((("def initialize(_io, _parent = nil, _root = self" + endianSuffix) + paramsList) + ")"));
99127
+ var pRootValue = ((name === rootClassName) ? "_root || self" : "_root");
99128
+ $n(this.Lio_kaitai_struct_languages_RubyCompiler__f_out).puts__T__V(((("def initialize(_io, _parent = nil, _root = nil" + endianSuffix) + paramsList) + ")"));
98959
99129
  $n(this.Lio_kaitai_struct_languages_RubyCompiler__f_out).inc__V();
98960
- $n(this.Lio_kaitai_struct_languages_RubyCompiler__f_out).puts__T__V("super(_io, _parent, _root)");
99130
+ $n(this.Lio_kaitai_struct_languages_RubyCompiler__f_out).puts__T__V((("super(_io, _parent, " + pRootValue) + ")"));
98961
99131
  if (isHybrid) {
98962
99132
  $n(this.Lio_kaitai_struct_languages_RubyCompiler__f_out).puts__T__V("@_is_le = _is_le")
98963
99133
  };
@@ -99099,7 +99269,7 @@ $c_Lio_kaitai_struct_languages_RubyCompiler.prototype.attrProcess__Lio_kaitai_st
99099
99269
  var x = $m_Lio_kaitai_struct_format_ProcessZlib$();
99100
99270
  if ((x === proc)) {
99101
99271
  var this$1 = $n(this.Lio_kaitai_struct_languages_RubyCompiler__f_importList);
99102
- $m_Lio_kaitai_struct_Utils$().addUniqueAttr__scm_ListBuffer__O__V(this$1.Lio_kaitai_struct_ImportList__f_list, "zlib");
99272
+ $m_Lio_kaitai_struct_Utils$().addUniqueAttr__scm_ListBuffer__O__V(this$1.Lio_kaitai_struct_ImportList__f_list, "require 'zlib'");
99103
99273
  var expr$2 = (("Zlib::Inflate.inflate(" + srcExpr) + ")")
99104
99274
  } else if ((proc instanceof $c_Lio_kaitai_struct_format_ProcessRotate)) {
99105
99275
  var x4 = $as_Lio_kaitai_struct_format_ProcessRotate(proc);
@@ -99440,7 +99610,7 @@ $c_Lio_kaitai_struct_languages_RubyCompiler.prototype.enumDeclaration__T__T__sci
99440
99610
  $n(this.Lio_kaitai_struct_languages_RubyCompiler__f_translator);
99441
99611
  var this$7 = $m_s_math_BigInt$();
99442
99612
  var n = this$7.apply__J__s_math_BigInt(new $c_RTLong(lo, hi));
99443
- $n($$x1).puts__T__V(((($n(n).toString__T() + " => ") + this.enumValue__T__T__T(enumName, label)) + ","))
99613
+ $n($$x1).puts__T__V(((($n(n).toString__T() + " => ") + $m_Lio_kaitai_struct_languages_RubyCompiler$().enumValue__T__T__T(enumName, label)) + ","))
99444
99614
  } else {
99445
99615
  throw new $c_s_MatchError(x0$1)
99446
99616
  }
@@ -99449,13 +99619,6 @@ $c_Lio_kaitai_struct_languages_RubyCompiler.prototype.enumDeclaration__T__T__sci
99449
99619
  $n(this.Lio_kaitai_struct_languages_RubyCompiler__f_out).puts__T__V("}");
99450
99620
  $n(this.Lio_kaitai_struct_languages_RubyCompiler__f_out).puts__T__V(((($m_Lio_kaitai_struct_languages_RubyCompiler$().inverseEnumName__T__T(enumConst) + " = ") + enumConst) + ".invert"))
99451
99621
  });
99452
- $c_Lio_kaitai_struct_languages_RubyCompiler.prototype.enumValue__T__T__T = (function(enumName, enumLabel) {
99453
- var $$x1 = $n(this.Lio_kaitai_struct_languages_RubyCompiler__f_translator);
99454
- $n($m_s_package$().s_package$__f_List);
99455
- var array = [enumName];
99456
- var elems = $ct_sjsr_WrappedVarArgs__sjs_js_Array__(new $c_sjsr_WrappedVarArgs(), array);
99457
- return $n($$x1).doEnumByLabel__sci_List__T__T($m_sci_Nil$().prependedAll__sc_IterableOnce__sci_List(elems), enumLabel)
99458
- });
99459
99622
  $c_Lio_kaitai_struct_languages_RubyCompiler.prototype.debugClassSequence__sci_List__V = (function(seq) {
99460
99623
  var this$2 = $n(seq);
99461
99624
  var f = ((attr$2) => {
@@ -100242,9 +100405,10 @@ $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.classConstructorHeader__T_
100242
100405
  var this$3 = $n(params);
100243
100406
  var f = ((p$2) => {
100244
100407
  var p = $as_Lio_kaitai_struct_format_ParamDefSpec(p$2);
100245
- var this$2 = $m_Lio_kaitai_struct_languages_JavaCompiler$();
100246
100408
  var attrType = $n(p).Lio_kaitai_struct_format_ParamDefSpec__f_dataType;
100247
- var $$x2 = this$2.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__T(attrType);
100409
+ var this$2 = $m_Lio_kaitai_struct_languages_JavaCompiler$();
100410
+ var importList = this.Lio_kaitai_struct_languages_JavaCompiler__f_importList;
100411
+ var $$x2 = this$2.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_ImportList__T(attrType, importList);
100248
100412
  var id = $n(p).Lio_kaitai_struct_format_ParamDefSpec__f_id;
100249
100413
  return (($$x2 + " ") + $m_Lio_kaitai_struct_languages_JavaCompiler$().idToStr__Lio_kaitai_struct_format_Identifier__T(id))
100250
100414
  });
@@ -100271,7 +100435,8 @@ $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.classConstructorHeader__T_
100271
100435
  var $$x6 = $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out);
100272
100436
  var $$x5 = $m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(name);
100273
100437
  var this$5 = $m_Lio_kaitai_struct_languages_JavaCompiler$();
100274
- $n($$x6).puts__T__V((((((((("public " + $$x5) + "(KaitaiStream _io, ") + this$5.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__T(parentType)) + " _parent, ") + $m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(rootClassName)) + " _root, boolean _is_le") + paramsArg) + ") {"));
100438
+ var importList$1 = this.Lio_kaitai_struct_languages_JavaCompiler__f_importList;
100439
+ $n($$x6).puts__T__V((((((((("public " + $$x5) + "(KaitaiStream _io, ") + this$5.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_ImportList__T(parentType, importList$1)) + " _parent, ") + $m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(rootClassName)) + " _root, boolean _is_le") + paramsArg) + ") {"));
100275
100440
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).inc__V();
100276
100441
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).puts__T__V("super(_io);");
100277
100442
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).puts__T__V("this._parent = _parent;");
@@ -100314,7 +100479,8 @@ $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.classConstructorHeader__T_
100314
100479
  var $$x10 = $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out);
100315
100480
  var $$x9 = $m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(name);
100316
100481
  var this$9 = $m_Lio_kaitai_struct_languages_JavaCompiler$();
100317
- $n($$x10).puts__T__V((((((("public " + $$x9) + "(KaitaiStream _io, ") + this$9.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__T(parentType)) + " _parent") + paramsArg) + ") {"));
100482
+ var importList$2 = this.Lio_kaitai_struct_languages_JavaCompiler__f_importList;
100483
+ $n($$x10).puts__T__V((((((("public " + $$x9) + "(KaitaiStream _io, ") + this$9.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_ImportList__T(parentType, importList$2)) + " _parent") + paramsArg) + ") {"));
100318
100484
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).inc__V();
100319
100485
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).puts__T__V((("this(_io, _parent, null" + paramsRelay) + ");"));
100320
100486
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).dec__V();
@@ -100324,7 +100490,8 @@ $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.classConstructorHeader__T_
100324
100490
  var $$x12 = $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out);
100325
100491
  var $$x11 = $m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(name);
100326
100492
  var this$11 = $m_Lio_kaitai_struct_languages_JavaCompiler$();
100327
- $n($$x12).puts__T__V((((((((("public " + $$x11) + "(KaitaiStream _io, ") + this$11.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__T(parentType)) + " _parent, ") + $m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(rootClassName)) + " _root") + paramsArg) + ") {"));
100493
+ var importList$3 = this.Lio_kaitai_struct_languages_JavaCompiler__f_importList;
100494
+ $n($$x12).puts__T__V((((((((("public " + $$x11) + "(KaitaiStream _io, ") + this$11.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_ImportList__T(parentType, importList$3)) + " _parent, ") + $m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(rootClassName)) + " _root") + paramsArg) + ") {"));
100328
100495
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).inc__V();
100329
100496
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).puts__T__V("super(_io);");
100330
100497
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).puts__T__V("this._parent = _parent;");
@@ -100388,10 +100555,10 @@ $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.readFooter__V = (function(
100388
100555
  this.universalFooter__V()
100389
100556
  });
100390
100557
  $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.attributeDeclaration__Lio_kaitai_struct_format_Identifier__Lio_kaitai_struct_datatype_DataType__Z__V = (function(attrName, attrType, isNullable) {
100391
- $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).puts__T__V((((("private " + $m_Lio_kaitai_struct_languages_JavaCompiler$().kaitaiType2JavaType__Lio_kaitai_struct_datatype_DataType__Z__T(attrType, isNullable)) + " ") + $m_Lio_kaitai_struct_languages_JavaCompiler$().idToStr__Lio_kaitai_struct_format_Identifier__T(attrName)) + ";"))
100558
+ $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).puts__T__V((((("private " + $m_Lio_kaitai_struct_languages_JavaCompiler$().kaitaiType2JavaType__Lio_kaitai_struct_datatype_DataType__Z__Lio_kaitai_struct_ImportList__T(attrType, isNullable, this.Lio_kaitai_struct_languages_JavaCompiler__f_importList)) + " ") + $m_Lio_kaitai_struct_languages_JavaCompiler$().idToStr__Lio_kaitai_struct_format_Identifier__T(attrName)) + ";"))
100392
100559
  });
100393
100560
  $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.attributeReader__Lio_kaitai_struct_format_Identifier__Lio_kaitai_struct_datatype_DataType__Z__V = (function(attrName, attrType, isNullable) {
100394
- $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).puts__T__V((((((("public " + $m_Lio_kaitai_struct_languages_JavaCompiler$().kaitaiType2JavaType__Lio_kaitai_struct_datatype_DataType__Z__T(attrType, isNullable)) + " ") + $m_Lio_kaitai_struct_languages_JavaCompiler$().idToStr__Lio_kaitai_struct_format_Identifier__T(attrName)) + "() { return ") + $m_Lio_kaitai_struct_languages_JavaCompiler$().idToStr__Lio_kaitai_struct_format_Identifier__T(attrName)) + "; }"))
100561
+ $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).puts__T__V((((((("public " + $m_Lio_kaitai_struct_languages_JavaCompiler$().kaitaiType2JavaType__Lio_kaitai_struct_datatype_DataType__Z__Lio_kaitai_struct_ImportList__T(attrType, isNullable, this.Lio_kaitai_struct_languages_JavaCompiler__f_importList)) + " ") + $m_Lio_kaitai_struct_languages_JavaCompiler$().idToStr__Lio_kaitai_struct_format_Identifier__T(attrName)) + "() { return ") + $m_Lio_kaitai_struct_languages_JavaCompiler$().idToStr__Lio_kaitai_struct_format_Identifier__T(attrName)) + "; }"))
100395
100562
  });
100396
100563
  $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.universalDoc__Lio_kaitai_struct_format_DocSpec__V = (function(doc) {
100397
100564
  var this$1 = $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out);
@@ -100592,9 +100759,10 @@ $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.condIfHeader__Lio_kaitai_s
100592
100759
  $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.condRepeatInitAttr__Lio_kaitai_struct_format_Identifier__Lio_kaitai_struct_datatype_DataType__V = (function(id, dataType) {
100593
100760
  var $$x2 = $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out);
100594
100761
  var $$x1 = this.privateMemberName__Lio_kaitai_struct_format_Identifier__T(id);
100595
- var this$1 = $m_Lio_kaitai_struct_languages_JavaCompiler$();
100596
100762
  var attrType = new $c_Lio_kaitai_struct_datatype_DataType$ArrayTypeInStream(dataType);
100597
- $n($$x2).puts__T__V(((($$x1 + " = new ") + this$1.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__T(attrType)) + "();"))
100763
+ var this$1 = $m_Lio_kaitai_struct_languages_JavaCompiler$();
100764
+ var importList = this.Lio_kaitai_struct_languages_JavaCompiler__f_importList;
100765
+ $n($$x2).puts__T__V(((($$x1 + " = new ") + this$1.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_ImportList__T(attrType, importList)) + "();"))
100598
100766
  });
100599
100767
  $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.condRepeatEosHeader__Lio_kaitai_struct_format_Identifier__T__Lio_kaitai_struct_datatype_DataType__V = (function(id, io, dataType) {
100600
100768
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).puts__T__V("{");
@@ -100629,7 +100797,8 @@ $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.condRepeatUntilHeader__Lio
100629
100797
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).inc__V();
100630
100798
  var $$x1 = $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out);
100631
100799
  var this$1 = $m_Lio_kaitai_struct_languages_JavaCompiler$();
100632
- $n($$x1).puts__T__V((((this$1.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__T(dataType) + " ") + $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_translator).doName__T__T("_")) + ";"));
100800
+ var importList = this.Lio_kaitai_struct_languages_JavaCompiler__f_importList;
100801
+ $n($$x1).puts__T__V((((this$1.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_ImportList__T(dataType, importList) + " ") + $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_translator).doName__T__T("_")) + ";"));
100633
100802
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).puts__T__V("int i = 0;");
100634
100803
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).puts__T__V("do {");
100635
100804
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).inc__V();
@@ -100665,7 +100834,8 @@ $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.handleAssignmentSimple__Li
100665
100834
  $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.handleAssignmentTempVar__Lio_kaitai_struct_datatype_DataType__T__T__V = (function(dataType, id, expr) {
100666
100835
  var $$x1 = $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out);
100667
100836
  var this$1 = $m_Lio_kaitai_struct_languages_JavaCompiler$();
100668
- $n($$x1).puts__T__V((((((this$1.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__T(dataType) + " ") + id) + " = ") + expr) + ";"))
100837
+ var importList = this.Lio_kaitai_struct_languages_JavaCompiler__f_importList;
100838
+ $n($$x1).puts__T__V((((((this$1.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_ImportList__T(dataType, importList) + " ") + id) + " = ") + expr) + ";"))
100669
100839
  });
100670
100840
  $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.blockScopeHeader__V = (function() {
100671
100841
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).puts__T__V("{");
@@ -100761,7 +100931,8 @@ $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.parseExpr__Lio_kaitai_stru
100761
100931
  };
100762
100932
  if ((!((assignType === null) ? (dataType === null) : $n(assignType).equals__O__Z(dataType)))) {
100763
100933
  var this$4 = $m_Lio_kaitai_struct_languages_JavaCompiler$();
100764
- return (((("(" + this$4.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__T(assignType)) + ") (") + expr) + ")")
100934
+ var importList = this.Lio_kaitai_struct_languages_JavaCompiler__f_importList;
100935
+ return (((("(" + this$4.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_ImportList__T(assignType, importList)) + ") (") + expr) + ")")
100765
100936
  } else {
100766
100937
  return expr
100767
100938
  }
@@ -100832,7 +101003,8 @@ $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.bytesPadTermExpr__T__s_Opt
100832
101003
  $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.userTypeDebugRead__T__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_datatype_DataType__V = (function(id, dataType, assignType) {
100833
101004
  if ((!((assignType === null) ? (dataType === null) : $n(assignType).equals__O__Z(dataType)))) {
100834
101005
  var this$1 = $m_Lio_kaitai_struct_languages_JavaCompiler$();
100835
- var expr = (((("((" + this$1.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__T(dataType)) + ") (") + id) + "))")
101006
+ var importList = this.Lio_kaitai_struct_languages_JavaCompiler__f_importList;
101007
+ var expr = (((("((" + this$1.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_ImportList__T(dataType, importList)) + ") (") + id) + "))")
100836
101008
  } else {
100837
101009
  var expr = id
100838
101010
  };
@@ -100848,7 +101020,8 @@ $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.switchCasesRender__Lio_kai
100848
101020
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).inc__V();
100849
101021
  var $$x1 = $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out);
100850
101022
  var this$1 = $m_Lio_kaitai_struct_languages_JavaCompiler$();
100851
- $n($$x1).puts__T__V((((((this$1.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__T(onType) + " ") + nameSwitchStr) + " = ") + $f_Lio_kaitai_struct_languages_components_ObjectOrientedLanguage__expression__Lio_kaitai_struct_exprlang_Ast$expr__T(this, on)) + ";"));
101023
+ var importList = this.Lio_kaitai_struct_languages_JavaCompiler__f_importList;
101024
+ $n($$x1).puts__T__V((((((this$1.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_ImportList__T(onType, importList) + " ") + nameSwitchStr) + " = ") + $f_Lio_kaitai_struct_languages_components_ObjectOrientedLanguage__expression__Lio_kaitai_struct_exprlang_Ast$expr__T(this, on)) + ";"));
100852
101025
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).puts__T__V((("if (" + nameSwitchStr) + " != null) {"));
100853
101026
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).inc__V();
100854
101027
  $f_Lio_kaitai_struct_languages_components_SwitchOps__switchCasesRender__Lio_kaitai_struct_format_Identifier__Lio_kaitai_struct_exprlang_Ast$expr__sci_Map__F1__F1__V(this, id, on, cases, normalCaseProc, elseCaseProc);
@@ -100915,7 +101088,8 @@ $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.switchIfStart__Lio_kaitai_
100915
101088
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).inc__V();
100916
101089
  var $$x2 = $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out);
100917
101090
  var this$1 = $m_Lio_kaitai_struct_languages_JavaCompiler$();
100918
- var $$x1 = this$1.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__T(onType);
101091
+ var importList = this.Lio_kaitai_struct_languages_JavaCompiler__f_importList;
101092
+ var $$x1 = this$1.kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_ImportList__T(onType, importList);
100919
101093
  var e = this.Lio_kaitai_struct_languages_JavaCompiler__f_NAME_SWITCH_ON;
100920
101094
  $n($$x2).puts__T__V(((((($$x1 + " ") + $f_Lio_kaitai_struct_languages_components_ObjectOrientedLanguage__expression__Lio_kaitai_struct_exprlang_Ast$expr__T(this, e)) + " = ") + $f_Lio_kaitai_struct_languages_components_ObjectOrientedLanguage__expression__Lio_kaitai_struct_exprlang_Ast$expr__T(this, on)) + ";"))
100921
101095
  });
@@ -100944,10 +101118,10 @@ $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.switchIfEnd__V = (function
100944
101118
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).puts__T__V("}")
100945
101119
  });
100946
101120
  $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.instanceDeclaration__Lio_kaitai_struct_format_InstanceIdentifier__Lio_kaitai_struct_datatype_DataType__Z__V = (function(attrName, attrType, isNullable) {
100947
- $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).puts__T__V((((("private " + $m_Lio_kaitai_struct_languages_JavaCompiler$().kaitaiType2JavaTypeBoxed__Lio_kaitai_struct_datatype_DataType__T(attrType)) + " ") + $m_Lio_kaitai_struct_languages_JavaCompiler$().idToStr__Lio_kaitai_struct_format_Identifier__T(attrName)) + ";"))
101121
+ $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).puts__T__V((((("private " + $m_Lio_kaitai_struct_languages_JavaCompiler$().kaitaiType2JavaTypeBoxed__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_ImportList__T(attrType, this.Lio_kaitai_struct_languages_JavaCompiler__f_importList)) + " ") + $m_Lio_kaitai_struct_languages_JavaCompiler$().idToStr__Lio_kaitai_struct_format_Identifier__T(attrName)) + ";"))
100948
101122
  });
100949
101123
  $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.instanceHeader__T__Lio_kaitai_struct_format_InstanceIdentifier__Lio_kaitai_struct_datatype_DataType__Z__V = (function(className, instName, dataType, isNullable) {
100950
- $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).puts__T__V((((("public " + $m_Lio_kaitai_struct_languages_JavaCompiler$().kaitaiType2JavaTypeBoxed__Lio_kaitai_struct_datatype_DataType__T(dataType)) + " ") + $m_Lio_kaitai_struct_languages_JavaCompiler$().idToStr__Lio_kaitai_struct_format_Identifier__T(instName)) + "() {"));
101124
+ $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).puts__T__V((((("public " + $m_Lio_kaitai_struct_languages_JavaCompiler$().kaitaiType2JavaTypeBoxed__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_ImportList__T(dataType, this.Lio_kaitai_struct_languages_JavaCompiler__f_importList)) + " ") + $m_Lio_kaitai_struct_languages_JavaCompiler$().idToStr__Lio_kaitai_struct_format_Identifier__T(instName)) + "() {"));
100951
101125
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).inc__V()
100952
101126
  });
100953
101127
  $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.instanceCheckCacheAndReturn__Lio_kaitai_struct_format_InstanceIdentifier__Lio_kaitai_struct_datatype_DataType__V = (function(instName, dataType) {
@@ -100960,8 +101134,8 @@ $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.instanceReturn__Lio_kaitai
100960
101134
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).puts__T__V((("return " + this.privateMemberName__Lio_kaitai_struct_format_Identifier__T(instName)) + ";"))
100961
101135
  });
100962
101136
  $c_Lio_kaitai_struct_languages_JavaCompiler.prototype.instanceCalculate__Lio_kaitai_struct_format_Identifier__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_exprlang_Ast$expr__V = (function(instName, dataType, value) {
100963
- var primType = $m_Lio_kaitai_struct_languages_JavaCompiler$().kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__T(dataType);
100964
- var boxedType = $m_Lio_kaitai_struct_languages_JavaCompiler$().kaitaiType2JavaTypeBoxed__Lio_kaitai_struct_datatype_DataType__T(dataType);
101137
+ var primType = $m_Lio_kaitai_struct_languages_JavaCompiler$().kaitaiType2JavaTypePrim__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_ImportList__T(dataType, this.Lio_kaitai_struct_languages_JavaCompiler__f_importList);
101138
+ var boxedType = $m_Lio_kaitai_struct_languages_JavaCompiler$().kaitaiType2JavaTypeBoxed__Lio_kaitai_struct_datatype_DataType__Lio_kaitai_struct_ImportList__T(dataType, this.Lio_kaitai_struct_languages_JavaCompiler__f_importList);
100965
101139
  if ((primType !== boxedType)) {
100966
101140
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).puts__T__V((((((primType + " _tmp = (") + primType) + ") (") + $f_Lio_kaitai_struct_languages_components_ObjectOrientedLanguage__expression__Lio_kaitai_struct_exprlang_Ast$expr__T(this, value)) + ");"));
100967
101141
  $n(this.Lio_kaitai_struct_languages_JavaCompiler__f_out).puts__T__V((this.privateMemberName__Lio_kaitai_struct_format_Identifier__T(instName) + " = _tmp;"))
@@ -101168,7 +101342,7 @@ function $c_Lio_kaitai_struct_languages_PythonCompiler(typeProvider, config) {
101168
101342
  this.Lio_kaitai_struct_languages_PythonCompiler__f_importList = null;
101169
101343
  $ct_Lio_kaitai_struct_languages_components_LanguageCompiler__Lio_kaitai_struct_ClassTypeProvider__Lio_kaitai_struct_RuntimeConfig__(this, typeProvider, config);
101170
101344
  $f_Lio_kaitai_struct_languages_components_SingleOutputFile__$init$__V(this);
101171
- this.Lio_kaitai_struct_languages_PythonCompiler__f_translator = $ct_Lio_kaitai_struct_translators_PythonTranslator__Lio_kaitai_struct_translators_TypeProvider__Lio_kaitai_struct_ImportList__(new $c_Lio_kaitai_struct_translators_PythonTranslator(), this.Lio_kaitai_struct_languages_components_LanguageCompiler__f_typeProvider, this.Lio_kaitai_struct_languages_PythonCompiler__f_importList)
101345
+ this.Lio_kaitai_struct_languages_PythonCompiler__f_translator = $ct_Lio_kaitai_struct_translators_PythonTranslator__Lio_kaitai_struct_translators_TypeProvider__Lio_kaitai_struct_ImportList__Lio_kaitai_struct_RuntimeConfig__(new $c_Lio_kaitai_struct_translators_PythonTranslator(), this.Lio_kaitai_struct_languages_components_LanguageCompiler__f_typeProvider, this.Lio_kaitai_struct_languages_PythonCompiler__f_importList, this.Lio_kaitai_struct_languages_components_LanguageCompiler__f_config)
101172
101346
  }
101173
101347
  $c_Lio_kaitai_struct_languages_PythonCompiler.prototype = new $h_Lio_kaitai_struct_languages_components_LanguageCompiler();
101174
101348
  $c_Lio_kaitai_struct_languages_PythonCompiler.prototype.constructor = $c_Lio_kaitai_struct_languages_PythonCompiler;
@@ -101298,13 +101472,8 @@ $c_Lio_kaitai_struct_languages_PythonCompiler.prototype.fileHeader__T__V = (func
101298
101472
  var this$8 = $n(this.Lio_kaitai_struct_languages_PythonCompiler__f_out);
101299
101473
  $n(this$8.Lio_kaitai_struct_StringLanguageOutputWriter__f_sb).append__T__scm_StringBuilder("\n")
101300
101474
  });
101301
- $c_Lio_kaitai_struct_languages_PythonCompiler.prototype.opaqueClassDeclaration__Lio_kaitai_struct_format_ClassSpec__V = (function(classSpec) {
101302
- var name = $as_T($n($n(classSpec).Lio_kaitai_struct_format_ClassSpec__f_name).head__O());
101303
- var $$x1 = $n(this.Lio_kaitai_struct_languages_PythonCompiler__f_out);
101304
- $m_sc_StringOps$();
101305
- var x = $n(this.Lio_kaitai_struct_languages_components_LanguageCompiler__f_config).Lio_kaitai_struct_RuntimeConfig__f_pythonPackage;
101306
- var this$3 = $n(x);
101307
- $n($$x1).puts__T__V(((!(this$3 === "")) ? ((("from " + $n(this.Lio_kaitai_struct_languages_components_LanguageCompiler__f_config).Lio_kaitai_struct_RuntimeConfig__f_pythonPackage) + " import ") + name) : ("import " + name)))
101475
+ $c_Lio_kaitai_struct_languages_PythonCompiler.prototype.externalTypeDeclaration__Lio_kaitai_struct_ExternalType__V = (function(extType) {
101476
+ $m_Lio_kaitai_struct_languages_PythonCompiler$().externalTypeDeclaration__Lio_kaitai_struct_ExternalType__Lio_kaitai_struct_ImportList__Lio_kaitai_struct_RuntimeConfig__V(extType, this.Lio_kaitai_struct_languages_PythonCompiler__f_importList, this.Lio_kaitai_struct_languages_components_LanguageCompiler__f_config)
101308
101477
  });
101309
101478
  $c_Lio_kaitai_struct_languages_PythonCompiler.prototype.classHeader__T__V = (function(name) {
101310
101479
  $n(this.Lio_kaitai_struct_languages_PythonCompiler__f_out).puts__T__V((("class " + $m_Lio_kaitai_struct_Utils$().upperCamelCase__T__T(name)) + "(KaitaiStruct):"));
@@ -101340,7 +101509,11 @@ $c_Lio_kaitai_struct_languages_PythonCompiler.prototype.classConstructorHeader__
101340
101509
  $n(this.Lio_kaitai_struct_languages_PythonCompiler__f_out).inc__V();
101341
101510
  $n(this.Lio_kaitai_struct_languages_PythonCompiler__f_out).puts__T__V("self._io = _io");
101342
101511
  $n(this.Lio_kaitai_struct_languages_PythonCompiler__f_out).puts__T__V("self._parent = _parent");
101343
- $n(this.Lio_kaitai_struct_languages_PythonCompiler__f_out).puts__T__V("self._root = _root if _root else self");
101512
+ if ((name === rootClassName)) {
101513
+ $n(this.Lio_kaitai_struct_languages_PythonCompiler__f_out).puts__T__V("self._root = _root if _root else self")
101514
+ } else {
101515
+ $n(this.Lio_kaitai_struct_languages_PythonCompiler__f_out).puts__T__V("self._root = _root")
101516
+ };
101344
101517
  if (isHybrid) {
101345
101518
  $n(this.Lio_kaitai_struct_languages_PythonCompiler__f_out).puts__T__V("self._is_le = _is_le")
101346
101519
  };
@@ -101754,7 +101927,7 @@ $c_Lio_kaitai_struct_languages_PythonCompiler.prototype.parseExpr__Lio_kaitai_st
101754
101927
  };
101755
101928
  var addArgs = (((", " + parent) + ", self._root") + addEndian)
101756
101929
  };
101757
- return (((((this.userType2class__Lio_kaitai_struct_datatype_DataType$UserType__T(x10) + "(") + addParams) + io) + addArgs) + ")")
101930
+ return ((((($m_Lio_kaitai_struct_languages_PythonCompiler$().types2class__sci_List__Z__T($n($as_Lio_kaitai_struct_format_ClassSpec($n($n(x10).Lio_kaitai_struct_datatype_DataType$UserType__f_classSpec).get__O())).Lio_kaitai_struct_format_ClassSpec__f_name, $n(x10).isExternal__Lio_kaitai_struct_format_ClassSpec__Z($n(this.Lio_kaitai_struct_languages_components_LanguageCompiler__f_typeProvider).Lio_kaitai_struct_ClassTypeProvider__f_nowClass)) + "(") + addParams) + io) + addArgs) + ")")
101758
101931
  } else {
101759
101932
  throw new $c_s_MatchError(dataType)
101760
101933
  }
@@ -101950,11 +102123,6 @@ $c_Lio_kaitai_struct_languages_PythonCompiler.prototype.attrValidateExpr__Lio_ka
101950
102123
  $n(this.Lio_kaitai_struct_languages_PythonCompiler__f_out).puts__T__V((((("raise " + $m_Lio_kaitai_struct_languages_PythonCompiler$().ksErrorName__Lio_kaitai_struct_datatype_KSError__T(err)) + "(") + errArgsStr) + ")"));
101951
102124
  $n(this.Lio_kaitai_struct_languages_PythonCompiler__f_out).dec__V()
101952
102125
  });
101953
- $c_Lio_kaitai_struct_languages_PythonCompiler.prototype.userType2class__Lio_kaitai_struct_datatype_DataType$UserType__T = (function(t) {
101954
- var name = $n($as_Lio_kaitai_struct_format_ClassSpec($n($n(t).Lio_kaitai_struct_datatype_DataType$UserType__f_classSpec).get__O())).Lio_kaitai_struct_format_ClassSpec__f_name;
101955
- var prefix = ($n(t).isExternal__Lio_kaitai_struct_format_ClassSpec__Z($n(this.Lio_kaitai_struct_languages_components_LanguageCompiler__f_typeProvider).Lio_kaitai_struct_ClassTypeProvider__f_nowClass) ? ($n(name).head__O() + ".") : "");
101956
- return (prefix + $m_Lio_kaitai_struct_languages_PythonCompiler$().types2class__sci_List__T(name))
101957
- });
101958
102126
  $c_Lio_kaitai_struct_languages_PythonCompiler.prototype.translator__Lio_kaitai_struct_translators_AbstractTranslator = (function() {
101959
102127
  return this.Lio_kaitai_struct_languages_PythonCompiler__f_translator
101960
102128
  });