@abaplint/transpiler-cli 2.7.32 → 2.7.34

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.
Files changed (2) hide show
  1. package/build/bundle.js +276 -154
  2. package/package.json +4 -4
package/build/bundle.js CHANGED
@@ -18684,7 +18684,7 @@ BuiltIn.methods = [
18684
18684
  {
18685
18685
  name: "BOOLC",
18686
18686
  mandatory: {
18687
- "val": new basic_1.CLikeType(),
18687
+ "val": basic_1.CLikeType.get(),
18688
18688
  },
18689
18689
  return: basic_1.StringType.get(),
18690
18690
  version: version_1.Version.v702,
@@ -18692,7 +18692,7 @@ BuiltIn.methods = [
18692
18692
  {
18693
18693
  name: "BOOLX",
18694
18694
  mandatory: {
18695
- "bool": new basic_1.CLikeType(),
18695
+ "bool": basic_1.CLikeType.get(),
18696
18696
  },
18697
18697
  optional: {
18698
18698
  "bit": basic_1.IntegerType.get(),
@@ -18710,7 +18710,7 @@ BuiltIn.methods = [
18710
18710
  {
18711
18711
  name: "CHAR_OFF",
18712
18712
  mandatory: {
18713
- "val": new basic_1.CLikeType(),
18713
+ "val": basic_1.CLikeType.get(),
18714
18714
  "add": basic_1.IntegerType.get(),
18715
18715
  },
18716
18716
  optional: {
@@ -18722,23 +18722,23 @@ BuiltIn.methods = [
18722
18722
  {
18723
18723
  name: "CHARLEN",
18724
18724
  mandatory: {
18725
- "val": new basic_1.CLikeType(),
18725
+ "val": basic_1.CLikeType.get(),
18726
18726
  },
18727
18727
  return: basic_1.IntegerType.get(),
18728
18728
  },
18729
18729
  {
18730
18730
  name: "CMAX",
18731
18731
  mandatory: {
18732
- "val1": new basic_1.CLikeType(),
18733
- "val2": new basic_1.CLikeType(),
18732
+ "val1": basic_1.CLikeType.get(),
18733
+ "val2": basic_1.CLikeType.get(),
18734
18734
  },
18735
18735
  optional: {
18736
- "val3": new basic_1.CLikeType(),
18737
- "val4": new basic_1.CLikeType(),
18738
- "val5": new basic_1.CLikeType(),
18739
- "val6": new basic_1.CLikeType(),
18740
- "val7": new basic_1.CLikeType(),
18741
- "val9": new basic_1.CLikeType(),
18736
+ "val3": basic_1.CLikeType.get(),
18737
+ "val4": basic_1.CLikeType.get(),
18738
+ "val5": basic_1.CLikeType.get(),
18739
+ "val6": basic_1.CLikeType.get(),
18740
+ "val7": basic_1.CLikeType.get(),
18741
+ "val9": basic_1.CLikeType.get(),
18742
18742
  },
18743
18743
  return: basic_1.StringType.get(),
18744
18744
  version: version_1.Version.v702,
@@ -18746,16 +18746,16 @@ BuiltIn.methods = [
18746
18746
  {
18747
18747
  name: "CMIN",
18748
18748
  mandatory: {
18749
- "val1": new basic_1.CLikeType(),
18750
- "val2": new basic_1.CLikeType(),
18749
+ "val1": basic_1.CLikeType.get(),
18750
+ "val2": basic_1.CLikeType.get(),
18751
18751
  },
18752
18752
  optional: {
18753
- "val3": new basic_1.CLikeType(),
18754
- "val4": new basic_1.CLikeType(),
18755
- "val5": new basic_1.CLikeType(),
18756
- "val6": new basic_1.CLikeType(),
18757
- "val7": new basic_1.CLikeType(),
18758
- "val9": new basic_1.CLikeType(),
18753
+ "val3": basic_1.CLikeType.get(),
18754
+ "val4": basic_1.CLikeType.get(),
18755
+ "val5": basic_1.CLikeType.get(),
18756
+ "val6": basic_1.CLikeType.get(),
18757
+ "val7": basic_1.CLikeType.get(),
18758
+ "val9": basic_1.CLikeType.get(),
18759
18759
  },
18760
18760
  return: basic_1.StringType.get(),
18761
18761
  version: version_1.Version.v702,
@@ -18766,7 +18766,7 @@ BuiltIn.methods = [
18766
18766
  "table": new basic_1.TableType(new basic_1.AnyType(), { withHeader: false, keyType: basic_1.TableKeyType.default }),
18767
18767
  },
18768
18768
  optional: {
18769
- "sep": new basic_1.CLikeType(),
18769
+ "sep": basic_1.CLikeType.get(),
18770
18770
  },
18771
18771
  return: basic_1.StringType.get(),
18772
18772
  version: version_1.Version.v702,
@@ -18774,12 +18774,12 @@ BuiltIn.methods = [
18774
18774
  {
18775
18775
  name: "CONDENSE",
18776
18776
  mandatory: {
18777
- "val": new basic_1.CLikeType(),
18777
+ "val": basic_1.CLikeType.get(),
18778
18778
  },
18779
18779
  optional: {
18780
- "del": new basic_1.CLikeType(),
18781
- "from": new basic_1.CLikeType(),
18782
- "to": new basic_1.CLikeType(),
18780
+ "del": basic_1.CLikeType.get(),
18781
+ "from": basic_1.CLikeType.get(),
18782
+ "to": basic_1.CLikeType.get(),
18783
18783
  },
18784
18784
  return: basic_1.StringType.get(),
18785
18785
  version: version_1.Version.v702,
@@ -18787,14 +18787,14 @@ BuiltIn.methods = [
18787
18787
  {
18788
18788
  name: "CONTAINS",
18789
18789
  mandatory: {
18790
- "val": new basic_1.CLikeType(),
18790
+ "val": basic_1.CLikeType.get(),
18791
18791
  },
18792
18792
  optional: {
18793
- "sub": new basic_1.CLikeType(),
18794
- "start": new basic_1.CLikeType(),
18795
- "end": new basic_1.CLikeType(),
18796
- "regex": new basic_1.CLikeType(),
18797
- "pcre": new basic_1.CLikeType(),
18793
+ "sub": basic_1.CLikeType.get(),
18794
+ "start": basic_1.CLikeType.get(),
18795
+ "end": basic_1.CLikeType.get(),
18796
+ "regex": basic_1.CLikeType.get(),
18797
+ "pcre": basic_1.CLikeType.get(),
18798
18798
  "case": new basic_1.CharacterType(1),
18799
18799
  "off": basic_1.IntegerType.get(),
18800
18800
  "len": basic_1.IntegerType.get(),
@@ -18807,12 +18807,12 @@ BuiltIn.methods = [
18807
18807
  {
18808
18808
  name: "CONTAINS_ANY_NOT_OF",
18809
18809
  mandatory: {
18810
- "val": new basic_1.CLikeType(),
18810
+ "val": basic_1.CLikeType.get(),
18811
18811
  },
18812
18812
  optional: {
18813
- "sub": new basic_1.CLikeType(),
18814
- "start": new basic_1.CLikeType(),
18815
- "end": new basic_1.CLikeType(),
18813
+ "sub": basic_1.CLikeType.get(),
18814
+ "start": basic_1.CLikeType.get(),
18815
+ "end": basic_1.CLikeType.get(),
18816
18816
  "off": basic_1.IntegerType.get(),
18817
18817
  "len": basic_1.IntegerType.get(),
18818
18818
  "occ": basic_1.IntegerType.get(),
@@ -18823,12 +18823,12 @@ BuiltIn.methods = [
18823
18823
  {
18824
18824
  name: "CONTAINS_ANY_OF",
18825
18825
  mandatory: {
18826
- "val": new basic_1.CLikeType(),
18826
+ "val": basic_1.CLikeType.get(),
18827
18827
  },
18828
18828
  optional: {
18829
- "sub": new basic_1.CLikeType(),
18830
- "start": new basic_1.CLikeType(),
18831
- "end": new basic_1.CLikeType(),
18829
+ "sub": basic_1.CLikeType.get(),
18830
+ "start": basic_1.CLikeType.get(),
18831
+ "end": basic_1.CLikeType.get(),
18832
18832
  "off": basic_1.IntegerType.get(),
18833
18833
  "len": basic_1.IntegerType.get(),
18834
18834
  "occ": basic_1.IntegerType.get(),
@@ -18854,12 +18854,12 @@ BuiltIn.methods = [
18854
18854
  {
18855
18855
  name: "COUNT",
18856
18856
  mandatory: {
18857
- "val": new basic_1.CLikeType(),
18857
+ "val": basic_1.CLikeType.get(),
18858
18858
  },
18859
18859
  optional: {
18860
- "sub": new basic_1.CLikeType(),
18861
- "regex": new basic_1.CLikeType(),
18862
- "pcre": new basic_1.CLikeType(),
18860
+ "sub": basic_1.CLikeType.get(),
18861
+ "regex": basic_1.CLikeType.get(),
18862
+ "pcre": basic_1.CLikeType.get(),
18863
18863
  "case": new basic_1.CharacterType(1),
18864
18864
  "off": basic_1.IntegerType.get(),
18865
18865
  "len": basic_1.IntegerType.get(),
@@ -18870,12 +18870,12 @@ BuiltIn.methods = [
18870
18870
  {
18871
18871
  name: "COUNT_ANY_NOT_OF",
18872
18872
  mandatory: {
18873
- "val": new basic_1.CLikeType(),
18873
+ "val": basic_1.CLikeType.get(),
18874
18874
  },
18875
18875
  optional: {
18876
- "sub": new basic_1.CLikeType(),
18877
- "regex": new basic_1.CLikeType(),
18878
- "pcre": new basic_1.CLikeType(),
18876
+ "sub": basic_1.CLikeType.get(),
18877
+ "regex": basic_1.CLikeType.get(),
18878
+ "pcre": basic_1.CLikeType.get(),
18879
18879
  "case": new basic_1.CharacterType(1),
18880
18880
  "off": basic_1.IntegerType.get(),
18881
18881
  "len": basic_1.IntegerType.get(),
@@ -18886,12 +18886,12 @@ BuiltIn.methods = [
18886
18886
  {
18887
18887
  name: "COUNT_ANY_OF",
18888
18888
  mandatory: {
18889
- "val": new basic_1.CLikeType(),
18889
+ "val": basic_1.CLikeType.get(),
18890
18890
  },
18891
18891
  optional: {
18892
- "sub": new basic_1.CLikeType(),
18893
- "regex": new basic_1.CLikeType(),
18894
- "pcre": new basic_1.CLikeType(),
18892
+ "sub": basic_1.CLikeType.get(),
18893
+ "regex": basic_1.CLikeType.get(),
18894
+ "pcre": basic_1.CLikeType.get(),
18895
18895
  "case": new basic_1.CharacterType(1),
18896
18896
  "off": basic_1.IntegerType.get(),
18897
18897
  "len": basic_1.IntegerType.get(),
@@ -18902,15 +18902,15 @@ BuiltIn.methods = [
18902
18902
  {
18903
18903
  name: "DBMAXLEN",
18904
18904
  mandatory: {
18905
- "val": new basic_1.CLikeType(),
18905
+ "val": basic_1.CLikeType.get(),
18906
18906
  },
18907
18907
  return: basic_1.IntegerType.get(),
18908
18908
  },
18909
18909
  {
18910
18910
  name: "DISTANCE",
18911
18911
  mandatory: {
18912
- "val1": new basic_1.CLikeType(),
18913
- "val2": new basic_1.CLikeType(),
18912
+ "val1": basic_1.CLikeType.get(),
18913
+ "val2": basic_1.CLikeType.get(),
18914
18914
  },
18915
18915
  return: basic_1.IntegerType.get(),
18916
18916
  version: version_1.Version.v702,
@@ -18918,8 +18918,8 @@ BuiltIn.methods = [
18918
18918
  {
18919
18919
  name: "ESCAPE",
18920
18920
  mandatory: {
18921
- "val": new basic_1.CLikeType(),
18922
- "format": new basic_1.CLikeType(),
18921
+ "val": basic_1.CLikeType.get(),
18922
+ "format": basic_1.CLikeType.get(),
18923
18923
  },
18924
18924
  return: basic_1.StringType.get(),
18925
18925
  version: version_1.Version.v702,
@@ -18934,12 +18934,12 @@ BuiltIn.methods = [
18934
18934
  {
18935
18935
  name: "FIND",
18936
18936
  mandatory: {
18937
- "val": new basic_1.CLikeType(),
18937
+ "val": basic_1.CLikeType.get(),
18938
18938
  },
18939
18939
  optional: {
18940
- "sub": new basic_1.CLikeType(),
18941
- "regex": new basic_1.CLikeType(),
18942
- "pcre": new basic_1.CLikeType(),
18940
+ "sub": basic_1.CLikeType.get(),
18941
+ "regex": basic_1.CLikeType.get(),
18942
+ "pcre": basic_1.CLikeType.get(),
18943
18943
  "case": new basic_1.CharacterType(1),
18944
18944
  "off": basic_1.IntegerType.get(),
18945
18945
  "len": basic_1.IntegerType.get(),
@@ -18951,10 +18951,10 @@ BuiltIn.methods = [
18951
18951
  {
18952
18952
  name: "FIND_ANY_NOT_OF",
18953
18953
  mandatory: {
18954
- "val": new basic_1.CLikeType(),
18954
+ "val": basic_1.CLikeType.get(),
18955
18955
  },
18956
18956
  optional: {
18957
- "sub": new basic_1.CLikeType(),
18957
+ "sub": basic_1.CLikeType.get(),
18958
18958
  "off": basic_1.IntegerType.get(),
18959
18959
  "len": basic_1.IntegerType.get(),
18960
18960
  "occ": basic_1.IntegerType.get(),
@@ -18965,10 +18965,10 @@ BuiltIn.methods = [
18965
18965
  {
18966
18966
  name: "FIND_ANY_OF",
18967
18967
  mandatory: {
18968
- "val": new basic_1.CLikeType(),
18968
+ "val": basic_1.CLikeType.get(),
18969
18969
  },
18970
18970
  optional: {
18971
- "sub": new basic_1.CLikeType(),
18971
+ "sub": basic_1.CLikeType.get(),
18972
18972
  "off": basic_1.IntegerType.get(),
18973
18973
  "len": basic_1.IntegerType.get(),
18974
18974
  "occ": basic_1.IntegerType.get(),
@@ -18979,12 +18979,12 @@ BuiltIn.methods = [
18979
18979
  {
18980
18980
  name: "FIND_END",
18981
18981
  mandatory: {
18982
- "val": new basic_1.CLikeType(),
18982
+ "val": basic_1.CLikeType.get(),
18983
18983
  },
18984
18984
  optional: {
18985
- "sub": new basic_1.CLikeType(),
18986
- "regex": new basic_1.CLikeType(),
18987
- "pcre": new basic_1.CLikeType(),
18985
+ "sub": basic_1.CLikeType.get(),
18986
+ "regex": basic_1.CLikeType.get(),
18987
+ "pcre": basic_1.CLikeType.get(),
18988
18988
  "case": new basic_1.CharacterType(1),
18989
18989
  "off": basic_1.IntegerType.get(),
18990
18990
  "len": basic_1.IntegerType.get(),
@@ -19010,7 +19010,7 @@ BuiltIn.methods = [
19010
19010
  {
19011
19011
  name: "FROM_MIXED",
19012
19012
  mandatory: {
19013
- "val": new basic_1.CLikeType()
19013
+ "val": basic_1.CLikeType.get()
19014
19014
  },
19015
19015
  optional: {
19016
19016
  "case": new basic_1.CharacterType(1),
@@ -19023,8 +19023,8 @@ BuiltIn.methods = [
19023
19023
  {
19024
19024
  name: "INSERT",
19025
19025
  mandatory: {
19026
- "val": new basic_1.CLikeType(),
19027
- "sub": new basic_1.CLikeType(),
19026
+ "val": basic_1.CLikeType.get(),
19027
+ "sub": basic_1.CLikeType.get(),
19028
19028
  },
19029
19029
  optional: {
19030
19030
  "off": basic_1.IntegerType.get(),
@@ -19053,7 +19053,7 @@ BuiltIn.methods = [
19053
19053
  {
19054
19054
  name: "LINE_INDEX",
19055
19055
  mandatory: {
19056
- "val": new basic_1.CLikeType(),
19056
+ "val": basic_1.CLikeType.get(),
19057
19057
  },
19058
19058
  return: basic_1.IntegerType.get(),
19059
19059
  version: version_1.Version.v740sp02,
@@ -19082,11 +19082,11 @@ BuiltIn.methods = [
19082
19082
  {
19083
19083
  name: "MATCH",
19084
19084
  mandatory: {
19085
- "val": new basic_1.CLikeType(),
19085
+ "val": basic_1.CLikeType.get(),
19086
19086
  }, optional: {
19087
19087
  "case": new basic_1.CharacterType(1),
19088
- "regex": new basic_1.CLikeType(),
19089
- "pcre": new basic_1.CLikeType(),
19088
+ "regex": basic_1.CLikeType.get(),
19089
+ "pcre": basic_1.CLikeType.get(),
19090
19090
  "occ": basic_1.IntegerType.get(),
19091
19091
  },
19092
19092
  return: basic_1.StringType.get(),
@@ -19095,12 +19095,12 @@ BuiltIn.methods = [
19095
19095
  {
19096
19096
  name: "MATCHES",
19097
19097
  mandatory: {
19098
- "val": new basic_1.CLikeType(),
19098
+ "val": basic_1.CLikeType.get(),
19099
19099
  },
19100
19100
  optional: {
19101
19101
  "case": new basic_1.CharacterType(1),
19102
- "regex": new basic_1.CLikeType(),
19103
- "pcre": new basic_1.CLikeType(),
19102
+ "regex": basic_1.CLikeType.get(),
19103
+ "pcre": basic_1.CLikeType.get(),
19104
19104
  "off": basic_1.IntegerType.get(),
19105
19105
  "len": basic_1.IntegerType.get(),
19106
19106
  },
@@ -19111,17 +19111,17 @@ BuiltIn.methods = [
19111
19111
  {
19112
19112
  name: "NMAX",
19113
19113
  mandatory: {
19114
- "val1": new basic_1.CLikeType(),
19115
- "val2": new basic_1.CLikeType(),
19114
+ "val1": basic_1.CLikeType.get(),
19115
+ "val2": basic_1.CLikeType.get(),
19116
19116
  },
19117
19117
  optional: {
19118
- "val3": new basic_1.CLikeType(),
19119
- "val4": new basic_1.CLikeType(),
19120
- "val5": new basic_1.CLikeType(),
19121
- "val6": new basic_1.CLikeType(),
19122
- "val7": new basic_1.CLikeType(),
19123
- "val8": new basic_1.CLikeType(),
19124
- "val9": new basic_1.CLikeType(),
19118
+ "val3": basic_1.CLikeType.get(),
19119
+ "val4": basic_1.CLikeType.get(),
19120
+ "val5": basic_1.CLikeType.get(),
19121
+ "val6": basic_1.CLikeType.get(),
19122
+ "val7": basic_1.CLikeType.get(),
19123
+ "val8": basic_1.CLikeType.get(),
19124
+ "val9": basic_1.CLikeType.get(),
19125
19125
  },
19126
19126
  return: basic_1.IntegerType.get(),
19127
19127
  version: version_1.Version.v702,
@@ -19129,17 +19129,17 @@ BuiltIn.methods = [
19129
19129
  {
19130
19130
  name: "NMIN",
19131
19131
  mandatory: {
19132
- "val1": new basic_1.CLikeType(),
19133
- "val2": new basic_1.CLikeType(),
19132
+ "val1": basic_1.CLikeType.get(),
19133
+ "val2": basic_1.CLikeType.get(),
19134
19134
  },
19135
19135
  optional: {
19136
- "val3": new basic_1.CLikeType(),
19137
- "val4": new basic_1.CLikeType(),
19138
- "val5": new basic_1.CLikeType(),
19139
- "val6": new basic_1.CLikeType(),
19140
- "val7": new basic_1.CLikeType(),
19141
- "val8": new basic_1.CLikeType(),
19142
- "val9": new basic_1.CLikeType(),
19136
+ "val3": basic_1.CLikeType.get(),
19137
+ "val4": basic_1.CLikeType.get(),
19138
+ "val5": basic_1.CLikeType.get(),
19139
+ "val6": basic_1.CLikeType.get(),
19140
+ "val7": basic_1.CLikeType.get(),
19141
+ "val8": basic_1.CLikeType.get(),
19142
+ "val9": basic_1.CLikeType.get(),
19143
19143
  },
19144
19144
  return: basic_1.IntegerType.get(),
19145
19145
  version: version_1.Version.v702,
@@ -19147,15 +19147,15 @@ BuiltIn.methods = [
19147
19147
  {
19148
19148
  name: "NUMOFCHAR",
19149
19149
  mandatory: {
19150
- "val": new basic_1.CLikeType(),
19150
+ "val": basic_1.CLikeType.get(),
19151
19151
  },
19152
19152
  return: basic_1.IntegerType.get(),
19153
19153
  },
19154
19154
  {
19155
19155
  name: "REPEAT",
19156
19156
  mandatory: {
19157
- "val": new basic_1.CLikeType(),
19158
- "occ": basic_1.IntegerType.get(),
19157
+ "val": basic_1.CLikeType.get(),
19158
+ "occ": basic_1.CLikeType.get(),
19159
19159
  },
19160
19160
  return: basic_1.StringType.get(),
19161
19161
  version: version_1.Version.v702,
@@ -19163,13 +19163,13 @@ BuiltIn.methods = [
19163
19163
  {
19164
19164
  name: "REPLACE",
19165
19165
  mandatory: {
19166
- "val": new basic_1.CLikeType(),
19167
- "with": new basic_1.CLikeType(),
19166
+ "val": basic_1.CLikeType.get(),
19167
+ "with": basic_1.CLikeType.get(),
19168
19168
  },
19169
19169
  optional: {
19170
- "sub": new basic_1.CLikeType(),
19171
- "regex": new basic_1.CLikeType(),
19172
- "pcre": new basic_1.CLikeType(),
19170
+ "sub": basic_1.CLikeType.get(),
19171
+ "regex": basic_1.CLikeType.get(),
19172
+ "pcre": basic_1.CLikeType.get(),
19173
19173
  "case": new basic_1.CharacterType(1),
19174
19174
  "off": basic_1.IntegerType.get(),
19175
19175
  "len": basic_1.IntegerType.get(),
@@ -19194,7 +19194,7 @@ BuiltIn.methods = [
19194
19194
  {
19195
19195
  name: "REVERSE",
19196
19196
  mandatory: {
19197
- "val": new basic_1.CLikeType(),
19197
+ "val": basic_1.CLikeType.get(),
19198
19198
  },
19199
19199
  return: basic_1.StringType.get(),
19200
19200
  version: version_1.Version.v702,
@@ -19215,12 +19215,12 @@ BuiltIn.methods = [
19215
19215
  {
19216
19216
  name: "SEGMENT",
19217
19217
  mandatory: {
19218
- "val": new basic_1.CLikeType(),
19218
+ "val": basic_1.CLikeType.get(),
19219
19219
  "index": basic_1.IntegerType.get(),
19220
19220
  },
19221
19221
  optional: {
19222
- "sep": new basic_1.CLikeType(),
19223
- "space": new basic_1.CLikeType(),
19222
+ "sep": basic_1.CLikeType.get(),
19223
+ "space": basic_1.CLikeType.get(),
19224
19224
  },
19225
19225
  return: basic_1.StringType.get(),
19226
19226
  version: version_1.Version.v702,
@@ -19228,10 +19228,10 @@ BuiltIn.methods = [
19228
19228
  {
19229
19229
  name: "SHIFT_LEFT",
19230
19230
  mandatory: {
19231
- "val": new basic_1.CLikeType(),
19231
+ "val": basic_1.CLikeType.get(),
19232
19232
  },
19233
19233
  optional: {
19234
- "sub": new basic_1.CLikeType(),
19234
+ "sub": basic_1.CLikeType.get(),
19235
19235
  "places": basic_1.IntegerType.get(),
19236
19236
  "circular": basic_1.IntegerType.get(),
19237
19237
  },
@@ -19241,10 +19241,10 @@ BuiltIn.methods = [
19241
19241
  {
19242
19242
  name: "SHIFT_RIGHT",
19243
19243
  mandatory: {
19244
- "val": new basic_1.CLikeType(),
19244
+ "val": basic_1.CLikeType.get(),
19245
19245
  },
19246
19246
  optional: {
19247
- "sub": new basic_1.CLikeType(),
19247
+ "sub": basic_1.CLikeType.get(),
19248
19248
  "places": basic_1.IntegerType.get(),
19249
19249
  "circular": basic_1.IntegerType.get(),
19250
19250
  },
@@ -19282,14 +19282,14 @@ BuiltIn.methods = [
19282
19282
  {
19283
19283
  name: "STRLEN",
19284
19284
  mandatory: {
19285
- "val": new basic_1.CLikeType(),
19285
+ "val": basic_1.CLikeType.get(),
19286
19286
  },
19287
19287
  return: basic_1.IntegerType.get(),
19288
19288
  },
19289
19289
  {
19290
19290
  name: "SUBSTRING",
19291
19291
  mandatory: {
19292
- "val": new basic_1.CLikeType(),
19292
+ "val": basic_1.CLikeType.get(),
19293
19293
  },
19294
19294
  optional: {
19295
19295
  "off": basic_1.IntegerType.get(),
@@ -19301,12 +19301,12 @@ BuiltIn.methods = [
19301
19301
  {
19302
19302
  name: "SUBSTRING_AFTER",
19303
19303
  mandatory: {
19304
- "val": new basic_1.CLikeType(),
19304
+ "val": basic_1.CLikeType.get(),
19305
19305
  },
19306
19306
  optional: {
19307
- "sub": new basic_1.CLikeType(),
19308
- "regex": new basic_1.CLikeType(),
19309
- "pcre": new basic_1.CLikeType(),
19307
+ "sub": basic_1.CLikeType.get(),
19308
+ "regex": basic_1.CLikeType.get(),
19309
+ "pcre": basic_1.CLikeType.get(),
19310
19310
  "case": new basic_1.CharacterType(1),
19311
19311
  "len": basic_1.IntegerType.get(),
19312
19312
  "occ": basic_1.IntegerType.get(),
@@ -19317,12 +19317,12 @@ BuiltIn.methods = [
19317
19317
  {
19318
19318
  name: "SUBSTRING_BEFORE",
19319
19319
  mandatory: {
19320
- "val": new basic_1.CLikeType(),
19320
+ "val": basic_1.CLikeType.get(),
19321
19321
  },
19322
19322
  optional: {
19323
- "sub": new basic_1.CLikeType(),
19324
- "regex": new basic_1.CLikeType(),
19325
- "pcre": new basic_1.CLikeType(),
19323
+ "sub": basic_1.CLikeType.get(),
19324
+ "regex": basic_1.CLikeType.get(),
19325
+ "pcre": basic_1.CLikeType.get(),
19326
19326
  "case": new basic_1.CharacterType(1),
19327
19327
  "len": basic_1.IntegerType.get(),
19328
19328
  "occ": basic_1.IntegerType.get(),
@@ -19333,12 +19333,12 @@ BuiltIn.methods = [
19333
19333
  {
19334
19334
  name: "SUBSTRING_FROM",
19335
19335
  mandatory: {
19336
- "val": new basic_1.CLikeType(),
19336
+ "val": basic_1.CLikeType.get(),
19337
19337
  },
19338
19338
  optional: {
19339
- "sub": new basic_1.CLikeType(),
19340
- "regex": new basic_1.CLikeType(),
19341
- "pcre": new basic_1.CLikeType(),
19339
+ "sub": basic_1.CLikeType.get(),
19340
+ "regex": basic_1.CLikeType.get(),
19341
+ "pcre": basic_1.CLikeType.get(),
19342
19342
  "case": new basic_1.CharacterType(1),
19343
19343
  "len": basic_1.IntegerType.get(),
19344
19344
  "occ": basic_1.IntegerType.get(),
@@ -19349,12 +19349,12 @@ BuiltIn.methods = [
19349
19349
  {
19350
19350
  name: "SUBSTRING_TO",
19351
19351
  mandatory: {
19352
- "val": new basic_1.CLikeType(),
19352
+ "val": basic_1.CLikeType.get(),
19353
19353
  },
19354
19354
  optional: {
19355
- "sub": new basic_1.CLikeType(),
19356
- "regex": new basic_1.CLikeType(),
19357
- "pcre": new basic_1.CLikeType(),
19355
+ "sub": basic_1.CLikeType.get(),
19356
+ "regex": basic_1.CLikeType.get(),
19357
+ "pcre": basic_1.CLikeType.get(),
19358
19358
  "case": new basic_1.CharacterType(1),
19359
19359
  "len": basic_1.IntegerType.get(),
19360
19360
  "occ": basic_1.IntegerType.get(),
@@ -19379,7 +19379,7 @@ BuiltIn.methods = [
19379
19379
  {
19380
19380
  name: "TO_LOWER",
19381
19381
  mandatory: {
19382
- "val": new basic_1.CLikeType(),
19382
+ "val": basic_1.CLikeType.get(),
19383
19383
  },
19384
19384
  return: basic_1.StringType.get(),
19385
19385
  version: version_1.Version.v702,
@@ -19387,11 +19387,11 @@ BuiltIn.methods = [
19387
19387
  {
19388
19388
  name: "TO_MIXED",
19389
19389
  mandatory: {
19390
- "val": new basic_1.CLikeType(),
19390
+ "val": basic_1.CLikeType.get(),
19391
19391
  },
19392
19392
  optional: {
19393
19393
  "case": new basic_1.CharacterType(1),
19394
- "sep": new basic_1.CLikeType(),
19394
+ "sep": basic_1.CLikeType.get(),
19395
19395
  "min": basic_1.IntegerType.get(),
19396
19396
  },
19397
19397
  return: basic_1.StringType.get(),
@@ -19399,16 +19399,16 @@ BuiltIn.methods = [
19399
19399
  },
19400
19400
  {
19401
19401
  name: "TO_UPPER",
19402
- mandatory: { "val": new basic_1.CLikeType() },
19402
+ mandatory: { "val": basic_1.CLikeType.get() },
19403
19403
  return: basic_1.StringType.get(),
19404
19404
  version: version_1.Version.v702,
19405
19405
  },
19406
19406
  {
19407
19407
  name: "TRANSLATE",
19408
19408
  mandatory: {
19409
- "val": new basic_1.CLikeType(),
19410
- "from": new basic_1.CLikeType(),
19411
- "to": new basic_1.CLikeType(),
19409
+ "val": basic_1.CLikeType.get(),
19410
+ "from": basic_1.CLikeType.get(),
19411
+ "to": basic_1.CLikeType.get(),
19412
19412
  },
19413
19413
  return: basic_1.StringType.get(),
19414
19414
  version: version_1.Version.v702,
@@ -19451,7 +19451,7 @@ BuiltIn.methods = [
19451
19451
  {
19452
19452
  name: "XSDBOOL",
19453
19453
  mandatory: {
19454
- "val": new basic_1.CLikeType(),
19454
+ "val": basic_1.CLikeType.get(),
19455
19455
  },
19456
19456
  return: new basic_1.CharacterType(1),
19457
19457
  version: version_1.Version.v740sp08,
@@ -33444,6 +33444,12 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
33444
33444
  exports.CLikeType = void 0;
33445
33445
  const _abstract_type_1 = __webpack_require__(/*! ./_abstract_type */ "./node_modules/@abaplint/core/build/src/abap/types/basic/_abstract_type.js");
33446
33446
  class CLikeType extends _abstract_type_1.AbstractType {
33447
+ static get() {
33448
+ return this.singleton;
33449
+ }
33450
+ constructor() {
33451
+ super();
33452
+ }
33447
33453
  toText() {
33448
33454
  return "```clike```";
33449
33455
  }
@@ -33461,6 +33467,7 @@ class CLikeType extends _abstract_type_1.AbstractType {
33461
33467
  }
33462
33468
  }
33463
33469
  exports.CLikeType = CLikeType;
33470
+ CLikeType.singleton = new CLikeType();
33464
33471
  //# sourceMappingURL=clike_type.js.map
33465
33472
 
33466
33473
  /***/ }),
@@ -37461,7 +37468,7 @@ class DDIC {
37461
37468
  case "XSEQUENCE":
37462
37469
  return new Types.XSequenceType({ qualifiedName: qualifiedName });
37463
37470
  case "CLIKE":
37464
- return new Types.CLikeType({ qualifiedName: qualifiedName });
37471
+ return Types.CLikeType.get();
37465
37472
  case "DECFLOAT":
37466
37473
  return new Types.DecFloatType({ qualifiedName: qualifiedName });
37467
37474
  case "ANY":
@@ -47518,7 +47525,7 @@ class Registry {
47518
47525
  }
47519
47526
  static abaplintVersion() {
47520
47527
  // magic, see build script "version.sh"
47521
- return "2.101.34";
47528
+ return "2.102.2";
47522
47529
  }
47523
47530
  getDDICReferences() {
47524
47531
  return this.ddicReferences;
@@ -50702,7 +50709,7 @@ class CloudTypes {
50702
50709
  key: "cloud_types",
50703
50710
  title: "Check cloud types",
50704
50711
  shortDescription: `Checks that the package does not contain any object types unsupported in cloud ABAP.`,
50705
- tags: [_irule_1.RuleTag.SingleFile],
50712
+ tags: [_irule_1.RuleTag.SingleFile, _irule_1.RuleTag.Syntax],
50706
50713
  };
50707
50714
  }
50708
50715
  getDescription(objectType) {
@@ -54196,6 +54203,9 @@ ${indentation} output = ${uniqueName}.\n`;
54196
54203
  continue;
54197
54204
  }
54198
54205
  const correspondingBody = s.findDirectExpression(Expressions.CorrespondingBody);
54206
+ if ((correspondingBody === null || correspondingBody === void 0 ? void 0 : correspondingBody.getFirstToken().getStr().toUpperCase()) === "BASE") {
54207
+ continue;
54208
+ }
54199
54209
  const uniqueName = this.uniqueName(firstToken.getStart(), lowFile.getFilename(), highSyntax);
54200
54210
  const indentation = " ".repeat(high.getFirstToken().getStart().getCol() - 1);
54201
54211
  let type = this.findType(s, lowFile, highSyntax);
@@ -55732,7 +55742,7 @@ class ForbiddenPseudoAndPragmaConf extends _basic_rule_config_1.BasicRuleConfig
55732
55742
  constructor() {
55733
55743
  super(...arguments);
55734
55744
  /** @uniqueItems true */
55735
- this.pseudo = [];
55745
+ this.pseudo = [`"#EC *`];
55736
55746
  /** @uniqueItems true */
55737
55747
  this.pragmas = [];
55738
55748
  this.ignoreGlobalClassDefinition = false;
@@ -55751,9 +55761,15 @@ class ForbiddenPseudoAndPragma extends _abap_rule_1.ABAPRule {
55751
55761
  title: "Forbidden pseudo comments and pragma",
55752
55762
  shortDescription: `Checks for unwanted pseudo comments and pragma`,
55753
55763
  tags: [_irule_1.RuleTag.Quickfix, _irule_1.RuleTag.SingleFile],
55764
+ badExample: `DATA i TYPE i. "#EC *`,
55765
+ goodExample: `DATA i TYPE i.`,
55754
55766
  };
55755
55767
  }
55756
55768
  getConfig() {
55769
+ // @ts-ignore
55770
+ if (this.conf === true) {
55771
+ this.conf = new ForbiddenPseudoAndPragmaConf();
55772
+ }
55757
55773
  if (this.conf.pseudo === undefined) {
55758
55774
  this.conf.pseudo = [];
55759
55775
  }
@@ -56197,6 +56213,7 @@ class FunctionModuleRecommendationsConf extends _basic_rule_config_1.BasicRuleCo
56197
56213
  */
56198
56214
  this.recommendations = [
56199
56215
  { name: "CALCULATE_HASH_FOR_RAW", replace: "use CL_ABAP_HMAC or CL_ABAP_MESSAGE_DIGEST" },
56216
+ { name: "CCU_TIMESTAMP_DIFFERENCE", replace: "use CL_ABAP_TSTMP" },
56200
56217
  { name: "ECATT_CONV_XSTRING_TO_STRING", replace: "use CL_BINARY_CONVERT" },
56201
56218
  { name: "F4_FILENAME", replace: "use CL_GUI_FRONTEND_SERVICES" },
56202
56219
  { name: "FUNCTION_EXISTS", replace: "surround with try-catch CX_SY_DYN_CALL_ILLEGAL_METHOD instead" },
@@ -57741,6 +57758,7 @@ __exportStar(__webpack_require__(/*! ./pragma_style */ "./node_modules/@abaplint
57741
57758
  __exportStar(__webpack_require__(/*! ./prefer_corresponding */ "./node_modules/@abaplint/core/build/src/rules/prefer_corresponding.js"), exports);
57742
57759
  __exportStar(__webpack_require__(/*! ./prefer_inline */ "./node_modules/@abaplint/core/build/src/rules/prefer_inline.js"), exports);
57743
57760
  __exportStar(__webpack_require__(/*! ./prefer_is_not */ "./node_modules/@abaplint/core/build/src/rules/prefer_is_not.js"), exports);
57761
+ __exportStar(__webpack_require__(/*! ./prefer_pragmas */ "./node_modules/@abaplint/core/build/src/rules/prefer_pragmas.js"), exports);
57744
57762
  __exportStar(__webpack_require__(/*! ./prefer_raise_exception_new */ "./node_modules/@abaplint/core/build/src/rules/prefer_raise_exception_new.js"), exports);
57745
57763
  __exportStar(__webpack_require__(/*! ./prefer_returning_to_exporting */ "./node_modules/@abaplint/core/build/src/rules/prefer_returning_to_exporting.js"), exports);
57746
57764
  __exportStar(__webpack_require__(/*! ./prefer_xsdbool */ "./node_modules/@abaplint/core/build/src/rules/prefer_xsdbool.js"), exports);
@@ -62828,6 +62846,91 @@ exports.PreferIsNot = PreferIsNot;
62828
62846
 
62829
62847
  /***/ }),
62830
62848
 
62849
+ /***/ "./node_modules/@abaplint/core/build/src/rules/prefer_pragmas.js":
62850
+ /*!***********************************************************************!*\
62851
+ !*** ./node_modules/@abaplint/core/build/src/rules/prefer_pragmas.js ***!
62852
+ \***********************************************************************/
62853
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
62854
+
62855
+ "use strict";
62856
+
62857
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
62858
+ exports.PreferPragmas = exports.PreferPragmasConf = void 0;
62859
+ const issue_1 = __webpack_require__(/*! ../issue */ "./node_modules/@abaplint/core/build/src/issue.js");
62860
+ const _abap_rule_1 = __webpack_require__(/*! ./_abap_rule */ "./node_modules/@abaplint/core/build/src/rules/_abap_rule.js");
62861
+ const _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ "./node_modules/@abaplint/core/build/src/rules/_basic_rule_config.js");
62862
+ const _irule_1 = __webpack_require__(/*! ./_irule */ "./node_modules/@abaplint/core/build/src/rules/_irule.js");
62863
+ const _statement_1 = __webpack_require__(/*! ../abap/2_statements/statements/_statement */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/_statement.js");
62864
+ class PreferPragmasConf extends _basic_rule_config_1.BasicRuleConfig {
62865
+ constructor() {
62866
+ super(...arguments);
62867
+ this.check = [
62868
+ {
62869
+ pseudo: "#EC CI_SUBRC",
62870
+ pragma: "SUBRC_OK",
62871
+ },
62872
+ {
62873
+ pseudo: "#EC NEEDED",
62874
+ pragma: "NEEDED",
62875
+ },
62876
+ {
62877
+ pseudo: "#EC NOTEXT",
62878
+ pragma: "NO_TEXT",
62879
+ },
62880
+ {
62881
+ pseudo: "#EC NO_HANDLER",
62882
+ pragma: "NO_HANDLER",
62883
+ },
62884
+ ];
62885
+ }
62886
+ }
62887
+ exports.PreferPragmasConf = PreferPragmasConf;
62888
+ class PreferPragmas extends _abap_rule_1.ABAPRule {
62889
+ constructor() {
62890
+ super(...arguments);
62891
+ this.conf = new PreferPragmasConf();
62892
+ }
62893
+ getMetadata() {
62894
+ return {
62895
+ key: "prefer_pragmas",
62896
+ title: "prefer pragmas over pseudo comments ",
62897
+ shortDescription: `prefer pragmas over pseudo comments `,
62898
+ extendedInformation: `https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md#prefer-pragmas-to-pseudo-comments`,
62899
+ tags: [_irule_1.RuleTag.SingleFile, _irule_1.RuleTag.Styleguide],
62900
+ };
62901
+ }
62902
+ getConfig() {
62903
+ return this.conf;
62904
+ }
62905
+ setConfig(conf) {
62906
+ this.conf = conf;
62907
+ }
62908
+ runParsed(file) {
62909
+ const issues = [];
62910
+ const config = this.getConfig();
62911
+ for (const statement of file.getStatements()) {
62912
+ if (!(statement.get() instanceof _statement_1.Comment)) {
62913
+ continue;
62914
+ }
62915
+ const concat = statement.concatTokens().toUpperCase();
62916
+ if (concat.includes("#EC") === false) {
62917
+ continue;
62918
+ }
62919
+ for (const check of config.check) {
62920
+ if (concat.includes(check.pseudo.toUpperCase())) {
62921
+ const message = `Prefer pragma ${check.pragma}`;
62922
+ issues.push(issue_1.Issue.atStatement(file, statement, message, this.getMetadata().key, this.getConfig().severity));
62923
+ }
62924
+ }
62925
+ }
62926
+ return issues;
62927
+ }
62928
+ }
62929
+ exports.PreferPragmas = PreferPragmas;
62930
+ //# sourceMappingURL=prefer_pragmas.js.map
62931
+
62932
+ /***/ }),
62933
+
62831
62934
  /***/ "./node_modules/@abaplint/core/build/src/rules/prefer_raise_exception_new.js":
62832
62935
  /*!***********************************************************************************!*\
62833
62936
  !*** ./node_modules/@abaplint/core/build/src/rules/prefer_raise_exception_new.js ***!
@@ -66291,7 +66394,9 @@ class UnnecessaryPragma extends _abap_rule_1.ABAPRule {
66291
66394
 
66292
66395
  * NO_TEXT without texts
66293
66396
 
66294
- * SUBRC_OK where sy-subrc is checked`,
66397
+ * SUBRC_OK where sy-subrc is checked
66398
+
66399
+ NO_HANDLER inside macros are not checked`,
66295
66400
  tags: [_irule_1.RuleTag.SingleFile],
66296
66401
  badExample: `TRY.
66297
66402
  ...
@@ -66422,6 +66527,7 @@ ENDIF.`,
66422
66527
  }
66423
66528
  if (next
66424
66529
  && next.get() instanceof _statement_1.Comment
66530
+ && !(statement.get() instanceof _statement_1.MacroContent)
66425
66531
  && next.concatTokens().toUpperCase().includes("#EC NO_HANDLER")) {
66426
66532
  return true;
66427
66533
  }
@@ -66467,6 +66573,12 @@ class UnnecessaryReturn extends _abap_rule_1.ABAPRule {
66467
66573
  badExample: `FORM hello1.
66468
66574
  WRITE 'world'.
66469
66575
  RETURN.
66576
+ ENDFORM.
66577
+
66578
+ FORM foo.
66579
+ IF 1 = 2.
66580
+ RETURN.
66581
+ ENDIF.
66470
66582
  ENDFORM.`,
66471
66583
  goodExample: `FORM hello2.
66472
66584
  WRITE 'world'.
@@ -66485,17 +66597,27 @@ ENDFORM.`,
66485
66597
  if (structure === undefined) {
66486
66598
  return [];
66487
66599
  }
66600
+ const message = "Unnecessary RETURN";
66488
66601
  const statements = file.getStatements();
66489
- for (let i = 0; i < statements.length - 1; i++) {
66602
+ for (let i = 0; i < statements.length; i++) {
66490
66603
  const node = statements[i];
66491
- const next = statements[i + 1];
66492
- if (node.get() instanceof Statements.Return
66493
- && (next.get() instanceof Statements.EndMethod
66494
- || next.get() instanceof Statements.EndForm
66495
- || next.get() instanceof Statements.EndFunction)) {
66496
- const message = "Unnecessary RETURN";
66497
- const fix = edit_helper_1.EditHelper.deleteStatement(file, node);
66498
- issues.push(issue_1.Issue.atStatement(file, node, message, this.getMetadata().key, this.getConfig().severity, fix));
66604
+ if (!(node.get() instanceof Statements.EndMethod
66605
+ || node.get() instanceof Statements.EndForm
66606
+ || node.get() instanceof Statements.EndFunction)) {
66607
+ continue;
66608
+ }
66609
+ const prev = statements[i - 1];
66610
+ if (prev && prev.get() instanceof Statements.Return) {
66611
+ const fix = edit_helper_1.EditHelper.deleteStatement(file, prev);
66612
+ issues.push(issue_1.Issue.atStatement(file, prev, message, this.getMetadata().key, this.getConfig().severity, fix));
66613
+ }
66614
+ // note: ENDTRY is not checked, it will usually just make it an empty catch handler, which is also bad
66615
+ const prevprev = statements[i - 2];
66616
+ if (prev && prevprev
66617
+ && prevprev.get() instanceof Statements.Return
66618
+ && prev.get() instanceof Statements.EndIf) {
66619
+ const fix = edit_helper_1.EditHelper.deleteStatement(file, prevprev);
66620
+ issues.push(issue_1.Issue.atStatement(file, prevprev, message, this.getMetadata().key, this.getConfig().severity, fix));
66499
66621
  }
66500
66622
  }
66501
66623
  return issues;
@@ -76350,7 +76472,7 @@ class MethodImplementationTranspiler {
76350
76472
  throw new Error("MethodTranspiler, scope not found, " + methodName + ", " + traversal.getFilename());
76351
76473
  }
76352
76474
  else if (scope.getIdentifier().sname !== methodName) {
76353
- throw new Error("MethodTranspiler, wrong scope found, " + scope.getIdentifier().sname);
76475
+ throw new Error("MethodTranspiler, wrong scope found, " + scope.getIdentifier().sname + ", " + methodName);
76354
76476
  }
76355
76477
  let after = "";
76356
76478
  const classDef = traversal.getClassDefinition(token);
@@ -78834,7 +78956,7 @@ class ClassImplementationTranspiler {
78834
78956
  }
78835
78957
  const cdef = traversal.getClassDefinition(token);
78836
78958
  if (cdef === undefined) {
78837
- throw "buildConstructorCDEFNotFound";
78959
+ throw "buildConstructorCDEFNotFound, " + token.getStr();
78838
78960
  }
78839
78961
  const ret = traversal.buildConstructorContents(scope, cdef);
78840
78962
  if (ret === "") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/transpiler-cli",
3
- "version": "2.7.32",
3
+ "version": "2.7.34",
4
4
  "description": "Transpiler - Command Line Interface",
5
5
  "funding": "https://github.com/sponsors/larshp",
6
6
  "bin": {
@@ -26,12 +26,12 @@
26
26
  "author": "abaplint",
27
27
  "license": "MIT",
28
28
  "devDependencies": {
29
- "@abaplint/transpiler": "^2.7.32",
29
+ "@abaplint/transpiler": "^2.7.34",
30
30
  "@types/glob": "^7.2.0",
31
31
  "glob": "=7.2.0",
32
32
  "@types/progress": "^2.0.5",
33
- "@types/node": "^20.4.1",
34
- "@abaplint/core": "^2.101.34",
33
+ "@types/node": "^20.4.2",
34
+ "@abaplint/core": "^2.102.2",
35
35
  "progress": "^2.0.3",
36
36
  "webpack": "^5.88.1",
37
37
  "webpack-cli": "^5.1.4",