@abaplint/transpiler-cli 2.7.128 → 2.7.130

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 +885 -271
  2. package/package.json +4 -4
package/build/bundle.js CHANGED
@@ -117,6 +117,7 @@ exports.FileOperations = FileOperations;
117
117
  Object.defineProperty(exports, "__esModule", ({ value: true }));
118
118
  exports.Lexer = void 0;
119
119
  const position_1 = __webpack_require__(/*! ../../position */ "./node_modules/@abaplint/core/build/src/position.js");
120
+ const virtual_position_1 = __webpack_require__(/*! ../../virtual_position */ "./node_modules/@abaplint/core/build/src/virtual_position.js");
120
121
  const tokens_1 = __webpack_require__(/*! ./tokens */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/index.js");
121
122
  class Buffer {
122
123
  constructor() {
@@ -242,7 +243,7 @@ class Lexer {
242
243
  }
243
244
  let pos = new position_1.Position(row, col - s.length);
244
245
  if (this.virtual) {
245
- pos = new position_1.VirtualPosition(this.virtual, pos.getRow(), pos.getCol());
246
+ pos = new virtual_position_1.VirtualPosition(this.virtual, pos.getRow(), pos.getCol());
246
247
  }
247
248
  let tok = undefined;
248
249
  if (this.m === this.ModeComment) {
@@ -560,25 +561,26 @@ exports.Lexer = Lexer;
560
561
 
561
562
  /***/ }),
562
563
 
563
- /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/_token.js":
564
- /*!*****************************************************************************!*\
565
- !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/_token.js ***!
566
- \*****************************************************************************/
564
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js":
565
+ /*!*************************************************************************************!*\
566
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js ***!
567
+ \*************************************************************************************/
567
568
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
568
569
 
569
570
  "use strict";
570
571
 
571
572
  Object.defineProperty(exports, "__esModule", ({ value: true }));
572
- exports.Token = void 0;
573
+ exports.AbstractToken = void 0;
573
574
  const position_1 = __webpack_require__(/*! ../../../position */ "./node_modules/@abaplint/core/build/src/position.js");
574
- class Token {
575
- [Symbol.for("debug.description")]() {
576
- return `${this.constructor.name} ${this.str}`;
577
- }
575
+ class AbstractToken {
578
576
  constructor(start, str) {
579
577
  this.start = start;
580
578
  this.str = str;
581
579
  }
580
+ // special function, for debugging purposes, see https://github.com/abaplint/abaplint/pull/3137
581
+ [Symbol.for("debug.description")]() {
582
+ return `${this.constructor.name} ${this.str}`;
583
+ }
582
584
  getStr() {
583
585
  return this.str;
584
586
  }
@@ -595,8 +597,8 @@ class Token {
595
597
  return new position_1.Position(this.start.getRow(), this.start.getCol() + this.str.length);
596
598
  }
597
599
  }
598
- exports.Token = Token;
599
- //# sourceMappingURL=_token.js.map
600
+ exports.AbstractToken = AbstractToken;
601
+ //# sourceMappingURL=abstract_token.js.map
600
602
 
601
603
  /***/ }),
602
604
 
@@ -609,33 +611,36 @@ exports.Token = Token;
609
611
  "use strict";
610
612
 
611
613
  Object.defineProperty(exports, "__esModule", ({ value: true }));
612
- exports.WAtW = exports.AtW = exports.WAt = exports.At = void 0;
613
- const _token_1 = __webpack_require__(/*! ./_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/_token.js");
614
- class At extends _token_1.Token {
614
+ exports.At = void 0;
615
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
616
+ class At extends abstract_token_1.AbstractToken {
615
617
  static railroad() {
616
618
  return "@";
617
619
  }
618
620
  }
619
621
  exports.At = At;
620
- class WAt extends _token_1.Token {
621
- static railroad() {
622
- return " @";
623
- }
624
- }
625
- exports.WAt = WAt;
626
- class AtW extends _token_1.Token {
622
+ //# sourceMappingURL=at.js.map
623
+
624
+ /***/ }),
625
+
626
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/atw.js":
627
+ /*!**************************************************************************!*\
628
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/atw.js ***!
629
+ \**************************************************************************/
630
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
631
+
632
+ "use strict";
633
+
634
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
635
+ exports.AtW = void 0;
636
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
637
+ class AtW extends abstract_token_1.AbstractToken {
627
638
  static railroad() {
628
639
  return "@ ";
629
640
  }
630
641
  }
631
642
  exports.AtW = AtW;
632
- class WAtW extends _token_1.Token {
633
- static railroad() {
634
- return " @ ";
635
- }
636
- }
637
- exports.WAtW = WAtW;
638
- //# sourceMappingURL=at.js.map
643
+ //# sourceMappingURL=atw.js.map
639
644
 
640
645
  /***/ }),
641
646
 
@@ -648,33 +653,36 @@ exports.WAtW = WAtW;
648
653
  "use strict";
649
654
 
650
655
  Object.defineProperty(exports, "__esModule", ({ value: true }));
651
- exports.WBracketLeftW = exports.BracketLeftW = exports.WBracketLeft = exports.BracketLeft = void 0;
652
- const _token_1 = __webpack_require__(/*! ./_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/_token.js");
653
- class BracketLeft extends _token_1.Token {
656
+ exports.BracketLeft = void 0;
657
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
658
+ class BracketLeft extends abstract_token_1.AbstractToken {
654
659
  static railroad() {
655
660
  return "[";
656
661
  }
657
662
  }
658
663
  exports.BracketLeft = BracketLeft;
659
- class WBracketLeft extends _token_1.Token {
660
- static railroad() {
661
- return " [";
662
- }
663
- }
664
- exports.WBracketLeft = WBracketLeft;
665
- class BracketLeftW extends _token_1.Token {
664
+ //# sourceMappingURL=bracket_left.js.map
665
+
666
+ /***/ }),
667
+
668
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/bracket_leftw.js":
669
+ /*!************************************************************************************!*\
670
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/bracket_leftw.js ***!
671
+ \************************************************************************************/
672
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
673
+
674
+ "use strict";
675
+
676
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
677
+ exports.BracketLeftW = void 0;
678
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
679
+ class BracketLeftW extends abstract_token_1.AbstractToken {
666
680
  static railroad() {
667
681
  return "[ ";
668
682
  }
669
683
  }
670
684
  exports.BracketLeftW = BracketLeftW;
671
- class WBracketLeftW extends _token_1.Token {
672
- static railroad() {
673
- return " [ ";
674
- }
675
- }
676
- exports.WBracketLeftW = WBracketLeftW;
677
- //# sourceMappingURL=bracket_left.js.map
685
+ //# sourceMappingURL=bracket_leftw.js.map
678
686
 
679
687
  /***/ }),
680
688
 
@@ -687,33 +695,36 @@ exports.WBracketLeftW = WBracketLeftW;
687
695
  "use strict";
688
696
 
689
697
  Object.defineProperty(exports, "__esModule", ({ value: true }));
690
- exports.WBracketRightW = exports.BracketRightW = exports.WBracketRight = exports.BracketRight = void 0;
691
- const _token_1 = __webpack_require__(/*! ./_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/_token.js");
692
- class BracketRight extends _token_1.Token {
698
+ exports.BracketRight = void 0;
699
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
700
+ class BracketRight extends abstract_token_1.AbstractToken {
693
701
  static railroad() {
694
702
  return "]";
695
703
  }
696
704
  }
697
705
  exports.BracketRight = BracketRight;
698
- class WBracketRight extends _token_1.Token {
699
- static railroad() {
700
- return " ]";
701
- }
702
- }
703
- exports.WBracketRight = WBracketRight;
704
- class BracketRightW extends _token_1.Token {
706
+ //# sourceMappingURL=bracket_right.js.map
707
+
708
+ /***/ }),
709
+
710
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/bracket_rightw.js":
711
+ /*!*************************************************************************************!*\
712
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/bracket_rightw.js ***!
713
+ \*************************************************************************************/
714
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
715
+
716
+ "use strict";
717
+
718
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
719
+ exports.BracketRightW = void 0;
720
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
721
+ class BracketRightW extends abstract_token_1.AbstractToken {
705
722
  static railroad() {
706
723
  return "] ";
707
724
  }
708
725
  }
709
726
  exports.BracketRightW = BracketRightW;
710
- class WBracketRightW extends _token_1.Token {
711
- static railroad() {
712
- return " ] ";
713
- }
714
- }
715
- exports.WBracketRightW = WBracketRightW;
716
- //# sourceMappingURL=bracket_right.js.map
727
+ //# sourceMappingURL=bracket_rightw.js.map
717
728
 
718
729
  /***/ }),
719
730
 
@@ -727,8 +738,8 @@ exports.WBracketRightW = WBracketRightW;
727
738
 
728
739
  Object.defineProperty(exports, "__esModule", ({ value: true }));
729
740
  exports.Colon = void 0;
730
- const _token_1 = __webpack_require__(/*! ./_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/_token.js");
731
- class Colon extends _token_1.Token {
741
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
742
+ class Colon extends abstract_token_1.AbstractToken {
732
743
  }
733
744
  exports.Colon = Colon;
734
745
  //# sourceMappingURL=colon.js.map
@@ -745,8 +756,8 @@ exports.Colon = Colon;
745
756
 
746
757
  Object.defineProperty(exports, "__esModule", ({ value: true }));
747
758
  exports.Comment = void 0;
748
- const _token_1 = __webpack_require__(/*! ./_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/_token.js");
749
- class Comment extends _token_1.Token {
759
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
760
+ class Comment extends abstract_token_1.AbstractToken {
750
761
  }
751
762
  exports.Comment = Comment;
752
763
  //# sourceMappingURL=comment.js.map
@@ -762,33 +773,36 @@ exports.Comment = Comment;
762
773
  "use strict";
763
774
 
764
775
  Object.defineProperty(exports, "__esModule", ({ value: true }));
765
- exports.WDashW = exports.DashW = exports.WDash = exports.Dash = void 0;
766
- const _token_1 = __webpack_require__(/*! ./_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/_token.js");
767
- class Dash extends _token_1.Token {
776
+ exports.Dash = void 0;
777
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
778
+ class Dash extends abstract_token_1.AbstractToken {
768
779
  static railroad() {
769
780
  return "-";
770
781
  }
771
782
  }
772
783
  exports.Dash = Dash;
773
- class WDash extends _token_1.Token {
774
- static railroad() {
775
- return " -";
776
- }
777
- }
778
- exports.WDash = WDash;
779
- class DashW extends _token_1.Token {
784
+ //# sourceMappingURL=dash.js.map
785
+
786
+ /***/ }),
787
+
788
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/dashw.js":
789
+ /*!****************************************************************************!*\
790
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/dashw.js ***!
791
+ \****************************************************************************/
792
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
793
+
794
+ "use strict";
795
+
796
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
797
+ exports.DashW = void 0;
798
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
799
+ class DashW extends abstract_token_1.AbstractToken {
780
800
  static railroad() {
781
801
  return "- ";
782
802
  }
783
803
  }
784
804
  exports.DashW = DashW;
785
- class WDashW extends _token_1.Token {
786
- static railroad() {
787
- return " - ";
788
- }
789
- }
790
- exports.WDashW = WDashW;
791
- //# sourceMappingURL=dash.js.map
805
+ //# sourceMappingURL=dashw.js.map
792
806
 
793
807
  /***/ }),
794
808
 
@@ -802,8 +816,8 @@ exports.WDashW = WDashW;
802
816
 
803
817
  Object.defineProperty(exports, "__esModule", ({ value: true }));
804
818
  exports.Identifier = void 0;
805
- const _token_1 = __webpack_require__(/*! ./_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/_token.js");
806
- class Identifier extends _token_1.Token {
819
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
820
+ class Identifier extends abstract_token_1.AbstractToken {
807
821
  }
808
822
  exports.Identifier = Identifier;
809
823
  //# sourceMappingURL=identifier.js.map
@@ -834,20 +848,51 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
834
848
  };
835
849
  Object.defineProperty(exports, "__esModule", ({ value: true }));
836
850
  __exportStar(__webpack_require__(/*! ./at */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/at.js"), exports);
851
+ __exportStar(__webpack_require__(/*! ./atw */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/atw.js"), exports);
852
+ __exportStar(__webpack_require__(/*! ./wat */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wat.js"), exports);
853
+ __exportStar(__webpack_require__(/*! ./watw */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/watw.js"), exports);
837
854
  __exportStar(__webpack_require__(/*! ./bracket_left */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/bracket_left.js"), exports);
855
+ __exportStar(__webpack_require__(/*! ./wbracket_left */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wbracket_left.js"), exports);
856
+ __exportStar(__webpack_require__(/*! ./bracket_leftw */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/bracket_leftw.js"), exports);
857
+ __exportStar(__webpack_require__(/*! ./wbracket_leftw */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wbracket_leftw.js"), exports);
838
858
  __exportStar(__webpack_require__(/*! ./bracket_right */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/bracket_right.js"), exports);
839
- __exportStar(__webpack_require__(/*! ./colon */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/colon.js"), exports);
840
- __exportStar(__webpack_require__(/*! ./comment */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/comment.js"), exports);
841
- __exportStar(__webpack_require__(/*! ./dash */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/dash.js"), exports);
842
- __exportStar(__webpack_require__(/*! ./identifier */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/identifier.js"), exports);
859
+ __exportStar(__webpack_require__(/*! ./wbracket_right */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wbracket_right.js"), exports);
860
+ __exportStar(__webpack_require__(/*! ./bracket_rightw */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/bracket_rightw.js"), exports);
861
+ __exportStar(__webpack_require__(/*! ./wbracket_rightw */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wbracket_rightw.js"), exports);
843
862
  __exportStar(__webpack_require__(/*! ./instance_arrow */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/instance_arrow.js"), exports);
863
+ __exportStar(__webpack_require__(/*! ./winstance_arrow */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/winstance_arrow.js"), exports);
864
+ __exportStar(__webpack_require__(/*! ./instance_arroww */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/instance_arroww.js"), exports);
865
+ __exportStar(__webpack_require__(/*! ./winstance_arroww */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/winstance_arroww.js"), exports);
844
866
  __exportStar(__webpack_require__(/*! ./paren_left */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/paren_left.js"), exports);
867
+ __exportStar(__webpack_require__(/*! ./wparen_left */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wparen_left.js"), exports);
868
+ __exportStar(__webpack_require__(/*! ./paren_leftw */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/paren_leftw.js"), exports);
869
+ __exportStar(__webpack_require__(/*! ./wparen_leftw */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wparen_leftw.js"), exports);
845
870
  __exportStar(__webpack_require__(/*! ./paren_right */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/paren_right.js"), exports);
871
+ __exportStar(__webpack_require__(/*! ./wparen_right */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wparen_right.js"), exports);
872
+ __exportStar(__webpack_require__(/*! ./paren_rightw */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/paren_rightw.js"), exports);
873
+ __exportStar(__webpack_require__(/*! ./wparen_rightw */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wparen_rightw.js"), exports);
874
+ __exportStar(__webpack_require__(/*! ./dash */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/dash.js"), exports);
875
+ __exportStar(__webpack_require__(/*! ./wdash */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wdash.js"), exports);
876
+ __exportStar(__webpack_require__(/*! ./dashw */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/dashw.js"), exports);
877
+ __exportStar(__webpack_require__(/*! ./wdashw */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wdashw.js"), exports);
846
878
  __exportStar(__webpack_require__(/*! ./plus */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/plus.js"), exports);
847
- __exportStar(__webpack_require__(/*! ./pragma */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/pragma.js"), exports);
848
- __exportStar(__webpack_require__(/*! ./punctuation */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/punctuation.js"), exports);
879
+ __exportStar(__webpack_require__(/*! ./wplus */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wplus.js"), exports);
880
+ __exportStar(__webpack_require__(/*! ./plusw */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/plusw.js"), exports);
881
+ __exportStar(__webpack_require__(/*! ./wplusw */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wplusw.js"), exports);
849
882
  __exportStar(__webpack_require__(/*! ./static_arrow */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/static_arrow.js"), exports);
883
+ __exportStar(__webpack_require__(/*! ./wstatic_arrow */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wstatic_arrow.js"), exports);
884
+ __exportStar(__webpack_require__(/*! ./static_arroww */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/static_arroww.js"), exports);
885
+ __exportStar(__webpack_require__(/*! ./wstatic_arroww */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wstatic_arroww.js"), exports);
850
886
  __exportStar(__webpack_require__(/*! ./string */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/string.js"), exports);
887
+ __exportStar(__webpack_require__(/*! ./string_template */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/string_template.js"), exports);
888
+ __exportStar(__webpack_require__(/*! ./string_template_begin */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/string_template_begin.js"), exports);
889
+ __exportStar(__webpack_require__(/*! ./string_template_end */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/string_template_end.js"), exports);
890
+ __exportStar(__webpack_require__(/*! ./string_template_middle */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/string_template_middle.js"), exports);
891
+ __exportStar(__webpack_require__(/*! ./colon */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/colon.js"), exports);
892
+ __exportStar(__webpack_require__(/*! ./comment */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/comment.js"), exports);
893
+ __exportStar(__webpack_require__(/*! ./identifier */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/identifier.js"), exports);
894
+ __exportStar(__webpack_require__(/*! ./pragma */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/pragma.js"), exports);
895
+ __exportStar(__webpack_require__(/*! ./punctuation */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/punctuation.js"), exports);
851
896
  //# sourceMappingURL=index.js.map
852
897
 
853
898
  /***/ }),
@@ -861,33 +906,36 @@ __exportStar(__webpack_require__(/*! ./string */ "./node_modules/@abaplint/core/
861
906
  "use strict";
862
907
 
863
908
  Object.defineProperty(exports, "__esModule", ({ value: true }));
864
- exports.WInstanceArrowW = exports.InstanceArrowW = exports.WInstanceArrow = exports.InstanceArrow = void 0;
865
- const _token_1 = __webpack_require__(/*! ./_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/_token.js");
866
- class InstanceArrow extends _token_1.Token {
909
+ exports.InstanceArrow = void 0;
910
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
911
+ class InstanceArrow extends abstract_token_1.AbstractToken {
867
912
  static railroad() {
868
913
  return "->";
869
914
  }
870
915
  }
871
916
  exports.InstanceArrow = InstanceArrow;
872
- class WInstanceArrow extends _token_1.Token {
873
- static railroad() {
874
- return " ->";
875
- }
876
- }
877
- exports.WInstanceArrow = WInstanceArrow;
878
- class InstanceArrowW extends _token_1.Token {
917
+ //# sourceMappingURL=instance_arrow.js.map
918
+
919
+ /***/ }),
920
+
921
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/instance_arroww.js":
922
+ /*!**************************************************************************************!*\
923
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/instance_arroww.js ***!
924
+ \**************************************************************************************/
925
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
926
+
927
+ "use strict";
928
+
929
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
930
+ exports.InstanceArrowW = void 0;
931
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
932
+ class InstanceArrowW extends abstract_token_1.AbstractToken {
879
933
  static railroad() {
880
934
  return "-> ";
881
935
  }
882
936
  }
883
937
  exports.InstanceArrowW = InstanceArrowW;
884
- class WInstanceArrowW extends _token_1.Token {
885
- static railroad() {
886
- return " -> ";
887
- }
888
- }
889
- exports.WInstanceArrowW = WInstanceArrowW;
890
- //# sourceMappingURL=instance_arrow.js.map
938
+ //# sourceMappingURL=instance_arroww.js.map
891
939
 
892
940
  /***/ }),
893
941
 
@@ -900,33 +948,36 @@ exports.WInstanceArrowW = WInstanceArrowW;
900
948
  "use strict";
901
949
 
902
950
  Object.defineProperty(exports, "__esModule", ({ value: true }));
903
- exports.WParenLeftW = exports.ParenLeftW = exports.WParenLeft = exports.ParenLeft = void 0;
904
- const _token_1 = __webpack_require__(/*! ./_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/_token.js");
905
- class ParenLeft extends _token_1.Token {
951
+ exports.ParenLeft = void 0;
952
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
953
+ class ParenLeft extends abstract_token_1.AbstractToken {
906
954
  static railroad() {
907
955
  return "(";
908
956
  }
909
957
  }
910
958
  exports.ParenLeft = ParenLeft;
911
- class WParenLeft extends _token_1.Token {
912
- static railroad() {
913
- return " (";
914
- }
915
- }
916
- exports.WParenLeft = WParenLeft;
917
- class ParenLeftW extends _token_1.Token {
959
+ //# sourceMappingURL=paren_left.js.map
960
+
961
+ /***/ }),
962
+
963
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/paren_leftw.js":
964
+ /*!**********************************************************************************!*\
965
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/paren_leftw.js ***!
966
+ \**********************************************************************************/
967
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
968
+
969
+ "use strict";
970
+
971
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
972
+ exports.ParenLeftW = void 0;
973
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
974
+ class ParenLeftW extends abstract_token_1.AbstractToken {
918
975
  static railroad() {
919
976
  return "( ";
920
977
  }
921
978
  }
922
979
  exports.ParenLeftW = ParenLeftW;
923
- class WParenLeftW extends _token_1.Token {
924
- static railroad() {
925
- return " ( ";
926
- }
927
- }
928
- exports.WParenLeftW = WParenLeftW;
929
- //# sourceMappingURL=paren_left.js.map
980
+ //# sourceMappingURL=paren_leftw.js.map
930
981
 
931
982
  /***/ }),
932
983
 
@@ -939,33 +990,36 @@ exports.WParenLeftW = WParenLeftW;
939
990
  "use strict";
940
991
 
941
992
  Object.defineProperty(exports, "__esModule", ({ value: true }));
942
- exports.WParenRightW = exports.ParenRightW = exports.WParenRight = exports.ParenRight = void 0;
943
- const _token_1 = __webpack_require__(/*! ./_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/_token.js");
944
- class ParenRight extends _token_1.Token {
993
+ exports.ParenRight = void 0;
994
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
995
+ class ParenRight extends abstract_token_1.AbstractToken {
945
996
  static railroad() {
946
997
  return ")";
947
998
  }
948
999
  }
949
1000
  exports.ParenRight = ParenRight;
950
- class WParenRight extends _token_1.Token {
951
- static railroad() {
952
- return " )";
953
- }
954
- }
955
- exports.WParenRight = WParenRight;
956
- class ParenRightW extends _token_1.Token {
1001
+ //# sourceMappingURL=paren_right.js.map
1002
+
1003
+ /***/ }),
1004
+
1005
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/paren_rightw.js":
1006
+ /*!***********************************************************************************!*\
1007
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/paren_rightw.js ***!
1008
+ \***********************************************************************************/
1009
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1010
+
1011
+ "use strict";
1012
+
1013
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1014
+ exports.ParenRightW = void 0;
1015
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1016
+ class ParenRightW extends abstract_token_1.AbstractToken {
957
1017
  static railroad() {
958
1018
  return ") ";
959
1019
  }
960
1020
  }
961
1021
  exports.ParenRightW = ParenRightW;
962
- class WParenRightW extends _token_1.Token {
963
- static railroad() {
964
- return " ) ";
965
- }
966
- }
967
- exports.WParenRightW = WParenRightW;
968
- //# sourceMappingURL=paren_right.js.map
1022
+ //# sourceMappingURL=paren_rightw.js.map
969
1023
 
970
1024
  /***/ }),
971
1025
 
@@ -978,33 +1032,36 @@ exports.WParenRightW = WParenRightW;
978
1032
  "use strict";
979
1033
 
980
1034
  Object.defineProperty(exports, "__esModule", ({ value: true }));
981
- exports.WPlusW = exports.PlusW = exports.WPlus = exports.Plus = void 0;
982
- const _token_1 = __webpack_require__(/*! ./_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/_token.js");
983
- class Plus extends _token_1.Token {
1035
+ exports.Plus = void 0;
1036
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1037
+ class Plus extends abstract_token_1.AbstractToken {
984
1038
  static railroad() {
985
1039
  return "+";
986
1040
  }
987
1041
  }
988
1042
  exports.Plus = Plus;
989
- class WPlus extends _token_1.Token {
990
- static railroad() {
991
- return " +";
992
- }
993
- }
994
- exports.WPlus = WPlus;
995
- class PlusW extends _token_1.Token {
1043
+ //# sourceMappingURL=plus.js.map
1044
+
1045
+ /***/ }),
1046
+
1047
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/plusw.js":
1048
+ /*!****************************************************************************!*\
1049
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/plusw.js ***!
1050
+ \****************************************************************************/
1051
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1052
+
1053
+ "use strict";
1054
+
1055
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1056
+ exports.PlusW = void 0;
1057
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1058
+ class PlusW extends abstract_token_1.AbstractToken {
996
1059
  static railroad() {
997
1060
  return "+ ";
998
1061
  }
999
1062
  }
1000
1063
  exports.PlusW = PlusW;
1001
- class WPlusW extends _token_1.Token {
1002
- static railroad() {
1003
- return " + ";
1004
- }
1005
- }
1006
- exports.WPlusW = WPlusW;
1007
- //# sourceMappingURL=plus.js.map
1064
+ //# sourceMappingURL=plusw.js.map
1008
1065
 
1009
1066
  /***/ }),
1010
1067
 
@@ -1018,8 +1075,8 @@ exports.WPlusW = WPlusW;
1018
1075
 
1019
1076
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1020
1077
  exports.Pragma = void 0;
1021
- const _token_1 = __webpack_require__(/*! ./_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/_token.js");
1022
- class Pragma extends _token_1.Token {
1078
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1079
+ class Pragma extends abstract_token_1.AbstractToken {
1023
1080
  }
1024
1081
  exports.Pragma = Pragma;
1025
1082
  //# sourceMappingURL=pragma.js.map
@@ -1036,8 +1093,8 @@ exports.Pragma = Pragma;
1036
1093
 
1037
1094
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1038
1095
  exports.Punctuation = void 0;
1039
- const _token_1 = __webpack_require__(/*! ./_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/_token.js");
1040
- class Punctuation extends _token_1.Token {
1096
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1097
+ class Punctuation extends abstract_token_1.AbstractToken {
1041
1098
  }
1042
1099
  exports.Punctuation = Punctuation;
1043
1100
  //# sourceMappingURL=punctuation.js.map
@@ -1053,33 +1110,36 @@ exports.Punctuation = Punctuation;
1053
1110
  "use strict";
1054
1111
 
1055
1112
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1056
- exports.WStaticArrowW = exports.StaticArrowW = exports.WStaticArrow = exports.StaticArrow = void 0;
1057
- const _token_1 = __webpack_require__(/*! ./_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/_token.js");
1058
- class StaticArrow extends _token_1.Token {
1113
+ exports.StaticArrow = void 0;
1114
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1115
+ class StaticArrow extends abstract_token_1.AbstractToken {
1059
1116
  static railroad() {
1060
1117
  return "=>";
1061
1118
  }
1062
1119
  }
1063
1120
  exports.StaticArrow = StaticArrow;
1064
- class WStaticArrow extends _token_1.Token {
1065
- static railroad() {
1066
- return " =>";
1067
- }
1068
- }
1069
- exports.WStaticArrow = WStaticArrow;
1070
- class StaticArrowW extends _token_1.Token {
1121
+ //# sourceMappingURL=static_arrow.js.map
1122
+
1123
+ /***/ }),
1124
+
1125
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/static_arroww.js":
1126
+ /*!************************************************************************************!*\
1127
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/static_arroww.js ***!
1128
+ \************************************************************************************/
1129
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1130
+
1131
+ "use strict";
1132
+
1133
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1134
+ exports.StaticArrowW = void 0;
1135
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1136
+ class StaticArrowW extends abstract_token_1.AbstractToken {
1071
1137
  static railroad() {
1072
1138
  return "=> ";
1073
1139
  }
1074
1140
  }
1075
1141
  exports.StaticArrowW = StaticArrowW;
1076
- class WStaticArrowW extends _token_1.Token {
1077
- static railroad() {
1078
- return " => ";
1079
- }
1080
- }
1081
- exports.WStaticArrowW = WStaticArrowW;
1082
- //# sourceMappingURL=static_arrow.js.map
1142
+ //# sourceMappingURL=static_arroww.js.map
1083
1143
 
1084
1144
  /***/ }),
1085
1145
 
@@ -1092,24 +1152,462 @@ exports.WStaticArrowW = WStaticArrowW;
1092
1152
  "use strict";
1093
1153
 
1094
1154
  Object.defineProperty(exports, "__esModule", ({ value: true }));
1095
- exports.StringTemplateMiddle = exports.StringTemplateEnd = exports.StringTemplateBegin = exports.StringTemplate = exports.StringToken = void 0;
1096
- const _token_1 = __webpack_require__(/*! ./_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/_token.js");
1097
- class StringToken extends _token_1.Token {
1155
+ exports.StringToken = void 0;
1156
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1157
+ class StringToken extends abstract_token_1.AbstractToken {
1098
1158
  }
1099
1159
  exports.StringToken = StringToken;
1100
- class StringTemplate extends _token_1.Token {
1160
+ //# sourceMappingURL=string.js.map
1161
+
1162
+ /***/ }),
1163
+
1164
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/string_template.js":
1165
+ /*!**************************************************************************************!*\
1166
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/string_template.js ***!
1167
+ \**************************************************************************************/
1168
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1169
+
1170
+ "use strict";
1171
+
1172
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1173
+ exports.StringTemplate = void 0;
1174
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1175
+ class StringTemplate extends abstract_token_1.AbstractToken {
1101
1176
  }
1102
1177
  exports.StringTemplate = StringTemplate;
1103
- class StringTemplateBegin extends _token_1.Token {
1178
+ //# sourceMappingURL=string_template.js.map
1179
+
1180
+ /***/ }),
1181
+
1182
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/string_template_begin.js":
1183
+ /*!********************************************************************************************!*\
1184
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/string_template_begin.js ***!
1185
+ \********************************************************************************************/
1186
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1187
+
1188
+ "use strict";
1189
+
1190
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1191
+ exports.StringTemplateBegin = void 0;
1192
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1193
+ class StringTemplateBegin extends abstract_token_1.AbstractToken {
1104
1194
  }
1105
1195
  exports.StringTemplateBegin = StringTemplateBegin;
1106
- class StringTemplateEnd extends _token_1.Token {
1196
+ //# sourceMappingURL=string_template_begin.js.map
1197
+
1198
+ /***/ }),
1199
+
1200
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/string_template_end.js":
1201
+ /*!******************************************************************************************!*\
1202
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/string_template_end.js ***!
1203
+ \******************************************************************************************/
1204
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1205
+
1206
+ "use strict";
1207
+
1208
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1209
+ exports.StringTemplateEnd = void 0;
1210
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1211
+ class StringTemplateEnd extends abstract_token_1.AbstractToken {
1107
1212
  }
1108
1213
  exports.StringTemplateEnd = StringTemplateEnd;
1109
- class StringTemplateMiddle extends _token_1.Token {
1214
+ //# sourceMappingURL=string_template_end.js.map
1215
+
1216
+ /***/ }),
1217
+
1218
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/string_template_middle.js":
1219
+ /*!*********************************************************************************************!*\
1220
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/string_template_middle.js ***!
1221
+ \*********************************************************************************************/
1222
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1223
+
1224
+ "use strict";
1225
+
1226
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1227
+ exports.StringTemplateMiddle = void 0;
1228
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1229
+ class StringTemplateMiddle extends abstract_token_1.AbstractToken {
1110
1230
  }
1111
1231
  exports.StringTemplateMiddle = StringTemplateMiddle;
1112
- //# sourceMappingURL=string.js.map
1232
+ //# sourceMappingURL=string_template_middle.js.map
1233
+
1234
+ /***/ }),
1235
+
1236
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wat.js":
1237
+ /*!**************************************************************************!*\
1238
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wat.js ***!
1239
+ \**************************************************************************/
1240
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1241
+
1242
+ "use strict";
1243
+
1244
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1245
+ exports.WAt = void 0;
1246
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1247
+ class WAt extends abstract_token_1.AbstractToken {
1248
+ static railroad() {
1249
+ return " @";
1250
+ }
1251
+ }
1252
+ exports.WAt = WAt;
1253
+ //# sourceMappingURL=wat.js.map
1254
+
1255
+ /***/ }),
1256
+
1257
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/watw.js":
1258
+ /*!***************************************************************************!*\
1259
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/watw.js ***!
1260
+ \***************************************************************************/
1261
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1262
+
1263
+ "use strict";
1264
+
1265
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1266
+ exports.WAtW = void 0;
1267
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1268
+ class WAtW extends abstract_token_1.AbstractToken {
1269
+ static railroad() {
1270
+ return " @ ";
1271
+ }
1272
+ }
1273
+ exports.WAtW = WAtW;
1274
+ //# sourceMappingURL=watw.js.map
1275
+
1276
+ /***/ }),
1277
+
1278
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wbracket_left.js":
1279
+ /*!************************************************************************************!*\
1280
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wbracket_left.js ***!
1281
+ \************************************************************************************/
1282
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1283
+
1284
+ "use strict";
1285
+
1286
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1287
+ exports.WBracketLeft = void 0;
1288
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1289
+ class WBracketLeft extends abstract_token_1.AbstractToken {
1290
+ static railroad() {
1291
+ return " [";
1292
+ }
1293
+ }
1294
+ exports.WBracketLeft = WBracketLeft;
1295
+ //# sourceMappingURL=wbracket_left.js.map
1296
+
1297
+ /***/ }),
1298
+
1299
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wbracket_leftw.js":
1300
+ /*!*************************************************************************************!*\
1301
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wbracket_leftw.js ***!
1302
+ \*************************************************************************************/
1303
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1304
+
1305
+ "use strict";
1306
+
1307
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1308
+ exports.WBracketLeftW = void 0;
1309
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1310
+ class WBracketLeftW extends abstract_token_1.AbstractToken {
1311
+ static railroad() {
1312
+ return " [ ";
1313
+ }
1314
+ }
1315
+ exports.WBracketLeftW = WBracketLeftW;
1316
+ //# sourceMappingURL=wbracket_leftw.js.map
1317
+
1318
+ /***/ }),
1319
+
1320
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wbracket_right.js":
1321
+ /*!*************************************************************************************!*\
1322
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wbracket_right.js ***!
1323
+ \*************************************************************************************/
1324
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1325
+
1326
+ "use strict";
1327
+
1328
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1329
+ exports.WBracketRight = void 0;
1330
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1331
+ class WBracketRight extends abstract_token_1.AbstractToken {
1332
+ static railroad() {
1333
+ return " ]";
1334
+ }
1335
+ }
1336
+ exports.WBracketRight = WBracketRight;
1337
+ //# sourceMappingURL=wbracket_right.js.map
1338
+
1339
+ /***/ }),
1340
+
1341
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wbracket_rightw.js":
1342
+ /*!**************************************************************************************!*\
1343
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wbracket_rightw.js ***!
1344
+ \**************************************************************************************/
1345
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1346
+
1347
+ "use strict";
1348
+
1349
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1350
+ exports.WBracketRightW = void 0;
1351
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1352
+ class WBracketRightW extends abstract_token_1.AbstractToken {
1353
+ static railroad() {
1354
+ return " ] ";
1355
+ }
1356
+ }
1357
+ exports.WBracketRightW = WBracketRightW;
1358
+ //# sourceMappingURL=wbracket_rightw.js.map
1359
+
1360
+ /***/ }),
1361
+
1362
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wdash.js":
1363
+ /*!****************************************************************************!*\
1364
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wdash.js ***!
1365
+ \****************************************************************************/
1366
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1367
+
1368
+ "use strict";
1369
+
1370
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1371
+ exports.WDash = void 0;
1372
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1373
+ class WDash extends abstract_token_1.AbstractToken {
1374
+ static railroad() {
1375
+ return " -";
1376
+ }
1377
+ }
1378
+ exports.WDash = WDash;
1379
+ //# sourceMappingURL=wdash.js.map
1380
+
1381
+ /***/ }),
1382
+
1383
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wdashw.js":
1384
+ /*!*****************************************************************************!*\
1385
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wdashw.js ***!
1386
+ \*****************************************************************************/
1387
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1388
+
1389
+ "use strict";
1390
+
1391
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1392
+ exports.WDashW = void 0;
1393
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1394
+ class WDashW extends abstract_token_1.AbstractToken {
1395
+ static railroad() {
1396
+ return " - ";
1397
+ }
1398
+ }
1399
+ exports.WDashW = WDashW;
1400
+ //# sourceMappingURL=wdashw.js.map
1401
+
1402
+ /***/ }),
1403
+
1404
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/winstance_arrow.js":
1405
+ /*!**************************************************************************************!*\
1406
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/winstance_arrow.js ***!
1407
+ \**************************************************************************************/
1408
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1409
+
1410
+ "use strict";
1411
+
1412
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1413
+ exports.WInstanceArrow = void 0;
1414
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1415
+ class WInstanceArrow extends abstract_token_1.AbstractToken {
1416
+ static railroad() {
1417
+ return " ->";
1418
+ }
1419
+ }
1420
+ exports.WInstanceArrow = WInstanceArrow;
1421
+ //# sourceMappingURL=winstance_arrow.js.map
1422
+
1423
+ /***/ }),
1424
+
1425
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/winstance_arroww.js":
1426
+ /*!***************************************************************************************!*\
1427
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/winstance_arroww.js ***!
1428
+ \***************************************************************************************/
1429
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1430
+
1431
+ "use strict";
1432
+
1433
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1434
+ exports.WInstanceArrowW = void 0;
1435
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1436
+ class WInstanceArrowW extends abstract_token_1.AbstractToken {
1437
+ static railroad() {
1438
+ return " -> ";
1439
+ }
1440
+ }
1441
+ exports.WInstanceArrowW = WInstanceArrowW;
1442
+ //# sourceMappingURL=winstance_arroww.js.map
1443
+
1444
+ /***/ }),
1445
+
1446
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wparen_left.js":
1447
+ /*!**********************************************************************************!*\
1448
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wparen_left.js ***!
1449
+ \**********************************************************************************/
1450
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1451
+
1452
+ "use strict";
1453
+
1454
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1455
+ exports.WParenLeft = void 0;
1456
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1457
+ class WParenLeft extends abstract_token_1.AbstractToken {
1458
+ static railroad() {
1459
+ return " (";
1460
+ }
1461
+ }
1462
+ exports.WParenLeft = WParenLeft;
1463
+ //# sourceMappingURL=wparen_left.js.map
1464
+
1465
+ /***/ }),
1466
+
1467
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wparen_leftw.js":
1468
+ /*!***********************************************************************************!*\
1469
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wparen_leftw.js ***!
1470
+ \***********************************************************************************/
1471
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1472
+
1473
+ "use strict";
1474
+
1475
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1476
+ exports.WParenLeftW = void 0;
1477
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1478
+ class WParenLeftW extends abstract_token_1.AbstractToken {
1479
+ static railroad() {
1480
+ return " ( ";
1481
+ }
1482
+ }
1483
+ exports.WParenLeftW = WParenLeftW;
1484
+ //# sourceMappingURL=wparen_leftw.js.map
1485
+
1486
+ /***/ }),
1487
+
1488
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wparen_right.js":
1489
+ /*!***********************************************************************************!*\
1490
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wparen_right.js ***!
1491
+ \***********************************************************************************/
1492
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1493
+
1494
+ "use strict";
1495
+
1496
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1497
+ exports.WParenRight = void 0;
1498
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1499
+ class WParenRight extends abstract_token_1.AbstractToken {
1500
+ static railroad() {
1501
+ return " )";
1502
+ }
1503
+ }
1504
+ exports.WParenRight = WParenRight;
1505
+ //# sourceMappingURL=wparen_right.js.map
1506
+
1507
+ /***/ }),
1508
+
1509
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wparen_rightw.js":
1510
+ /*!************************************************************************************!*\
1511
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wparen_rightw.js ***!
1512
+ \************************************************************************************/
1513
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1514
+
1515
+ "use strict";
1516
+
1517
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1518
+ exports.WParenRightW = void 0;
1519
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1520
+ class WParenRightW extends abstract_token_1.AbstractToken {
1521
+ static railroad() {
1522
+ return " ) ";
1523
+ }
1524
+ }
1525
+ exports.WParenRightW = WParenRightW;
1526
+ //# sourceMappingURL=wparen_rightw.js.map
1527
+
1528
+ /***/ }),
1529
+
1530
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wplus.js":
1531
+ /*!****************************************************************************!*\
1532
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wplus.js ***!
1533
+ \****************************************************************************/
1534
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1535
+
1536
+ "use strict";
1537
+
1538
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1539
+ exports.WPlus = void 0;
1540
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1541
+ class WPlus extends abstract_token_1.AbstractToken {
1542
+ static railroad() {
1543
+ return " +";
1544
+ }
1545
+ }
1546
+ exports.WPlus = WPlus;
1547
+ //# sourceMappingURL=wplus.js.map
1548
+
1549
+ /***/ }),
1550
+
1551
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wplusw.js":
1552
+ /*!*****************************************************************************!*\
1553
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wplusw.js ***!
1554
+ \*****************************************************************************/
1555
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1556
+
1557
+ "use strict";
1558
+
1559
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1560
+ exports.WPlusW = void 0;
1561
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1562
+ class WPlusW extends abstract_token_1.AbstractToken {
1563
+ static railroad() {
1564
+ return " + ";
1565
+ }
1566
+ }
1567
+ exports.WPlusW = WPlusW;
1568
+ //# sourceMappingURL=wplusw.js.map
1569
+
1570
+ /***/ }),
1571
+
1572
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wstatic_arrow.js":
1573
+ /*!************************************************************************************!*\
1574
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wstatic_arrow.js ***!
1575
+ \************************************************************************************/
1576
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1577
+
1578
+ "use strict";
1579
+
1580
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1581
+ exports.WStaticArrow = void 0;
1582
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1583
+ class WStaticArrow extends abstract_token_1.AbstractToken {
1584
+ static railroad() {
1585
+ return " =>";
1586
+ }
1587
+ }
1588
+ exports.WStaticArrow = WStaticArrow;
1589
+ //# sourceMappingURL=wstatic_arrow.js.map
1590
+
1591
+ /***/ }),
1592
+
1593
+ /***/ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wstatic_arroww.js":
1594
+ /*!*************************************************************************************!*\
1595
+ !*** ./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wstatic_arroww.js ***!
1596
+ \*************************************************************************************/
1597
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1598
+
1599
+ "use strict";
1600
+
1601
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1602
+ exports.WStaticArrowW = void 0;
1603
+ const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
1604
+ class WStaticArrowW extends abstract_token_1.AbstractToken {
1605
+ static railroad() {
1606
+ return " => ";
1607
+ }
1608
+ }
1609
+ exports.WStaticArrowW = WStaticArrowW;
1610
+ //# sourceMappingURL=wstatic_arroww.js.map
1113
1611
 
1114
1612
  /***/ }),
1115
1613
 
@@ -2042,7 +2540,7 @@ const token_node_1 = __webpack_require__(/*! ../nodes/token_node */ "./node_modu
2042
2540
  const statement_parser_1 = __webpack_require__(/*! ./statement_parser */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statement_parser.js");
2043
2541
  const memory_file_1 = __webpack_require__(/*! ../../files/memory_file */ "./node_modules/@abaplint/core/build/src/files/memory_file.js");
2044
2542
  const lexer_1 = __webpack_require__(/*! ../1_lexer/lexer */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/lexer.js");
2045
- const position_1 = __webpack_require__(/*! ../../position */ "./node_modules/@abaplint/core/build/src/position.js");
2543
+ const virtual_position_1 = __webpack_require__(/*! ../../virtual_position */ "./node_modules/@abaplint/core/build/src/virtual_position.js");
2046
2544
  class Macros {
2047
2545
  constructor(globalMacros) {
2048
2546
  this.macros = {};
@@ -2181,8 +2679,8 @@ class ExpandMacros {
2181
2679
  }
2182
2680
  // argh, macros is a nightmare
2183
2681
  let end = now.getStart();
2184
- if (end instanceof position_1.VirtualPosition) {
2185
- end = new position_1.VirtualPosition(end, end.vrow, end.vcol + now.getStr().length);
2682
+ if (end instanceof virtual_position_1.VirtualPosition) {
2683
+ end = new virtual_position_1.VirtualPosition(end, end.vrow, end.vcol + now.getStr().length);
2186
2684
  }
2187
2685
  else {
2188
2686
  end = now.getEnd();
@@ -6827,10 +7325,11 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
6827
7325
  exports.SQLIntoList = void 0;
6828
7326
  const combi_1 = __webpack_require__(/*! ../combi */ "./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js");
6829
7327
  const _1 = __webpack_require__(/*! . */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
6830
- const paren_left_1 = __webpack_require__(/*! ../../1_lexer/tokens/paren_left */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/paren_left.js");
7328
+ const wparen_leftw_1 = __webpack_require__(/*! ../../1_lexer/tokens/wparen_leftw */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wparen_leftw.js");
7329
+ const wparen_left_1 = __webpack_require__(/*! ../../1_lexer/tokens/wparen_left */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/wparen_left.js");
6831
7330
  class SQLIntoList extends combi_1.Expression {
6832
7331
  getRunnable() {
6833
- const intoList = (0, combi_1.seq)((0, combi_1.altPrio)((0, combi_1.tok)(paren_left_1.WParenLeft), (0, combi_1.tok)(paren_left_1.WParenLeftW)), (0, combi_1.starPrio)((0, combi_1.seq)(_1.SQLTarget, ",")), _1.SQLTarget, ")");
7332
+ const intoList = (0, combi_1.seq)((0, combi_1.altPrio)((0, combi_1.tok)(wparen_left_1.WParenLeft), (0, combi_1.tok)(wparen_leftw_1.WParenLeftW)), (0, combi_1.starPrio)((0, combi_1.seq)(_1.SQLTarget, ",")), _1.SQLTarget, ")");
6834
7333
  return (0, combi_1.seq)("INTO", intoList);
6835
7334
  }
6836
7335
  }
@@ -24459,6 +24958,7 @@ const source_1 = __webpack_require__(/*! ./source */ "./node_modules/@abaplint/c
24459
24958
  const _object_oriented_1 = __webpack_require__(/*! ../_object_oriented */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_object_oriented.js");
24460
24959
  const method_parameters_1 = __webpack_require__(/*! ./method_parameters */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/method_parameters.js");
24461
24960
  const basic_types_1 = __webpack_require__(/*! ../basic_types */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/basic_types.js");
24961
+ const _type_utils_1 = __webpack_require__(/*! ../_type_utils */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_type_utils.js");
24462
24962
  class NewObject {
24463
24963
  runSyntax(node, scope, targetType, filename) {
24464
24964
  let ret = undefined;
@@ -24540,7 +25040,10 @@ class NewObject {
24540
25040
  if (type === undefined) {
24541
25041
  throw new Error("NewObject, no default importing parameter found for constructor, " + name);
24542
25042
  }
24543
- new source_1.Source().runSyntax(source, scope, filename, type);
25043
+ const sourceType = new source_1.Source().runSyntax(source, scope, filename, type);
25044
+ if (new _type_utils_1.TypeUtils(scope).isAssignableStrict(sourceType, type) === false) {
25045
+ throw new Error(`NEW parameter type not compatible`);
25046
+ }
24544
25047
  }
24545
25048
  else if (parameters) {
24546
25049
  // parameters with names
@@ -24630,7 +25133,12 @@ class ReduceBody {
24630
25133
  scope.push(_scope_type_1.ScopeType.Let, "LET", node.getFirstToken().getStart(), filename);
24631
25134
  scoped = true;
24632
25135
  }
24633
- const found = new inline_field_definition_1.InlineFieldDefinition().runSyntax(i, scope, filename, targetType);
25136
+ let foundType = targetType;
25137
+ const source = i.findDirectExpression(Expressions.Source);
25138
+ if (source) {
25139
+ foundType = new source_1.Source().runSyntax(source, scope, filename, targetType);
25140
+ }
25141
+ const found = new inline_field_definition_1.InlineFieldDefinition().runSyntax(i, scope, filename, foundType);
24634
25142
  if (found && first === undefined) {
24635
25143
  first = found;
24636
25144
  }
@@ -24725,6 +25233,9 @@ class Select {
24725
25233
  const token = node.getFirstToken();
24726
25234
  const from = node.findDirectExpression(Expressions.SQLFrom);
24727
25235
  const dbSources = from ? new sql_from_1.SQLFrom().runSyntax(from, scope, filename) : [];
25236
+ if (dbSources.length === 0) {
25237
+ throw new Error(`Missing FROM`);
25238
+ }
24728
25239
  const fields = this.findFields(node);
24729
25240
  if (fields.length === 0
24730
25241
  && node.findDirectExpression(Expressions.SQLFieldListLoop) === undefined) {
@@ -25516,7 +26027,7 @@ class StringTemplate {
25516
26027
  }
25517
26028
  else if ((typeUtils.isCharLike(type) === false && typeUtils.isHexLike(type) === false)
25518
26029
  || type instanceof basic_1.StructureType) {
25519
- throw new Error("Not character like, " + type.constructor.name);
26030
+ throw new Error("String template, not character like, " + type.constructor.name);
25520
26031
  }
25521
26032
  const format = templateSource.findDirectExpression(Expressions.StringTemplateFormatting);
25522
26033
  const formatConcat = format === null || format === void 0 ? void 0 : format.concatTokens();
@@ -27590,6 +28101,7 @@ const _reference_1 = __webpack_require__(/*! ../_reference */ "./node_modules/@a
27590
28101
  const basic_1 = __webpack_require__(/*! ../../types/basic */ "./node_modules/@abaplint/core/build/src/abap/types/basic/index.js");
27591
28102
  const types_1 = __webpack_require__(/*! ../../types */ "./node_modules/@abaplint/core/build/src/abap/types/index.js");
27592
28103
  const _object_oriented_1 = __webpack_require__(/*! ../_object_oriented */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_object_oriented.js");
28104
+ const _type_utils_1 = __webpack_require__(/*! ../_type_utils */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_type_utils.js");
27593
28105
  class CreateObject {
27594
28106
  runSyntax(node, scope, filename) {
27595
28107
  let cdef = undefined;
@@ -27613,7 +28125,7 @@ class CreateObject {
27613
28125
  }
27614
28126
  }
27615
28127
  // just recurse
27616
- for (const s of node.findAllExpressions(Expressions.Source)) {
28128
+ for (const s of node.findDirectExpressions(Expressions.Source)) {
27617
28129
  new source_1.Source().runSyntax(s, scope, filename);
27618
28130
  }
27619
28131
  let first = true;
@@ -27657,26 +28169,35 @@ class CreateObject {
27657
28169
  for (const t of node.findDirectExpressions(Expressions.Dynamic)) {
27658
28170
  new dynamic_1.Dynamic().runSyntax(t, scope, filename);
27659
28171
  }
27660
- this.validateParameters(cdef, node, scope);
28172
+ this.validateParameters(cdef, node, scope, filename);
27661
28173
  }
27662
- validateParameters(cdef, node, scope) {
27663
- var _a, _b, _c;
28174
+ validateParameters(cdef, node, scope, filename) {
28175
+ var _a, _b, _c, _d;
27664
28176
  if (cdef === undefined) {
28177
+ const sources = (_a = node.findDirectExpression(Expressions.ParameterListS)) === null || _a === void 0 ? void 0 : _a.findAllExpressions(Expressions.Source);
28178
+ for (const s of sources || []) {
28179
+ new source_1.Source().runSyntax(s, scope, filename);
28180
+ }
27665
28181
  return;
27666
28182
  }
27667
28183
  const methodDef = new _object_oriented_1.ObjectOriented(scope).searchMethodName(cdef, "CONSTRUCTOR");
27668
- const methodParameters = (_a = methodDef.method) === null || _a === void 0 ? void 0 : _a.getParameters();
28184
+ const methodParameters = (_b = methodDef.method) === null || _b === void 0 ? void 0 : _b.getParameters();
27669
28185
  const allImporting = (methodParameters === null || methodParameters === void 0 ? void 0 : methodParameters.getImporting()) || [];
27670
28186
  const requiredImporting = new Set(methodParameters === null || methodParameters === void 0 ? void 0 : methodParameters.getRequiredParameters().map(i => i.getName().toUpperCase()));
27671
- // todo, validate types
27672
- for (const p of ((_b = node.findDirectExpression(Expressions.ParameterListS)) === null || _b === void 0 ? void 0 : _b.findAllExpressions(Expressions.ParameterS)) || []) {
27673
- const name = (_c = p.findDirectExpression(Expressions.ParameterName)) === null || _c === void 0 ? void 0 : _c.concatTokens().toUpperCase();
28187
+ for (const p of ((_c = node.findDirectExpression(Expressions.ParameterListS)) === null || _c === void 0 ? void 0 : _c.findAllExpressions(Expressions.ParameterS)) || []) {
28188
+ const name = (_d = p.findDirectExpression(Expressions.ParameterName)) === null || _d === void 0 ? void 0 : _d.concatTokens().toUpperCase();
27674
28189
  if (name === undefined) {
27675
28190
  continue;
27676
28191
  }
27677
- if ((allImporting === null || allImporting === void 0 ? void 0 : allImporting.some(p => p.getName().toUpperCase() === name)) === false) {
28192
+ const source = p.findDirectExpression(Expressions.Source);
28193
+ const sourceType = new source_1.Source().runSyntax(source, scope, filename);
28194
+ const found = allImporting === null || allImporting === void 0 ? void 0 : allImporting.find(p => p.getName().toUpperCase() === name);
28195
+ if (found === undefined) {
27678
28196
  throw new Error(`constructor parameter "${name}" does not exist`);
27679
28197
  }
28198
+ else if (new _type_utils_1.TypeUtils(scope).isAssignableStrict(sourceType, found.getType()) === false) {
28199
+ throw new Error(`constructor parameter "${name}" type not compatible`);
28200
+ }
27680
28201
  requiredImporting.delete(name);
27681
28202
  }
27682
28203
  for (const r of requiredImporting.values()) {
@@ -33051,6 +33572,10 @@ const expression_node_1 = __webpack_require__(/*! ./expression_node */ "./node_m
33051
33572
  const comment_1 = __webpack_require__(/*! ../1_lexer/tokens/comment */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/comment.js");
33052
33573
  const pragma_1 = __webpack_require__(/*! ../1_lexer/tokens/pragma */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/pragma.js");
33053
33574
  const string_1 = __webpack_require__(/*! ../1_lexer/tokens/string */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/string.js");
33575
+ const string_template_middle_1 = __webpack_require__(/*! ../1_lexer/tokens/string_template_middle */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/string_template_middle.js");
33576
+ const string_template_end_1 = __webpack_require__(/*! ../1_lexer/tokens/string_template_end */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/string_template_end.js");
33577
+ const string_template_begin_1 = __webpack_require__(/*! ../1_lexer/tokens/string_template_begin */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/string_template_begin.js");
33578
+ const string_template_1 = __webpack_require__(/*! ../1_lexer/tokens/string_template */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/string_template.js");
33054
33579
  class StatementNode extends _abstract_node_1.AbstractNode {
33055
33580
  constructor(statement, colon, pragmas) {
33056
33581
  super();
@@ -33159,10 +33684,10 @@ class StatementNode extends _abstract_node_1.AbstractNode {
33159
33684
  for (const token of this.getTokens()) {
33160
33685
  if (token instanceof comment_1.Comment
33161
33686
  || token instanceof string_1.StringToken
33162
- || token instanceof string_1.StringTemplate
33163
- || token instanceof string_1.StringTemplateBegin
33164
- || token instanceof string_1.StringTemplateMiddle
33165
- || token instanceof string_1.StringTemplateEnd) {
33687
+ || token instanceof string_template_1.StringTemplate
33688
+ || token instanceof string_template_begin_1.StringTemplateBegin
33689
+ || token instanceof string_template_middle_1.StringTemplateMiddle
33690
+ || token instanceof string_template_end_1.StringTemplateEnd) {
33166
33691
  continue;
33167
33692
  }
33168
33693
  if (str === "") {
@@ -33295,10 +33820,10 @@ class StatementNode extends _abstract_node_1.AbstractNode {
33295
33820
  for (const token of this.getTokens()) {
33296
33821
  if (token instanceof comment_1.Comment
33297
33822
  || token instanceof string_1.StringToken
33298
- || token instanceof string_1.StringTemplate
33299
- || token instanceof string_1.StringTemplateBegin
33300
- || token instanceof string_1.StringTemplateMiddle
33301
- || token instanceof string_1.StringTemplateEnd) {
33823
+ || token instanceof string_template_1.StringTemplate
33824
+ || token instanceof string_template_begin_1.StringTemplateBegin
33825
+ || token instanceof string_template_middle_1.StringTemplateMiddle
33826
+ || token instanceof string_template_end_1.StringTemplateEnd) {
33302
33827
  continue;
33303
33828
  }
33304
33829
  if (prev && token.getStr().toUpperCase() === second && (prev === null || prev === void 0 ? void 0 : prev.getStr().toUpperCase()) === first.toUpperCase()) {
@@ -35557,6 +36082,8 @@ class ClassDefinition extends _identifier_1.Identifier {
35557
36082
  this.testing = concat.includes(" FOR TESTING");
35558
36083
  this.sharedMemory = concat.includes(" SHARED MEMORY ENABLED");
35559
36084
  this.abstract = (cdef === null || cdef === void 0 ? void 0 : cdef.findDirectTokenByText("ABSTRACT")) !== undefined;
36085
+ // perform checks after everything has been initialized
36086
+ this.checkMethodsFromSuperClasses(scope);
35560
36087
  }
35561
36088
  getFriends() {
35562
36089
  return this.friends;
@@ -35609,6 +36136,29 @@ class ClassDefinition extends _identifier_1.Identifier {
35609
36136
  const name = token === null || token === void 0 ? void 0 : token.getStr();
35610
36137
  return name;
35611
36138
  }
36139
+ checkMethodsFromSuperClasses(scope) {
36140
+ var _a;
36141
+ let sup = this.getSuperClass();
36142
+ const names = new Set();
36143
+ while (sup !== undefined) {
36144
+ const cdef = scope.findClassDefinition(sup);
36145
+ for (const m of ((_a = cdef === null || cdef === void 0 ? void 0 : cdef.getMethodDefinitions()) === null || _a === void 0 ? void 0 : _a.getAll()) || []) {
36146
+ if (m.getVisibility() === visibility_1.Visibility.Private) {
36147
+ continue;
36148
+ }
36149
+ else if (m.getName().toUpperCase() === "CONSTRUCTOR") {
36150
+ continue;
36151
+ }
36152
+ names.add(m.getName().toUpperCase());
36153
+ }
36154
+ sup = cdef === null || cdef === void 0 ? void 0 : cdef.getSuperClass();
36155
+ }
36156
+ for (const m of this.getMethodDefinitions().getAll()) {
36157
+ if (names.has(m.getName().toUpperCase()) && m.isRedefinition() === false) {
36158
+ throw new Error(`Method ${m.getName().toUpperCase()} already declared in superclass`);
36159
+ }
36160
+ }
36161
+ }
35612
36162
  findFriends(def, filename, scope) {
35613
36163
  var _a;
35614
36164
  const result = [];
@@ -36005,6 +36555,9 @@ const event_definition_1 = __webpack_require__(/*! ./event_definition */ "./node
36005
36555
  const method_definitions_1 = __webpack_require__(/*! ./method_definitions */ "./node_modules/@abaplint/core/build/src/abap/types/method_definitions.js");
36006
36556
  const aliases_1 = __webpack_require__(/*! ./aliases */ "./node_modules/@abaplint/core/build/src/abap/types/aliases.js");
36007
36557
  const _reference_1 = __webpack_require__(/*! ../5_syntax/_reference */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_reference.js");
36558
+ const class_constant_1 = __webpack_require__(/*! ./class_constant */ "./node_modules/@abaplint/core/build/src/abap/types/class_constant.js");
36559
+ const _typed_identifier_1 = __webpack_require__(/*! ./_typed_identifier */ "./node_modules/@abaplint/core/build/src/abap/types/_typed_identifier.js");
36560
+ const tokens_1 = __webpack_require__(/*! ../1_lexer/tokens */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/index.js");
36008
36561
  class InterfaceDefinition extends _identifier_1.Identifier {
36009
36562
  constructor(node, filename, scope) {
36010
36563
  if (!(node.get() instanceof Structures.Interface)) {
@@ -36017,7 +36570,7 @@ class InterfaceDefinition extends _identifier_1.Identifier {
36017
36570
  this.events = [];
36018
36571
  this.implementing = [];
36019
36572
  scope.push(_scope_type_1.ScopeType.Interface, name.getStr(), node.getFirstToken().getStart(), filename);
36020
- this.parse(scope);
36573
+ this.parse(scope, filename);
36021
36574
  scope.pop(node.getLastToken().getEnd());
36022
36575
  }
36023
36576
  getSuperClass() {
@@ -36048,7 +36601,7 @@ class InterfaceDefinition extends _identifier_1.Identifier {
36048
36601
  return this.methodDefinitions;
36049
36602
  }
36050
36603
  /////////////////
36051
- parse(scope) {
36604
+ parse(scope, filename) {
36052
36605
  var _a;
36053
36606
  // todo, proper sequencing, the statements should be processed line by line
36054
36607
  this.attributes = new class_attributes_1.Attributes(this.node, this.filename, scope);
@@ -36059,9 +36612,18 @@ class InterfaceDefinition extends _identifier_1.Identifier {
36059
36612
  const [objName, fieldName] = a.getComponent().split("~");
36060
36613
  const idef = scope.findInterfaceDefinition(objName);
36061
36614
  if (idef) {
36062
- const found = idef.getTypeDefinitions().getByName(fieldName);
36063
- if (found) {
36064
- scope.addTypeNamed(a.getName(), found);
36615
+ const foundType = idef.getTypeDefinitions().getByName(fieldName);
36616
+ if (foundType) {
36617
+ scope.addTypeNamed(a.getName(), foundType);
36618
+ }
36619
+ else {
36620
+ const foundField = idef.getAttributes().findByName(fieldName);
36621
+ if (foundField && foundField instanceof class_constant_1.ClassConstant) {
36622
+ const token = new tokens_1.Identifier(a.getStart(), a.getName());
36623
+ const id = new _typed_identifier_1.TypedIdentifier(token, filename, foundField.getType());
36624
+ const constant = new class_constant_1.ClassConstant(id, visibility_1.Visibility.Public, foundField.getValue());
36625
+ scope.addIdentifier(constant);
36626
+ }
36065
36627
  }
36066
36628
  }
36067
36629
  }
@@ -39081,10 +39643,17 @@ class AbstractFile {
39081
39643
  return this.filename;
39082
39644
  }
39083
39645
  baseName() {
39084
- const first = this.getFilename().split("\\");
39085
- const base1 = first[first.length - 1];
39086
- const base2 = base1.split("/");
39087
- return base2[base2.length - 1];
39646
+ let name = this.getFilename();
39647
+ let index = name.lastIndexOf("\\");
39648
+ if (index) {
39649
+ index = index + 1;
39650
+ }
39651
+ name = name.substring(index);
39652
+ index = name.lastIndexOf("/");
39653
+ if (index) {
39654
+ index = index + 1;
39655
+ }
39656
+ return name.substring(index);
39088
39657
  }
39089
39658
  getObjectType() {
39090
39659
  var _a;
@@ -39187,8 +39756,8 @@ const _current_scope_1 = __webpack_require__(/*! ./abap/5_syntax/_current_scope
39187
39756
  Object.defineProperty(exports, "CurrentScope", ({ enumerable: true, get: function () { return _current_scope_1.CurrentScope; } }));
39188
39757
  const Objects = __webpack_require__(/*! ./objects */ "./node_modules/@abaplint/core/build/src/objects/index.js");
39189
39758
  exports.Objects = Objects;
39190
- const _token_1 = __webpack_require__(/*! ./abap/1_lexer/tokens/_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/_token.js");
39191
- Object.defineProperty(exports, "Token", ({ enumerable: true, get: function () { return _token_1.Token; } }));
39759
+ const abstract_token_1 = __webpack_require__(/*! ./abap/1_lexer/tokens/abstract_token */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/abstract_token.js");
39760
+ Object.defineProperty(exports, "Token", ({ enumerable: true, get: function () { return abstract_token_1.AbstractToken; } }));
39192
39761
  const Statements = __webpack_require__(/*! ./abap/2_statements/statements */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/index.js");
39193
39762
  exports.Statements = Statements;
39194
39763
  const Expressions = __webpack_require__(/*! ./abap/2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
@@ -39207,7 +39776,8 @@ const Tokens = __webpack_require__(/*! ./abap/1_lexer/tokens */ "./node_modules/
39207
39776
  exports.Tokens = Tokens;
39208
39777
  const position_1 = __webpack_require__(/*! ./position */ "./node_modules/@abaplint/core/build/src/position.js");
39209
39778
  Object.defineProperty(exports, "Position", ({ enumerable: true, get: function () { return position_1.Position; } }));
39210
- Object.defineProperty(exports, "VirtualPosition", ({ enumerable: true, get: function () { return position_1.VirtualPosition; } }));
39779
+ const virtual_position_1 = __webpack_require__(/*! ./virtual_position */ "./node_modules/@abaplint/core/build/src/virtual_position.js");
39780
+ Object.defineProperty(exports, "VirtualPosition", ({ enumerable: true, get: function () { return virtual_position_1.VirtualPosition; } }));
39211
39781
  const _abstract_file_1 = __webpack_require__(/*! ./files/_abstract_file */ "./node_modules/@abaplint/core/build/src/files/_abstract_file.js");
39212
39782
  Object.defineProperty(exports, "AbstractFile", ({ enumerable: true, get: function () { return _abstract_file_1.AbstractFile; } }));
39213
39783
  const pretty_printer_1 = __webpack_require__(/*! ./pretty_printer/pretty_printer */ "./node_modules/@abaplint/core/build/src/pretty_printer/pretty_printer.js");
@@ -39262,6 +39832,7 @@ Object.defineProperty(exports, "CyclomaticComplexityStats", ({ enumerable: true,
39262
39832
  Object.defineProperty(exports, "__esModule", ({ value: true }));
39263
39833
  exports.Issue = void 0;
39264
39834
  const position_1 = __webpack_require__(/*! ./position */ "./node_modules/@abaplint/core/build/src/position.js");
39835
+ const virtual_position_1 = __webpack_require__(/*! ./virtual_position */ "./node_modules/@abaplint/core/build/src/virtual_position.js");
39265
39836
  const severity_1 = __webpack_require__(/*! ./severity */ "./node_modules/@abaplint/core/build/src/severity.js");
39266
39837
  class Issue {
39267
39838
  //////////////////////////
@@ -39347,7 +39918,7 @@ class Issue {
39347
39918
  }
39348
39919
  constructor(data) {
39349
39920
  this.data = data;
39350
- if (this.data.start instanceof position_1.VirtualPosition) {
39921
+ if (this.data.start instanceof virtual_position_1.VirtualPosition) {
39351
39922
  // no quick fixes inside macros
39352
39923
  this.data.fix = undefined;
39353
39924
  }
@@ -41248,6 +41819,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
41248
41819
  exports.SemanticHighlighting = void 0;
41249
41820
  const LServer = __webpack_require__(/*! vscode-languageserver-types */ "./node_modules/vscode-languageserver-types/lib/umd/main.js");
41250
41821
  const position_1 = __webpack_require__(/*! ../position */ "./node_modules/@abaplint/core/build/src/position.js");
41822
+ const virtual_position_1 = __webpack_require__(/*! ../virtual_position */ "./node_modules/@abaplint/core/build/src/virtual_position.js");
41251
41823
  const tokens_1 = __webpack_require__(/*! ../abap/1_lexer/tokens */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/index.js");
41252
41824
  const nodes_1 = __webpack_require__(/*! ../abap/nodes */ "./node_modules/@abaplint/core/build/src/abap/nodes/index.js");
41253
41825
  const Statements = __webpack_require__(/*! ../abap/2_statements/statements */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/index.js");
@@ -41291,7 +41863,7 @@ class SemanticHighlighting {
41291
41863
  const rangeEndPosition = new position_1.Position(range.end.line + 1, range.end.character + 1);
41292
41864
  const tokens = [];
41293
41865
  for (const s of file.getStatements()) {
41294
- if (s.getFirstToken().getStart() instanceof position_1.VirtualPosition) {
41866
+ if (s.getFirstToken().getStart() instanceof virtual_position_1.VirtualPosition) {
41295
41867
  continue;
41296
41868
  }
41297
41869
  else if (s.getFirstToken().getStart().isAfter(rangeEndPosition)) {
@@ -46282,7 +46854,7 @@ const vscode_languageserver_types_1 = __webpack_require__(/*! vscode-languageser
46282
46854
  const __1 = __webpack_require__(/*! ../.. */ "./node_modules/@abaplint/core/build/src/index.js");
46283
46855
  const syntax_1 = __webpack_require__(/*! ../../abap/5_syntax/syntax */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/syntax.js");
46284
46856
  const _scope_type_1 = __webpack_require__(/*! ../../abap/5_syntax/_scope_type */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_scope_type.js");
46285
- const position_1 = __webpack_require__(/*! ../../position */ "./node_modules/@abaplint/core/build/src/position.js");
46857
+ const virtual_position_1 = __webpack_require__(/*! ../../virtual_position */ "./node_modules/@abaplint/core/build/src/virtual_position.js");
46286
46858
  const _abap_object_1 = __webpack_require__(/*! ../_abap_object */ "./node_modules/@abaplint/core/build/src/objects/_abap_object.js");
46287
46859
  class RenamerHelper {
46288
46860
  constructor(reg) {
@@ -46426,7 +46998,7 @@ class RenamerHelper {
46426
46998
  for (const r of node.getData().references) {
46427
46999
  if (((_a = r.resolved) === null || _a === void 0 ? void 0 : _a.equals(identifier))
46428
47000
  && r.referenceType !== __1.ReferenceType.InferredType
46429
- && !(r.position.getStart() instanceof position_1.VirtualPosition)) {
47001
+ && !(r.position.getStart() instanceof virtual_position_1.VirtualPosition)) {
46430
47002
  ret.push(r.position);
46431
47003
  }
46432
47004
  }
@@ -48614,7 +49186,7 @@ exports.ZN0122 = ZN0122;
48614
49186
  "use strict";
48615
49187
 
48616
49188
  Object.defineProperty(exports, "__esModule", ({ value: true }));
48617
- exports.VirtualPosition = exports.Position = void 0;
49189
+ exports.Position = void 0;
48618
49190
  // first position is (1,1)
48619
49191
  class Position {
48620
49192
  constructor(row, col) {
@@ -48641,22 +49213,6 @@ class Position {
48641
49213
  }
48642
49214
  }
48643
49215
  exports.Position = Position;
48644
- /** used for macro calls */
48645
- class VirtualPosition extends Position {
48646
- constructor(virtual, row, col) {
48647
- super(virtual.getRow(), virtual.getCol());
48648
- this.vrow = row;
48649
- this.vcol = col;
48650
- }
48651
- equals(p) {
48652
- if (!(p instanceof VirtualPosition)) {
48653
- return false;
48654
- }
48655
- const casted = p;
48656
- return super.equals(this) && this.vrow === casted.vrow && this.vcol === casted.vcol;
48657
- }
48658
- }
48659
- exports.VirtualPosition = VirtualPosition;
48660
49216
  //# sourceMappingURL=position.js.map
48661
49217
 
48662
49218
  /***/ }),
@@ -48742,7 +49298,7 @@ exports.Indent = void 0;
48742
49298
  const Statements = __webpack_require__(/*! ../abap/2_statements/statements */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/index.js");
48743
49299
  const Expressions = __webpack_require__(/*! ../abap/2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
48744
49300
  const _statement_1 = __webpack_require__(/*! ../abap/2_statements/statements/_statement */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/_statement.js");
48745
- const position_1 = __webpack_require__(/*! ../position */ "./node_modules/@abaplint/core/build/src/position.js");
49301
+ const virtual_position_1 = __webpack_require__(/*! ../virtual_position */ "./node_modules/@abaplint/core/build/src/virtual_position.js");
48746
49302
  // todo, will break if there is multiple statements per line?
48747
49303
  class Indent {
48748
49304
  constructor(options) {
@@ -48754,7 +49310,7 @@ class Indent {
48754
49310
  const expected = this.getExpectedIndents(original);
48755
49311
  const lines = modified.split("\n");
48756
49312
  for (const statement of statements) {
48757
- if (statement.getFirstToken().getStart() instanceof position_1.VirtualPosition) {
49313
+ if (statement.getFirstToken().getStart() instanceof virtual_position_1.VirtualPosition) {
48758
49314
  continue; // macro contents
48759
49315
  }
48760
49316
  const exp = expected.shift();
@@ -48778,7 +49334,7 @@ class Indent {
48778
49334
  let parentIsEvent = false;
48779
49335
  let previousStatement = undefined;
48780
49336
  for (const statement of file.getStatements()) {
48781
- if (statement.getFirstToken().getStart() instanceof position_1.VirtualPosition) {
49337
+ if (statement.getFirstToken().getStart() instanceof virtual_position_1.VirtualPosition) {
48782
49338
  continue; // skip macro contents
48783
49339
  }
48784
49340
  const type = statement.get();
@@ -48980,7 +49536,7 @@ exports.PrettyPrinter = void 0;
48980
49536
  const _statement_1 = __webpack_require__(/*! ../abap/2_statements/statements/_statement */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/_statement.js");
48981
49537
  const fix_keyword_case_1 = __webpack_require__(/*! ./fix_keyword_case */ "./node_modules/@abaplint/core/build/src/pretty_printer/fix_keyword_case.js");
48982
49538
  const indent_1 = __webpack_require__(/*! ./indent */ "./node_modules/@abaplint/core/build/src/pretty_printer/indent.js");
48983
- const position_1 = __webpack_require__(/*! ../position */ "./node_modules/@abaplint/core/build/src/position.js");
49539
+ const virtual_position_1 = __webpack_require__(/*! ../virtual_position */ "./node_modules/@abaplint/core/build/src/virtual_position.js");
48984
49540
  const indentation_1 = __webpack_require__(/*! ../rules/indentation */ "./node_modules/@abaplint/core/build/src/rules/indentation.js");
48985
49541
  class PrettyPrinter {
48986
49542
  constructor(file, config) {
@@ -48999,7 +49555,7 @@ class PrettyPrinter {
48999
49555
  if (statement.get() instanceof _statement_1.Unknown
49000
49556
  || statement.get() instanceof _statement_1.MacroContent
49001
49557
  || statement.get() instanceof _statement_1.MacroCall
49002
- || statement.getFirstToken().getStart() instanceof position_1.VirtualPosition
49558
+ || statement.getFirstToken().getStart() instanceof virtual_position_1.VirtualPosition
49003
49559
  || statement.get() instanceof _statement_1.Comment) {
49004
49560
  continue;
49005
49561
  }
@@ -49091,7 +49647,7 @@ class Registry {
49091
49647
  }
49092
49648
  static abaplintVersion() {
49093
49649
  // magic, see build script "version.sh"
49094
- return "2.102.64";
49650
+ return "2.102.69";
49095
49651
  }
49096
49652
  getDDICReferences() {
49097
49653
  return this.ddicReferences;
@@ -53736,6 +54292,7 @@ const _statement_1 = __webpack_require__(/*! ../abap/2_statements/statements/_st
53736
54292
  const nodes_1 = __webpack_require__(/*! ../abap/nodes */ "./node_modules/@abaplint/core/build/src/abap/nodes/index.js");
53737
54293
  const edit_helper_1 = __webpack_require__(/*! ../edit_helper */ "./node_modules/@abaplint/core/build/src/edit_helper.js");
53738
54294
  const position_1 = __webpack_require__(/*! ../position */ "./node_modules/@abaplint/core/build/src/position.js");
54295
+ const virtual_position_1 = __webpack_require__(/*! ../virtual_position */ "./node_modules/@abaplint/core/build/src/virtual_position.js");
53739
54296
  const _abap_object_1 = __webpack_require__(/*! ../objects/_abap_object */ "./node_modules/@abaplint/core/build/src/objects/_abap_object.js");
53740
54297
  const version_1 = __webpack_require__(/*! ../version */ "./node_modules/@abaplint/core/build/src/version.js");
53741
54298
  const registry_1 = __webpack_require__(/*! ../registry */ "./node_modules/@abaplint/core/build/src/registry.js");
@@ -54048,7 +54605,7 @@ Make sure to test the downported code, it might not always be completely correct
54048
54605
  }
54049
54606
  /** applies one rule at a time, multiple iterations are required to transform complex statements */
54050
54607
  checkStatement(low, high, lowFile, highSyntax, highFile) {
54051
- if (low.getFirstToken().getStart() instanceof position_1.VirtualPosition) {
54608
+ if (low.getFirstToken().getStart() instanceof virtual_position_1.VirtualPosition) {
54052
54609
  return undefined;
54053
54610
  }
54054
54611
  // downport XSDBOOL() early, as it is valid 702 syntax
@@ -57082,7 +57639,7 @@ const _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ "./
57082
57639
  const _irule_1 = __webpack_require__(/*! ./_irule */ "./node_modules/@abaplint/core/build/src/rules/_irule.js");
57083
57640
  const edit_helper_1 = __webpack_require__(/*! ../edit_helper */ "./node_modules/@abaplint/core/build/src/edit_helper.js");
57084
57641
  const _statement_1 = __webpack_require__(/*! ../abap/2_statements/statements/_statement */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/_statement.js");
57085
- const position_1 = __webpack_require__(/*! ../position */ "./node_modules/@abaplint/core/build/src/position.js");
57642
+ const virtual_position_1 = __webpack_require__(/*! ../virtual_position */ "./node_modules/@abaplint/core/build/src/virtual_position.js");
57086
57643
  class ExpandMacrosConf extends _basic_rule_config_1.BasicRuleConfig {
57087
57644
  }
57088
57645
  exports.ExpandMacrosConf = ExpandMacrosConf;
@@ -57126,7 +57683,7 @@ _hello.`,
57126
57683
  let replace = "";
57127
57684
  for (let j = i + 1; j < statements.length; j++) {
57128
57685
  const sub = statements[j];
57129
- if (sub.getFirstToken().getStart() instanceof position_1.VirtualPosition) {
57686
+ if (sub.getFirstToken().getStart() instanceof virtual_position_1.VirtualPosition) {
57130
57687
  if (sub.get() instanceof _statement_1.MacroCall) {
57131
57688
  continue;
57132
57689
  }
@@ -59141,6 +59698,7 @@ const Expressions = __webpack_require__(/*! ../abap/2_statements/expressions */
59141
59698
  const _irule_1 = __webpack_require__(/*! ./_irule */ "./node_modules/@abaplint/core/build/src/rules/_irule.js");
59142
59699
  const ddic_1 = __webpack_require__(/*! ../ddic */ "./node_modules/@abaplint/core/build/src/ddic.js");
59143
59700
  const position_1 = __webpack_require__(/*! ../position */ "./node_modules/@abaplint/core/build/src/position.js");
59701
+ const virtual_position_1 = __webpack_require__(/*! ../virtual_position */ "./node_modules/@abaplint/core/build/src/virtual_position.js");
59144
59702
  const edit_helper_1 = __webpack_require__(/*! ../edit_helper */ "./node_modules/@abaplint/core/build/src/edit_helper.js");
59145
59703
  class IndentationConf extends _basic_rule_config_1.BasicRuleConfig {
59146
59704
  constructor() {
@@ -59202,7 +59760,7 @@ class Indentation extends _abap_rule_1.ABAPRule {
59202
59760
  const ret = [];
59203
59761
  for (const statement of file.getStatements()) {
59204
59762
  const position = statement.getFirstToken().getStart();
59205
- if (position instanceof position_1.VirtualPosition) {
59763
+ if (position instanceof virtual_position_1.VirtualPosition) {
59206
59764
  continue;
59207
59765
  }
59208
59766
  const indent = expected.shift();
@@ -59787,7 +60345,7 @@ const Statements = __webpack_require__(/*! ../abap/2_statements/statements */ ".
59787
60345
  const Expressions = __webpack_require__(/*! ../abap/2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
59788
60346
  const _irule_1 = __webpack_require__(/*! ./_irule */ "./node_modules/@abaplint/core/build/src/rules/_irule.js");
59789
60347
  const ddic_1 = __webpack_require__(/*! ../ddic */ "./node_modules/@abaplint/core/build/src/ddic.js");
59790
- const position_1 = __webpack_require__(/*! ../position */ "./node_modules/@abaplint/core/build/src/position.js");
60348
+ const virtual_position_1 = __webpack_require__(/*! ../virtual_position */ "./node_modules/@abaplint/core/build/src/virtual_position.js");
59791
60349
  const edit_helper_1 = __webpack_require__(/*! ../edit_helper */ "./node_modules/@abaplint/core/build/src/edit_helper.js");
59792
60350
  var KeywordCaseStyle;
59793
60351
  (function (KeywordCaseStyle) {
@@ -59823,7 +60381,7 @@ class Skip {
59823
60381
  if (get instanceof _statement_1.Unknown
59824
60382
  || get instanceof _statement_1.MacroContent
59825
60383
  || get instanceof _statement_1.MacroCall
59826
- || statement.getFirstToken().getStart() instanceof position_1.VirtualPosition
60384
+ || statement.getFirstToken().getStart() instanceof virtual_position_1.VirtualPosition
59827
60385
  || get instanceof _statement_1.Comment) {
59828
60386
  return true;
59829
60387
  }
@@ -60051,7 +60609,7 @@ const _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ "./
60051
60609
  const Expressions = __webpack_require__(/*! ../abap/2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
60052
60610
  const _irule_1 = __webpack_require__(/*! ./_irule */ "./node_modules/@abaplint/core/build/src/rules/_irule.js");
60053
60611
  const edit_helper_1 = __webpack_require__(/*! ../edit_helper */ "./node_modules/@abaplint/core/build/src/edit_helper.js");
60054
- const position_1 = __webpack_require__(/*! ../position */ "./node_modules/@abaplint/core/build/src/position.js");
60612
+ const virtual_position_1 = __webpack_require__(/*! ../virtual_position */ "./node_modules/@abaplint/core/build/src/virtual_position.js");
60055
60613
  class LineBreakMultipleParametersConf extends _basic_rule_config_1.BasicRuleConfig {
60056
60614
  constructor() {
60057
60615
  super(...arguments);
@@ -60089,7 +60647,7 @@ class LineBreakMultipleParameters extends _abap_rule_1.ABAPRule {
60089
60647
  }
60090
60648
  for (const s of file.getStatements()) {
60091
60649
  for (const e of s.findAllExpressions(Expressions.ParameterListS)) {
60092
- if (s.getFirstToken().getStart() instanceof position_1.VirtualPosition) {
60650
+ if (s.getFirstToken().getStart() instanceof virtual_position_1.VirtualPosition) {
60093
60651
  continue; // skip macro content
60094
60652
  }
60095
60653
  const parameters = e.findDirectExpressions(Expressions.ParameterS);
@@ -60854,9 +61412,15 @@ ENDIF.
60854
61412
  }
60855
61413
  if (cond[0].getChildren().length === 1) {
60856
61414
  const message = "Too many parentheses, simple";
60857
- const fixText = sub.getChildren()[1].concatTokens();
60858
- const fix = edit_helper_1.EditHelper.replaceRange(file, sub.getFirstToken().getStart(), sub.getLastToken().getEnd(), fixText);
60859
- const issue = issue_1.Issue.atToken(file, sub.getFirstToken(), message, this.getMetadata().key, this.conf.severity, fix);
61415
+ const children = sub.getChildren();
61416
+ let startToken = sub.getFirstToken();
61417
+ let fixText = sub.getChildren()[1].concatTokens();
61418
+ if (startToken.getStr().toUpperCase() === "NOT") {
61419
+ startToken = children[1].getFirstToken();
61420
+ fixText = sub.getChildren()[2].concatTokens();
61421
+ }
61422
+ const fix = edit_helper_1.EditHelper.replaceRange(file, startToken.getStart(), sub.getLastToken().getEnd(), fixText);
61423
+ const issue = issue_1.Issue.atToken(file, startToken, message, this.getMetadata().key, this.conf.severity, fix);
60860
61424
  issues.push(issue);
60861
61425
  }
60862
61426
  }
@@ -61048,7 +61612,7 @@ const _abap_rule_1 = __webpack_require__(/*! ./_abap_rule */ "./node_modules/@ab
61048
61612
  const _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ "./node_modules/@abaplint/core/build/src/rules/_basic_rule_config.js");
61049
61613
  const edit_helper_1 = __webpack_require__(/*! ../edit_helper */ "./node_modules/@abaplint/core/build/src/edit_helper.js");
61050
61614
  const _irule_1 = __webpack_require__(/*! ./_irule */ "./node_modules/@abaplint/core/build/src/rules/_irule.js");
61051
- const position_1 = __webpack_require__(/*! ../position */ "./node_modules/@abaplint/core/build/src/position.js");
61615
+ const virtual_position_1 = __webpack_require__(/*! ../virtual_position */ "./node_modules/@abaplint/core/build/src/virtual_position.js");
61052
61616
  class MaxOneStatementConf extends _basic_rule_config_1.BasicRuleConfig {
61053
61617
  }
61054
61618
  exports.MaxOneStatementConf = MaxOneStatementConf;
@@ -61094,7 +61658,7 @@ https://docs.abapopenchecks.org/checks/11/`,
61094
61658
  continue;
61095
61659
  }
61096
61660
  const pos = statement.getStart();
61097
- if (pos instanceof position_1.VirtualPosition) {
61661
+ if (pos instanceof virtual_position_1.VirtualPosition) {
61098
61662
  continue;
61099
61663
  }
61100
61664
  const row = pos.getRow();
@@ -66350,6 +66914,7 @@ class SlowParameterPassing {
66350
66914
  key: "slow_parameter_passing",
66351
66915
  title: "Slow Parameter Passing",
66352
66916
  shortDescription: `Detects slow pass by value passing for methods where parameter is not changed`,
66917
+ extendedInformation: `Method parameters defined in interfaces is not checked`,
66353
66918
  tags: [_irule_1.RuleTag.Performance],
66354
66919
  };
66355
66920
  }
@@ -66372,17 +66937,22 @@ class SlowParameterPassing {
66372
66937
  const methods = this.listMethodNodes(top);
66373
66938
  for (const m of methods) {
66374
66939
  const vars = m.getData().vars;
66940
+ if (m.getIdentifier().sname.includes("~")) {
66941
+ // skip methods defined in interfaces
66942
+ // todo: checking for just "~" is not correct, there might be ALIASES
66943
+ continue;
66944
+ }
66375
66945
  for (const v in vars) {
66376
66946
  const id = vars[v];
66377
66947
  if (id.getMeta().includes("pass_by_value" /* IdentifierMeta.PassByValue */) === false) {
66378
66948
  continue;
66379
66949
  }
66950
+ else if (this.reg.isFileDependency(id.getFilename()) === true) {
66951
+ continue;
66952
+ }
66380
66953
  const writes = this.listWritePositions(m, id);
66381
66954
  if (writes.length === 0) {
66382
66955
  const message = "Parameter " + id.getName() + " passed by VALUE but not changed";
66383
- if (this.reg.isFileDependency(id.getFilename()) === true) {
66384
- continue;
66385
- }
66386
66956
  issues.push(issue_1.Issue.atIdentifier(id, message, this.getMetadata().key, this.getConfig().severity));
66387
66957
  }
66388
66958
  }
@@ -69136,6 +69706,14 @@ Errors found in INCLUDES are reported for the main program.`,
69136
69706
  tags: [_irule_1.RuleTag.Quickfix],
69137
69707
  pragma: "##NEEDED",
69138
69708
  pseudoComment: "EC NEEDED",
69709
+ badExample: `DATA: BEGIN OF blah1,
69710
+ test TYPE string,
69711
+ test2 TYPE string,
69712
+ END OF blah1.`,
69713
+ goodExample: `DATA: BEGIN OF blah2 ##NEEDED,
69714
+ test TYPE string,
69715
+ test2 TYPE string,
69716
+ END OF blah2.`,
69139
69717
  };
69140
69718
  }
69141
69719
  getConfig() {
@@ -70765,6 +71343,37 @@ exports.getPreviousVersion = getPreviousVersion;
70765
71343
 
70766
71344
  /***/ }),
70767
71345
 
71346
+ /***/ "./node_modules/@abaplint/core/build/src/virtual_position.js":
71347
+ /*!*******************************************************************!*\
71348
+ !*** ./node_modules/@abaplint/core/build/src/virtual_position.js ***!
71349
+ \*******************************************************************/
71350
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
71351
+
71352
+ "use strict";
71353
+
71354
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
71355
+ exports.VirtualPosition = void 0;
71356
+ const position_1 = __webpack_require__(/*! ./position */ "./node_modules/@abaplint/core/build/src/position.js");
71357
+ /** used for macro calls */
71358
+ class VirtualPosition extends position_1.Position {
71359
+ constructor(virtual, row, col) {
71360
+ super(virtual.getRow(), virtual.getCol());
71361
+ this.vrow = row;
71362
+ this.vcol = col;
71363
+ }
71364
+ equals(p) {
71365
+ if (!(p instanceof VirtualPosition)) {
71366
+ return false;
71367
+ }
71368
+ const casted = p;
71369
+ return super.equals(this) && this.vrow === casted.vrow && this.vcol === casted.vcol;
71370
+ }
71371
+ }
71372
+ exports.VirtualPosition = VirtualPosition;
71373
+ //# sourceMappingURL=virtual_position.js.map
71374
+
71375
+ /***/ }),
71376
+
70768
71377
  /***/ "./node_modules/@abaplint/core/build/src/xml_utils.js":
70769
71378
  /*!************************************************************!*\
70770
71379
  !*** ./node_modules/@abaplint/core/build/src/xml_utils.js ***!
@@ -81700,7 +82309,7 @@ class InterfaceTranspiler {
81700
82309
  ret += traversal.registerClassOrInterface(def);
81701
82310
  }
81702
82311
  }
81703
- ret += this.buildConstants(node.findFirstExpression(abaplint.Expressions.InterfaceName), traversal);
82312
+ ret += this.buildConstants(node.findFirstExpression(abaplint.Expressions.InterfaceName), traversal, def);
81704
82313
  ret += this.buildTypes(def);
81705
82314
  return new chunk_1.Chunk(ret);
81706
82315
  }
@@ -81715,7 +82324,7 @@ class InterfaceTranspiler {
81715
82324
  }
81716
82325
  return ret;
81717
82326
  }
81718
- buildConstants(node, traversal) {
82327
+ buildConstants(node, traversal, idef) {
81719
82328
  if (node === undefined) {
81720
82329
  return "";
81721
82330
  }
@@ -81734,6 +82343,11 @@ class InterfaceTranspiler {
81734
82343
  const interfaceName = traversal_1.Traversal.escapeNamespace(node.getFirstToken().getStr().toLowerCase());
81735
82344
  const name = interfaceName + "." + interfaceName + "$" + n.toLowerCase();
81736
82345
  ret += name + " = " + new transpile_types_1.TranspileTypes().toType(identifier.getType()) + ";\n";
82346
+ const alias = idef === null || idef === void 0 ? void 0 : idef.getAliases().getAll().find(a => a.getName().toUpperCase() === n.toUpperCase());
82347
+ if (alias) {
82348
+ // todo: this is an evil workaround, should be fixed in abaplint instead
82349
+ ret += interfaceName + "." + alias.getComponent().split("~")[0].toLowerCase() + "$" + n.toLowerCase() + " = " + name + ";\n";
82350
+ }
81737
82351
  const constantStatement = traversal.findStatementInFile(identifier.getStart());
81738
82352
  const valExpression = constantStatement === null || constantStatement === void 0 ? void 0 : constantStatement.findFirstExpression(abaplint.Expressions.Value);
81739
82353
  if ((valExpression === null || valExpression === void 0 ? void 0 : valExpression.getChildren()[1].get()) instanceof abaplint.Expressions.SimpleFieldChain) {