@abaplint/cli 2.119.35 → 2.119.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cli.js +470 -67
- package/package.json +2 -2
package/build/cli.js
CHANGED
|
@@ -213,6 +213,15 @@ class Lexer {
|
|
|
213
213
|
}
|
|
214
214
|
}
|
|
215
215
|
}
|
|
216
|
+
if (tok === undefined && this.m === ModeNormal && s.charAt(0) === "\\") {
|
|
217
|
+
const adj = this.stream.nextChar() === "" ? 1 : 0;
|
|
218
|
+
const prevOffset = this.stream.getOffset() - s.length - adj;
|
|
219
|
+
const prevChar = prevOffset >= 0 ? this.stream.getRaw().substr(prevOffset, 1) : "";
|
|
220
|
+
const whiteBeforeBackslash = prevChar === " " || prevChar === "\n" || prevChar === "\t" || prevChar === ":";
|
|
221
|
+
if (!whiteBeforeBackslash) {
|
|
222
|
+
tok = new tokens_1.AssociationName(pos, s);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
216
225
|
if (tok === undefined) {
|
|
217
226
|
tok = new tokens_1.Identifier(pos, s);
|
|
218
227
|
}
|
|
@@ -234,6 +243,7 @@ class Lexer {
|
|
|
234
243
|
splits[")"] = true;
|
|
235
244
|
splits["["] = true;
|
|
236
245
|
splits["]"] = true;
|
|
246
|
+
splits["\\"] = true;
|
|
237
247
|
splits["\t"] = true;
|
|
238
248
|
splits["\n"] = true;
|
|
239
249
|
const bufs = {};
|
|
@@ -532,6 +542,24 @@ exports.AbstractToken = AbstractToken;
|
|
|
532
542
|
|
|
533
543
|
/***/ },
|
|
534
544
|
|
|
545
|
+
/***/ "../core/build/src/abap/1_lexer/tokens/association_name.js"
|
|
546
|
+
/*!*****************************************************************!*\
|
|
547
|
+
!*** ../core/build/src/abap/1_lexer/tokens/association_name.js ***!
|
|
548
|
+
\*****************************************************************/
|
|
549
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
550
|
+
|
|
551
|
+
"use strict";
|
|
552
|
+
|
|
553
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
554
|
+
exports.AssociationName = void 0;
|
|
555
|
+
const abstract_token_1 = __webpack_require__(/*! ./abstract_token */ "../core/build/src/abap/1_lexer/tokens/abstract_token.js");
|
|
556
|
+
class AssociationName extends abstract_token_1.AbstractToken {
|
|
557
|
+
}
|
|
558
|
+
exports.AssociationName = AssociationName;
|
|
559
|
+
//# sourceMappingURL=association_name.js.map
|
|
560
|
+
|
|
561
|
+
/***/ },
|
|
562
|
+
|
|
535
563
|
/***/ "../core/build/src/abap/1_lexer/tokens/at.js"
|
|
536
564
|
/*!***************************************************!*\
|
|
537
565
|
!*** ../core/build/src/abap/1_lexer/tokens/at.js ***!
|
|
@@ -821,6 +849,7 @@ __exportStar(__webpack_require__(/*! ./string_template_middle */ "../core/build/
|
|
|
821
849
|
__exportStar(__webpack_require__(/*! ./colon */ "../core/build/src/abap/1_lexer/tokens/colon.js"), exports);
|
|
822
850
|
__exportStar(__webpack_require__(/*! ./comment */ "../core/build/src/abap/1_lexer/tokens/comment.js"), exports);
|
|
823
851
|
__exportStar(__webpack_require__(/*! ./identifier */ "../core/build/src/abap/1_lexer/tokens/identifier.js"), exports);
|
|
852
|
+
__exportStar(__webpack_require__(/*! ./association_name */ "../core/build/src/abap/1_lexer/tokens/association_name.js"), exports);
|
|
824
853
|
__exportStar(__webpack_require__(/*! ./pragma */ "../core/build/src/abap/1_lexer/tokens/pragma.js"), exports);
|
|
825
854
|
__exportStar(__webpack_require__(/*! ./punctuation */ "../core/build/src/abap/1_lexer/tokens/punctuation.js"), exports);
|
|
826
855
|
//# sourceMappingURL=index.js.map
|
|
@@ -1595,11 +1624,17 @@ function containsAggregation(children) {
|
|
|
1595
1624
|
continue;
|
|
1596
1625
|
}
|
|
1597
1626
|
if (child.get() instanceof Expressions.SQLAggregation) {
|
|
1598
|
-
|
|
1627
|
+
if (child.findDirectExpression(Expressions.SQLOver) === undefined) {
|
|
1628
|
+
return true;
|
|
1629
|
+
}
|
|
1630
|
+
continue;
|
|
1599
1631
|
}
|
|
1600
1632
|
if (child.get() instanceof Expressions.SQLSetOpGroup) {
|
|
1601
1633
|
continue;
|
|
1602
1634
|
}
|
|
1635
|
+
if (child.get() instanceof Expressions.SQLFrom) {
|
|
1636
|
+
continue;
|
|
1637
|
+
}
|
|
1603
1638
|
if (containsAggregation(child.getChildren())) {
|
|
1604
1639
|
return true;
|
|
1605
1640
|
}
|
|
@@ -3233,27 +3268,6 @@ exports.AssignSource = AssignSource;
|
|
|
3233
3268
|
|
|
3234
3269
|
/***/ },
|
|
3235
3270
|
|
|
3236
|
-
/***/ "../core/build/src/abap/2_statements/expressions/association_name.js"
|
|
3237
|
-
/*!***************************************************************************!*\
|
|
3238
|
-
!*** ../core/build/src/abap/2_statements/expressions/association_name.js ***!
|
|
3239
|
-
\***************************************************************************/
|
|
3240
|
-
(__unused_webpack_module, exports, __webpack_require__) {
|
|
3241
|
-
|
|
3242
|
-
"use strict";
|
|
3243
|
-
|
|
3244
|
-
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
3245
|
-
exports.AssociationName = void 0;
|
|
3246
|
-
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
3247
|
-
class AssociationName extends combi_1.Expression {
|
|
3248
|
-
getRunnable() {
|
|
3249
|
-
return (0, combi_1.regex)(/^(\\_[\w]+)+$/);
|
|
3250
|
-
}
|
|
3251
|
-
}
|
|
3252
|
-
exports.AssociationName = AssociationName;
|
|
3253
|
-
//# sourceMappingURL=association_name.js.map
|
|
3254
|
-
|
|
3255
|
-
/***/ },
|
|
3256
|
-
|
|
3257
3271
|
/***/ "../core/build/src/abap/2_statements/expressions/attribute_chain.js"
|
|
3258
3272
|
/*!**************************************************************************!*\
|
|
3259
3273
|
!*** ../core/build/src/abap/2_statements/expressions/attribute_chain.js ***!
|
|
@@ -4294,6 +4308,28 @@ exports.Dynamic = Dynamic;
|
|
|
4294
4308
|
|
|
4295
4309
|
/***/ },
|
|
4296
4310
|
|
|
4311
|
+
/***/ "../core/build/src/abap/2_statements/expressions/eml_entity_path.js"
|
|
4312
|
+
/*!**************************************************************************!*\
|
|
4313
|
+
!*** ../core/build/src/abap/2_statements/expressions/eml_entity_path.js ***!
|
|
4314
|
+
\**************************************************************************/
|
|
4315
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
4316
|
+
|
|
4317
|
+
"use strict";
|
|
4318
|
+
|
|
4319
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
4320
|
+
exports.EMLEntityPath = void 0;
|
|
4321
|
+
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
4322
|
+
const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
|
|
4323
|
+
class EMLEntityPath extends combi_1.Expression {
|
|
4324
|
+
getRunnable() {
|
|
4325
|
+
return (0, combi_1.plusPrio)((0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.AssociationName), (0, combi_1.regex)(/^\\[\w]+$/)));
|
|
4326
|
+
}
|
|
4327
|
+
}
|
|
4328
|
+
exports.EMLEntityPath = EMLEntityPath;
|
|
4329
|
+
//# sourceMappingURL=eml_entity_path.js.map
|
|
4330
|
+
|
|
4331
|
+
/***/ },
|
|
4332
|
+
|
|
4297
4333
|
/***/ "../core/build/src/abap/2_statements/expressions/entity_association.js"
|
|
4298
4334
|
/*!*****************************************************************************!*\
|
|
4299
4335
|
!*** ../core/build/src/abap/2_statements/expressions/entity_association.js ***!
|
|
@@ -4305,9 +4341,10 @@ exports.Dynamic = Dynamic;
|
|
|
4305
4341
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
4306
4342
|
exports.EntityAssociation = void 0;
|
|
4307
4343
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
4344
|
+
const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
|
|
4308
4345
|
class EntityAssociation extends combi_1.Expression {
|
|
4309
4346
|
getRunnable() {
|
|
4310
|
-
return (0, combi_1.regex)(/^[\/\w]
|
|
4347
|
+
return (0, combi_1.seq)((0, combi_1.regex)(/^[\/\w]+$/), (0, combi_1.plusPrio)((0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.AssociationName), (0, combi_1.regex)(/^\\[\w]+$/))));
|
|
4311
4348
|
}
|
|
4312
4349
|
}
|
|
4313
4350
|
exports.EntityAssociation = EntityAssociation;
|
|
@@ -5049,7 +5086,7 @@ __exportStar(__webpack_require__(/*! ./arith_operator */ "../core/build/src/abap
|
|
|
5049
5086
|
__exportStar(__webpack_require__(/*! ./arrow_or_dash */ "../core/build/src/abap/2_statements/expressions/arrow_or_dash.js"), exports);
|
|
5050
5087
|
__exportStar(__webpack_require__(/*! ./arrow */ "../core/build/src/abap/2_statements/expressions/arrow.js"), exports);
|
|
5051
5088
|
__exportStar(__webpack_require__(/*! ./assign_source */ "../core/build/src/abap/2_statements/expressions/assign_source.js"), exports);
|
|
5052
|
-
__exportStar(__webpack_require__(/*! ./
|
|
5089
|
+
__exportStar(__webpack_require__(/*! ./eml_entity_path */ "../core/build/src/abap/2_statements/expressions/eml_entity_path.js"), exports);
|
|
5053
5090
|
__exportStar(__webpack_require__(/*! ./attribute_chain */ "../core/build/src/abap/2_statements/expressions/attribute_chain.js"), exports);
|
|
5054
5091
|
__exportStar(__webpack_require__(/*! ./attribute_name */ "../core/build/src/abap/2_statements/expressions/attribute_name.js"), exports);
|
|
5055
5092
|
__exportStar(__webpack_require__(/*! ./behavior_definition_name */ "../core/build/src/abap/2_statements/expressions/behavior_definition_name.js"), exports);
|
|
@@ -5188,6 +5225,11 @@ __exportStar(__webpack_require__(/*! ./reduce_body */ "../core/build/src/abap/2_
|
|
|
5188
5225
|
__exportStar(__webpack_require__(/*! ./reduce_next */ "../core/build/src/abap/2_statements/expressions/reduce_next.js"), exports);
|
|
5189
5226
|
__exportStar(__webpack_require__(/*! ./report_name */ "../core/build/src/abap/2_statements/expressions/report_name.js"), exports);
|
|
5190
5227
|
__exportStar(__webpack_require__(/*! ./select_cte */ "../core/build/src/abap/2_statements/expressions/select_cte.js"), exports);
|
|
5228
|
+
__exportStar(__webpack_require__(/*! ./sql_cte_associations */ "../core/build/src/abap/2_statements/expressions/sql_cte_associations.js"), exports);
|
|
5229
|
+
__exportStar(__webpack_require__(/*! ./sql_cte_hierarchy */ "../core/build/src/abap/2_statements/expressions/sql_cte_hierarchy.js"), exports);
|
|
5230
|
+
__exportStar(__webpack_require__(/*! ./sql_hierarchy_source */ "../core/build/src/abap/2_statements/expressions/sql_hierarchy_source.js"), exports);
|
|
5231
|
+
__exportStar(__webpack_require__(/*! ./sql_hierarchy_accessor */ "../core/build/src/abap/2_statements/expressions/sql_hierarchy_accessor.js"), exports);
|
|
5232
|
+
__exportStar(__webpack_require__(/*! ./sql_hierarchy_aggregate */ "../core/build/src/abap/2_statements/expressions/sql_hierarchy_aggregate.js"), exports);
|
|
5191
5233
|
__exportStar(__webpack_require__(/*! ./select */ "../core/build/src/abap/2_statements/expressions/select.js"), exports);
|
|
5192
5234
|
__exportStar(__webpack_require__(/*! ./simple_field_chain */ "../core/build/src/abap/2_statements/expressions/simple_field_chain.js"), exports);
|
|
5193
5235
|
__exportStar(__webpack_require__(/*! ./simple_field_chain2 */ "../core/build/src/abap/2_statements/expressions/simple_field_chain2.js"), exports);
|
|
@@ -5202,6 +5244,9 @@ __exportStar(__webpack_require__(/*! ./source_field_symbol */ "../core/build/src
|
|
|
5202
5244
|
__exportStar(__webpack_require__(/*! ./source_field */ "../core/build/src/abap/2_statements/expressions/source_field.js"), exports);
|
|
5203
5245
|
__exportStar(__webpack_require__(/*! ./source */ "../core/build/src/abap/2_statements/expressions/source.js"), exports);
|
|
5204
5246
|
__exportStar(__webpack_require__(/*! ./sql_aggregation */ "../core/build/src/abap/2_statements/expressions/sql_aggregation.js"), exports);
|
|
5247
|
+
__exportStar(__webpack_require__(/*! ./sql_association_entry */ "../core/build/src/abap/2_statements/expressions/sql_association_entry.js"), exports);
|
|
5248
|
+
__exportStar(__webpack_require__(/*! ./sql_associations_list */ "../core/build/src/abap/2_statements/expressions/sql_associations_list.js"), exports);
|
|
5249
|
+
__exportStar(__webpack_require__(/*! ./sql_path_segment */ "../core/build/src/abap/2_statements/expressions/sql_path_segment.js"), exports);
|
|
5205
5250
|
__exportStar(__webpack_require__(/*! ./sql_alias_field */ "../core/build/src/abap/2_statements/expressions/sql_alias_field.js"), exports);
|
|
5206
5251
|
__exportStar(__webpack_require__(/*! ./sql_arithmetic_operator */ "../core/build/src/abap/2_statements/expressions/sql_arithmetic_operator.js"), exports);
|
|
5207
5252
|
__exportStar(__webpack_require__(/*! ./sql_arithmetics */ "../core/build/src/abap/2_statements/expressions/sql_arithmetics.js"), exports);
|
|
@@ -5240,7 +5285,10 @@ __exportStar(__webpack_require__(/*! ./sql_package_size */ "../core/build/src/ab
|
|
|
5240
5285
|
__exportStar(__webpack_require__(/*! ./sql_order_by */ "../core/build/src/abap/2_statements/expressions/sql_order_by.js"), exports);
|
|
5241
5286
|
__exportStar(__webpack_require__(/*! ./sql_over */ "../core/build/src/abap/2_statements/expressions/sql_over.js"), exports);
|
|
5242
5287
|
__exportStar(__webpack_require__(/*! ./sql_over */ "../core/build/src/abap/2_statements/expressions/sql_over.js"), exports);
|
|
5243
|
-
__exportStar(__webpack_require__(/*! ./
|
|
5288
|
+
__exportStar(__webpack_require__(/*! ./sql_path_cardinality */ "../core/build/src/abap/2_statements/expressions/sql_path_cardinality.js"), exports);
|
|
5289
|
+
__exportStar(__webpack_require__(/*! ./sql_path_for_column */ "../core/build/src/abap/2_statements/expressions/sql_path_for_column.js"), exports);
|
|
5290
|
+
__exportStar(__webpack_require__(/*! ./sql_path_for_entity */ "../core/build/src/abap/2_statements/expressions/sql_path_for_entity.js"), exports);
|
|
5291
|
+
__exportStar(__webpack_require__(/*! ./sql_path_join_type */ "../core/build/src/abap/2_statements/expressions/sql_path_join_type.js"), exports);
|
|
5244
5292
|
__exportStar(__webpack_require__(/*! ./sql_privileged_access */ "../core/build/src/abap/2_statements/expressions/sql_privileged_access.js"), exports);
|
|
5245
5293
|
__exportStar(__webpack_require__(/*! ./sql_set_op */ "../core/build/src/abap/2_statements/expressions/sql_set_op.js"), exports);
|
|
5246
5294
|
__exportStar(__webpack_require__(/*! ./sql_set_op_group */ "../core/build/src/abap/2_statements/expressions/sql_set_op_group.js"), exports);
|
|
@@ -7441,6 +7489,58 @@ exports.SQLAsName = SQLAsName;
|
|
|
7441
7489
|
|
|
7442
7490
|
/***/ },
|
|
7443
7491
|
|
|
7492
|
+
/***/ "../core/build/src/abap/2_statements/expressions/sql_association_entry.js"
|
|
7493
|
+
/*!********************************************************************************!*\
|
|
7494
|
+
!*** ../core/build/src/abap/2_statements/expressions/sql_association_entry.js ***!
|
|
7495
|
+
\********************************************************************************/
|
|
7496
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
7497
|
+
|
|
7498
|
+
"use strict";
|
|
7499
|
+
|
|
7500
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
7501
|
+
exports.SQLAssociationEntry = void 0;
|
|
7502
|
+
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
7503
|
+
const sql_as_name_1 = __webpack_require__(/*! ./sql_as_name */ "../core/build/src/abap/2_statements/expressions/sql_as_name.js");
|
|
7504
|
+
const sql_path_for_entity_1 = __webpack_require__(/*! ./sql_path_for_entity */ "../core/build/src/abap/2_statements/expressions/sql_path_for_entity.js");
|
|
7505
|
+
const with_name_1 = __webpack_require__(/*! ./with_name */ "../core/build/src/abap/2_statements/expressions/with_name.js");
|
|
7506
|
+
const database_table_1 = __webpack_require__(/*! ./database_table */ "../core/build/src/abap/2_statements/expressions/database_table.js");
|
|
7507
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
7508
|
+
class SQLAssociationEntry extends combi_1.Expression {
|
|
7509
|
+
getRunnable() {
|
|
7510
|
+
const alias = (0, combi_1.seq)("AS", sql_as_name_1.SQLAsName);
|
|
7511
|
+
const redirected = (0, combi_1.seq)("REDIRECTED TO", with_name_1.WithName, "VIA", database_table_1.DatabaseTable);
|
|
7512
|
+
return (0, combi_1.ver)(version_1.Version.v751, (0, combi_1.seq)(new sql_path_for_entity_1.SQLPathForEntity(), (0, combi_1.optPrio)(alias), (0, combi_1.optPrio)(redirected)));
|
|
7513
|
+
}
|
|
7514
|
+
}
|
|
7515
|
+
exports.SQLAssociationEntry = SQLAssociationEntry;
|
|
7516
|
+
//# sourceMappingURL=sql_association_entry.js.map
|
|
7517
|
+
|
|
7518
|
+
/***/ },
|
|
7519
|
+
|
|
7520
|
+
/***/ "../core/build/src/abap/2_statements/expressions/sql_associations_list.js"
|
|
7521
|
+
/*!********************************************************************************!*\
|
|
7522
|
+
!*** ../core/build/src/abap/2_statements/expressions/sql_associations_list.js ***!
|
|
7523
|
+
\********************************************************************************/
|
|
7524
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
7525
|
+
|
|
7526
|
+
"use strict";
|
|
7527
|
+
|
|
7528
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
7529
|
+
exports.SQLAssociationsList = void 0;
|
|
7530
|
+
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
7531
|
+
const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
|
|
7532
|
+
const sql_association_entry_1 = __webpack_require__(/*! ./sql_association_entry */ "../core/build/src/abap/2_statements/expressions/sql_association_entry.js");
|
|
7533
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
7534
|
+
class SQLAssociationsList extends combi_1.Expression {
|
|
7535
|
+
getRunnable() {
|
|
7536
|
+
return (0, combi_1.ver)(version_1.Version.v751, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), new sql_association_entry_1.SQLAssociationEntry(), (0, combi_1.star)((0, combi_1.seq)(",", new sql_association_entry_1.SQLAssociationEntry())), (0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
7537
|
+
}
|
|
7538
|
+
}
|
|
7539
|
+
exports.SQLAssociationsList = SQLAssociationsList;
|
|
7540
|
+
//# sourceMappingURL=sql_associations_list.js.map
|
|
7541
|
+
|
|
7542
|
+
/***/ },
|
|
7543
|
+
|
|
7444
7544
|
/***/ "../core/build/src/abap/2_statements/expressions/sql_bypassing_buffer.js"
|
|
7445
7545
|
/*!*******************************************************************************!*\
|
|
7446
7546
|
!*** ../core/build/src/abap/2_statements/expressions/sql_bypassing_buffer.js ***!
|
|
@@ -7483,7 +7583,7 @@ const sql_source_1 = __webpack_require__(/*! ./sql_source */ "../core/build/src/
|
|
|
7483
7583
|
class SQLCase extends combi_1.Expression {
|
|
7484
7584
|
getRunnable() {
|
|
7485
7585
|
const abap = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WAt), _1.SimpleFieldChain2);
|
|
7486
|
-
const field = (0, combi_1.altPrio)(_1.SQLAggregation, SQLCase, _1.SQLFunction, _1.
|
|
7586
|
+
const field = (0, combi_1.altPrio)(_1.SQLAggregation, SQLCase, _1.SQLFunction, _1.SQLPathForColumn, sql_field_name_1.SQLFieldName, constant_1.Constant);
|
|
7487
7587
|
const sub = (0, combi_1.seq)((0, combi_1.altPrio)("+", "-", "*", "/", "&&"), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenLeftW)), field, (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
7488
7588
|
const source = (0, combi_1.altPrio)(SQLCase, _1.SQLAggregation, _1.SQLFunction, sql_field_name_1.SQLFieldName, sql_source_1.SQLSource, constant_1.Constant);
|
|
7489
7589
|
const parenSource = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), source, (0, combi_1.tok)(tokens_1.WParenRightW));
|
|
@@ -7515,7 +7615,7 @@ const field_chain_1 = __webpack_require__(/*! ./field_chain */ "../core/build/sr
|
|
|
7515
7615
|
class SQLCDSParameters extends combi_1.Expression {
|
|
7516
7616
|
getRunnable() {
|
|
7517
7617
|
const param = (0, combi_1.seq)(_1.Field, "=", (0, combi_1.alt)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.WAt), field_chain_1.FieldChain), _1.Constant));
|
|
7518
|
-
return (0, combi_1.seq)(
|
|
7618
|
+
return (0, combi_1.seq)((0, combi_1.alt)((0, combi_1.tok)(tokens_1.ParenLeft), (0, combi_1.tok)(tokens_1.ParenLeftW)), param, (0, combi_1.starPrio)((0, combi_1.seq)(",", param)), (0, combi_1.alt)((0, combi_1.tok)(tokens_1.WParenRightW), (0, combi_1.tok)(tokens_1.WParenRight)));
|
|
7519
7619
|
}
|
|
7520
7620
|
}
|
|
7521
7621
|
exports.SQLCDSParameters = SQLCDSParameters;
|
|
@@ -7579,7 +7679,9 @@ class SQLCompare extends combi_1.Expression {
|
|
|
7579
7679
|
const arith = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.plusPrio)((0, combi_1.seq)((0, combi_1.altPrio)("+", "-", "*", "/"), _1.SQLFieldName)), version_1.Version.OpenABAP);
|
|
7580
7680
|
const paren = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.ParenLeftW), _1.Source, (0, combi_1.tok)(tokens_1.WParenRightW));
|
|
7581
7681
|
const at = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WAt), (0, combi_1.altPrio)(_1.SimpleSource3, paren)), version_1.Version.OpenABAP);
|
|
7582
|
-
const
|
|
7682
|
+
const lhs = (0, combi_1.altPrio)(_1.SQLCase, _1.SQLAggregation, _1.SQLFunction, _1.ConstantString, (0, combi_1.seq)((0, combi_1.altPrio)(_1.SQLPathForColumn, _1.SQLFieldName), (0, combi_1.optPrio)(arith)), at);
|
|
7683
|
+
const rhs = (0, combi_1.altPrio)((0, combi_1.seq)(_1.SQLCompareOperator, (0, combi_1.altPrio)(sub, _1.SQLCase, _1.SQLAggregation, _1.SQLFunction, (0, combi_1.seq)(source, (0, combi_1.optPrio)(arith)))), (0, combi_1.seq)((0, combi_1.optPrio)("NOT"), (0, combi_1.altPrio)(_1.SQLIn, like, between)), nul);
|
|
7684
|
+
const rett = (0, combi_1.seq)(lhs, rhs);
|
|
7583
7685
|
const exists = (0, combi_1.seq)("EXISTS", (0, combi_1.altPrio)(subSelect, simpleSubSelect));
|
|
7584
7686
|
return (0, combi_1.altPrio)(exists, _1.Dynamic, rett);
|
|
7585
7687
|
}
|
|
@@ -7638,6 +7740,54 @@ exports.SQLCond = SQLCond;
|
|
|
7638
7740
|
|
|
7639
7741
|
/***/ },
|
|
7640
7742
|
|
|
7743
|
+
/***/ "../core/build/src/abap/2_statements/expressions/sql_cte_associations.js"
|
|
7744
|
+
/*!*******************************************************************************!*\
|
|
7745
|
+
!*** ../core/build/src/abap/2_statements/expressions/sql_cte_associations.js ***!
|
|
7746
|
+
\*******************************************************************************/
|
|
7747
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
7748
|
+
|
|
7749
|
+
"use strict";
|
|
7750
|
+
|
|
7751
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
7752
|
+
exports.SQLCTEAssociations = void 0;
|
|
7753
|
+
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
7754
|
+
const sql_associations_list_1 = __webpack_require__(/*! ./sql_associations_list */ "../core/build/src/abap/2_statements/expressions/sql_associations_list.js");
|
|
7755
|
+
const dynamic_1 = __webpack_require__(/*! ./dynamic */ "../core/build/src/abap/2_statements/expressions/dynamic.js");
|
|
7756
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
7757
|
+
class SQLCTEAssociations extends combi_1.Expression {
|
|
7758
|
+
getRunnable() {
|
|
7759
|
+
return (0, combi_1.ver)(version_1.Version.v751, (0, combi_1.seq)("ASSOCIATIONS", (0, combi_1.altPrio)(new sql_associations_list_1.SQLAssociationsList(), dynamic_1.Dynamic)));
|
|
7760
|
+
}
|
|
7761
|
+
}
|
|
7762
|
+
exports.SQLCTEAssociations = SQLCTEAssociations;
|
|
7763
|
+
//# sourceMappingURL=sql_cte_associations.js.map
|
|
7764
|
+
|
|
7765
|
+
/***/ },
|
|
7766
|
+
|
|
7767
|
+
/***/ "../core/build/src/abap/2_statements/expressions/sql_cte_hierarchy.js"
|
|
7768
|
+
/*!****************************************************************************!*\
|
|
7769
|
+
!*** ../core/build/src/abap/2_statements/expressions/sql_cte_hierarchy.js ***!
|
|
7770
|
+
\****************************************************************************/
|
|
7771
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
7772
|
+
|
|
7773
|
+
"use strict";
|
|
7774
|
+
|
|
7775
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
7776
|
+
exports.SQLCTEHierarchy = void 0;
|
|
7777
|
+
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
7778
|
+
const sql_as_name_1 = __webpack_require__(/*! ./sql_as_name */ "../core/build/src/abap/2_statements/expressions/sql_as_name.js");
|
|
7779
|
+
const sql_cte_associations_1 = __webpack_require__(/*! ./sql_cte_associations */ "../core/build/src/abap/2_statements/expressions/sql_cte_associations.js");
|
|
7780
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
7781
|
+
class SQLCTEHierarchy extends combi_1.Expression {
|
|
7782
|
+
getRunnable() {
|
|
7783
|
+
return (0, combi_1.ver)(version_1.Version.v751, (0, combi_1.seq)("HIERARCHY", sql_as_name_1.SQLAsName, (0, combi_1.optPrio)((0, combi_1.seq)("WITH", sql_cte_associations_1.SQLCTEAssociations))));
|
|
7784
|
+
}
|
|
7785
|
+
}
|
|
7786
|
+
exports.SQLCTEHierarchy = SQLCTEHierarchy;
|
|
7787
|
+
//# sourceMappingURL=sql_cte_hierarchy.js.map
|
|
7788
|
+
|
|
7789
|
+
/***/ },
|
|
7790
|
+
|
|
7641
7791
|
/***/ "../core/build/src/abap/2_statements/expressions/sql_field.js"
|
|
7642
7792
|
/*!********************************************************************!*\
|
|
7643
7793
|
!*** ../core/build/src/abap/2_statements/expressions/sql_field.js ***!
|
|
@@ -7653,14 +7803,14 @@ const _1 = __webpack_require__(/*! . */ "../core/build/src/abap/2_statements/exp
|
|
|
7653
7803
|
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
7654
7804
|
const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
|
|
7655
7805
|
const sql_function_1 = __webpack_require__(/*! ./sql_function */ "../core/build/src/abap/2_statements/expressions/sql_function.js");
|
|
7656
|
-
const
|
|
7806
|
+
const sql_path_for_column_1 = __webpack_require__(/*! ./sql_path_for_column */ "../core/build/src/abap/2_statements/expressions/sql_path_for_column.js");
|
|
7657
7807
|
class SQLField extends combi_1.Expression {
|
|
7658
7808
|
getRunnable() {
|
|
7659
7809
|
const atParen = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.ParenLeftW), _1.SimpleFieldChain2, (0, combi_1.tok)(tokens_1.WParenRightW));
|
|
7660
7810
|
const abap = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WAt), (0, combi_1.altPrio)(_1.SimpleFieldChain2, atParen)), version_1.Version.OpenABAP);
|
|
7661
7811
|
const as = (0, combi_1.seq)("AS", _1.SQLAsName);
|
|
7662
7812
|
const parenFieldName = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFieldName, (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.WParenRightW), (0, combi_1.tok)(tokens_1.WParenRight)));
|
|
7663
|
-
const fieldNoAgg = (0, combi_1.altPrio)(_1.SQLCase, sql_function_1.SQLFunction,
|
|
7813
|
+
const fieldNoAgg = (0, combi_1.altPrio)(_1.SQLCase, sql_function_1.SQLFunction, sql_path_for_column_1.SQLPathForColumn, _1.SQLFieldName, abap, _1.Constant, parenFieldName);
|
|
7664
7814
|
const field = (0, combi_1.altPrio)(_1.SQLAggregation, fieldNoAgg);
|
|
7665
7815
|
const parenField = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), field, (0, combi_1.tok)(tokens_1.WParenRightW));
|
|
7666
7816
|
const parenFieldNoAgg = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), fieldNoAgg, (0, combi_1.tok)(tokens_1.WParenRightW));
|
|
@@ -7671,7 +7821,6 @@ class SQLField extends combi_1.Expression {
|
|
|
7671
7821
|
const arith = (0, combi_1.altPrio)(arithWithAgg, arithNoAgg);
|
|
7672
7822
|
const arithSequence = (0, combi_1.seq)((0, combi_1.optPrio)("-"), field, (0, combi_1.optPrio)(arith));
|
|
7673
7823
|
const parenArithSequence = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.optPrio)("-"), arithSequence, (0, combi_1.tok)(tokens_1.WParenRightW));
|
|
7674
|
-
// allows (a-b)*(c-d) — paren groups as operands, defined after parenArithSequence
|
|
7675
7824
|
const subExtWithAgg = (0, combi_1.plusPrio)((0, combi_1.seq)((0, combi_1.altPrio)("+", "-", "*", "/", "&&"), (0, combi_1.altPrio)(parenArithSequence, parenField, field)));
|
|
7676
7825
|
const subExtNoAgg = (0, combi_1.plusPrio)((0, combi_1.seq)((0, combi_1.altPrio)("+", "-", "*", "/", "&&"), (0, combi_1.altPrio)(parenArithSequence, parenFieldNoAgg, fieldNoAgg)));
|
|
7677
7826
|
const arithExt = (0, combi_1.altPrio)((0, combi_1.ver)(version_1.Version.v754, subExtWithAgg), (0, combi_1.ver)(version_1.Version.v740sp05, subExtNoAgg));
|
|
@@ -7751,7 +7900,7 @@ exports.SQLFieldListLoop = void 0;
|
|
|
7751
7900
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
7752
7901
|
const _1 = __webpack_require__(/*! . */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
7753
7902
|
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
7754
|
-
const
|
|
7903
|
+
const sql_path_for_column_1 = __webpack_require__(/*! ./sql_path_for_column */ "../core/build/src/abap/2_statements/expressions/sql_path_for_column.js");
|
|
7755
7904
|
const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
|
|
7756
7905
|
// loop must include one field from the database table
|
|
7757
7906
|
class SQLFieldListLoop extends combi_1.Expression {
|
|
@@ -7760,7 +7909,7 @@ class SQLFieldListLoop extends combi_1.Expression {
|
|
|
7760
7909
|
const as = (0, combi_1.seq)("AS", _1.SQLAsName);
|
|
7761
7910
|
const someField = (0, combi_1.seq)(_1.SQLField, comma);
|
|
7762
7911
|
const abap = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WAt), _1.SimpleFieldChain2), version_1.Version.OpenABAP);
|
|
7763
|
-
const fieldList = (0, combi_1.seq)((0, combi_1.star)(someField), (0, combi_1.alt)(_1.SQLFieldName, abap,
|
|
7912
|
+
const fieldList = (0, combi_1.seq)((0, combi_1.star)(someField), (0, combi_1.alt)(_1.SQLFieldName, abap, sql_path_for_column_1.SQLPathForColumn, _1.Constant), (0, combi_1.optPrio)(as), comma, (0, combi_1.star)(someField));
|
|
7764
7913
|
const fields = (0, combi_1.alt)("*", _1.Dynamic, fieldList);
|
|
7765
7914
|
return fields;
|
|
7766
7915
|
}
|
|
@@ -7783,14 +7932,14 @@ exports.SQLFieldListLoopGreedy = void 0;
|
|
|
7783
7932
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
7784
7933
|
const _1 = __webpack_require__(/*! . */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
7785
7934
|
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
7786
|
-
const
|
|
7935
|
+
const sql_path_for_column_1 = __webpack_require__(/*! ./sql_path_for_column */ "../core/build/src/abap/2_statements/expressions/sql_path_for_column.js");
|
|
7787
7936
|
const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
|
|
7788
7937
|
class SQLFieldListLoopGreedy extends combi_1.Expression {
|
|
7789
7938
|
getRunnable() {
|
|
7790
7939
|
const comma = (0, combi_1.opt)((0, combi_1.ver)(version_1.Version.v740sp05, ",", version_1.Version.OpenABAP));
|
|
7791
7940
|
const as = (0, combi_1.seq)("AS", _1.SQLAsName);
|
|
7792
7941
|
const abap = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WAt), _1.SimpleFieldChain2), version_1.Version.OpenABAP);
|
|
7793
|
-
const entry = (0, combi_1.seq)((0, combi_1.altPrio)(_1.SQLField, abap,
|
|
7942
|
+
const entry = (0, combi_1.seq)((0, combi_1.altPrio)(_1.SQLField, abap, sql_path_for_column_1.SQLPathForColumn, _1.SQLFieldName, _1.Constant), (0, combi_1.optPrio)(as), comma);
|
|
7794
7943
|
const fieldList = (0, combi_1.plusPrio)(entry);
|
|
7795
7944
|
return (0, combi_1.altPrio)("*", _1.Dynamic, fieldList);
|
|
7796
7945
|
}
|
|
@@ -7939,13 +8088,17 @@ const _1 = __webpack_require__(/*! . */ "../core/build/src/abap/2_statements/exp
|
|
|
7939
8088
|
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
7940
8089
|
const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
|
|
7941
8090
|
const with_name_1 = __webpack_require__(/*! ./with_name */ "../core/build/src/abap/2_statements/expressions/with_name.js");
|
|
8091
|
+
const sql_path_for_entity_1 = __webpack_require__(/*! ./sql_path_for_entity */ "../core/build/src/abap/2_statements/expressions/sql_path_for_entity.js");
|
|
8092
|
+
const sql_hierarchy_source_1 = __webpack_require__(/*! ./sql_hierarchy_source */ "../core/build/src/abap/2_statements/expressions/sql_hierarchy_source.js");
|
|
8093
|
+
const sql_hierarchy_accessor_1 = __webpack_require__(/*! ./sql_hierarchy_accessor */ "../core/build/src/abap/2_statements/expressions/sql_hierarchy_accessor.js");
|
|
8094
|
+
const sql_hierarchy_aggregate_1 = __webpack_require__(/*! ./sql_hierarchy_aggregate */ "../core/build/src/abap/2_statements/expressions/sql_hierarchy_aggregate.js");
|
|
7942
8095
|
class SQLFromSource extends combi_1.Expression {
|
|
7943
8096
|
getRunnable() {
|
|
7944
8097
|
// https://help.sap.com/doc/abapdocu_752_index_htm/7.52/en-US/abennews-752-open_sql.htm#!ABAP_MODIFICATION_1@1@
|
|
7945
8098
|
const tab = (0, combi_1.ver)(version_1.Version.v752, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WAt), _1.FieldChain), version_1.Version.OpenABAP);
|
|
7946
8099
|
const aas = (0, combi_1.seq)("AS", _1.SQLAsName);
|
|
7947
8100
|
const privileged = (0, combi_1.ver)(version_1.Version.v752, (0, combi_1.seq)("WITH", _1.SQLPrivilegedAccess));
|
|
7948
|
-
return (0, combi_1.seq)((0, combi_1.altPrio)(with_name_1.WithName, (0, combi_1.seq)(_1.DatabaseTable, (0, combi_1.optPrio)(_1.SQLCDSParameters)), tab), (0, combi_1.optPrio)(privileged), (0, combi_1.optPrio)(aas));
|
|
8101
|
+
return (0, combi_1.seq)((0, combi_1.altPrio)(new sql_hierarchy_aggregate_1.SQLHierarchyAggregate(), new sql_hierarchy_accessor_1.SQLHierarchyAccessor(), new sql_hierarchy_source_1.SQLHierarchySource(), (0, combi_1.seq)(with_name_1.WithName, (0, combi_1.optPrio)(new sql_path_for_entity_1.SQLPathForEntity())), (0, combi_1.seq)(_1.DatabaseTable, (0, combi_1.optPrio)(_1.SQLCDSParameters), (0, combi_1.optPrio)(new sql_path_for_entity_1.SQLPathForEntity())), tab), (0, combi_1.optPrio)(privileged), (0, combi_1.optPrio)(aas));
|
|
7949
8102
|
}
|
|
7950
8103
|
}
|
|
7951
8104
|
exports.SQLFromSource = SQLFromSource;
|
|
@@ -8099,6 +8252,112 @@ exports.SQLHaving = SQLHaving;
|
|
|
8099
8252
|
|
|
8100
8253
|
/***/ },
|
|
8101
8254
|
|
|
8255
|
+
/***/ "../core/build/src/abap/2_statements/expressions/sql_hierarchy_accessor.js"
|
|
8256
|
+
/*!*********************************************************************************!*\
|
|
8257
|
+
!*** ../core/build/src/abap/2_statements/expressions/sql_hierarchy_accessor.js ***!
|
|
8258
|
+
\*********************************************************************************/
|
|
8259
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
8260
|
+
|
|
8261
|
+
"use strict";
|
|
8262
|
+
|
|
8263
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
8264
|
+
exports.SQLHierarchyAccessor = void 0;
|
|
8265
|
+
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
8266
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
8267
|
+
const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
|
|
8268
|
+
const _1 = __webpack_require__(/*! . */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
8269
|
+
class SQLHierarchyAccessor extends combi_1.Expression {
|
|
8270
|
+
getRunnable() {
|
|
8271
|
+
const distanceTo = (0, combi_1.seq)("TO", _1.SQLSource);
|
|
8272
|
+
const distanceFrom = (0, combi_1.seq)("FROM", _1.SQLSource, (0, combi_1.optPrio)(distanceTo));
|
|
8273
|
+
const distance = (0, combi_1.seq)("DISTANCE", (0, combi_1.altPrio)(distanceFrom, distanceTo));
|
|
8274
|
+
const accessor = (0, combi_1.seq)("SOURCE", _1.DatabaseTable, "START", "WHERE", _1.SQLCond, (0, combi_1.optPrio)(distance));
|
|
8275
|
+
const name = (0, combi_1.altPrio)("HIERARCHY_DESCENDANTS", "HIERARCHY_ANCESTORS", "HIERARCHY_SIBLINGS");
|
|
8276
|
+
return (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)(name, (0, combi_1.tok)(tokens_1.ParenLeftW), accessor, (0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8277
|
+
}
|
|
8278
|
+
}
|
|
8279
|
+
exports.SQLHierarchyAccessor = SQLHierarchyAccessor;
|
|
8280
|
+
//# sourceMappingURL=sql_hierarchy_accessor.js.map
|
|
8281
|
+
|
|
8282
|
+
/***/ },
|
|
8283
|
+
|
|
8284
|
+
/***/ "../core/build/src/abap/2_statements/expressions/sql_hierarchy_aggregate.js"
|
|
8285
|
+
/*!**********************************************************************************!*\
|
|
8286
|
+
!*** ../core/build/src/abap/2_statements/expressions/sql_hierarchy_aggregate.js ***!
|
|
8287
|
+
\**********************************************************************************/
|
|
8288
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
8289
|
+
|
|
8290
|
+
"use strict";
|
|
8291
|
+
|
|
8292
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
8293
|
+
exports.SQLHierarchyAggregate = void 0;
|
|
8294
|
+
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
8295
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
8296
|
+
const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
|
|
8297
|
+
const _1 = __webpack_require__(/*! . */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
8298
|
+
class SQLHierarchyAggregate extends combi_1.Expression {
|
|
8299
|
+
getRunnable() {
|
|
8300
|
+
const startWhere = (0, combi_1.seq)("START", "WHERE", _1.SQLCond);
|
|
8301
|
+
const join = (0, combi_1.seq)("JOIN", _1.DatabaseTable, "ON", _1.SQLCond);
|
|
8302
|
+
const measureItem = (0, combi_1.seq)(_1.SQLAggregation, "AS", _1.SQLAsName);
|
|
8303
|
+
const measures = (0, combi_1.seq)("MEASURES", measureItem, (0, combi_1.star)((0, combi_1.seq)(",", measureItem)));
|
|
8304
|
+
const where = (0, combi_1.seq)("WHERE", _1.SQLCond);
|
|
8305
|
+
const withEntry = (0, combi_1.altPrio)("SUBTOTAL", "BALANCE", (0, combi_1.seq)("NOT", "MATCHED"), "TOTAL");
|
|
8306
|
+
const aggregate = (0, combi_1.seq)("SOURCE", _1.DatabaseTable, (0, combi_1.optPrio)(startWhere), (0, combi_1.optPrio)(join), measures, (0, combi_1.optPrio)(where), (0, combi_1.optPrio)((0, combi_1.seq)("WITH", withEntry, (0, combi_1.star)((0, combi_1.seq)("WITH", withEntry)))));
|
|
8307
|
+
const name = (0, combi_1.altPrio)("HIERARCHY_DESCENDANTS_AGGREGATE", "HIERARCHY_ANCESTORS_AGGREGATE");
|
|
8308
|
+
return (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)(name, (0, combi_1.tok)(tokens_1.ParenLeftW), aggregate, (0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8309
|
+
}
|
|
8310
|
+
}
|
|
8311
|
+
exports.SQLHierarchyAggregate = SQLHierarchyAggregate;
|
|
8312
|
+
//# sourceMappingURL=sql_hierarchy_aggregate.js.map
|
|
8313
|
+
|
|
8314
|
+
/***/ },
|
|
8315
|
+
|
|
8316
|
+
/***/ "../core/build/src/abap/2_statements/expressions/sql_hierarchy_source.js"
|
|
8317
|
+
/*!*******************************************************************************!*\
|
|
8318
|
+
!*** ../core/build/src/abap/2_statements/expressions/sql_hierarchy_source.js ***!
|
|
8319
|
+
\*******************************************************************************/
|
|
8320
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
8321
|
+
|
|
8322
|
+
"use strict";
|
|
8323
|
+
|
|
8324
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
8325
|
+
exports.SQLHierarchySource = void 0;
|
|
8326
|
+
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
8327
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
8328
|
+
const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
|
|
8329
|
+
const _1 = __webpack_require__(/*! . */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
8330
|
+
class SQLHierarchySource extends combi_1.Expression {
|
|
8331
|
+
getRunnable() {
|
|
8332
|
+
const orderDir = (0, combi_1.optPrio)((0, combi_1.altPrio)("ASCENDING", "DESCENDING"));
|
|
8333
|
+
const orderFieldName = (0, combi_1.regex)(/^(?!(?:DEPTH|MULTIPLE|ORPHAN|CACHE|CYCLE|LOAD|GENERATE|RETAIN|DEPTH)$)(\/\w+\/)?(\*?\w+~(\/\w+\/)?(\w+|\*)|\w+)$/i);
|
|
8334
|
+
const orderField = (0, combi_1.seq)(orderFieldName, orderDir, (0, combi_1.optPrio)(","));
|
|
8335
|
+
const siblingsOrderBy = (0, combi_1.seq)("SIBLINGS", "ORDER", "BY", (0, combi_1.altPrio)("PRIMARY KEY", _1.Dynamic, (0, combi_1.seq)(orderField, (0, combi_1.starPrio)(orderField))));
|
|
8336
|
+
const cache = (0, combi_1.seq)("CACHE", (0, combi_1.altPrio)("FORCE", "OFF", "ON"));
|
|
8337
|
+
const retainNulls = (0, combi_1.seq)("RETAIN", "NULLS", _1.SQLSource);
|
|
8338
|
+
const cycle = (0, combi_1.seq)("CYCLE", (0, combi_1.altPrio)("BREAKUP", "ERROR"));
|
|
8339
|
+
const multipleParents = (0, combi_1.seq)("MULTIPLE", "PARENTS", (0, combi_1.altPrio)((0, combi_1.seq)("NOT", "ALLOWED"), (0, combi_1.seq)("LEAVES", "ONLY"), "ALLOWED"));
|
|
8340
|
+
const orphan = (0, combi_1.seq)("ORPHAN", (0, combi_1.altPrio)("IGNORE", "ERROR", "ROOT"));
|
|
8341
|
+
const depth = (0, combi_1.seq)("DEPTH", _1.SQLSource);
|
|
8342
|
+
const load = (0, combi_1.seq)("LOAD", (0, combi_1.altPrio)("INCREMENTAL", "BULK", _1.SQLSource));
|
|
8343
|
+
const generateSpantree = (0, combi_1.seq)("GENERATE", "SPANTREE");
|
|
8344
|
+
const startWhere = (0, combi_1.seq)("START", "WHERE", _1.SQLCond);
|
|
8345
|
+
const period = (0, combi_1.seq)("PERIOD", "FROM", _1.SQLFieldName, "TO", _1.SQLFieldName);
|
|
8346
|
+
const valid = (0, combi_1.seq)("VALID", "FROM", _1.SQLSource, "TO", _1.SQLSource);
|
|
8347
|
+
const association = (0, combi_1.seq)("CHILD", "TO", "PARENT", "ASSOCIATION", _1.SQLFieldName);
|
|
8348
|
+
const sourceTable = (0, combi_1.seq)((0, combi_1.altPrio)(_1.WithName, _1.DatabaseTable), (0, combi_1.optPrio)((0, combi_1.seq)("AS", _1.SQLAsName)));
|
|
8349
|
+
const levelColumn = _1.SQLFieldName;
|
|
8350
|
+
const levels = (0, combi_1.seq)("LEVELS", (0, combi_1.tok)(tokens_1.WParenLeftW), levelColumn, (0, combi_1.star)((0, combi_1.seq)(",", levelColumn)), (0, combi_1.tok)(tokens_1.WParenRightW));
|
|
8351
|
+
const leveledGenerator = (0, combi_1.seq)(levels, (0, combi_1.optPrio)(siblingsOrderBy), (0, combi_1.optPrio)(cache), (0, combi_1.optPrio)(retainNulls));
|
|
8352
|
+
const generator = (0, combi_1.seq)(association, (0, combi_1.optPrio)((0, combi_1.seq)(period, valid)), startWhere, (0, combi_1.optPrio)(siblingsOrderBy), (0, combi_1.optPrio)(depth), (0, combi_1.optPrio)(multipleParents), (0, combi_1.optPrio)(orphan), (0, combi_1.optPrio)(cache), (0, combi_1.optPrio)(cycle), (0, combi_1.optPrio)(load), (0, combi_1.optPrio)(generateSpantree));
|
|
8353
|
+
return (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)("HIERARCHY", (0, combi_1.tok)(tokens_1.ParenLeftW), "SOURCE", sourceTable, (0, combi_1.altPrio)(leveledGenerator, generator), (0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8354
|
+
}
|
|
8355
|
+
}
|
|
8356
|
+
exports.SQLHierarchySource = SQLHierarchySource;
|
|
8357
|
+
//# sourceMappingURL=sql_hierarchy_source.js.map
|
|
8358
|
+
|
|
8359
|
+
/***/ },
|
|
8360
|
+
|
|
8102
8361
|
/***/ "../core/build/src/abap/2_statements/expressions/sql_hints.js"
|
|
8103
8362
|
/*!********************************************************************!*\
|
|
8104
8363
|
!*** ../core/build/src/abap/2_statements/expressions/sql_hints.js ***!
|
|
@@ -8394,30 +8653,136 @@ exports.SQLPackageSize = SQLPackageSize;
|
|
|
8394
8653
|
|
|
8395
8654
|
/***/ },
|
|
8396
8655
|
|
|
8397
|
-
/***/ "../core/build/src/abap/2_statements/expressions/
|
|
8398
|
-
|
|
8399
|
-
!*** ../core/build/src/abap/2_statements/expressions/
|
|
8400
|
-
|
|
8656
|
+
/***/ "../core/build/src/abap/2_statements/expressions/sql_path_cardinality.js"
|
|
8657
|
+
/*!*******************************************************************************!*\
|
|
8658
|
+
!*** ../core/build/src/abap/2_statements/expressions/sql_path_cardinality.js ***!
|
|
8659
|
+
\*******************************************************************************/
|
|
8660
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
8661
|
+
|
|
8662
|
+
"use strict";
|
|
8663
|
+
|
|
8664
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
8665
|
+
exports.SQLPathCardinality = void 0;
|
|
8666
|
+
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
8667
|
+
const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
|
|
8668
|
+
class SQLPathCardinality extends combi_1.Expression {
|
|
8669
|
+
getRunnable() {
|
|
8670
|
+
const exact = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.regex)(/^\d+$/), (0, combi_1.tok)(tokens_1.WParenRightW));
|
|
8671
|
+
const many = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), "*", (0, combi_1.tok)(tokens_1.WParenRightW));
|
|
8672
|
+
return (0, combi_1.altPrio)(exact, many);
|
|
8673
|
+
}
|
|
8674
|
+
}
|
|
8675
|
+
exports.SQLPathCardinality = SQLPathCardinality;
|
|
8676
|
+
//# sourceMappingURL=sql_path_cardinality.js.map
|
|
8677
|
+
|
|
8678
|
+
/***/ },
|
|
8679
|
+
|
|
8680
|
+
/***/ "../core/build/src/abap/2_statements/expressions/sql_path_for_column.js"
|
|
8681
|
+
/*!******************************************************************************!*\
|
|
8682
|
+
!*** ../core/build/src/abap/2_statements/expressions/sql_path_for_column.js ***!
|
|
8683
|
+
\******************************************************************************/
|
|
8684
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
8685
|
+
|
|
8686
|
+
"use strict";
|
|
8687
|
+
|
|
8688
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
8689
|
+
exports.SQLPathForColumn = void 0;
|
|
8690
|
+
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
8691
|
+
const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
|
|
8692
|
+
const sql_path_segment_1 = __webpack_require__(/*! ./sql_path_segment */ "../core/build/src/abap/2_statements/expressions/sql_path_segment.js");
|
|
8693
|
+
const field_1 = __webpack_require__(/*! ./field */ "../core/build/src/abap/2_statements/expressions/field.js");
|
|
8694
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
8695
|
+
class SQLPathForColumn extends combi_1.Expression {
|
|
8696
|
+
getRunnable() {
|
|
8697
|
+
const tablePrefix = (0, combi_1.regex)(/^(\/\w+\/)?\w+~$/);
|
|
8698
|
+
const withPrefix = (0, combi_1.seq)(tablePrefix, (0, combi_1.plus)(new sql_path_segment_1.SQLPathSegment(true)), (0, combi_1.tok)(tokens_1.Dash), field_1.Field);
|
|
8699
|
+
const standalone = (0, combi_1.seq)((0, combi_1.plus)(new sql_path_segment_1.SQLPathSegment()), (0, combi_1.tok)(tokens_1.Dash), field_1.Field);
|
|
8700
|
+
return (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.altPrio)(withPrefix, standalone));
|
|
8701
|
+
}
|
|
8702
|
+
}
|
|
8703
|
+
exports.SQLPathForColumn = SQLPathForColumn;
|
|
8704
|
+
//# sourceMappingURL=sql_path_for_column.js.map
|
|
8705
|
+
|
|
8706
|
+
/***/ },
|
|
8707
|
+
|
|
8708
|
+
/***/ "../core/build/src/abap/2_statements/expressions/sql_path_for_entity.js"
|
|
8709
|
+
/*!******************************************************************************!*\
|
|
8710
|
+
!*** ../core/build/src/abap/2_statements/expressions/sql_path_for_entity.js ***!
|
|
8711
|
+
\******************************************************************************/
|
|
8712
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
8713
|
+
|
|
8714
|
+
"use strict";
|
|
8715
|
+
|
|
8716
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
8717
|
+
exports.SQLPathForEntity = void 0;
|
|
8718
|
+
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
8719
|
+
const sql_path_segment_1 = __webpack_require__(/*! ./sql_path_segment */ "../core/build/src/abap/2_statements/expressions/sql_path_segment.js");
|
|
8720
|
+
const database_table_1 = __webpack_require__(/*! ./database_table */ "../core/build/src/abap/2_statements/expressions/database_table.js");
|
|
8721
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
8722
|
+
class SQLPathForEntity extends combi_1.Expression {
|
|
8723
|
+
getRunnable() {
|
|
8724
|
+
return (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.optPrio)(database_table_1.DatabaseTable), (0, combi_1.plus)(new sql_path_segment_1.SQLPathSegment())));
|
|
8725
|
+
}
|
|
8726
|
+
}
|
|
8727
|
+
exports.SQLPathForEntity = SQLPathForEntity;
|
|
8728
|
+
//# sourceMappingURL=sql_path_for_entity.js.map
|
|
8729
|
+
|
|
8730
|
+
/***/ },
|
|
8731
|
+
|
|
8732
|
+
/***/ "../core/build/src/abap/2_statements/expressions/sql_path_join_type.js"
|
|
8733
|
+
/*!*****************************************************************************!*\
|
|
8734
|
+
!*** ../core/build/src/abap/2_statements/expressions/sql_path_join_type.js ***!
|
|
8735
|
+
\*****************************************************************************/
|
|
8736
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
8737
|
+
|
|
8738
|
+
"use strict";
|
|
8739
|
+
|
|
8740
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
8741
|
+
exports.SQLPathJoinType = void 0;
|
|
8742
|
+
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
8743
|
+
class SQLPathJoinType extends combi_1.Expression {
|
|
8744
|
+
getRunnable() {
|
|
8745
|
+
return (0, combi_1.altPrio)("EXACT ONE TO ONE", "ONE TO ONE", "MANY TO MANY", "MANY TO ONE", "ONE TO MANY", "LEFT OUTER", "RIGHT OUTER", "INNER");
|
|
8746
|
+
}
|
|
8747
|
+
}
|
|
8748
|
+
exports.SQLPathJoinType = SQLPathJoinType;
|
|
8749
|
+
//# sourceMappingURL=sql_path_join_type.js.map
|
|
8750
|
+
|
|
8751
|
+
/***/ },
|
|
8752
|
+
|
|
8753
|
+
/***/ "../core/build/src/abap/2_statements/expressions/sql_path_segment.js"
|
|
8754
|
+
/*!***************************************************************************!*\
|
|
8755
|
+
!*** ../core/build/src/abap/2_statements/expressions/sql_path_segment.js ***!
|
|
8756
|
+
\***************************************************************************/
|
|
8401
8757
|
(__unused_webpack_module, exports, __webpack_require__) {
|
|
8402
8758
|
|
|
8403
8759
|
"use strict";
|
|
8404
8760
|
|
|
8405
8761
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
8406
|
-
exports.
|
|
8762
|
+
exports.SQLPathSegment = void 0;
|
|
8407
8763
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
8408
8764
|
const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
|
|
8409
|
-
const
|
|
8765
|
+
const sql_cds_parameters_1 = __webpack_require__(/*! ./sql_cds_parameters */ "../core/build/src/abap/2_statements/expressions/sql_cds_parameters.js");
|
|
8410
8766
|
const sql_cond_1 = __webpack_require__(/*! ./sql_cond */ "../core/build/src/abap/2_statements/expressions/sql_cond.js");
|
|
8411
|
-
|
|
8767
|
+
const sql_path_cardinality_1 = __webpack_require__(/*! ./sql_path_cardinality */ "../core/build/src/abap/2_statements/expressions/sql_path_cardinality.js");
|
|
8768
|
+
const sql_path_join_type_1 = __webpack_require__(/*! ./sql_path_join_type */ "../core/build/src/abap/2_statements/expressions/sql_path_join_type.js");
|
|
8769
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
8770
|
+
class SQLPathSegment extends combi_1.Expression {
|
|
8771
|
+
constructor(nws = false) {
|
|
8772
|
+
super();
|
|
8773
|
+
this.nws = nws;
|
|
8774
|
+
}
|
|
8412
8775
|
getRunnable() {
|
|
8413
|
-
|
|
8414
|
-
const
|
|
8415
|
-
const
|
|
8416
|
-
|
|
8776
|
+
const filter = (0, combi_1.ver)(version_1.Version.v751, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.BracketLeftW), (0, combi_1.optPrio)(sql_path_cardinality_1.SQLPathCardinality), (0, combi_1.optPrio)(sql_path_join_type_1.SQLPathJoinType), (0, combi_1.optPrio)((0, combi_1.seq)((0, combi_1.optPrio)("WHERE"), sql_cond_1.SQLCond)), (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.WBracketRightW), (0, combi_1.tok)(tokens_1.WBracketRight))));
|
|
8777
|
+
const params = (0, combi_1.ver)(version_1.Version.v751, sql_cds_parameters_1.SQLCDSParameters);
|
|
8778
|
+
const name = this.nws
|
|
8779
|
+
? (0, combi_1.tok)(tokens_1.AssociationName)
|
|
8780
|
+
: (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.AssociationName), (0, combi_1.regex)(/^\\[\w]+$/));
|
|
8781
|
+
return (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)(name, (0, combi_1.optPrio)((0, combi_1.altPrio)((0, combi_1.seq)(params, (0, combi_1.optPrio)(filter)), filter))));
|
|
8417
8782
|
}
|
|
8418
8783
|
}
|
|
8419
|
-
exports.
|
|
8420
|
-
//# sourceMappingURL=
|
|
8784
|
+
exports.SQLPathSegment = SQLPathSegment;
|
|
8785
|
+
//# sourceMappingURL=sql_path_segment.js.map
|
|
8421
8786
|
|
|
8422
8787
|
/***/ },
|
|
8423
8788
|
|
|
@@ -11174,7 +11539,7 @@ class CommitEntities {
|
|
|
11174
11539
|
const reported = (0, combi_1.seq)("REPORTED", expressions_1.Target);
|
|
11175
11540
|
const responses = (0, combi_1.seq)("RESPONSES", failed, reported);
|
|
11176
11541
|
const s = (0, combi_1.seq)("COMMIT ENTITIES", (0, combi_1.optPrio)("IN SIMULATION MODE"), (0, combi_1.opt)(responses), (0, combi_1.opt)((0, combi_1.seq)("RESPONSE OF", expressions_1.NamespaceSimpleName, (0, combi_1.per)(failed, reported))));
|
|
11177
|
-
return (0, combi_1.ver)(version_1.Version.v754, s);
|
|
11542
|
+
return (0, combi_1.ver)(version_1.Version.v754, s, version_1.Version.OpenABAP);
|
|
11178
11543
|
}
|
|
11179
11544
|
}
|
|
11180
11545
|
exports.CommitEntities = CommitEntities;
|
|
@@ -11514,7 +11879,7 @@ class CreateData {
|
|
|
11514
11879
|
const initial = (0, combi_1.seq)("INITIAL SIZE", expressions_1.Source);
|
|
11515
11880
|
const decimals = (0, combi_1.seq)("DECIMALS", expressions_1.Source);
|
|
11516
11881
|
const uniq = (0, combi_1.alt)("UNIQUE", "NON-UNIQUE");
|
|
11517
|
-
const emptyKey = (0, combi_1.ver)(version_1.Version.v740sp02, "EMPTY KEY");
|
|
11882
|
+
const emptyKey = (0, combi_1.ver)(version_1.Version.v740sp02, "EMPTY KEY", version_1.Version.OpenABAP);
|
|
11518
11883
|
const def = (0, combi_1.seq)((0, combi_1.opt)(uniq), (0, combi_1.alt)("DEFAULT KEY", emptyKey));
|
|
11519
11884
|
const kdef = (0, combi_1.seq)((0, combi_1.opt)(uniq), "KEY", (0, combi_1.alt)((0, combi_1.plus)(expressions_1.Field), expressions_1.Dynamic));
|
|
11520
11885
|
const key = (0, combi_1.seq)("WITH", (0, combi_1.alt)(def, kdef));
|
|
@@ -12273,7 +12638,7 @@ const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_st
|
|
|
12273
12638
|
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
12274
12639
|
class EndTestSeam {
|
|
12275
12640
|
getMatcher() {
|
|
12276
|
-
return (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.str)("END-TEST-SEAM"));
|
|
12641
|
+
return (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.str)("END-TEST-SEAM"), version_1.Version.OpenABAP);
|
|
12277
12642
|
}
|
|
12278
12643
|
}
|
|
12279
12644
|
exports.EndTestSeam = EndTestSeam;
|
|
@@ -13586,7 +13951,7 @@ class GetPermissions {
|
|
|
13586
13951
|
const type = (0, combi_1.altPrio)("GLOBAL AUTHORIZATION", "INSTANCE");
|
|
13587
13952
|
const from = (0, combi_1.seq)("FROM", expressions_1.Source);
|
|
13588
13953
|
const s = (0, combi_1.seq)("GET PERMISSIONS ONLY", type, "ENTITY", expressions_1.SimpleName, (0, combi_1.optPrio)(from), "REQUEST", expressions_1.Source, "RESULT", expressions_1.Target, "FAILED", expressions_1.Target, "REPORTED", expressions_1.Target);
|
|
13589
|
-
return (0, combi_1.ver)(version_1.Version.v754, s);
|
|
13954
|
+
return (0, combi_1.ver)(version_1.Version.v754, s, version_1.Version.OpenABAP);
|
|
13590
13955
|
}
|
|
13591
13956
|
}
|
|
13592
13957
|
exports.GetPermissions = GetPermissions;
|
|
@@ -14925,7 +15290,7 @@ class ModifyEntities {
|
|
|
14925
15290
|
getMatcher() {
|
|
14926
15291
|
const withh = (0, combi_1.seq)("WITH", expressions_1.Source);
|
|
14927
15292
|
const fieldsWith = (0, combi_1.seq)("FIELDS (", (0, combi_1.plus)(expressions_1.SimpleName), ")", withh);
|
|
14928
|
-
const by = (0, combi_1.seq)("BY", expressions_1.
|
|
15293
|
+
const by = (0, combi_1.seq)("BY", expressions_1.EMLEntityPath);
|
|
14929
15294
|
const relating = (0, combi_1.seq)("RELATING TO", expressions_1.NamespaceSimpleName, "BY", expressions_1.NamespaceSimpleName);
|
|
14930
15295
|
const execute = (0, combi_1.seq)("EXECUTE", expressions_1.NamespaceSimpleName, "FROM", expressions_1.Source);
|
|
14931
15296
|
const create = (0, combi_1.seq)("CREATE", (0, combi_1.opt)(by), "FROM", expressions_1.Source, (0, combi_1.opt)(relating));
|
|
@@ -14940,9 +15305,9 @@ class ModifyEntities {
|
|
|
14940
15305
|
const reported = (0, combi_1.seq)("REPORTED", expressions_1.Target);
|
|
14941
15306
|
const end = (0, combi_1.optPrio)((0, combi_1.per)(failed, result, mapped, reported));
|
|
14942
15307
|
const entities = (0, combi_1.seq)((0, combi_1.optPrio)("AUGMENTING"), "ENTITIES OF", expressions_1.NamespaceSimpleName, (0, combi_1.opt)("IN LOCAL MODE"), (0, combi_1.plusPrio)((0, combi_1.seq)("ENTITY", expressions_1.NamespaceSimpleName, (0, combi_1.plus)(operation))));
|
|
14943
|
-
const create2 = (0, combi_1.seq)("CREATE", fieldsWith, (0, combi_1.opt)((0, combi_1.seq)("CREATE BY", expressions_1.
|
|
14944
|
-
const create3 = (0, combi_1.seq)("CREATE BY", expressions_1.
|
|
14945
|
-
const create4 = (0, combi_1.seq)("CREATE FROM", expressions_1.Source, (0, combi_1.plus)((0, combi_1.seq)("CREATE BY", expressions_1.
|
|
15308
|
+
const create2 = (0, combi_1.seq)("CREATE", fieldsWith, (0, combi_1.opt)((0, combi_1.seq)("CREATE BY", expressions_1.EMLEntityPath, fieldsWith)));
|
|
15309
|
+
const create3 = (0, combi_1.seq)("CREATE BY", expressions_1.EMLEntityPath, fieldsWith);
|
|
15310
|
+
const create4 = (0, combi_1.seq)("CREATE FROM", expressions_1.Source, (0, combi_1.plus)((0, combi_1.seq)("CREATE BY", expressions_1.EMLEntityPath, "FROM", expressions_1.Source)));
|
|
14946
15311
|
const entity = (0, combi_1.seq)("ENTITY", (0, combi_1.opt)("IN LOCAL MODE"), (0, combi_1.alt)(expressions_1.NamespaceSimpleName, expressions_1.EntityAssociation), (0, combi_1.alt)(execute, create, updateFields, deleteFrom, updateSetFields, updateFrom, create2, create3, create4));
|
|
14947
15312
|
return (0, combi_1.ver)(version_1.Version.v754, (0, combi_1.seq)("MODIFY", (0, combi_1.alt)(entities, entity), end), version_1.Version.OpenABAP);
|
|
14948
15313
|
}
|
|
@@ -15921,11 +16286,11 @@ class ReadEntities {
|
|
|
15921
16286
|
const result = (0, combi_1.seq)("RESULT", expressions_1.Target);
|
|
15922
16287
|
const failed = (0, combi_1.seq)("FAILED", expressions_1.Target);
|
|
15923
16288
|
const reported = (0, combi_1.seq)("REPORTED", expressions_1.Target);
|
|
15924
|
-
const foo = (0, combi_1.seq)((0, combi_1.opt)((0, combi_1.seq)("BY", expressions_1.
|
|
16289
|
+
const foo = (0, combi_1.seq)((0, combi_1.opt)((0, combi_1.seq)("BY", expressions_1.EMLEntityPath)), (0, combi_1.alt)(fields, from, all), (0, combi_1.optPrio)(result));
|
|
15925
16290
|
const entity = (0, combi_1.seq)("ENTITY", expressions_1.NamespaceSimpleName, (0, combi_1.plus)(foo));
|
|
15926
16291
|
const s = (0, combi_1.seq)("ENTITIES OF", expressions_1.NamespaceSimpleName, (0, combi_1.opt)("IN LOCAL MODE"), (0, combi_1.plus)(entity), (0, combi_1.optPrio)((0, combi_1.seq)("LINK", expressions_1.Target)), (0, combi_1.optPrio)((0, combi_1.per)(failed, reported)));
|
|
15927
|
-
const byall = (0, combi_1.seq)("BY", expressions_1.
|
|
15928
|
-
const by = (0, combi_1.seq)("BY", expressions_1.
|
|
16292
|
+
const byall = (0, combi_1.seq)("BY", expressions_1.EMLEntityPath, all);
|
|
16293
|
+
const by = (0, combi_1.seq)("BY", expressions_1.EMLEntityPath, fields);
|
|
15929
16294
|
const sub = (0, combi_1.seq)((0, combi_1.alt)(all, fields, from, by, byall), result);
|
|
15930
16295
|
const single = (0, combi_1.seq)("ENTITY", (0, combi_1.opt)("IN LOCAL MODE"), (0, combi_1.alt)(expressions_1.NamespaceSimpleName, expressions_1.EntityAssociation), (0, combi_1.plus)(sub), (0, combi_1.optPrio)(failed), (0, combi_1.optPrio)(reported));
|
|
15931
16296
|
return (0, combi_1.ver)(version_1.Version.v754, (0, combi_1.seq)("READ", (0, combi_1.alt)(s, single)), version_1.Version.OpenABAP);
|
|
@@ -17683,7 +18048,7 @@ const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/s
|
|
|
17683
18048
|
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
17684
18049
|
class TestSeam {
|
|
17685
18050
|
getMatcher() {
|
|
17686
|
-
return (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)("TEST-SEAM", expressions_1.TestSeamName));
|
|
18051
|
+
return (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)("TEST-SEAM", expressions_1.TestSeamName), version_1.Version.OpenABAP);
|
|
17687
18052
|
}
|
|
17688
18053
|
}
|
|
17689
18054
|
exports.TestSeam = TestSeam;
|
|
@@ -18403,7 +18768,8 @@ const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/s
|
|
|
18403
18768
|
const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
|
|
18404
18769
|
class With {
|
|
18405
18770
|
getMatcher() {
|
|
18406
|
-
const
|
|
18771
|
+
const exposing = (0, combi_1.optPrio)((0, combi_1.seq)("WITH", (0, combi_1.altPrio)(new expressions_1.SQLCTEHierarchy(), expressions_1.SQLCTEAssociations)));
|
|
18772
|
+
const cte = (0, combi_1.seq)(expressions_1.WithName, "AS", (0, combi_1.tok)(tokens_1.WParenLeftW), expressions_1.SelectCTE, (0, combi_1.tok)(tokens_1.WParenRightW), exposing);
|
|
18407
18773
|
return (0, combi_1.ver)(version_1.Version.v751, (0, combi_1.seq)("WITH", cte, (0, combi_1.star)((0, combi_1.seq)(",", cte)), expressions_1.Select));
|
|
18408
18774
|
}
|
|
18409
18775
|
}
|
|
@@ -40397,7 +40763,9 @@ class MoveCorresponding {
|
|
|
40397
40763
|
}
|
|
40398
40764
|
const sourceType = source_1.Source.runSyntax(s, input);
|
|
40399
40765
|
const targetType = target_1.Target.runSyntax(t, input);
|
|
40400
|
-
if (input.scope.getVersion() < version_1.Version.v740sp05
|
|
40766
|
+
if (input.scope.getVersion() < version_1.Version.v740sp05
|
|
40767
|
+
&& input.scope.getVersion() !== version_1.Version.Cloud
|
|
40768
|
+
&& input.scope.getVersion() !== version_1.Version.OpenABAP) {
|
|
40401
40769
|
if (sourceType instanceof basic_1.TableType && sourceType.isWithHeader() === false) {
|
|
40402
40770
|
const message = "MOVE-CORRESPONDING with tables possible from v740sp05";
|
|
40403
40771
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
@@ -60082,9 +60450,10 @@ class FunctionGroup extends _abap_object_1.ABAPObject {
|
|
|
60082
60450
|
}
|
|
60083
60451
|
}
|
|
60084
60452
|
findTextFile() {
|
|
60085
|
-
const
|
|
60453
|
+
const name = this.getName().replace(/\//g, "#");
|
|
60454
|
+
const regex = new RegExp(name + "\\.fugr\\.(#\\w+#)?sapl" + name.replace(/^#\w+#/, "") + "\\.xml", "i");
|
|
60086
60455
|
for (const f of this.getFiles()) {
|
|
60087
|
-
if (f.getFilename()
|
|
60456
|
+
if (regex.test(f.getFilename())) {
|
|
60088
60457
|
return f;
|
|
60089
60458
|
}
|
|
60090
60459
|
}
|
|
@@ -66162,7 +66531,7 @@ class Registry {
|
|
|
66162
66531
|
}
|
|
66163
66532
|
static abaplintVersion() {
|
|
66164
66533
|
// magic, see build script "version.js"
|
|
66165
|
-
return "2.119.
|
|
66534
|
+
return "2.119.37";
|
|
66166
66535
|
}
|
|
66167
66536
|
getDDICReferences() {
|
|
66168
66537
|
return this.ddicReferences;
|
|
@@ -71804,6 +72173,8 @@ class DangerousStatementConf extends _basic_rule_config_1.BasicRuleConfig {
|
|
|
71804
72173
|
this.exportDynpro = true;
|
|
71805
72174
|
/** Finds instances of dynamic SQL: SELECT, UPDATE, DELETE, INSERT, MODIFY */
|
|
71806
72175
|
this.dynamicSQL = true;
|
|
72176
|
+
/** Ignore dynamic SQL in IF_RAP_QUERY_PROVIDER~SELECT implementations */
|
|
72177
|
+
this.ignoreRAPQueryProvider = true;
|
|
71807
72178
|
}
|
|
71808
72179
|
}
|
|
71809
72180
|
exports.DangerousStatementConf = DangerousStatementConf;
|
|
@@ -71832,9 +72203,19 @@ dynamic SQL can potentially create SQL injection problems`,
|
|
|
71832
72203
|
this.conf = conf;
|
|
71833
72204
|
}
|
|
71834
72205
|
runParsed(file) {
|
|
72206
|
+
var _a;
|
|
71835
72207
|
const issues = [];
|
|
72208
|
+
let ignoreDynamicSQL = false;
|
|
71836
72209
|
for (const statementNode of file.getStatements()) {
|
|
71837
72210
|
const statement = statementNode.get();
|
|
72211
|
+
if (statement instanceof Statements.MethodImplementation) {
|
|
72212
|
+
const methodName = (_a = statementNode.findFirstExpression(Expressions.MethodName)) === null || _a === void 0 ? void 0 : _a.concatTokens().toUpperCase();
|
|
72213
|
+
ignoreDynamicSQL = this.conf.ignoreRAPQueryProvider === true
|
|
72214
|
+
&& methodName === "IF_RAP_QUERY_PROVIDER~SELECT";
|
|
72215
|
+
}
|
|
72216
|
+
else if (statement instanceof Statements.EndMethod) {
|
|
72217
|
+
ignoreDynamicSQL = false;
|
|
72218
|
+
}
|
|
71838
72219
|
let message = undefined;
|
|
71839
72220
|
if (this.conf.execSQL && statement instanceof Statements.ExecSQL) {
|
|
71840
72221
|
message = "EXEC SQL";
|
|
@@ -71875,7 +72256,7 @@ dynamic SQL can potentially create SQL injection problems`,
|
|
|
71875
72256
|
if (message) {
|
|
71876
72257
|
issues.push(issue_1.Issue.atStatement(file, statementNode, this.getDescription(message), this.getMetadata().key, this.conf.severity));
|
|
71877
72258
|
}
|
|
71878
|
-
if (this.conf.dynamicSQL) {
|
|
72259
|
+
if (this.conf.dynamicSQL && ignoreDynamicSQL === false) {
|
|
71879
72260
|
message = this.findDynamicSQL(statementNode);
|
|
71880
72261
|
if (message) {
|
|
71881
72262
|
issues.push(issue_1.Issue.atStatement(file, statementNode, this.getDescription(message), this.getMetadata().key, this.conf.severity));
|
|
@@ -86542,6 +86923,7 @@ const _irule_1 = __webpack_require__(/*! ./_irule */ "../core/build/src/rules/_i
|
|
|
86542
86923
|
const version_1 = __webpack_require__(/*! ../version */ "../core/build/src/version.js");
|
|
86543
86924
|
const _abap_object_1 = __webpack_require__(/*! ../objects/_abap_object */ "../core/build/src/objects/_abap_object.js");
|
|
86544
86925
|
const syntax_1 = __webpack_require__(/*! ../abap/5_syntax/syntax */ "../core/build/src/abap/5_syntax/syntax.js");
|
|
86926
|
+
const _typed_identifier_1 = __webpack_require__(/*! ../abap/types/_typed_identifier */ "../core/build/src/abap/types/_typed_identifier.js");
|
|
86545
86927
|
const _scope_type_1 = __webpack_require__(/*! ../abap/5_syntax/_scope_type */ "../core/build/src/abap/5_syntax/_scope_type.js");
|
|
86546
86928
|
const _reference_1 = __webpack_require__(/*! ../abap/5_syntax/_reference */ "../core/build/src/abap/5_syntax/_reference.js");
|
|
86547
86929
|
const edit_helper_1 = __webpack_require__(/*! ../edit_helper */ "../core/build/src/edit_helper.js");
|
|
@@ -86642,10 +87024,16 @@ DATA(percentage) = CONV decfloat34( comment_number / abs_statement_number ) * 10
|
|
|
86642
87024
|
}
|
|
86643
87025
|
const file = obj.getABAPFileByName(identifier.getFilename());
|
|
86644
87026
|
const writeStatement = edit_helper_1.EditHelper.findStatement(next, file);
|
|
87027
|
+
if (writeStatement === undefined) {
|
|
87028
|
+
continue;
|
|
87029
|
+
}
|
|
86645
87030
|
const statementType = writeStatement === null || writeStatement === void 0 ? void 0 : writeStatement.get();
|
|
86646
87031
|
if (statementType === undefined) {
|
|
86647
87032
|
continue;
|
|
86648
87033
|
}
|
|
87034
|
+
else if (this.statementHasGenericRead(node, writeStatement)) {
|
|
87035
|
+
continue;
|
|
87036
|
+
}
|
|
86649
87037
|
// for now only allow some specific target statements, todo refactor
|
|
86650
87038
|
if (!(statementType instanceof Statements.Move
|
|
86651
87039
|
|| statementType instanceof Statements.Catch
|
|
@@ -86733,6 +87121,21 @@ DATA(percentage) = CONV decfloat34( comment_number / abs_statement_number ) * 10
|
|
|
86733
87121
|
}
|
|
86734
87122
|
return undefined;
|
|
86735
87123
|
}
|
|
87124
|
+
statementHasGenericRead(node, statement) {
|
|
87125
|
+
for (const ref of node.getData().references) {
|
|
87126
|
+
if (ref.referenceType !== _reference_1.ReferenceType.DataReadReference
|
|
87127
|
+
|| ref.resolved === undefined
|
|
87128
|
+
|| statement.includesToken(ref.position.getToken()) === false
|
|
87129
|
+
|| !(ref.resolved instanceof _typed_identifier_1.TypedIdentifier)) {
|
|
87130
|
+
continue;
|
|
87131
|
+
}
|
|
87132
|
+
else if (ref.resolved.getType().isGeneric() === true
|
|
87133
|
+
|| ref.resolved.getType().containsVoid() === true) {
|
|
87134
|
+
return true;
|
|
87135
|
+
}
|
|
87136
|
+
}
|
|
87137
|
+
return false;
|
|
87138
|
+
}
|
|
86736
87139
|
isLocalDefinition(node, identifier) {
|
|
86737
87140
|
const { start, end } = node.calcCoverage();
|
|
86738
87141
|
if (identifier.getStart().isAfter(start) && identifier.getStart().isBefore(end)) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/cli",
|
|
3
|
-
"version": "2.119.
|
|
3
|
+
"version": "2.119.37",
|
|
4
4
|
"description": "abaplint - Command Line Interface",
|
|
5
5
|
"funding": "https://github.com/sponsors/larshp",
|
|
6
6
|
"bin": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
},
|
|
39
39
|
"homepage": "https://abaplint.org",
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@abaplint/core": "^2.119.
|
|
41
|
+
"@abaplint/core": "^2.119.37",
|
|
42
42
|
"@types/chai": "^4.3.20",
|
|
43
43
|
"@types/minimist": "^1.2.5",
|
|
44
44
|
"@types/mocha": "^10.0.10",
|