@abaplint/transpiler-cli 2.6.43 → 2.7.0
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.
- package/build/bundle.js +474 -177
- package/package.json +7 -6
package/build/bundle.js
CHANGED
|
@@ -7847,6 +7847,7 @@ class StatementParser {
|
|
|
7847
7847
|
const concat = statement.concatTokens().toUpperCase();
|
|
7848
7848
|
if (concat.startsWith("CALL METHOD ") === false
|
|
7849
7849
|
&& concat.startsWith("RAISE EXCEPTION TYPE ") === false
|
|
7850
|
+
&& concat.startsWith("READ TABLE ") === false
|
|
7850
7851
|
&& concat.startsWith("LOOP AT ") === false
|
|
7851
7852
|
&& concat.startsWith("CALL FUNCTION ") === false) {
|
|
7852
7853
|
for (const { first, second } of this.buildSplits(statement.getTokens())) {
|
|
@@ -18622,7 +18623,7 @@ BuiltIn.methods = [
|
|
|
18622
18623
|
{
|
|
18623
18624
|
name: "BOOLC",
|
|
18624
18625
|
mandatory: {
|
|
18625
|
-
"val": new basic_1.
|
|
18626
|
+
"val": new basic_1.CLikeType(),
|
|
18626
18627
|
},
|
|
18627
18628
|
return: new basic_1.StringType(),
|
|
18628
18629
|
version: version_1.Version.v702,
|
|
@@ -18630,7 +18631,7 @@ BuiltIn.methods = [
|
|
|
18630
18631
|
{
|
|
18631
18632
|
name: "BOOLX",
|
|
18632
18633
|
mandatory: {
|
|
18633
|
-
"bool": new basic_1.
|
|
18634
|
+
"bool": new basic_1.CLikeType(),
|
|
18634
18635
|
},
|
|
18635
18636
|
optional: {
|
|
18636
18637
|
"bit": new basic_1.IntegerType(),
|
|
@@ -18648,7 +18649,7 @@ BuiltIn.methods = [
|
|
|
18648
18649
|
{
|
|
18649
18650
|
name: "CHAR_OFF",
|
|
18650
18651
|
mandatory: {
|
|
18651
|
-
"val": new basic_1.
|
|
18652
|
+
"val": new basic_1.CLikeType(),
|
|
18652
18653
|
"add": new basic_1.IntegerType(),
|
|
18653
18654
|
},
|
|
18654
18655
|
optional: {
|
|
@@ -18660,23 +18661,23 @@ BuiltIn.methods = [
|
|
|
18660
18661
|
{
|
|
18661
18662
|
name: "CHARLEN",
|
|
18662
18663
|
mandatory: {
|
|
18663
|
-
"val": new basic_1.
|
|
18664
|
+
"val": new basic_1.CLikeType(),
|
|
18664
18665
|
},
|
|
18665
18666
|
return: new basic_1.IntegerType(),
|
|
18666
18667
|
},
|
|
18667
18668
|
{
|
|
18668
18669
|
name: "CMAX",
|
|
18669
18670
|
mandatory: {
|
|
18670
|
-
"val1": new basic_1.
|
|
18671
|
-
"val2": new basic_1.
|
|
18671
|
+
"val1": new basic_1.CLikeType(),
|
|
18672
|
+
"val2": new basic_1.CLikeType(),
|
|
18672
18673
|
},
|
|
18673
18674
|
optional: {
|
|
18674
|
-
"val3": new basic_1.
|
|
18675
|
-
"val4": new basic_1.
|
|
18676
|
-
"val5": new basic_1.
|
|
18677
|
-
"val6": new basic_1.
|
|
18678
|
-
"val7": new basic_1.
|
|
18679
|
-
"val9": new basic_1.
|
|
18675
|
+
"val3": new basic_1.CLikeType(),
|
|
18676
|
+
"val4": new basic_1.CLikeType(),
|
|
18677
|
+
"val5": new basic_1.CLikeType(),
|
|
18678
|
+
"val6": new basic_1.CLikeType(),
|
|
18679
|
+
"val7": new basic_1.CLikeType(),
|
|
18680
|
+
"val9": new basic_1.CLikeType(),
|
|
18680
18681
|
},
|
|
18681
18682
|
return: new basic_1.StringType(),
|
|
18682
18683
|
version: version_1.Version.v702,
|
|
@@ -18684,16 +18685,16 @@ BuiltIn.methods = [
|
|
|
18684
18685
|
{
|
|
18685
18686
|
name: "CMIN",
|
|
18686
18687
|
mandatory: {
|
|
18687
|
-
"val1": new basic_1.
|
|
18688
|
-
"val2": new basic_1.
|
|
18688
|
+
"val1": new basic_1.CLikeType(),
|
|
18689
|
+
"val2": new basic_1.CLikeType(),
|
|
18689
18690
|
},
|
|
18690
18691
|
optional: {
|
|
18691
|
-
"val3": new basic_1.
|
|
18692
|
-
"val4": new basic_1.
|
|
18693
|
-
"val5": new basic_1.
|
|
18694
|
-
"val6": new basic_1.
|
|
18695
|
-
"val7": new basic_1.
|
|
18696
|
-
"val9": new basic_1.
|
|
18692
|
+
"val3": new basic_1.CLikeType(),
|
|
18693
|
+
"val4": new basic_1.CLikeType(),
|
|
18694
|
+
"val5": new basic_1.CLikeType(),
|
|
18695
|
+
"val6": new basic_1.CLikeType(),
|
|
18696
|
+
"val7": new basic_1.CLikeType(),
|
|
18697
|
+
"val9": new basic_1.CLikeType(),
|
|
18697
18698
|
},
|
|
18698
18699
|
return: new basic_1.StringType(),
|
|
18699
18700
|
version: version_1.Version.v702,
|
|
@@ -18704,7 +18705,7 @@ BuiltIn.methods = [
|
|
|
18704
18705
|
"table": new basic_1.TableType(new basic_1.AnyType(), { withHeader: false, keyType: basic_1.TableKeyType.default }),
|
|
18705
18706
|
},
|
|
18706
18707
|
optional: {
|
|
18707
|
-
"sep": new basic_1.
|
|
18708
|
+
"sep": new basic_1.CLikeType(),
|
|
18708
18709
|
},
|
|
18709
18710
|
return: new basic_1.StringType(),
|
|
18710
18711
|
version: version_1.Version.v702,
|
|
@@ -18712,12 +18713,12 @@ BuiltIn.methods = [
|
|
|
18712
18713
|
{
|
|
18713
18714
|
name: "CONDENSE",
|
|
18714
18715
|
mandatory: {
|
|
18715
|
-
"val": new basic_1.
|
|
18716
|
+
"val": new basic_1.CLikeType(),
|
|
18716
18717
|
},
|
|
18717
18718
|
optional: {
|
|
18718
|
-
"del": new basic_1.
|
|
18719
|
-
"from": new basic_1.
|
|
18720
|
-
"to": new basic_1.
|
|
18719
|
+
"del": new basic_1.CLikeType(),
|
|
18720
|
+
"from": new basic_1.CLikeType(),
|
|
18721
|
+
"to": new basic_1.CLikeType(),
|
|
18721
18722
|
},
|
|
18722
18723
|
return: new basic_1.StringType(),
|
|
18723
18724
|
version: version_1.Version.v702,
|
|
@@ -18725,14 +18726,14 @@ BuiltIn.methods = [
|
|
|
18725
18726
|
{
|
|
18726
18727
|
name: "CONTAINS",
|
|
18727
18728
|
mandatory: {
|
|
18728
|
-
"val": new basic_1.
|
|
18729
|
+
"val": new basic_1.CLikeType(),
|
|
18729
18730
|
},
|
|
18730
18731
|
optional: {
|
|
18731
|
-
"sub": new basic_1.
|
|
18732
|
-
"start": new basic_1.
|
|
18733
|
-
"end": new basic_1.
|
|
18734
|
-
"regex": new basic_1.
|
|
18735
|
-
"pcre": new basic_1.
|
|
18732
|
+
"sub": new basic_1.CLikeType(),
|
|
18733
|
+
"start": new basic_1.CLikeType(),
|
|
18734
|
+
"end": new basic_1.CLikeType(),
|
|
18735
|
+
"regex": new basic_1.CLikeType(),
|
|
18736
|
+
"pcre": new basic_1.CLikeType(),
|
|
18736
18737
|
"case": new basic_1.CharacterType(1),
|
|
18737
18738
|
"off": new basic_1.IntegerType(),
|
|
18738
18739
|
"len": new basic_1.IntegerType(),
|
|
@@ -18745,12 +18746,12 @@ BuiltIn.methods = [
|
|
|
18745
18746
|
{
|
|
18746
18747
|
name: "CONTAINS_ANY_NOT_OF",
|
|
18747
18748
|
mandatory: {
|
|
18748
|
-
"val": new basic_1.
|
|
18749
|
+
"val": new basic_1.CLikeType(),
|
|
18749
18750
|
},
|
|
18750
18751
|
optional: {
|
|
18751
|
-
"sub": new basic_1.
|
|
18752
|
-
"start": new basic_1.
|
|
18753
|
-
"end": new basic_1.
|
|
18752
|
+
"sub": new basic_1.CLikeType(),
|
|
18753
|
+
"start": new basic_1.CLikeType(),
|
|
18754
|
+
"end": new basic_1.CLikeType(),
|
|
18754
18755
|
"off": new basic_1.IntegerType(),
|
|
18755
18756
|
"len": new basic_1.IntegerType(),
|
|
18756
18757
|
"occ": new basic_1.IntegerType(),
|
|
@@ -18761,12 +18762,12 @@ BuiltIn.methods = [
|
|
|
18761
18762
|
{
|
|
18762
18763
|
name: "CONTAINS_ANY_OF",
|
|
18763
18764
|
mandatory: {
|
|
18764
|
-
"val": new basic_1.
|
|
18765
|
+
"val": new basic_1.CLikeType(),
|
|
18765
18766
|
},
|
|
18766
18767
|
optional: {
|
|
18767
|
-
"sub": new basic_1.
|
|
18768
|
-
"start": new basic_1.
|
|
18769
|
-
"end": new basic_1.
|
|
18768
|
+
"sub": new basic_1.CLikeType(),
|
|
18769
|
+
"start": new basic_1.CLikeType(),
|
|
18770
|
+
"end": new basic_1.CLikeType(),
|
|
18770
18771
|
"off": new basic_1.IntegerType(),
|
|
18771
18772
|
"len": new basic_1.IntegerType(),
|
|
18772
18773
|
"occ": new basic_1.IntegerType(),
|
|
@@ -18792,12 +18793,12 @@ BuiltIn.methods = [
|
|
|
18792
18793
|
{
|
|
18793
18794
|
name: "COUNT",
|
|
18794
18795
|
mandatory: {
|
|
18795
|
-
"val": new basic_1.
|
|
18796
|
+
"val": new basic_1.CLikeType(),
|
|
18796
18797
|
},
|
|
18797
18798
|
optional: {
|
|
18798
|
-
"sub": new basic_1.
|
|
18799
|
-
"regex": new basic_1.
|
|
18800
|
-
"pcre": new basic_1.
|
|
18799
|
+
"sub": new basic_1.CLikeType(),
|
|
18800
|
+
"regex": new basic_1.CLikeType(),
|
|
18801
|
+
"pcre": new basic_1.CLikeType(),
|
|
18801
18802
|
"case": new basic_1.CharacterType(1),
|
|
18802
18803
|
"off": new basic_1.IntegerType(),
|
|
18803
18804
|
"len": new basic_1.IntegerType(),
|
|
@@ -18808,12 +18809,12 @@ BuiltIn.methods = [
|
|
|
18808
18809
|
{
|
|
18809
18810
|
name: "COUNT_ANY_NOT_OF",
|
|
18810
18811
|
mandatory: {
|
|
18811
|
-
"val": new basic_1.
|
|
18812
|
+
"val": new basic_1.CLikeType(),
|
|
18812
18813
|
},
|
|
18813
18814
|
optional: {
|
|
18814
|
-
"sub": new basic_1.
|
|
18815
|
-
"regex": new basic_1.
|
|
18816
|
-
"pcre": new basic_1.
|
|
18815
|
+
"sub": new basic_1.CLikeType(),
|
|
18816
|
+
"regex": new basic_1.CLikeType(),
|
|
18817
|
+
"pcre": new basic_1.CLikeType(),
|
|
18817
18818
|
"case": new basic_1.CharacterType(1),
|
|
18818
18819
|
"off": new basic_1.IntegerType(),
|
|
18819
18820
|
"len": new basic_1.IntegerType(),
|
|
@@ -18824,12 +18825,12 @@ BuiltIn.methods = [
|
|
|
18824
18825
|
{
|
|
18825
18826
|
name: "COUNT_ANY_OF",
|
|
18826
18827
|
mandatory: {
|
|
18827
|
-
"val": new basic_1.
|
|
18828
|
+
"val": new basic_1.CLikeType(),
|
|
18828
18829
|
},
|
|
18829
18830
|
optional: {
|
|
18830
|
-
"sub": new basic_1.
|
|
18831
|
-
"regex": new basic_1.
|
|
18832
|
-
"pcre": new basic_1.
|
|
18831
|
+
"sub": new basic_1.CLikeType(),
|
|
18832
|
+
"regex": new basic_1.CLikeType(),
|
|
18833
|
+
"pcre": new basic_1.CLikeType(),
|
|
18833
18834
|
"case": new basic_1.CharacterType(1),
|
|
18834
18835
|
"off": new basic_1.IntegerType(),
|
|
18835
18836
|
"len": new basic_1.IntegerType(),
|
|
@@ -18840,15 +18841,15 @@ BuiltIn.methods = [
|
|
|
18840
18841
|
{
|
|
18841
18842
|
name: "DBMAXLEN",
|
|
18842
18843
|
mandatory: {
|
|
18843
|
-
"val": new basic_1.
|
|
18844
|
+
"val": new basic_1.CLikeType(),
|
|
18844
18845
|
},
|
|
18845
18846
|
return: new basic_1.IntegerType(),
|
|
18846
18847
|
},
|
|
18847
18848
|
{
|
|
18848
18849
|
name: "DISTANCE",
|
|
18849
18850
|
mandatory: {
|
|
18850
|
-
"val1": new basic_1.
|
|
18851
|
-
"val2": new basic_1.
|
|
18851
|
+
"val1": new basic_1.CLikeType(),
|
|
18852
|
+
"val2": new basic_1.CLikeType(),
|
|
18852
18853
|
},
|
|
18853
18854
|
return: new basic_1.IntegerType(),
|
|
18854
18855
|
version: version_1.Version.v702,
|
|
@@ -18856,8 +18857,8 @@ BuiltIn.methods = [
|
|
|
18856
18857
|
{
|
|
18857
18858
|
name: "ESCAPE",
|
|
18858
18859
|
mandatory: {
|
|
18859
|
-
"val": new basic_1.
|
|
18860
|
-
"format": new basic_1.
|
|
18860
|
+
"val": new basic_1.CLikeType(),
|
|
18861
|
+
"format": new basic_1.CLikeType(),
|
|
18861
18862
|
},
|
|
18862
18863
|
return: new basic_1.StringType(),
|
|
18863
18864
|
version: version_1.Version.v702,
|
|
@@ -18872,12 +18873,12 @@ BuiltIn.methods = [
|
|
|
18872
18873
|
{
|
|
18873
18874
|
name: "FIND",
|
|
18874
18875
|
mandatory: {
|
|
18875
|
-
"val": new basic_1.
|
|
18876
|
+
"val": new basic_1.CLikeType(),
|
|
18876
18877
|
},
|
|
18877
18878
|
optional: {
|
|
18878
|
-
"sub": new basic_1.
|
|
18879
|
-
"regex": new basic_1.
|
|
18880
|
-
"pcre": new basic_1.
|
|
18879
|
+
"sub": new basic_1.CLikeType(),
|
|
18880
|
+
"regex": new basic_1.CLikeType(),
|
|
18881
|
+
"pcre": new basic_1.CLikeType(),
|
|
18881
18882
|
"case": new basic_1.CharacterType(1),
|
|
18882
18883
|
"off": new basic_1.IntegerType(),
|
|
18883
18884
|
"len": new basic_1.IntegerType(),
|
|
@@ -18889,10 +18890,10 @@ BuiltIn.methods = [
|
|
|
18889
18890
|
{
|
|
18890
18891
|
name: "FIND_ANY_NOT_OF",
|
|
18891
18892
|
mandatory: {
|
|
18892
|
-
"val": new basic_1.
|
|
18893
|
+
"val": new basic_1.CLikeType(),
|
|
18893
18894
|
},
|
|
18894
18895
|
optional: {
|
|
18895
|
-
"sub": new basic_1.
|
|
18896
|
+
"sub": new basic_1.CLikeType(),
|
|
18896
18897
|
"off": new basic_1.IntegerType(),
|
|
18897
18898
|
"len": new basic_1.IntegerType(),
|
|
18898
18899
|
"occ": new basic_1.IntegerType(),
|
|
@@ -18903,10 +18904,10 @@ BuiltIn.methods = [
|
|
|
18903
18904
|
{
|
|
18904
18905
|
name: "FIND_ANY_OF",
|
|
18905
18906
|
mandatory: {
|
|
18906
|
-
"val": new basic_1.
|
|
18907
|
+
"val": new basic_1.CLikeType(),
|
|
18907
18908
|
},
|
|
18908
18909
|
optional: {
|
|
18909
|
-
"sub": new basic_1.
|
|
18910
|
+
"sub": new basic_1.CLikeType(),
|
|
18910
18911
|
"off": new basic_1.IntegerType(),
|
|
18911
18912
|
"len": new basic_1.IntegerType(),
|
|
18912
18913
|
"occ": new basic_1.IntegerType(),
|
|
@@ -18917,12 +18918,12 @@ BuiltIn.methods = [
|
|
|
18917
18918
|
{
|
|
18918
18919
|
name: "FIND_END",
|
|
18919
18920
|
mandatory: {
|
|
18920
|
-
"val": new basic_1.
|
|
18921
|
+
"val": new basic_1.CLikeType(),
|
|
18921
18922
|
},
|
|
18922
18923
|
optional: {
|
|
18923
|
-
"sub": new basic_1.
|
|
18924
|
-
"regex": new basic_1.
|
|
18925
|
-
"pcre": new basic_1.
|
|
18924
|
+
"sub": new basic_1.CLikeType(),
|
|
18925
|
+
"regex": new basic_1.CLikeType(),
|
|
18926
|
+
"pcre": new basic_1.CLikeType(),
|
|
18926
18927
|
"case": new basic_1.CharacterType(1),
|
|
18927
18928
|
"off": new basic_1.IntegerType(),
|
|
18928
18929
|
"len": new basic_1.IntegerType(),
|
|
@@ -18947,7 +18948,9 @@ BuiltIn.methods = [
|
|
|
18947
18948
|
},
|
|
18948
18949
|
{
|
|
18949
18950
|
name: "FROM_MIXED",
|
|
18950
|
-
mandatory: {
|
|
18951
|
+
mandatory: {
|
|
18952
|
+
"val": new basic_1.CLikeType()
|
|
18953
|
+
},
|
|
18951
18954
|
optional: {
|
|
18952
18955
|
"case": new basic_1.CharacterType(1),
|
|
18953
18956
|
"sep": new basic_1.IntegerType(),
|
|
@@ -18959,8 +18962,8 @@ BuiltIn.methods = [
|
|
|
18959
18962
|
{
|
|
18960
18963
|
name: "INSERT",
|
|
18961
18964
|
mandatory: {
|
|
18962
|
-
"val": new basic_1.
|
|
18963
|
-
"sub": new basic_1.
|
|
18965
|
+
"val": new basic_1.CLikeType(),
|
|
18966
|
+
"sub": new basic_1.CLikeType(),
|
|
18964
18967
|
},
|
|
18965
18968
|
optional: {
|
|
18966
18969
|
"off": new basic_1.IntegerType(),
|
|
@@ -18989,7 +18992,7 @@ BuiltIn.methods = [
|
|
|
18989
18992
|
{
|
|
18990
18993
|
name: "LINE_INDEX",
|
|
18991
18994
|
mandatory: {
|
|
18992
|
-
"val": new basic_1.
|
|
18995
|
+
"val": new basic_1.CLikeType(),
|
|
18993
18996
|
},
|
|
18994
18997
|
return: new basic_1.IntegerType(),
|
|
18995
18998
|
version: version_1.Version.v740sp02,
|
|
@@ -19018,11 +19021,11 @@ BuiltIn.methods = [
|
|
|
19018
19021
|
{
|
|
19019
19022
|
name: "MATCH",
|
|
19020
19023
|
mandatory: {
|
|
19021
|
-
"val": new basic_1.
|
|
19024
|
+
"val": new basic_1.CLikeType(),
|
|
19022
19025
|
}, optional: {
|
|
19023
19026
|
"case": new basic_1.CharacterType(1),
|
|
19024
|
-
"regex": new basic_1.
|
|
19025
|
-
"pcre": new basic_1.
|
|
19027
|
+
"regex": new basic_1.CLikeType(),
|
|
19028
|
+
"pcre": new basic_1.CLikeType(),
|
|
19026
19029
|
"occ": new basic_1.IntegerType(),
|
|
19027
19030
|
},
|
|
19028
19031
|
return: new basic_1.StringType(),
|
|
@@ -19031,12 +19034,12 @@ BuiltIn.methods = [
|
|
|
19031
19034
|
{
|
|
19032
19035
|
name: "MATCHES",
|
|
19033
19036
|
mandatory: {
|
|
19034
|
-
"val": new basic_1.
|
|
19037
|
+
"val": new basic_1.CLikeType(),
|
|
19035
19038
|
},
|
|
19036
19039
|
optional: {
|
|
19037
19040
|
"case": new basic_1.CharacterType(1),
|
|
19038
|
-
"regex": new basic_1.
|
|
19039
|
-
"pcre": new basic_1.
|
|
19041
|
+
"regex": new basic_1.CLikeType(),
|
|
19042
|
+
"pcre": new basic_1.CLikeType(),
|
|
19040
19043
|
"off": new basic_1.IntegerType(),
|
|
19041
19044
|
"len": new basic_1.IntegerType(),
|
|
19042
19045
|
},
|
|
@@ -19047,17 +19050,17 @@ BuiltIn.methods = [
|
|
|
19047
19050
|
{
|
|
19048
19051
|
name: "NMAX",
|
|
19049
19052
|
mandatory: {
|
|
19050
|
-
"val1": new basic_1.
|
|
19051
|
-
"val2": new basic_1.
|
|
19053
|
+
"val1": new basic_1.CLikeType(),
|
|
19054
|
+
"val2": new basic_1.CLikeType(),
|
|
19052
19055
|
},
|
|
19053
19056
|
optional: {
|
|
19054
|
-
"val3": new basic_1.
|
|
19055
|
-
"val4": new basic_1.
|
|
19056
|
-
"val5": new basic_1.
|
|
19057
|
-
"val6": new basic_1.
|
|
19058
|
-
"val7": new basic_1.
|
|
19059
|
-
"val8": new basic_1.
|
|
19060
|
-
"val9": new basic_1.
|
|
19057
|
+
"val3": new basic_1.CLikeType(),
|
|
19058
|
+
"val4": new basic_1.CLikeType(),
|
|
19059
|
+
"val5": new basic_1.CLikeType(),
|
|
19060
|
+
"val6": new basic_1.CLikeType(),
|
|
19061
|
+
"val7": new basic_1.CLikeType(),
|
|
19062
|
+
"val8": new basic_1.CLikeType(),
|
|
19063
|
+
"val9": new basic_1.CLikeType(),
|
|
19061
19064
|
},
|
|
19062
19065
|
return: new basic_1.IntegerType(),
|
|
19063
19066
|
version: version_1.Version.v702,
|
|
@@ -19065,17 +19068,17 @@ BuiltIn.methods = [
|
|
|
19065
19068
|
{
|
|
19066
19069
|
name: "NMIN",
|
|
19067
19070
|
mandatory: {
|
|
19068
|
-
"val1": new basic_1.
|
|
19069
|
-
"val2": new basic_1.
|
|
19071
|
+
"val1": new basic_1.CLikeType(),
|
|
19072
|
+
"val2": new basic_1.CLikeType(),
|
|
19070
19073
|
},
|
|
19071
19074
|
optional: {
|
|
19072
|
-
"val3": new basic_1.
|
|
19073
|
-
"val4": new basic_1.
|
|
19074
|
-
"val5": new basic_1.
|
|
19075
|
-
"val6": new basic_1.
|
|
19076
|
-
"val7": new basic_1.
|
|
19077
|
-
"val8": new basic_1.
|
|
19078
|
-
"val9": new basic_1.
|
|
19075
|
+
"val3": new basic_1.CLikeType(),
|
|
19076
|
+
"val4": new basic_1.CLikeType(),
|
|
19077
|
+
"val5": new basic_1.CLikeType(),
|
|
19078
|
+
"val6": new basic_1.CLikeType(),
|
|
19079
|
+
"val7": new basic_1.CLikeType(),
|
|
19080
|
+
"val8": new basic_1.CLikeType(),
|
|
19081
|
+
"val9": new basic_1.CLikeType(),
|
|
19079
19082
|
},
|
|
19080
19083
|
return: new basic_1.IntegerType(),
|
|
19081
19084
|
version: version_1.Version.v702,
|
|
@@ -19083,14 +19086,14 @@ BuiltIn.methods = [
|
|
|
19083
19086
|
{
|
|
19084
19087
|
name: "NUMOFCHAR",
|
|
19085
19088
|
mandatory: {
|
|
19086
|
-
"val": new basic_1.
|
|
19089
|
+
"val": new basic_1.CLikeType(),
|
|
19087
19090
|
},
|
|
19088
19091
|
return: new basic_1.IntegerType(),
|
|
19089
19092
|
},
|
|
19090
19093
|
{
|
|
19091
19094
|
name: "REPEAT",
|
|
19092
19095
|
mandatory: {
|
|
19093
|
-
"val": new basic_1.
|
|
19096
|
+
"val": new basic_1.CLikeType(),
|
|
19094
19097
|
"occ": new basic_1.IntegerType(),
|
|
19095
19098
|
},
|
|
19096
19099
|
return: new basic_1.StringType(),
|
|
@@ -19099,13 +19102,13 @@ BuiltIn.methods = [
|
|
|
19099
19102
|
{
|
|
19100
19103
|
name: "REPLACE",
|
|
19101
19104
|
mandatory: {
|
|
19102
|
-
"val": new basic_1.
|
|
19103
|
-
"with": new basic_1.
|
|
19105
|
+
"val": new basic_1.CLikeType(),
|
|
19106
|
+
"with": new basic_1.CLikeType(),
|
|
19104
19107
|
},
|
|
19105
19108
|
optional: {
|
|
19106
|
-
"sub": new basic_1.
|
|
19107
|
-
"regex": new basic_1.
|
|
19108
|
-
"pcre": new basic_1.
|
|
19109
|
+
"sub": new basic_1.CLikeType(),
|
|
19110
|
+
"regex": new basic_1.CLikeType(),
|
|
19111
|
+
"pcre": new basic_1.CLikeType(),
|
|
19109
19112
|
"case": new basic_1.CharacterType(1),
|
|
19110
19113
|
"off": new basic_1.IntegerType(),
|
|
19111
19114
|
"len": new basic_1.IntegerType(),
|
|
@@ -19130,7 +19133,7 @@ BuiltIn.methods = [
|
|
|
19130
19133
|
{
|
|
19131
19134
|
name: "REVERSE",
|
|
19132
19135
|
mandatory: {
|
|
19133
|
-
"val": new basic_1.
|
|
19136
|
+
"val": new basic_1.CLikeType(),
|
|
19134
19137
|
},
|
|
19135
19138
|
return: new basic_1.StringType(),
|
|
19136
19139
|
version: version_1.Version.v702,
|
|
@@ -19151,12 +19154,12 @@ BuiltIn.methods = [
|
|
|
19151
19154
|
{
|
|
19152
19155
|
name: "SEGMENT",
|
|
19153
19156
|
mandatory: {
|
|
19154
|
-
"val": new basic_1.
|
|
19157
|
+
"val": new basic_1.CLikeType(),
|
|
19155
19158
|
"index": new basic_1.IntegerType(),
|
|
19156
19159
|
},
|
|
19157
19160
|
optional: {
|
|
19158
|
-
"sep": new basic_1.
|
|
19159
|
-
"space": new basic_1.
|
|
19161
|
+
"sep": new basic_1.CLikeType(),
|
|
19162
|
+
"space": new basic_1.CLikeType(),
|
|
19160
19163
|
},
|
|
19161
19164
|
return: new basic_1.StringType(),
|
|
19162
19165
|
version: version_1.Version.v702,
|
|
@@ -19164,10 +19167,10 @@ BuiltIn.methods = [
|
|
|
19164
19167
|
{
|
|
19165
19168
|
name: "SHIFT_LEFT",
|
|
19166
19169
|
mandatory: {
|
|
19167
|
-
"val": new basic_1.
|
|
19170
|
+
"val": new basic_1.CLikeType(),
|
|
19168
19171
|
},
|
|
19169
19172
|
optional: {
|
|
19170
|
-
"sub": new basic_1.
|
|
19173
|
+
"sub": new basic_1.CLikeType(),
|
|
19171
19174
|
"places": new basic_1.IntegerType(),
|
|
19172
19175
|
"circular": new basic_1.IntegerType(),
|
|
19173
19176
|
},
|
|
@@ -19177,10 +19180,10 @@ BuiltIn.methods = [
|
|
|
19177
19180
|
{
|
|
19178
19181
|
name: "SHIFT_RIGHT",
|
|
19179
19182
|
mandatory: {
|
|
19180
|
-
"val": new basic_1.
|
|
19183
|
+
"val": new basic_1.CLikeType(),
|
|
19181
19184
|
},
|
|
19182
19185
|
optional: {
|
|
19183
|
-
"sub": new basic_1.
|
|
19186
|
+
"sub": new basic_1.CLikeType(),
|
|
19184
19187
|
"places": new basic_1.IntegerType(),
|
|
19185
19188
|
"circular": new basic_1.IntegerType(),
|
|
19186
19189
|
},
|
|
@@ -19240,9 +19243,9 @@ BuiltIn.methods = [
|
|
|
19240
19243
|
"val": new basic_1.CLikeType(),
|
|
19241
19244
|
},
|
|
19242
19245
|
optional: {
|
|
19243
|
-
"sub": new basic_1.
|
|
19244
|
-
"regex": new basic_1.
|
|
19245
|
-
"pcre": new basic_1.
|
|
19246
|
+
"sub": new basic_1.CLikeType(),
|
|
19247
|
+
"regex": new basic_1.CLikeType(),
|
|
19248
|
+
"pcre": new basic_1.CLikeType(),
|
|
19246
19249
|
"case": new basic_1.CharacterType(1),
|
|
19247
19250
|
"len": new basic_1.IntegerType(),
|
|
19248
19251
|
"occ": new basic_1.IntegerType(),
|
|
@@ -19256,9 +19259,9 @@ BuiltIn.methods = [
|
|
|
19256
19259
|
"val": new basic_1.CLikeType(),
|
|
19257
19260
|
},
|
|
19258
19261
|
optional: {
|
|
19259
|
-
"sub": new basic_1.
|
|
19260
|
-
"regex": new basic_1.
|
|
19261
|
-
"pcre": new basic_1.
|
|
19262
|
+
"sub": new basic_1.CLikeType(),
|
|
19263
|
+
"regex": new basic_1.CLikeType(),
|
|
19264
|
+
"pcre": new basic_1.CLikeType(),
|
|
19262
19265
|
"case": new basic_1.CharacterType(1),
|
|
19263
19266
|
"len": new basic_1.IntegerType(),
|
|
19264
19267
|
"occ": new basic_1.IntegerType(),
|
|
@@ -19272,9 +19275,9 @@ BuiltIn.methods = [
|
|
|
19272
19275
|
"val": new basic_1.CLikeType(),
|
|
19273
19276
|
},
|
|
19274
19277
|
optional: {
|
|
19275
|
-
"sub": new basic_1.
|
|
19276
|
-
"regex": new basic_1.
|
|
19277
|
-
"pcre": new basic_1.
|
|
19278
|
+
"sub": new basic_1.CLikeType(),
|
|
19279
|
+
"regex": new basic_1.CLikeType(),
|
|
19280
|
+
"pcre": new basic_1.CLikeType(),
|
|
19278
19281
|
"case": new basic_1.CharacterType(1),
|
|
19279
19282
|
"len": new basic_1.IntegerType(),
|
|
19280
19283
|
"occ": new basic_1.IntegerType(),
|
|
@@ -19288,9 +19291,9 @@ BuiltIn.methods = [
|
|
|
19288
19291
|
"val": new basic_1.CLikeType(),
|
|
19289
19292
|
},
|
|
19290
19293
|
optional: {
|
|
19291
|
-
"sub": new basic_1.
|
|
19292
|
-
"regex": new basic_1.
|
|
19293
|
-
"pcre": new basic_1.
|
|
19294
|
+
"sub": new basic_1.CLikeType(),
|
|
19295
|
+
"regex": new basic_1.CLikeType(),
|
|
19296
|
+
"pcre": new basic_1.CLikeType(),
|
|
19294
19297
|
"case": new basic_1.CharacterType(1),
|
|
19295
19298
|
"len": new basic_1.IntegerType(),
|
|
19296
19299
|
"occ": new basic_1.IntegerType(),
|
|
@@ -19315,7 +19318,7 @@ BuiltIn.methods = [
|
|
|
19315
19318
|
{
|
|
19316
19319
|
name: "TO_LOWER",
|
|
19317
19320
|
mandatory: {
|
|
19318
|
-
"val": new basic_1.
|
|
19321
|
+
"val": new basic_1.CLikeType(),
|
|
19319
19322
|
},
|
|
19320
19323
|
return: new basic_1.StringType(),
|
|
19321
19324
|
version: version_1.Version.v702,
|
|
@@ -19323,7 +19326,7 @@ BuiltIn.methods = [
|
|
|
19323
19326
|
{
|
|
19324
19327
|
name: "TO_MIXED",
|
|
19325
19328
|
mandatory: {
|
|
19326
|
-
"val": new basic_1.
|
|
19329
|
+
"val": new basic_1.CLikeType(),
|
|
19327
19330
|
},
|
|
19328
19331
|
optional: {
|
|
19329
19332
|
"case": new basic_1.CharacterType(1),
|
|
@@ -19335,16 +19338,16 @@ BuiltIn.methods = [
|
|
|
19335
19338
|
},
|
|
19336
19339
|
{
|
|
19337
19340
|
name: "TO_UPPER",
|
|
19338
|
-
mandatory: { "val": new basic_1.
|
|
19341
|
+
mandatory: { "val": new basic_1.CLikeType() },
|
|
19339
19342
|
return: new basic_1.StringType(),
|
|
19340
19343
|
version: version_1.Version.v702,
|
|
19341
19344
|
},
|
|
19342
19345
|
{
|
|
19343
19346
|
name: "TRANSLATE",
|
|
19344
19347
|
mandatory: {
|
|
19345
|
-
"val": new basic_1.
|
|
19346
|
-
"from": new basic_1.
|
|
19347
|
-
"to": new basic_1.
|
|
19348
|
+
"val": new basic_1.CLikeType(),
|
|
19349
|
+
"from": new basic_1.CLikeType(),
|
|
19350
|
+
"to": new basic_1.CLikeType(),
|
|
19348
19351
|
},
|
|
19349
19352
|
return: new basic_1.StringType(),
|
|
19350
19353
|
version: version_1.Version.v702,
|
|
@@ -19387,7 +19390,7 @@ BuiltIn.methods = [
|
|
|
19387
19390
|
{
|
|
19388
19391
|
name: "XSDBOOL",
|
|
19389
19392
|
mandatory: {
|
|
19390
|
-
"val": new basic_1.
|
|
19393
|
+
"val": new basic_1.CLikeType(),
|
|
19391
19394
|
},
|
|
19392
19395
|
return: new basic_1.CharacterType(1),
|
|
19393
19396
|
version: version_1.Version.v740sp08,
|
|
@@ -19738,6 +19741,9 @@ class CurrentScope {
|
|
|
19738
19741
|
getDDICReferences() {
|
|
19739
19742
|
return this.reg.getDDICReferences();
|
|
19740
19743
|
}
|
|
19744
|
+
getMSAGReferences() {
|
|
19745
|
+
return this.reg.getMSAGReferences();
|
|
19746
|
+
}
|
|
19741
19747
|
getParentObj() {
|
|
19742
19748
|
return this.parentObj;
|
|
19743
19749
|
}
|
|
@@ -20604,7 +20610,7 @@ class TypeUtils {
|
|
|
20604
20610
|
return false;
|
|
20605
20611
|
}
|
|
20606
20612
|
isAssignableStrict(source, target) {
|
|
20607
|
-
var _a, _b, _c, _d;
|
|
20613
|
+
var _a, _b, _c, _d, _e;
|
|
20608
20614
|
/*
|
|
20609
20615
|
console.dir(source);
|
|
20610
20616
|
console.dir(target);
|
|
@@ -20622,16 +20628,22 @@ class TypeUtils {
|
|
|
20622
20628
|
}
|
|
20623
20629
|
return false;
|
|
20624
20630
|
}
|
|
20631
|
+
else if (target instanceof basic_1.StringType) {
|
|
20632
|
+
if (((_c = source.getAbstractTypeData()) === null || _c === void 0 ? void 0 : _c.derivedFromConstant) === true) {
|
|
20633
|
+
return true;
|
|
20634
|
+
}
|
|
20635
|
+
return false;
|
|
20636
|
+
}
|
|
20625
20637
|
}
|
|
20626
20638
|
else if (source instanceof basic_1.HexType) {
|
|
20627
20639
|
if (target instanceof basic_1.HexType) {
|
|
20628
|
-
if (((
|
|
20640
|
+
if (((_d = source.getAbstractTypeData()) === null || _d === void 0 ? void 0 : _d.derivedFromConstant) === true) {
|
|
20629
20641
|
return source.getLength() <= target.getLength();
|
|
20630
20642
|
}
|
|
20631
20643
|
return source.getLength() === target.getLength();
|
|
20632
20644
|
}
|
|
20633
20645
|
else if (target instanceof basic_1.IntegerType) {
|
|
20634
|
-
if (((
|
|
20646
|
+
if (((_e = source.getAbstractTypeData()) === null || _e === void 0 ? void 0 : _e.derivedFromConstant) === true) {
|
|
20635
20647
|
return true;
|
|
20636
20648
|
}
|
|
20637
20649
|
return false;
|
|
@@ -23287,9 +23299,26 @@ const Expressions = __webpack_require__(/*! ../../2_statements/expressions */ ".
|
|
|
23287
23299
|
const source_1 = __webpack_require__(/*! ./source */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/source.js");
|
|
23288
23300
|
class MessageSource {
|
|
23289
23301
|
runSyntax(node, scope, filename) {
|
|
23302
|
+
var _a, _b, _c, _d;
|
|
23290
23303
|
for (const f of node.findDirectExpressions(Expressions.Source)) {
|
|
23291
23304
|
new source_1.Source().runSyntax(f, scope, filename);
|
|
23292
23305
|
}
|
|
23306
|
+
if (node.getFirstToken().getStr().toUpperCase() === "ID") {
|
|
23307
|
+
const id = (_a = node.findExpressionAfterToken("ID")) === null || _a === void 0 ? void 0 : _a.concatTokens();
|
|
23308
|
+
const number = (_b = node.findDirectExpression(Expressions.MessageNumber)) === null || _b === void 0 ? void 0 : _b.concatTokens();
|
|
23309
|
+
if ((id === null || id === void 0 ? void 0 : id.startsWith("'")) && number) {
|
|
23310
|
+
const messageClass = id.substring(1, id.length - 1).toUpperCase();
|
|
23311
|
+
scope.getMSAGReferences().addUsing(filename, node.getFirstToken(), messageClass, number);
|
|
23312
|
+
}
|
|
23313
|
+
}
|
|
23314
|
+
else {
|
|
23315
|
+
const typeAndNumber = (_c = node.findDirectExpression(Expressions.MessageTypeAndNumber)) === null || _c === void 0 ? void 0 : _c.concatTokens();
|
|
23316
|
+
const messageNumber = typeAndNumber === null || typeAndNumber === void 0 ? void 0 : typeAndNumber.substring(1);
|
|
23317
|
+
const messageClass = (_d = node.findDirectExpression(Expressions.MessageClass)) === null || _d === void 0 ? void 0 : _d.concatTokens().toUpperCase();
|
|
23318
|
+
if (messageNumber && messageClass) {
|
|
23319
|
+
scope.getMSAGReferences().addUsing(filename, node.getFirstToken(), messageClass, messageNumber);
|
|
23320
|
+
}
|
|
23321
|
+
}
|
|
23293
23322
|
}
|
|
23294
23323
|
}
|
|
23295
23324
|
exports.MessageSource = MessageSource;
|
|
@@ -28680,7 +28709,7 @@ const raise_with_1 = __webpack_require__(/*! ../expressions/raise_with */ "./nod
|
|
|
28680
28709
|
class Raise {
|
|
28681
28710
|
runSyntax(node, scope, filename) {
|
|
28682
28711
|
// todo
|
|
28683
|
-
var _a;
|
|
28712
|
+
var _a, _b, _c;
|
|
28684
28713
|
const classTok = (_a = node.findDirectExpression(Expressions.ClassName)) === null || _a === void 0 ? void 0 : _a.getFirstToken();
|
|
28685
28714
|
const classNam = classTok === null || classTok === void 0 ? void 0 : classTok.getStr();
|
|
28686
28715
|
if (classNam) {
|
|
@@ -28729,6 +28758,12 @@ class Raise {
|
|
|
28729
28758
|
for (const s of node.findDirectExpressions(Expressions.MessageSource)) {
|
|
28730
28759
|
new message_source_1.MessageSource().runSyntax(s, scope, filename);
|
|
28731
28760
|
}
|
|
28761
|
+
const id = (_b = node.findExpressionAfterToken("ID")) === null || _b === void 0 ? void 0 : _b.concatTokens();
|
|
28762
|
+
const number = (_c = node.findDirectExpression(Expressions.MessageNumber)) === null || _c === void 0 ? void 0 : _c.concatTokens();
|
|
28763
|
+
if ((id === null || id === void 0 ? void 0 : id.startsWith("'")) && number) {
|
|
28764
|
+
const messageClass = id.substring(1, id.length - 1).toUpperCase();
|
|
28765
|
+
scope.getMSAGReferences().addUsing(filename, node.getFirstToken(), messageClass, number);
|
|
28766
|
+
}
|
|
28732
28767
|
}
|
|
28733
28768
|
}
|
|
28734
28769
|
exports.Raise = Raise;
|
|
@@ -29772,7 +29807,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
29772
29807
|
exports.Tables = void 0;
|
|
29773
29808
|
const Expressions = __webpack_require__(/*! ../../2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
|
|
29774
29809
|
const _typed_identifier_1 = __webpack_require__(/*! ../../types/_typed_identifier */ "./node_modules/@abaplint/core/build/src/abap/types/_typed_identifier.js");
|
|
29775
|
-
const
|
|
29810
|
+
const unknown_type_1 = __webpack_require__(/*! ../../types/basic/unknown_type */ "./node_modules/@abaplint/core/build/src/abap/types/basic/unknown_type.js");
|
|
29776
29811
|
class Tables {
|
|
29777
29812
|
runSyntax(node, scope, filename) {
|
|
29778
29813
|
var _a, _b;
|
|
@@ -29784,13 +29819,15 @@ class Tables {
|
|
|
29784
29819
|
if (name.startsWith("*")) {
|
|
29785
29820
|
name = name.substr(1);
|
|
29786
29821
|
}
|
|
29822
|
+
// lookupTableOrView will also give Unknown and Void
|
|
29787
29823
|
const found = (_b = scope.getDDIC()) === null || _b === void 0 ? void 0 : _b.lookupTableOrView(name);
|
|
29788
29824
|
if (found) {
|
|
29789
29825
|
scope.getDDICReferences().addUsing(scope.getParentObj(), { object: found.object, filename: filename, token: nameToken });
|
|
29790
29826
|
scope.addIdentifier(new _typed_identifier_1.TypedIdentifier(nameToken, filename, found.type));
|
|
29791
29827
|
return;
|
|
29792
29828
|
}
|
|
29793
|
-
|
|
29829
|
+
// this should never happen,
|
|
29830
|
+
scope.addIdentifier(new _typed_identifier_1.TypedIdentifier(nameToken, filename, new unknown_type_1.UnknownType("Tables, fallback")));
|
|
29794
29831
|
}
|
|
29795
29832
|
}
|
|
29796
29833
|
exports.Tables = Tables;
|
|
@@ -30996,6 +31033,7 @@ class SyntaxLogic {
|
|
|
30996
31033
|
}
|
|
30997
31034
|
this.issues = [];
|
|
30998
31035
|
this.reg.getDDICReferences().clear(this.object);
|
|
31036
|
+
this.reg.getMSAGReferences().clear(this.object);
|
|
30999
31037
|
if (this.object instanceof objects_1.Program && this.object.isInclude()) {
|
|
31000
31038
|
// todo, show some kind of error?
|
|
31001
31039
|
return { issues: [], spaghetti: this.scope.pop(new position_1.Position(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER)) };
|
|
@@ -35030,21 +35068,21 @@ exports.InterfaceDefinition = InterfaceDefinition;
|
|
|
35030
35068
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
35031
35069
|
exports.Message = void 0;
|
|
35032
35070
|
class Message {
|
|
35033
|
-
constructor(
|
|
35034
|
-
this.
|
|
35035
|
-
if (this.
|
|
35036
|
-
this.
|
|
35071
|
+
constructor(number, message) {
|
|
35072
|
+
this.number = number;
|
|
35073
|
+
if (this.number === undefined) {
|
|
35074
|
+
this.number = "";
|
|
35037
35075
|
}
|
|
35038
|
-
this.
|
|
35039
|
-
if (this.
|
|
35040
|
-
this.
|
|
35076
|
+
this.message = message;
|
|
35077
|
+
if (this.message === undefined) {
|
|
35078
|
+
this.message = "";
|
|
35041
35079
|
}
|
|
35042
35080
|
}
|
|
35043
35081
|
getNumber() {
|
|
35044
|
-
return this.
|
|
35082
|
+
return this.number;
|
|
35045
35083
|
}
|
|
35046
35084
|
getMessage() {
|
|
35047
|
-
return this.
|
|
35085
|
+
return this.message;
|
|
35048
35086
|
}
|
|
35049
35087
|
getPlaceholderCount() {
|
|
35050
35088
|
return (this.getMessage().match(/&/g) || []).length;
|
|
@@ -37359,10 +37397,11 @@ class DDICReferences {
|
|
|
37359
37397
|
}
|
|
37360
37398
|
}
|
|
37361
37399
|
}
|
|
37362
|
-
|
|
37363
|
-
const
|
|
37364
|
-
|
|
37365
|
-
|
|
37400
|
+
// remove from name + type index
|
|
37401
|
+
const name = obj.getName().toUpperCase();
|
|
37402
|
+
const type = obj.getType();
|
|
37403
|
+
if ((_b = this.nameTypeIndex[name]) === null || _b === void 0 ? void 0 : _b[type]) {
|
|
37404
|
+
this.nameTypeIndex[name][type] = [];
|
|
37366
37405
|
}
|
|
37367
37406
|
}
|
|
37368
37407
|
listByFilename(filename, line) {
|
|
@@ -38435,21 +38474,27 @@ class LSPLookup {
|
|
|
38435
38474
|
const hover = "Method Definition \"" + method.getName() + "\"";
|
|
38436
38475
|
return { hover, definition: found, definitionId: method, scope: bottomScope };
|
|
38437
38476
|
}
|
|
38477
|
+
let hoverValue = "";
|
|
38478
|
+
const ddicRefs = reg.getDDICReferences().listByFilename(cursor.identifier.getFilename(), cursor.identifier.getStart().getRow());
|
|
38479
|
+
for (const d of ddicRefs) {
|
|
38480
|
+
if (d.object && d.token && d.token.getStart().equals(cursor.identifier.getStart())) {
|
|
38481
|
+
hoverValue += `DDIC: ${d.object.getType()} ${d.object.getName()}`;
|
|
38482
|
+
}
|
|
38483
|
+
}
|
|
38438
38484
|
const variable = bottomScope.findVariable(cursor.token.getStr());
|
|
38439
38485
|
if (variable !== undefined && variable.getStart().equals(cursor.token.getStart())) {
|
|
38440
38486
|
const hover = "Variable Definition\n\n" + this.dumpType(variable);
|
|
38487
|
+
if (hoverValue !== "") {
|
|
38488
|
+
hoverValue = hover + "\n_________________\n" + hoverValue;
|
|
38489
|
+
}
|
|
38490
|
+
else {
|
|
38491
|
+
hoverValue = hover;
|
|
38492
|
+
}
|
|
38441
38493
|
let location = undefined;
|
|
38442
38494
|
if (variable.getMeta().includes("built-in" /* IdentifierMeta.BuiltIn */) === false) {
|
|
38443
38495
|
location = _lsp_utils_1.LSPUtils.identiferToLocation(variable);
|
|
38444
38496
|
}
|
|
38445
|
-
return { hover, definition: location, implementation: location, definitionId: variable, scope: bottomScope };
|
|
38446
|
-
}
|
|
38447
|
-
let hoverValue = "";
|
|
38448
|
-
const ddicRefs = reg.getDDICReferences().listByFilename(cursor.identifier.getFilename(), cursor.identifier.getStart().getRow());
|
|
38449
|
-
for (const d of ddicRefs) {
|
|
38450
|
-
if (d.object && d.token && d.token.getStart().equals(cursor.identifier.getStart())) {
|
|
38451
|
-
hoverValue += `DDIC: ${d.object.getType()} ${d.object.getName()}`;
|
|
38452
|
-
}
|
|
38497
|
+
return { hover: hoverValue, definition: location, implementation: location, definitionId: variable, scope: bottomScope };
|
|
38453
38498
|
}
|
|
38454
38499
|
const refs = this.searchReferences(bottomScope, cursor.token);
|
|
38455
38500
|
if (refs.length > 0) {
|
|
@@ -38861,6 +38906,53 @@ exports.CodeActions = CodeActions;
|
|
|
38861
38906
|
|
|
38862
38907
|
/***/ }),
|
|
38863
38908
|
|
|
38909
|
+
/***/ "./node_modules/@abaplint/core/build/src/lsp/code_lens.js":
|
|
38910
|
+
/*!****************************************************************!*\
|
|
38911
|
+
!*** ./node_modules/@abaplint/core/build/src/lsp/code_lens.js ***!
|
|
38912
|
+
\****************************************************************/
|
|
38913
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
38914
|
+
|
|
38915
|
+
"use strict";
|
|
38916
|
+
|
|
38917
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
38918
|
+
exports.CodeLens = void 0;
|
|
38919
|
+
const LServer = __webpack_require__(/*! vscode-languageserver-types */ "./node_modules/vscode-languageserver-types/lib/esm/main.js");
|
|
38920
|
+
const _lsp_utils_1 = __webpack_require__(/*! ./_lsp_utils */ "./node_modules/@abaplint/core/build/src/lsp/_lsp_utils.js");
|
|
38921
|
+
const syntax_1 = __webpack_require__(/*! ../abap/5_syntax/syntax */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/syntax.js");
|
|
38922
|
+
const _abap_object_1 = __webpack_require__(/*! ../objects/_abap_object */ "./node_modules/@abaplint/core/build/src/objects/_abap_object.js");
|
|
38923
|
+
class CodeLens {
|
|
38924
|
+
constructor(reg) {
|
|
38925
|
+
this.reg = reg;
|
|
38926
|
+
}
|
|
38927
|
+
list(textDocument) {
|
|
38928
|
+
var _a;
|
|
38929
|
+
const file = _lsp_utils_1.LSPUtils.getABAPFile(this.reg, textDocument.uri);
|
|
38930
|
+
if (file === undefined) {
|
|
38931
|
+
return [];
|
|
38932
|
+
}
|
|
38933
|
+
const obj = this.reg.findObjectForFile(file);
|
|
38934
|
+
if (obj === undefined || !(obj instanceof _abap_object_1.ABAPObject)) {
|
|
38935
|
+
return [];
|
|
38936
|
+
}
|
|
38937
|
+
new syntax_1.SyntaxLogic(this.reg, obj).run();
|
|
38938
|
+
const ret = [];
|
|
38939
|
+
const list = this.reg.getMSAGReferences().listByFilename(file.getFilename());
|
|
38940
|
+
for (const l of list) {
|
|
38941
|
+
const msag = this.reg.getObject("MSAG", l.messageClass);
|
|
38942
|
+
if (msag === undefined) {
|
|
38943
|
+
continue;
|
|
38944
|
+
}
|
|
38945
|
+
const text = (_a = msag.getByNumber(l.number)) === null || _a === void 0 ? void 0 : _a.getMessage();
|
|
38946
|
+
ret.push(LServer.CodeLens.create(_lsp_utils_1.LSPUtils.tokenToRange(l.token), text));
|
|
38947
|
+
}
|
|
38948
|
+
return ret;
|
|
38949
|
+
}
|
|
38950
|
+
}
|
|
38951
|
+
exports.CodeLens = CodeLens;
|
|
38952
|
+
//# sourceMappingURL=code_lens.js.map
|
|
38953
|
+
|
|
38954
|
+
/***/ }),
|
|
38955
|
+
|
|
38864
38956
|
/***/ "./node_modules/@abaplint/core/build/src/lsp/definition.js":
|
|
38865
38957
|
/*!*****************************************************************!*\
|
|
38866
38958
|
!*** ./node_modules/@abaplint/core/build/src/lsp/definition.js ***!
|
|
@@ -39558,6 +39650,7 @@ const references_1 = __webpack_require__(/*! ./references */ "./node_modules/@ab
|
|
|
39558
39650
|
const implementation_1 = __webpack_require__(/*! ./implementation */ "./node_modules/@abaplint/core/build/src/lsp/implementation.js");
|
|
39559
39651
|
const semantic_1 = __webpack_require__(/*! ./semantic */ "./node_modules/@abaplint/core/build/src/lsp/semantic.js");
|
|
39560
39652
|
const statement_flow_1 = __webpack_require__(/*! ../abap/flow/statement_flow */ "./node_modules/@abaplint/core/build/src/abap/flow/statement_flow.js");
|
|
39653
|
+
const code_lens_1 = __webpack_require__(/*! ./code_lens */ "./node_modules/@abaplint/core/build/src/lsp/code_lens.js");
|
|
39561
39654
|
// note Ranges are zero based in LSP,
|
|
39562
39655
|
// https://github.com/microsoft/language-server-protocol/blob/main/versions/protocol-2-x.md#range
|
|
39563
39656
|
// but 1 based in abaplint
|
|
@@ -39638,6 +39731,10 @@ class LanguageServer {
|
|
|
39638
39731
|
semanticTokensRange(range) {
|
|
39639
39732
|
return new semantic_1.SemanticHighlighting(this.reg).semanticTokensRange(range);
|
|
39640
39733
|
}
|
|
39734
|
+
// https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocument_codeLens
|
|
39735
|
+
codeLens(textDocument) {
|
|
39736
|
+
return new code_lens_1.CodeLens(this.reg).list(textDocument);
|
|
39737
|
+
}
|
|
39641
39738
|
////////////////////////////////////////
|
|
39642
39739
|
// ______ _
|
|
39643
39740
|
// | ____| | |
|
|
@@ -40121,6 +40218,65 @@ exports.Symbols = Symbols;
|
|
|
40121
40218
|
|
|
40122
40219
|
/***/ }),
|
|
40123
40220
|
|
|
40221
|
+
/***/ "./node_modules/@abaplint/core/build/src/msag_references.js":
|
|
40222
|
+
/*!******************************************************************!*\
|
|
40223
|
+
!*** ./node_modules/@abaplint/core/build/src/msag_references.js ***!
|
|
40224
|
+
\******************************************************************/
|
|
40225
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
40226
|
+
|
|
40227
|
+
"use strict";
|
|
40228
|
+
|
|
40229
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
40230
|
+
exports.MSAGReferences = void 0;
|
|
40231
|
+
class MSAGReferences {
|
|
40232
|
+
constructor() {
|
|
40233
|
+
this.nameNumberIndex = {};
|
|
40234
|
+
this.filenameIndex = {};
|
|
40235
|
+
}
|
|
40236
|
+
addUsing(filename, token, messageClass, number) {
|
|
40237
|
+
if (this.filenameIndex[filename] === undefined) {
|
|
40238
|
+
this.filenameIndex[filename] = [];
|
|
40239
|
+
}
|
|
40240
|
+
this.filenameIndex[filename].push({
|
|
40241
|
+
token: token,
|
|
40242
|
+
messageClass: messageClass,
|
|
40243
|
+
number: number,
|
|
40244
|
+
});
|
|
40245
|
+
if (this.nameNumberIndex[messageClass] === undefined) {
|
|
40246
|
+
this.nameNumberIndex[messageClass] = {};
|
|
40247
|
+
}
|
|
40248
|
+
if (this.nameNumberIndex[messageClass][number] === undefined) {
|
|
40249
|
+
this.nameNumberIndex[messageClass][number] = [];
|
|
40250
|
+
}
|
|
40251
|
+
this.nameNumberIndex[messageClass][number].push({
|
|
40252
|
+
filename: filename,
|
|
40253
|
+
token: token,
|
|
40254
|
+
});
|
|
40255
|
+
}
|
|
40256
|
+
clear(obj) {
|
|
40257
|
+
for (const file of obj.getFiles()) {
|
|
40258
|
+
const filename = file.getFilename();
|
|
40259
|
+
for (const fIndex of this.filenameIndex[filename] || []) {
|
|
40260
|
+
// this should be okay for performance, each message should be referenced less than 10 times typically
|
|
40261
|
+
this.nameNumberIndex[fIndex.messageClass][fIndex.number] =
|
|
40262
|
+
this.nameNumberIndex[fIndex.messageClass][fIndex.number].filter(i => i.filename !== filename);
|
|
40263
|
+
}
|
|
40264
|
+
delete this.filenameIndex[filename];
|
|
40265
|
+
}
|
|
40266
|
+
}
|
|
40267
|
+
listByFilename(filename) {
|
|
40268
|
+
return this.filenameIndex[filename] || [];
|
|
40269
|
+
}
|
|
40270
|
+
listByMessage(messageClass, number) {
|
|
40271
|
+
var _a;
|
|
40272
|
+
return ((_a = this.nameNumberIndex[messageClass]) === null || _a === void 0 ? void 0 : _a[number]) || [];
|
|
40273
|
+
}
|
|
40274
|
+
}
|
|
40275
|
+
exports.MSAGReferences = MSAGReferences;
|
|
40276
|
+
//# sourceMappingURL=msag_references.js.map
|
|
40277
|
+
|
|
40278
|
+
/***/ }),
|
|
40279
|
+
|
|
40124
40280
|
/***/ "./node_modules/@abaplint/core/build/src/objects/_abap_object.js":
|
|
40125
40281
|
/*!***********************************************************************!*\
|
|
40126
40282
|
!*** ./node_modules/@abaplint/core/build/src/objects/_abap_object.js ***!
|
|
@@ -43634,6 +43790,7 @@ class MessageClass extends _abstract_object_1.AbstractObject {
|
|
|
43634
43790
|
return msg ? msg : [];
|
|
43635
43791
|
}
|
|
43636
43792
|
getByNumber(num) {
|
|
43793
|
+
// todo, optimize performance,
|
|
43637
43794
|
for (const message of this.getMessages()) {
|
|
43638
43795
|
if (message.getNumber() === num) {
|
|
43639
43796
|
return message;
|
|
@@ -44037,10 +44194,6 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
44037
44194
|
exports.Program = void 0;
|
|
44038
44195
|
const _abap_object_1 = __webpack_require__(/*! ./_abap_object */ "./node_modules/@abaplint/core/build/src/objects/_abap_object.js");
|
|
44039
44196
|
class Program extends _abap_object_1.ABAPObject {
|
|
44040
|
-
constructor() {
|
|
44041
|
-
super(...arguments);
|
|
44042
|
-
this.isIncludeValue = undefined;
|
|
44043
|
-
}
|
|
44044
44197
|
getType() {
|
|
44045
44198
|
return "PROG";
|
|
44046
44199
|
}
|
|
@@ -44062,15 +44215,25 @@ class Program extends _abap_object_1.ABAPObject {
|
|
|
44062
44215
|
};
|
|
44063
44216
|
}
|
|
44064
44217
|
setDirty() {
|
|
44065
|
-
this.
|
|
44218
|
+
this.parsedXML = undefined;
|
|
44066
44219
|
super.setDirty();
|
|
44067
44220
|
}
|
|
44068
44221
|
isInclude() {
|
|
44069
|
-
|
|
44222
|
+
this.parseXML();
|
|
44223
|
+
return this.parsedXML.isInclude;
|
|
44224
|
+
}
|
|
44225
|
+
isModulePool() {
|
|
44226
|
+
this.parseXML();
|
|
44227
|
+
return this.parsedXML.isModulePool;
|
|
44228
|
+
}
|
|
44229
|
+
parseXML() {
|
|
44230
|
+
if (this.parsedXML === undefined) {
|
|
44070
44231
|
const file = this.getXMLFile();
|
|
44071
|
-
this.
|
|
44232
|
+
this.parsedXML = {
|
|
44233
|
+
isInclude: file ? file.getRaw().includes("<SUBC>I</SUBC>") : false,
|
|
44234
|
+
isModulePool: file ? file.getRaw().includes("<SUBC>M</SUBC>") : false,
|
|
44235
|
+
};
|
|
44072
44236
|
}
|
|
44073
|
-
return this.isIncludeValue;
|
|
44074
44237
|
}
|
|
44075
44238
|
}
|
|
44076
44239
|
exports.Program = Program;
|
|
@@ -46589,6 +46752,7 @@ const find_global_definitions_1 = __webpack_require__(/*! ./abap/5_syntax/global
|
|
|
46589
46752
|
const excludeHelper_1 = __webpack_require__(/*! ./utils/excludeHelper */ "./node_modules/@abaplint/core/build/src/utils/excludeHelper.js");
|
|
46590
46753
|
const ddic_references_1 = __webpack_require__(/*! ./ddic_references */ "./node_modules/@abaplint/core/build/src/ddic_references.js");
|
|
46591
46754
|
const rules_runner_1 = __webpack_require__(/*! ./rules_runner */ "./node_modules/@abaplint/core/build/src/rules_runner.js");
|
|
46755
|
+
const msag_references_1 = __webpack_require__(/*! ./msag_references */ "./node_modules/@abaplint/core/build/src/msag_references.js");
|
|
46592
46756
|
// todo, this should really be an instance in case there are multiple Registry'ies
|
|
46593
46757
|
class ParsingPerformance {
|
|
46594
46758
|
static clear() {
|
|
@@ -46641,14 +46805,18 @@ class Registry {
|
|
|
46641
46805
|
this.objectsByType = {};
|
|
46642
46806
|
this.dependencies = {};
|
|
46643
46807
|
this.conf = conf ? conf : config_1.Config.getDefault();
|
|
46644
|
-
this.
|
|
46808
|
+
this.ddicReferences = new ddic_references_1.DDICReferences();
|
|
46809
|
+
this.msagReferences = new msag_references_1.MSAGReferences();
|
|
46645
46810
|
}
|
|
46646
46811
|
static abaplintVersion() {
|
|
46647
46812
|
// magic, see build script "version.sh"
|
|
46648
|
-
return "2.
|
|
46813
|
+
return "2.100.2";
|
|
46649
46814
|
}
|
|
46650
46815
|
getDDICReferences() {
|
|
46651
|
-
return this.
|
|
46816
|
+
return this.ddicReferences;
|
|
46817
|
+
}
|
|
46818
|
+
getMSAGReferences() {
|
|
46819
|
+
return this.msagReferences;
|
|
46652
46820
|
}
|
|
46653
46821
|
*getObjects() {
|
|
46654
46822
|
for (const name in this.objects) {
|
|
@@ -46736,7 +46904,8 @@ class Registry {
|
|
|
46736
46904
|
const obj = this.find(file.getObjectName(), file.getObjectType());
|
|
46737
46905
|
obj.removeFile(file);
|
|
46738
46906
|
if (obj.getFiles().length === 0) {
|
|
46739
|
-
this.
|
|
46907
|
+
this.ddicReferences.clear(obj);
|
|
46908
|
+
this.msagReferences.clear(obj);
|
|
46740
46909
|
this.removeObject(obj);
|
|
46741
46910
|
}
|
|
46742
46911
|
return this;
|
|
@@ -53942,6 +54111,88 @@ exports.Downport = Downport;
|
|
|
53942
54111
|
|
|
53943
54112
|
/***/ }),
|
|
53944
54113
|
|
|
54114
|
+
/***/ "./node_modules/@abaplint/core/build/src/rules/easy_to_find_messages.js":
|
|
54115
|
+
/*!******************************************************************************!*\
|
|
54116
|
+
!*** ./node_modules/@abaplint/core/build/src/rules/easy_to_find_messages.js ***!
|
|
54117
|
+
\******************************************************************************/
|
|
54118
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
54119
|
+
|
|
54120
|
+
"use strict";
|
|
54121
|
+
|
|
54122
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
54123
|
+
exports.EasyToFindMessages = exports.EasyToFindMessagesConf = void 0;
|
|
54124
|
+
const issue_1 = __webpack_require__(/*! ../issue */ "./node_modules/@abaplint/core/build/src/issue.js");
|
|
54125
|
+
const _irule_1 = __webpack_require__(/*! ./_irule */ "./node_modules/@abaplint/core/build/src/rules/_irule.js");
|
|
54126
|
+
const _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ "./node_modules/@abaplint/core/build/src/rules/_basic_rule_config.js");
|
|
54127
|
+
const position_1 = __webpack_require__(/*! ../position */ "./node_modules/@abaplint/core/build/src/position.js");
|
|
54128
|
+
const syntax_1 = __webpack_require__(/*! ../abap/5_syntax/syntax */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/syntax.js");
|
|
54129
|
+
const _abap_object_1 = __webpack_require__(/*! ../objects/_abap_object */ "./node_modules/@abaplint/core/build/src/objects/_abap_object.js");
|
|
54130
|
+
class EasyToFindMessagesConf extends _basic_rule_config_1.BasicRuleConfig {
|
|
54131
|
+
}
|
|
54132
|
+
exports.EasyToFindMessagesConf = EasyToFindMessagesConf;
|
|
54133
|
+
class EasyToFindMessages {
|
|
54134
|
+
constructor() {
|
|
54135
|
+
this.conf = new EasyToFindMessagesConf();
|
|
54136
|
+
}
|
|
54137
|
+
getMetadata() {
|
|
54138
|
+
return {
|
|
54139
|
+
key: "easy_to_find_messages",
|
|
54140
|
+
title: "Easy to find messages",
|
|
54141
|
+
shortDescription: `Make messages easy to find`,
|
|
54142
|
+
extendedInformation: `All messages must be statically referenced exactly once
|
|
54143
|
+
|
|
54144
|
+
Only MESSAGE and RAISE statments are counted as static references
|
|
54145
|
+
|
|
54146
|
+
Also see rule "message_exists"
|
|
54147
|
+
|
|
54148
|
+
https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md#make-messages-easy-to-find`,
|
|
54149
|
+
tags: [_irule_1.RuleTag.Styleguide],
|
|
54150
|
+
};
|
|
54151
|
+
}
|
|
54152
|
+
getConfig() {
|
|
54153
|
+
return this.conf;
|
|
54154
|
+
}
|
|
54155
|
+
setConfig(conf) {
|
|
54156
|
+
this.conf = conf;
|
|
54157
|
+
}
|
|
54158
|
+
initialize(reg) {
|
|
54159
|
+
this.msagReferences = reg.getMSAGReferences();
|
|
54160
|
+
// the SyntaxLogic builds the references
|
|
54161
|
+
for (const obj of reg.getObjects()) {
|
|
54162
|
+
if (obj instanceof _abap_object_1.ABAPObject) {
|
|
54163
|
+
new syntax_1.SyntaxLogic(reg, obj).run();
|
|
54164
|
+
}
|
|
54165
|
+
}
|
|
54166
|
+
return this;
|
|
54167
|
+
}
|
|
54168
|
+
run(object) {
|
|
54169
|
+
const issues = [];
|
|
54170
|
+
if (object.getType() === "MSAG") {
|
|
54171
|
+
const msag = object;
|
|
54172
|
+
for (const message of msag.getMessages()) {
|
|
54173
|
+
const where = this.msagReferences.listByMessage(msag.getName().toUpperCase(), message.getNumber());
|
|
54174
|
+
if (where.length === 0) {
|
|
54175
|
+
const text = `Message ${message.getNumber()} not statically referenced`;
|
|
54176
|
+
const position = new position_1.Position(1, 1);
|
|
54177
|
+
const issue = issue_1.Issue.atPosition(object.getFiles()[0], position, text, this.getMetadata().key, this.conf.severity);
|
|
54178
|
+
issues.push(issue);
|
|
54179
|
+
}
|
|
54180
|
+
else if (where.length >= 2) {
|
|
54181
|
+
const text = `Message ${message.getNumber()} referenced more than once`;
|
|
54182
|
+
const position = new position_1.Position(1, 1);
|
|
54183
|
+
const issue = issue_1.Issue.atPosition(object.getFiles()[0], position, text, this.getMetadata().key, this.conf.severity);
|
|
54184
|
+
issues.push(issue);
|
|
54185
|
+
}
|
|
54186
|
+
}
|
|
54187
|
+
}
|
|
54188
|
+
return issues;
|
|
54189
|
+
}
|
|
54190
|
+
}
|
|
54191
|
+
exports.EasyToFindMessages = EasyToFindMessages;
|
|
54192
|
+
//# sourceMappingURL=easy_to_find_messages.js.map
|
|
54193
|
+
|
|
54194
|
+
/***/ }),
|
|
54195
|
+
|
|
53945
54196
|
/***/ "./node_modules/@abaplint/core/build/src/rules/empty_line_in_statement.js":
|
|
53946
54197
|
/*!********************************************************************************!*\
|
|
53947
54198
|
!*** ./node_modules/@abaplint/core/build/src/rules/empty_line_in_statement.js ***!
|
|
@@ -56550,6 +56801,7 @@ __exportStar(__webpack_require__(/*! ./definitions_top */ "./node_modules/@abapl
|
|
|
56550
56801
|
__exportStar(__webpack_require__(/*! ./description_empty */ "./node_modules/@abaplint/core/build/src/rules/description_empty.js"), exports);
|
|
56551
56802
|
__exportStar(__webpack_require__(/*! ./double_space */ "./node_modules/@abaplint/core/build/src/rules/double_space.js"), exports);
|
|
56552
56803
|
__exportStar(__webpack_require__(/*! ./downport */ "./node_modules/@abaplint/core/build/src/rules/downport.js"), exports);
|
|
56804
|
+
__exportStar(__webpack_require__(/*! ./easy_to_find_messages */ "./node_modules/@abaplint/core/build/src/rules/easy_to_find_messages.js"), exports);
|
|
56553
56805
|
__exportStar(__webpack_require__(/*! ./empty_line_in_statement */ "./node_modules/@abaplint/core/build/src/rules/empty_line_in_statement.js"), exports);
|
|
56554
56806
|
__exportStar(__webpack_require__(/*! ./empty_statement */ "./node_modules/@abaplint/core/build/src/rules/empty_statement.js"), exports);
|
|
56555
56807
|
__exportStar(__webpack_require__(/*! ./empty_structure */ "./node_modules/@abaplint/core/build/src/rules/empty_structure.js"), exports);
|
|
@@ -57958,7 +58210,9 @@ class MainFileContents {
|
|
|
57958
58210
|
if (stru === undefined) {
|
|
57959
58211
|
return [];
|
|
57960
58212
|
}
|
|
57961
|
-
if (obj instanceof Objects.Program
|
|
58213
|
+
if (obj instanceof Objects.Program
|
|
58214
|
+
&& obj.isInclude() === false
|
|
58215
|
+
&& obj.isModulePool() === false) {
|
|
57962
58216
|
let count = 0;
|
|
57963
58217
|
let first = main.getStatements()[count];
|
|
57964
58218
|
while (first !== undefined && first.get() instanceof _statement_1.Comment) {
|
|
@@ -59019,6 +59273,7 @@ class MSAGConsistency {
|
|
|
59019
59273
|
key: "msag_consistency",
|
|
59020
59274
|
title: "MSAG consistency check",
|
|
59021
59275
|
shortDescription: `Checks the validity of messages in message classes`,
|
|
59276
|
+
extendedInformation: `Message numbers must be 3 digits, and message text must not be empty`,
|
|
59022
59277
|
};
|
|
59023
59278
|
}
|
|
59024
59279
|
getDescription(reason) {
|
|
@@ -62630,6 +62885,10 @@ If the target is a sorted/hashed table, no issue is reported`,
|
|
|
62630
62885
|
if (this.isTargetSortedOrHashed(s, spaghetti, file)) {
|
|
62631
62886
|
continue;
|
|
62632
62887
|
}
|
|
62888
|
+
else if (s.findFirstExpression(Expressions.SQLJoin) && s.findFirstExpression(Expressions.SQLForAllEntries)) {
|
|
62889
|
+
// see https://github.com/abaplint/abaplint/issues/2957
|
|
62890
|
+
continue;
|
|
62891
|
+
}
|
|
62633
62892
|
issues.push(issue_1.Issue.atStatement(file, s, "Add ORDER BY", this.getMetadata().key, this.conf.severity));
|
|
62634
62893
|
}
|
|
62635
62894
|
}
|
|
@@ -64013,7 +64272,6 @@ Activates from v750 and up`,
|
|
|
64013
64272
|
const message = "INTO/APPENDING must be last in strict SQL";
|
|
64014
64273
|
const issue = issue_1.Issue.atToken(file, s.getFirstToken(), message, this.getMetadata().key, this.conf.severity, fix);
|
|
64015
64274
|
issues.push(issue);
|
|
64016
|
-
break;
|
|
64017
64275
|
}
|
|
64018
64276
|
}
|
|
64019
64277
|
return issues;
|
|
@@ -71888,6 +72146,27 @@ exports.AtTranspiler = AtTranspiler;
|
|
|
71888
72146
|
|
|
71889
72147
|
/***/ }),
|
|
71890
72148
|
|
|
72149
|
+
/***/ "./node_modules/@abaplint/transpiler/build/src/statements/at_selection_screen.js":
|
|
72150
|
+
/*!***************************************************************************************!*\
|
|
72151
|
+
!*** ./node_modules/@abaplint/transpiler/build/src/statements/at_selection_screen.js ***!
|
|
72152
|
+
\***************************************************************************************/
|
|
72153
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
72154
|
+
|
|
72155
|
+
"use strict";
|
|
72156
|
+
|
|
72157
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
72158
|
+
exports.AtSelectionScreenTranspiler = void 0;
|
|
72159
|
+
const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
|
|
72160
|
+
class AtSelectionScreenTranspiler {
|
|
72161
|
+
transpile(_node, _traversal) {
|
|
72162
|
+
return new chunk_1.Chunk(`throw new Error("AtSelectionScreen, not supported, transpiler");`);
|
|
72163
|
+
}
|
|
72164
|
+
}
|
|
72165
|
+
exports.AtSelectionScreenTranspiler = AtSelectionScreenTranspiler;
|
|
72166
|
+
//# sourceMappingURL=at_selection_screen.js.map
|
|
72167
|
+
|
|
72168
|
+
/***/ }),
|
|
72169
|
+
|
|
71891
72170
|
/***/ "./node_modules/@abaplint/transpiler/build/src/statements/authority_check.js":
|
|
71892
72171
|
/*!***********************************************************************************!*\
|
|
71893
72172
|
!*** ./node_modules/@abaplint/transpiler/build/src/statements/authority_check.js ***!
|
|
@@ -74136,6 +74415,7 @@ __exportStar(__webpack_require__(/*! ./add */ "./node_modules/@abaplint/transpil
|
|
|
74136
74415
|
__exportStar(__webpack_require__(/*! ./append */ "./node_modules/@abaplint/transpiler/build/src/statements/append.js"), exports);
|
|
74137
74416
|
__exportStar(__webpack_require__(/*! ./assert */ "./node_modules/@abaplint/transpiler/build/src/statements/assert.js"), exports);
|
|
74138
74417
|
__exportStar(__webpack_require__(/*! ./assign */ "./node_modules/@abaplint/transpiler/build/src/statements/assign.js"), exports);
|
|
74418
|
+
__exportStar(__webpack_require__(/*! ./at_selection_screen */ "./node_modules/@abaplint/transpiler/build/src/statements/at_selection_screen.js"), exports);
|
|
74139
74419
|
__exportStar(__webpack_require__(/*! ./at */ "./node_modules/@abaplint/transpiler/build/src/statements/at.js"), exports);
|
|
74140
74420
|
__exportStar(__webpack_require__(/*! ./authority_check */ "./node_modules/@abaplint/transpiler/build/src/statements/authority_check.js"), exports);
|
|
74141
74421
|
__exportStar(__webpack_require__(/*! ./break_id */ "./node_modules/@abaplint/transpiler/build/src/statements/break_id.js"), exports);
|
|
@@ -74876,6 +75156,11 @@ class MethodImplementationTranspiler {
|
|
|
74876
75156
|
const method = this.findMethod(methodName, classDef, traversal);
|
|
74877
75157
|
let staticMethod = "";
|
|
74878
75158
|
methodName = methodName.replace("~", "$").toLowerCase();
|
|
75159
|
+
if (methodName === "then") {
|
|
75160
|
+
// todo, this should be a checked in the validation step, but no abaplint rule for it?
|
|
75161
|
+
// it messes up promises when "this" is returned
|
|
75162
|
+
throw new Error(`Method name "then" not allowed`);
|
|
75163
|
+
}
|
|
74879
75164
|
const superDef = traversal.findClassDefinition(classDef === null || classDef === void 0 ? void 0 : classDef.getSuperClass(), scope);
|
|
74880
75165
|
for (const a of (superDef === null || superDef === void 0 ? void 0 : superDef.getAliases().getAll()) || []) {
|
|
74881
75166
|
if (a.getName().toLowerCase() === methodName) {
|
|
@@ -75773,6 +76058,7 @@ class SelectTranspiler {
|
|
|
75773
76058
|
var _a;
|
|
75774
76059
|
let target = "undefined";
|
|
75775
76060
|
if (targetOverride) {
|
|
76061
|
+
// SelectLoop structure uses override
|
|
75776
76062
|
target = targetOverride;
|
|
75777
76063
|
}
|
|
75778
76064
|
else if (node.findFirstExpression(abaplint.Expressions.SQLIntoTable)) {
|
|
@@ -75834,8 +76120,12 @@ class SelectTranspiler {
|
|
|
75834
76120
|
select += "UP TO 1 ROWS";
|
|
75835
76121
|
}
|
|
75836
76122
|
let runtimeOptions = "";
|
|
76123
|
+
const runtimeOptionsList = [];
|
|
75837
76124
|
if (node.concatTokens().toUpperCase().includes(" APPENDING TABLE ")) {
|
|
75838
|
-
|
|
76125
|
+
runtimeOptionsList.push(`appending: true`);
|
|
76126
|
+
}
|
|
76127
|
+
if (runtimeOptionsList.length > 0) {
|
|
76128
|
+
runtimeOptions = `, {` + runtimeOptionsList.join(", ") + `}`;
|
|
75839
76129
|
}
|
|
75840
76130
|
let extra = "";
|
|
75841
76131
|
const keys = this.findKeys(node, traversal);
|
|
@@ -77710,6 +78000,7 @@ exports.LoopTranspiler = LoopTranspiler;
|
|
|
77710
78000
|
|
|
77711
78001
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
77712
78002
|
exports.SelectTranspiler = void 0;
|
|
78003
|
+
/* eslint-disable max-len */
|
|
77713
78004
|
const abaplint = __webpack_require__(/*! @abaplint/core */ "./node_modules/@abaplint/core/build/src/index.js");
|
|
77714
78005
|
const select_1 = __webpack_require__(/*! ../statements/select */ "./node_modules/@abaplint/transpiler/build/src/statements/select.js");
|
|
77715
78006
|
const chunk_1 = __webpack_require__(/*! ../chunk */ "./node_modules/@abaplint/transpiler/build/src/chunk.js");
|
|
@@ -77717,7 +78008,7 @@ const unique_identifier_1 = __webpack_require__(/*! ../unique_identifier */ "./n
|
|
|
77717
78008
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "./node_modules/@abaplint/transpiler/build/src/expressions/index.js");
|
|
77718
78009
|
class SelectTranspiler {
|
|
77719
78010
|
transpile(node, traversal) {
|
|
77720
|
-
var _a;
|
|
78011
|
+
var _a, _b;
|
|
77721
78012
|
const ret = new chunk_1.Chunk();
|
|
77722
78013
|
const selectStatement = node.findFirstStatement(abaplint.Statements.SelectLoop);
|
|
77723
78014
|
if (selectStatement === undefined) {
|
|
@@ -77731,11 +78022,19 @@ class SelectTranspiler {
|
|
|
77731
78022
|
const loopName = unique_identifier_1.UniqueIdentifier.get();
|
|
77732
78023
|
ret.appendString(`let ${targetName} = new abap.types.Table(abap.DDIC["${from}"].type);\n`);
|
|
77733
78024
|
ret.appendChunk(new select_1.SelectTranspiler().transpile(selectStatement, traversal, targetName));
|
|
77734
|
-
|
|
77735
|
-
if (
|
|
78025
|
+
const packageSize = (_b = node.findFirstExpression(abaplint.Expressions.SelectLoop)) === null || _b === void 0 ? void 0 : _b.findExpressionAfterToken("SIZE");
|
|
78026
|
+
if (packageSize) {
|
|
78027
|
+
const getSize = new expressions_1.SQLSourceTranspiler().transpile(packageSize, traversal).getCode() + ".get()";
|
|
78028
|
+
ret.appendString(`if (${targetName}.array().length > ${getSize}) { throw new Error("PACKAGE SIZED loop larger than package size not supported"); };\n`);
|
|
78029
|
+
ret.appendString(`abap.statements.append({source: ${targetName}, target: ${intoName}, lines: true});\n`);
|
|
78030
|
+
ret.appendString(`{\n`);
|
|
78031
|
+
}
|
|
78032
|
+
else if (concat.includes(" INTO CORRESPONDING FIELDS OF ")) {
|
|
78033
|
+
ret.appendString(`\nfor (const ${loopName} of ${targetName}.array()) {\n`);
|
|
77736
78034
|
ret.appendString(`abap.statements.moveCorresponding(${loopName}, ${intoName});\n`);
|
|
77737
78035
|
}
|
|
77738
78036
|
else {
|
|
78037
|
+
ret.appendString(`\nfor (const ${loopName} of ${targetName}.array()) {\n`);
|
|
77739
78038
|
ret.appendString(`${intoName}.set(${loopName});\n`);
|
|
77740
78039
|
}
|
|
77741
78040
|
const body = node.findDirectStructure(abaplint.Structures.Body);
|
|
@@ -78925,13 +79224,11 @@ async function run() {
|
|
|
78925
79224
|
}
|
|
78926
79225
|
}
|
|
78927
79226
|
ret += `// -------------------END-------------------
|
|
78928
|
-
console.log(abap.console.get());
|
|
78929
79227
|
fs.writeFileSync(__dirname + path.sep + "_output.xml", unit.xUnitXML());
|
|
78930
79228
|
} catch (e) {
|
|
78931
79229
|
if (meth) {
|
|
78932
79230
|
meth.fail();
|
|
78933
79231
|
}
|
|
78934
|
-
console.log(abap.console.get());
|
|
78935
79232
|
fs.writeFileSync(__dirname + path.sep + "_output.xml", unit.xUnitXML());
|
|
78936
79233
|
throw e;
|
|
78937
79234
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/transpiler-cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.0",
|
|
4
4
|
"description": "Transpiler - Command Line Interface",
|
|
5
|
+
"funding": "https://github.com/sponsors/larshp",
|
|
5
6
|
"bin": {
|
|
6
7
|
"abap_transpile": "./abap_transpile"
|
|
7
8
|
},
|
|
@@ -25,15 +26,15 @@
|
|
|
25
26
|
"author": "abaplint",
|
|
26
27
|
"license": "MIT",
|
|
27
28
|
"devDependencies": {
|
|
28
|
-
"@abaplint/transpiler": "^2.
|
|
29
|
+
"@abaplint/transpiler": "^2.7.0",
|
|
29
30
|
"@types/glob": "^7.2.0",
|
|
30
31
|
"glob": "=7.2.0",
|
|
31
32
|
"@types/progress": "^2.0.5",
|
|
32
|
-
"@types/node": "^20.1.
|
|
33
|
-
"@abaplint/core": "^2.
|
|
33
|
+
"@types/node": "^20.1.4",
|
|
34
|
+
"@abaplint/core": "^2.100.2",
|
|
34
35
|
"progress": "^2.0.3",
|
|
35
|
-
"webpack": "^5.82.
|
|
36
|
-
"webpack-cli": "^5.1.
|
|
36
|
+
"webpack": "^5.82.1",
|
|
37
|
+
"webpack-cli": "^5.1.1",
|
|
37
38
|
"typescript": "^5.0.4"
|
|
38
39
|
}
|
|
39
40
|
}
|