@abaplint/cli 2.119.44 → 2.119.46
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 +418 -197
- package/package.json +2 -2
package/build/cli.js
CHANGED
|
@@ -3124,16 +3124,17 @@ function buildSelectSingleCore(allowInto = false) {
|
|
|
3124
3124
|
const fieldList = (0, combi_1.optPrio)(_1.SQLFieldList);
|
|
3125
3125
|
const client = (0, combi_1.optPrio)(_1.SQLClient);
|
|
3126
3126
|
const byp = (0, combi_1.optPrio)(_1.SQLBypassingBuffer);
|
|
3127
|
+
const conn = (0, combi_1.optPrio)((0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, _1.DatabaseConnection));
|
|
3127
3128
|
const whereClause = (0, combi_1.optPrio)(where);
|
|
3128
3129
|
const groupHaving = (0, combi_1.seq)((0, combi_1.optPrio)(sql_group_by_1.SQLGroupBy), (0, combi_1.optPrio)(_1.SQLHaving));
|
|
3129
|
-
const trailingOpts = (0, combi_1.seq)(
|
|
3130
|
+
const trailingOpts = (0, combi_1.seq)(conn, (0, combi_1.optPrio)(_1.SQLHints), (0, combi_1.optPrio)(privileged), (0, combi_1.optPrio)(_1.SQLOptions));
|
|
3130
3131
|
const intoSingle = (0, combi_1.altPrio)(sql_into_structure_1.SQLIntoStructure, _1.SQLIntoList);
|
|
3131
3132
|
if (!allowInto) {
|
|
3132
3133
|
const singleBody = (0, combi_1.seq)(_1.SQLFrom, client, byp, whereClause, groupHaving, trailingOpts);
|
|
3133
3134
|
return (0, combi_1.seq)(fieldList, singleBody);
|
|
3134
3135
|
}
|
|
3135
|
-
const singleAfterFrom = (0, combi_1.seq)(_1.SQLFrom, client, byp,
|
|
3136
|
-
const singleIntoBeforeFrom = (0, combi_1.seq)(intoSingle, _1.SQLFrom, client, byp,
|
|
3136
|
+
const singleAfterFrom = (0, combi_1.seq)(_1.SQLFrom, client, byp, conn, (0, combi_1.altPrio)((0, combi_1.seq)(intoSingle, byp, whereClause, groupHaving, trailingOpts), (0, combi_1.seq)((0, combi_1.optPrio)(sqlFields), whereClause, groupHaving, trailingOpts, (0, combi_1.optPrio)(intoSingle), conn)));
|
|
3137
|
+
const singleIntoBeforeFrom = (0, combi_1.seq)(intoSingle, _1.SQLFrom, client, byp, conn, whereClause, groupHaving, trailingOpts);
|
|
3137
3138
|
return (0, combi_1.seq)(fieldList, byp, (0, combi_1.altPrio)(singleIntoBeforeFrom, singleAfterFrom));
|
|
3138
3139
|
}
|
|
3139
3140
|
function buildSelectCore(allowInto = false, allowOrderBy = true) {
|
|
@@ -3144,25 +3145,26 @@ function buildSelectCore(allowInto = false, allowOrderBy = true) {
|
|
|
3144
3145
|
const fieldList = (0, combi_1.optPrio)(_1.SQLFieldList);
|
|
3145
3146
|
const client = (0, combi_1.optPrio)(_1.SQLClient);
|
|
3146
3147
|
const byp = (0, combi_1.optPrio)(_1.SQLBypassingBuffer);
|
|
3148
|
+
const conn = (0, combi_1.optPrio)((0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, _1.DatabaseConnection));
|
|
3147
3149
|
const fae = (0, combi_1.optPrio)(_1.SQLForAllEntries);
|
|
3148
3150
|
const whereClause = (0, combi_1.optPrio)(where);
|
|
3149
3151
|
const groupHaving = (0, combi_1.seq)((0, combi_1.optPrio)(sql_group_by_1.SQLGroupBy), (0, combi_1.optPrio)(_1.SQLHaving));
|
|
3150
3152
|
const orderUpOff = allowOrderBy
|
|
3151
3153
|
? [(0, combi_1.optPrio)((0, combi_1.seq)(_1.SQLOrderBy, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), (0, combi_1.optPrio)(offset)))]
|
|
3152
3154
|
: [];
|
|
3153
|
-
const trailingOpts = (0, combi_1.seq)(
|
|
3155
|
+
const trailingOpts = (0, combi_1.seq)(conn, (0, combi_1.optPrio)(_1.SQLHints), (0, combi_1.optPrio)(privileged), (0, combi_1.optPrio)(_1.SQLOptions));
|
|
3154
3156
|
const intoSingle = (0, combi_1.altPrio)(sql_into_structure_1.SQLIntoStructure, _1.SQLIntoList);
|
|
3155
3157
|
const intoForPackSize = _1.SQLIntoTable;
|
|
3156
3158
|
if (!allowInto) {
|
|
3157
3159
|
const afterFromNoInto = (0, combi_1.seq)(_1.SQLFrom, client, byp, (0, combi_1.seq)((0, combi_1.optPrio)(sqlFields), fae, whereClause, groupHaving, ...orderUpOff, trailingOpts));
|
|
3158
3160
|
return (0, combi_1.altPrio)((0, combi_1.seq)("SINGLE", buildSelectSingleCore(false)), (0, combi_1.seq)((0, combi_1.optPrio)("DISTINCT"), fieldList, byp, afterFromNoInto));
|
|
3159
3161
|
}
|
|
3160
|
-
const fromPackSize = (0, combi_1.seq)((0, combi_1.optPrio)(_1.SQLPackageSize), (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp,
|
|
3162
|
+
const fromPackSize = (0, combi_1.seq)((0, combi_1.optPrio)(_1.SQLPackageSize), (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp, conn, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo));
|
|
3161
3163
|
const trailingInto = (0, combi_1.seq)((0, combi_1.optPrio)((0, combi_1.altPrio)((0, combi_1.seq)(intoForPackSize, (0, combi_1.optPrio)(_1.SQLPackageSize), byp, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp, (0, combi_1.optPrio)(offset), (0, combi_1.optPrio)(_1.SQLOrderBy)), (0, combi_1.seq)(intoSingle, byp, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp, (0, combi_1.optPrio)(offset)))), (0, combi_1.optPrio)(_1.SQLOptions));
|
|
3162
|
-
const afterFromWithInto = (0, combi_1.seq)((0, combi_1.optPrio)(_1.SQLFrom), client, byp, fromPackSize, (0, combi_1.altPrio)((0, combi_1.seq)(intoForPackSize, (0, combi_1.optPrio)(_1.SQLPackageSize), byp,
|
|
3164
|
+
const afterFromWithInto = (0, combi_1.seq)((0, combi_1.optPrio)(_1.SQLFrom), client, byp, fromPackSize, (0, combi_1.altPrio)((0, combi_1.seq)(intoForPackSize, (0, combi_1.optPrio)(_1.SQLPackageSize), byp, conn, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp, (0, combi_1.optPrio)(offset), fae, whereClause, groupHaving, ...orderUpOff, trailingOpts), (0, combi_1.seq)(intoSingle, byp, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp, fae, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp, (0, combi_1.optPrio)(offset), whereClause, groupHaving, ...orderUpOff, trailingOpts), (0, combi_1.seq)((0, combi_1.optPrio)(sqlFields), fae, whereClause, groupHaving, ...orderUpOff, trailingOpts, trailingInto)));
|
|
3163
3165
|
const selectTableIntoThenFrom = (0, combi_1.seq)(intoForPackSize, (0, combi_1.optPrio)(_1.SQLPackageSize));
|
|
3164
3166
|
const selectOtherIntoThenFrom = intoSingle;
|
|
3165
|
-
const nonSingleBody = (0, combi_1.seq)((0, combi_1.optPrio)("DISTINCT"), fieldList, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp, (0, combi_1.optPrio)((0, combi_1.altPrio)(selectTableIntoThenFrom, selectOtherIntoThenFrom)), (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp,
|
|
3167
|
+
const nonSingleBody = (0, combi_1.seq)((0, combi_1.optPrio)("DISTINCT"), fieldList, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp, (0, combi_1.optPrio)((0, combi_1.altPrio)(selectTableIntoThenFrom, selectOtherIntoThenFrom)), (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp, conn, afterFromWithInto);
|
|
3166
3168
|
return (0, combi_1.altPrio)((0, combi_1.seq)("SINGLE", buildSelectSingleCore(true)), nonSingleBody);
|
|
3167
3169
|
}
|
|
3168
3170
|
//# sourceMappingURL=_select_core.js.map
|
|
@@ -3320,9 +3322,15 @@ const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src
|
|
|
3320
3322
|
class AssignSource extends combi_1.Expression {
|
|
3321
3323
|
getRunnable() {
|
|
3322
3324
|
const component = (0, combi_1.seq)("COMPONENT", (0, combi_1.alt)(simple_source3_1.SimpleSource3, (0, combi_1.ver)(version_1.Release.v740sp02, source_1.Source, { also: combi_1.AlsoIn.OpenABAP })), "OF STRUCTURE", source_1.Source);
|
|
3323
|
-
|
|
3324
|
-
const
|
|
3325
|
-
|
|
3325
|
+
// TABLE FIELD form: blocked in KeyUser
|
|
3326
|
+
const tableField = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("TABLE FIELD", (0, combi_1.alt)(source_1.Source, dynamic_1.Dynamic)));
|
|
3327
|
+
// class=>(dyn_attr) via static arrow is blocked in KeyUser
|
|
3328
|
+
// ref->(dyn_comp) via instance arrow is allowed — leave unguarded
|
|
3329
|
+
const arrowDynamic = (0, combi_1.alt)((0, combi_1.tok)(tokens_1.InstanceArrow), (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.tok)(tokens_1.StaticArrow)));
|
|
3330
|
+
const anyArrow = (0, combi_1.alt)((0, combi_1.tok)(tokens_1.InstanceArrow), (0, combi_1.tok)(tokens_1.StaticArrow));
|
|
3331
|
+
const source = (0, combi_1.alt)((0, combi_1.seq)(source_1.Source, (0, combi_1.opt)((0, combi_1.seq)(arrowDynamic, dynamic_1.Dynamic))), component, tableField,
|
|
3332
|
+
// standalone dynamic symbol (dyn_sym) blocked in KeyUser
|
|
3333
|
+
(0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)(dynamic_1.Dynamic, (0, combi_1.opt)((0, combi_1.seq)(anyArrow, (0, combi_1.alt)(field_1.Field, dynamic_1.Dynamic))))));
|
|
3326
3334
|
return source;
|
|
3327
3335
|
}
|
|
3328
3336
|
}
|
|
@@ -4223,8 +4231,16 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
4223
4231
|
exports.DatabaseTable = void 0;
|
|
4224
4232
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
4225
4233
|
const dynamic_1 = __webpack_require__(/*! ./dynamic */ "../core/build/src/abap/2_statements/expressions/dynamic.js");
|
|
4234
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
4226
4235
|
class DatabaseTable extends combi_1.Expression {
|
|
4236
|
+
constructor(noDynamic = false) {
|
|
4237
|
+
super();
|
|
4238
|
+
this.noDynamic = noDynamic;
|
|
4239
|
+
}
|
|
4227
4240
|
getRunnable() {
|
|
4241
|
+
if (this.noDynamic) {
|
|
4242
|
+
return (0, combi_1.altPrio)((0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, dynamic_1.Dynamic), (0, combi_1.regex)(/^\*?(\/\w+\/)?\w+$/));
|
|
4243
|
+
}
|
|
4228
4244
|
return (0, combi_1.altPrio)(dynamic_1.Dynamic, (0, combi_1.regex)(/^\*?(\/\w+\/)?\w+$/));
|
|
4229
4245
|
}
|
|
4230
4246
|
}
|
|
@@ -7040,7 +7056,7 @@ const _select_core_1 = __webpack_require__(/*! ./_select_core */ "../core/build/
|
|
|
7040
7056
|
class Select extends combi_1.Expression {
|
|
7041
7057
|
getRunnable() {
|
|
7042
7058
|
const into = (0, combi_1.altPrio)(_1.SQLIntoTable, sql_into_structure_1.SQLIntoStructure, _1.SQLIntoList);
|
|
7043
|
-
const standalone = (0, combi_1.altPrio)((0, combi_1.seq)("SINGLE", (0, combi_1.optPrio)("FOR UPDATE"), (0, _select_core_1.buildSelectSingleCore)(true)), (0, _select_core_1.buildSelectCore)(true));
|
|
7059
|
+
const standalone = (0, combi_1.altPrio)((0, combi_1.seq)("SINGLE", (0, combi_1.optPrio)((0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, "FOR UPDATE")), (0, _select_core_1.buildSelectSingleCore)(true)), (0, _select_core_1.buildSelectCore)(true));
|
|
7044
7060
|
const unionTail = (0, combi_1.ver)(version_1.Release.v750, (0, combi_1.plusPrio)(_1.SQLSetOp), { also: combi_1.AlsoIn.OpenABAP });
|
|
7045
7061
|
const chained = (0, combi_1.seq)((0, _select_core_1.buildSelectCore)(false, false), unionTail, (0, combi_1.optPrio)(_1.SQLOrderBy), (0, combi_1.optPrio)(into));
|
|
7046
7062
|
return (0, combi_1.seq)("SELECT", (0, combi_1.altPrio)(chained, standalone));
|
|
@@ -7075,8 +7091,9 @@ class SelectCTE extends combi_1.Expression {
|
|
|
7075
7091
|
const bypass = "BYPASSING BUFFER";
|
|
7076
7092
|
const privileged = (0, combi_1.ver)(version_1.Release.v758, _1.SQLPrivilegedAccess);
|
|
7077
7093
|
const offset = (0, combi_1.ver)(version_1.Release.v751, (0, combi_1.seq)("OFFSET", sql_source_1.SQLSource));
|
|
7094
|
+
const conn = (0, combi_1.optPrio)((0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, _1.DatabaseConnection));
|
|
7078
7095
|
const groupHaving = (0, combi_1.seq)((0, combi_1.optPrio)(_1.SQLGroupBy), (0, combi_1.optPrio)(_1.SQLHaving));
|
|
7079
|
-
const tail = (0, combi_1.seq)(groupHaving, (0, combi_1.optPrio)((0, combi_1.seq)(_1.SQLOrderBy, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), (0, combi_1.optPrio)(offset))), (0, combi_1.optPrio)(_1.SQLHints), (0, combi_1.optPrio)(privileged), (0, combi_1.optPrio)(_1.SQLOptions),
|
|
7096
|
+
const tail = (0, combi_1.seq)(groupHaving, (0, combi_1.optPrio)((0, combi_1.seq)(_1.SQLOrderBy, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), (0, combi_1.optPrio)(offset))), (0, combi_1.optPrio)(_1.SQLHints), (0, combi_1.optPrio)(privileged), (0, combi_1.optPrio)(_1.SQLOptions), conn);
|
|
7080
7097
|
const sqlStyle = (0, combi_1.seq)(_1.SQLFrom, (0, combi_1.optPrio)(_1.SQLClient), (0, combi_1.optPrio)(bypass), (0, combi_1.ver)(version_1.Release.v750, sql_fields_loop_1.SQLFieldsLoop, { also: combi_1.AlsoIn.OpenABAP }), (0, combi_1.optPrio)(_1.SQLForAllEntries), (0, combi_1.optPrio)(where), tail);
|
|
7081
7098
|
const abapStyle = (0, combi_1.seq)((0, combi_1.optPrio)("DISTINCT"), sql_field_list_loop_greedy_1.SQLFieldListLoopGreedy, _1.SQLFrom, (0, combi_1.optPrio)(_1.SQLClient), (0, combi_1.optPrio)(bypass), (0, combi_1.optPrio)(_1.SQLForAllEntries), (0, combi_1.optPrio)(where), tail);
|
|
7082
7099
|
const union = (0, combi_1.seq)("UNION", (0, combi_1.optPrio)((0, combi_1.altPrio)("DISTINCT", "ALL")));
|
|
@@ -7713,7 +7730,7 @@ const dynamic_1 = __webpack_require__(/*! ./dynamic */ "../core/build/src/abap/2
|
|
|
7713
7730
|
class SQLClient extends combi_1.Expression {
|
|
7714
7731
|
getRunnable() {
|
|
7715
7732
|
const clientList = (0, combi_1.ver)(version_1.Release.v740sp05, (0, combi_1.alt)(dynamic_1.Dynamic, (0, combi_1.seq)(sql_alias_field_1.SQLAliasField, (0, combi_1.starPrio)((0, combi_1.seq)(",", sql_alias_field_1.SQLAliasField)))));
|
|
7716
|
-
const client = (0, combi_1.alt)((0, combi_1.verNotLang)(version_1.LanguageVersion.Cloud, (0, combi_1.seq)("CLIENT SPECIFIED", (0, combi_1.optPrio)(clientList))), (0, combi_1.seq)("USING", (0, combi_1.alt)((0, combi_1.ver)(version_1.Release.v740sp05, (0, combi_1.seq)("CLIENT", sql_source_simple_1.SQLSourceSimple)), (0, combi_1.ver)(version_1.Release.v754, (0, combi_1.seq)("CLIENTS IN", (0, combi_1.alt)(sql_source_simple_1.SQLSourceSimple, "T000"))), (0, combi_1.ver)(version_1.Release.v754, "ALL CLIENTS"))));
|
|
7733
|
+
const client = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.alt)((0, combi_1.verNotLang)(version_1.LanguageVersion.Cloud, (0, combi_1.seq)("CLIENT SPECIFIED", (0, combi_1.optPrio)(clientList))), (0, combi_1.seq)("USING", (0, combi_1.alt)((0, combi_1.ver)(version_1.Release.v740sp05, (0, combi_1.seq)("CLIENT", sql_source_simple_1.SQLSourceSimple)), (0, combi_1.ver)(version_1.Release.v754, (0, combi_1.seq)("CLIENTS IN", (0, combi_1.alt)(sql_source_simple_1.SQLSourceSimple, "T000"))), (0, combi_1.ver)(version_1.Release.v754, "ALL CLIENTS")))));
|
|
7717
7734
|
return client;
|
|
7718
7735
|
}
|
|
7719
7736
|
}
|
|
@@ -8123,20 +8140,21 @@ exports.SQLFrom = void 0;
|
|
|
8123
8140
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
8124
8141
|
const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
|
|
8125
8142
|
const _1 = __webpack_require__(/*! . */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
8143
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
8126
8144
|
class SQLFrom extends combi_1.Expression {
|
|
8127
8145
|
// todo: rewrite/refactor this method
|
|
8128
8146
|
getRunnable() {
|
|
8129
8147
|
const joins = (0, combi_1.starPrio)((0, combi_1.seq)((0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), _1.SQLJoin));
|
|
8130
8148
|
// No opening parens
|
|
8131
8149
|
const from0 = (0, combi_1.seq)("FROM", _1.SQLFromSource, joins);
|
|
8132
|
-
// 1 to 7 opening parens, with up to that many closing parens at the end
|
|
8133
|
-
const from1 = (0, combi_1.seq)("FROM", (0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFromSource, joins, (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8134
|
-
const from2 = (0, combi_1.seq)("FROM", (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFromSource, joins, (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8135
|
-
const from3 = (0, combi_1.seq)("FROM", (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFromSource, joins, (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8136
|
-
const from4 = (0, combi_1.seq)("FROM", (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFromSource, joins, (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8137
|
-
const from5 = (0, combi_1.seq)("FROM", (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFromSource, joins, (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8138
|
-
const from6 = (0, combi_1.seq)("FROM", (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFromSource, joins, (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8139
|
-
const from7 = (0, combi_1.seq)("FROM", (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFromSource, joins, (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8150
|
+
// 1 to 7 opening parens, with up to that many closing parens at the end (dynamic FROM, not allowed in KeyUser)
|
|
8151
|
+
const from1 = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("FROM", (0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFromSource, joins, (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW))));
|
|
8152
|
+
const from2 = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("FROM", (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFromSource, joins, (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW))));
|
|
8153
|
+
const from3 = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("FROM", (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFromSource, joins, (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW))));
|
|
8154
|
+
const from4 = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("FROM", (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFromSource, joins, (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW))));
|
|
8155
|
+
const from5 = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("FROM", (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFromSource, joins, (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW))));
|
|
8156
|
+
const from6 = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("FROM", (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFromSource, joins, (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW))));
|
|
8157
|
+
const from7 = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("FROM", (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFromSource, joins, (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW))));
|
|
8140
8158
|
const source = (0, combi_1.altPrio)(from7, from6, from5, from4, from3, from2, from1, from0);
|
|
8141
8159
|
return source;
|
|
8142
8160
|
}
|
|
@@ -8171,7 +8189,8 @@ class SQLFromSource extends combi_1.Expression {
|
|
|
8171
8189
|
const tab = (0, combi_1.ver)(version_1.Release.v752, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WAt), _1.FieldChain), { also: combi_1.AlsoIn.OpenABAP });
|
|
8172
8190
|
const aas = (0, combi_1.seq)("AS", _1.SQLAsName);
|
|
8173
8191
|
const privileged = (0, combi_1.ver)(version_1.Release.v752, (0, combi_1.seq)("WITH", _1.SQLPrivilegedAccess));
|
|
8174
|
-
|
|
8192
|
+
const pathForEntity = (0, combi_1.optPrio)((0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, new sql_path_for_entity_1.SQLPathForEntity()));
|
|
8193
|
+
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, pathForEntity), (0, combi_1.seq)(new _1.DatabaseTable(true), (0, combi_1.optPrio)(_1.SQLCDSParameters), pathForEntity), tab), (0, combi_1.optPrio)(privileged), (0, combi_1.optPrio)(aas));
|
|
8175
8194
|
}
|
|
8176
8195
|
}
|
|
8177
8196
|
exports.SQLFromSource = SQLFromSource;
|
|
@@ -10930,6 +10949,7 @@ exports.NativeSQL = NativeSQL;
|
|
|
10930
10949
|
|
|
10931
10950
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
10932
10951
|
exports.Add = void 0;
|
|
10952
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
10933
10953
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
10934
10954
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
10935
10955
|
class Add {
|
|
@@ -10939,7 +10959,7 @@ class Add {
|
|
|
10939
10959
|
const giving = (0, combi_1.seq)("GIVING", expressions_1.Source);
|
|
10940
10960
|
const then = (0, combi_1.seq)("THEN", expressions_1.Source, "UNTIL", expressions_1.Source, (0, combi_1.opt)((0, combi_1.per)(giving, accordingTo)), (0, combi_1.opt)(to));
|
|
10941
10961
|
const ret = (0, combi_1.seq)("ADD", expressions_1.Source, (0, combi_1.altPrio)(to, then));
|
|
10942
|
-
return ret;
|
|
10962
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, ret);
|
|
10943
10963
|
}
|
|
10944
10964
|
}
|
|
10945
10965
|
exports.Add = Add;
|
|
@@ -11035,12 +11055,13 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
11035
11055
|
exports.Assert = void 0;
|
|
11036
11056
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
11037
11057
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
11058
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
11038
11059
|
class Assert {
|
|
11039
11060
|
getMatcher() {
|
|
11040
11061
|
const fields = (0, combi_1.seq)("FIELDS", (0, combi_1.plus)(expressions_1.Source));
|
|
11041
11062
|
const subkey = (0, combi_1.seq)("SUBKEY", expressions_1.Source);
|
|
11042
11063
|
const id = (0, combi_1.seq)("ID", expressions_1.NamespaceSimpleName);
|
|
11043
|
-
return (0, combi_1.seq)("ASSERT", (0, combi_1.optPrio)(id), (0, combi_1.optPrio)(subkey), (0, combi_1.opt)(fields), (0, combi_1.optPrio)("CONDITION"), expressions_1.Cond);
|
|
11064
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("ASSERT", (0, combi_1.optPrio)(id), (0, combi_1.optPrio)(subkey), (0, combi_1.opt)(fields), (0, combi_1.optPrio)("CONDITION"), expressions_1.Cond));
|
|
11044
11065
|
}
|
|
11045
11066
|
}
|
|
11046
11067
|
exports.Assert = Assert;
|
|
@@ -11063,14 +11084,19 @@ const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/s
|
|
|
11063
11084
|
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
11064
11085
|
class Assign {
|
|
11065
11086
|
getMatcher() {
|
|
11066
|
-
const
|
|
11087
|
+
const dynamicType = (0, combi_1.altPrio)((0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, expressions_1.Dynamic), expressions_1.TypeName);
|
|
11088
|
+
const type = (0, combi_1.seq)("TYPE", dynamicType);
|
|
11067
11089
|
const like = (0, combi_1.seq)("LIKE", (0, combi_1.altPrio)(expressions_1.Dynamic, expressions_1.Source));
|
|
11068
11090
|
const handle = (0, combi_1.seq)("TYPE HANDLE", expressions_1.Source);
|
|
11069
11091
|
const range = (0, combi_1.seq)("RANGE", expressions_1.Source);
|
|
11070
11092
|
const decimals = (0, combi_1.seq)("DECIMALS", expressions_1.Source);
|
|
11071
|
-
const
|
|
11093
|
+
const castingType = (0, combi_1.seq)("CASTING", (0, combi_1.opt)((0, combi_1.alt)(like, handle, (0, combi_1.per)(type, decimals))));
|
|
11094
|
+
// CASTING TYPE (dyntype) blocked in KeyUser
|
|
11095
|
+
const casting = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, castingType);
|
|
11072
11096
|
const obsoleteType = (0, combi_1.seq)("TYPE", expressions_1.Source, (0, combi_1.optPrio)(decimals));
|
|
11073
|
-
const ret = (0, combi_1.seq)("ASSIGN",
|
|
11097
|
+
const ret = (0, combi_1.seq)("ASSIGN",
|
|
11098
|
+
// INCREMENT addition blocked in KeyUser
|
|
11099
|
+
(0, combi_1.opt)((0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)(expressions_1.Target, "INCREMENT"))), expressions_1.AssignSource, "TO", expressions_1.FSTarget, (0, combi_1.opt)((0, combi_1.altPrio)(casting, obsoleteType, decimals)), (0, combi_1.opt)(range), (0, combi_1.opt)((0, combi_1.ver)(version_1.Release.v757, "ELSE UNASSIGN")));
|
|
11074
11100
|
return ret;
|
|
11075
11101
|
}
|
|
11076
11102
|
}
|
|
@@ -11116,6 +11142,7 @@ exports.AssignLocalCopy = AssignLocalCopy;
|
|
|
11116
11142
|
|
|
11117
11143
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
11118
11144
|
exports.At = void 0;
|
|
11145
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
11119
11146
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
11120
11147
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
11121
11148
|
class At {
|
|
@@ -11125,7 +11152,7 @@ class At {
|
|
|
11125
11152
|
const atEnd = (0, combi_1.seq)("END OF", field);
|
|
11126
11153
|
const group = (0, combi_1.regex)(/^[%\w]+$/);
|
|
11127
11154
|
const ret = (0, combi_1.seq)("AT", (0, combi_1.altPrio)(atNew, atEnd, group));
|
|
11128
|
-
return ret;
|
|
11155
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, ret);
|
|
11129
11156
|
}
|
|
11130
11157
|
}
|
|
11131
11158
|
exports.At = At;
|
|
@@ -11285,12 +11312,13 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
11285
11312
|
exports.AuthorityCheck = void 0;
|
|
11286
11313
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
11287
11314
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
11315
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
11288
11316
|
class AuthorityCheck {
|
|
11289
11317
|
getMatcher() {
|
|
11290
11318
|
const field = (0, combi_1.seq)("FIELD", expressions_1.Source);
|
|
11291
11319
|
const id = (0, combi_1.seq)("ID", expressions_1.Source, (0, combi_1.alt)(field, "DUMMY"));
|
|
11292
11320
|
const ret = (0, combi_1.seq)("AUTHORITY-CHECK OBJECT", expressions_1.Source, (0, combi_1.opt)((0, combi_1.seq)("FOR USER", expressions_1.Source)), (0, combi_1.plus)(id));
|
|
11293
|
-
return ret;
|
|
11321
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, ret);
|
|
11294
11322
|
}
|
|
11295
11323
|
}
|
|
11296
11324
|
exports.AuthorityCheck = AuthorityCheck;
|
|
@@ -11383,10 +11411,11 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
11383
11411
|
exports.Call = void 0;
|
|
11384
11412
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
11385
11413
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
11414
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
11386
11415
|
// method call
|
|
11387
11416
|
class Call {
|
|
11388
11417
|
getMatcher() {
|
|
11389
|
-
const call = (0, combi_1.seq)("CALL METHOD", expressions_1.MethodSource, expressions_1.MethodCallBody);
|
|
11418
|
+
const call = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("CALL METHOD", expressions_1.MethodSource, expressions_1.MethodCallBody));
|
|
11390
11419
|
return (0, combi_1.altPrio)(call, expressions_1.MethodCallChain);
|
|
11391
11420
|
}
|
|
11392
11421
|
}
|
|
@@ -11502,7 +11531,7 @@ class CallFunction {
|
|
|
11502
11531
|
const ex = (0, combi_1.seq)("EXCEPTION-TABLE", expressions_1.Source);
|
|
11503
11532
|
const dynamic = (0, combi_1.alt)((0, combi_1.seq)("PARAMETER-TABLE", expressions_1.Source, (0, combi_1.opt)(ex)), ex);
|
|
11504
11533
|
const call = (0, combi_1.seq)("CALL", (0, combi_1.altPrio)("FUNCTION", (0, combi_1.verNotLang)(version_1.LanguageVersion.Cloud, "CUSTOMER-FUNCTION")), expressions_1.FunctionName, (0, combi_1.opt)(options), (0, combi_1.alt)(expressions_1.FunctionParameters, dynamic));
|
|
11505
|
-
return call;
|
|
11534
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, call);
|
|
11506
11535
|
}
|
|
11507
11536
|
}
|
|
11508
11537
|
exports.CallFunction = CallFunction;
|
|
@@ -11678,6 +11707,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
11678
11707
|
exports.CallTransformation = void 0;
|
|
11679
11708
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
11680
11709
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
11710
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
11681
11711
|
class CallTransformation {
|
|
11682
11712
|
getMatcher() {
|
|
11683
11713
|
const options = (0, combi_1.seq)("OPTIONS", expressions_1.CallTransformationOptions);
|
|
@@ -11688,7 +11718,7 @@ class CallTransformation {
|
|
|
11688
11718
|
const result2 = (0, combi_1.seq)("XML", expressions_1.Target);
|
|
11689
11719
|
const result = (0, combi_1.seq)("RESULT", (0, combi_1.alt)(expressions_1.CallTransformationParameters, result2));
|
|
11690
11720
|
const call = (0, combi_1.seq)("CALL TRANSFORMATION", (0, combi_1.alt)(expressions_1.NamespaceSimpleName, expressions_1.Dynamic), (0, combi_1.per)(options, parameters, objects, source, result));
|
|
11691
|
-
return call;
|
|
11721
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, call);
|
|
11692
11722
|
}
|
|
11693
11723
|
}
|
|
11694
11724
|
exports.CallTransformation = CallTransformation;
|
|
@@ -11937,9 +11967,10 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
11937
11967
|
exports.ClassDeferred = void 0;
|
|
11938
11968
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
11939
11969
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
11970
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
11940
11971
|
class ClassDeferred {
|
|
11941
11972
|
getMatcher() {
|
|
11942
|
-
return (0, combi_1.seq)("CLASS", expressions_1.ClassName, "DEFINITION DEFERRED", (0, combi_1.optPrio)("PUBLIC"));
|
|
11973
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("CLASS", expressions_1.ClassName, "DEFINITION DEFERRED", (0, combi_1.optPrio)("PUBLIC")));
|
|
11943
11974
|
}
|
|
11944
11975
|
}
|
|
11945
11976
|
exports.ClassDeferred = ClassDeferred;
|
|
@@ -11987,11 +12018,12 @@ exports.ClassDefinition = ClassDefinition;
|
|
|
11987
12018
|
|
|
11988
12019
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
11989
12020
|
exports.ClassDefinitionLoad = void 0;
|
|
12021
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
11990
12022
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
11991
12023
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
11992
12024
|
class ClassDefinitionLoad {
|
|
11993
12025
|
getMatcher() {
|
|
11994
|
-
return (0, combi_1.seq)("CLASS", expressions_1.ClassName, "DEFINITION LOAD");
|
|
12026
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("CLASS", expressions_1.ClassName, "DEFINITION LOAD"));
|
|
11995
12027
|
}
|
|
11996
12028
|
}
|
|
11997
12029
|
exports.ClassDefinitionLoad = ClassDefinitionLoad;
|
|
@@ -12174,10 +12206,11 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
12174
12206
|
exports.Commit = void 0;
|
|
12175
12207
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
12176
12208
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
12209
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
12177
12210
|
class Commit {
|
|
12178
12211
|
getMatcher() {
|
|
12179
12212
|
const work = (0, combi_1.seq)("WORK", (0, combi_1.opt)("AND WAIT"));
|
|
12180
|
-
return (0, combi_1.seq)("COMMIT", (0, combi_1.alt)(work, expressions_1.DatabaseConnection));
|
|
12213
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("COMMIT", (0, combi_1.alt)(work, expressions_1.DatabaseConnection)));
|
|
12181
12214
|
}
|
|
12182
12215
|
}
|
|
12183
12216
|
exports.Commit = Commit;
|
|
@@ -12204,7 +12237,7 @@ class CommitEntities {
|
|
|
12204
12237
|
const reported = (0, combi_1.seq)("REPORTED", expressions_1.Target);
|
|
12205
12238
|
const responses = (0, combi_1.seq)("RESPONSES", failed, reported);
|
|
12206
12239
|
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))));
|
|
12207
|
-
return (0, combi_1.ver)(version_1.Release.v754, s, { also: combi_1.AlsoIn.OpenABAP });
|
|
12240
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.ver)(version_1.Release.v754, s, { also: combi_1.AlsoIn.OpenABAP }));
|
|
12208
12241
|
}
|
|
12209
12242
|
}
|
|
12210
12243
|
exports.CommitEntities = CommitEntities;
|
|
@@ -12550,7 +12583,7 @@ class CreateData {
|
|
|
12550
12583
|
const key = (0, combi_1.seq)("WITH", (0, combi_1.alt)(def, kdef));
|
|
12551
12584
|
const specified = (0, combi_1.seq)((0, combi_1.alt)(type, like), (0, combi_1.opt)(key), (0, combi_1.opt)(initial), (0, combi_1.opt)(length), (0, combi_1.opt)(decimals));
|
|
12552
12585
|
const ret = (0, combi_1.seq)("CREATE DATA", expressions_1.Target, (0, combi_1.opt)((0, combi_1.alt)(typeHandle, (0, combi_1.seq)((0, combi_1.opt)(areaHandle), specified))));
|
|
12553
|
-
return ret;
|
|
12586
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, ret);
|
|
12554
12587
|
}
|
|
12555
12588
|
}
|
|
12556
12589
|
exports.CreateData = CreateData;
|
|
@@ -12580,7 +12613,7 @@ class CreateObject {
|
|
|
12580
12613
|
const area = (0, combi_1.seq)("AREA HANDLE", expressions_1.Source);
|
|
12581
12614
|
const type = (0, combi_1.seq)("TYPE", (0, combi_1.altPrio)(expressions_1.ClassName, expressions_1.Dynamic));
|
|
12582
12615
|
const ret = (0, combi_1.seq)("CREATE OBJECT", expressions_1.Target, (0, combi_1.optPrio)((0, combi_1.per)(type, (0, combi_1.verNotLang)(version_1.LanguageVersion.Cloud, area))), (0, combi_1.optPrio)((0, combi_1.altPrio)(exporting, ptable)), (0, combi_1.optPrio)((0, combi_1.altPrio)(exceptions, etable)));
|
|
12583
|
-
return ret;
|
|
12616
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, ret);
|
|
12584
12617
|
}
|
|
12585
12618
|
}
|
|
12586
12619
|
exports.CreateObject = CreateObject;
|
|
@@ -12746,6 +12779,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
12746
12779
|
exports.DeleteDatabase = void 0;
|
|
12747
12780
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
12748
12781
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
12782
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
12749
12783
|
const sql_client_1 = __webpack_require__(/*! ../expressions/sql_client */ "../core/build/src/abap/2_statements/expressions/sql_client.js");
|
|
12750
12784
|
class DeleteDatabase {
|
|
12751
12785
|
getMatcher() {
|
|
@@ -12754,7 +12788,7 @@ class DeleteDatabase {
|
|
|
12754
12788
|
const fromSomething = (0, combi_1.seq)("FROM", (0, combi_1.opt)("TABLE"), expressions_1.SQLSourceSimple);
|
|
12755
12789
|
const table = (0, combi_1.seq)(expressions_1.DatabaseTable, (0, combi_1.optPrio)(sql_client_1.SQLClient), (0, combi_1.optPrio)(expressions_1.DatabaseConnection), (0, combi_1.optPrio)(fromSomething));
|
|
12756
12790
|
const ret = (0, combi_1.seq)("DELETE", (0, combi_1.altPrio)(from, table));
|
|
12757
|
-
return ret;
|
|
12791
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, ret);
|
|
12758
12792
|
}
|
|
12759
12793
|
}
|
|
12760
12794
|
exports.DeleteDatabase = DeleteDatabase;
|
|
@@ -12822,6 +12856,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
12822
12856
|
exports.DeleteInternal = void 0;
|
|
12823
12857
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
12824
12858
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
12859
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
12825
12860
|
class DeleteInternal {
|
|
12826
12861
|
getMatcher() {
|
|
12827
12862
|
// todo, is READ and DELETE similar? something can be reused?
|
|
@@ -12830,7 +12865,8 @@ class DeleteInternal {
|
|
|
12830
12865
|
const using = (0, combi_1.seq)("USING KEY", keyName);
|
|
12831
12866
|
const from = (0, combi_1.seq)("FROM", expressions_1.Source);
|
|
12832
12867
|
const fromTo = (0, combi_1.seq)((0, combi_1.optPrio)(from), (0, combi_1.optPrio)((0, combi_1.seq)("TO", expressions_1.Source)));
|
|
12833
|
-
|
|
12868
|
+
// WHERE (dynamic) blocked in KeyUser
|
|
12869
|
+
const where = (0, combi_1.seq)("WHERE", (0, combi_1.alt)(expressions_1.ComponentCond, (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, expressions_1.Dynamic)));
|
|
12834
12870
|
const key = (0, combi_1.seq)("WITH TABLE KEY", (0, combi_1.opt)((0, combi_1.seq)(keyName, "COMPONENTS")), (0, combi_1.plus)(expressions_1.ComponentCompare));
|
|
12835
12871
|
const table = (0, combi_1.seq)("TABLE", expressions_1.Target, (0, combi_1.alt)((0, combi_1.per)(index, using), (0, combi_1.seq)((0, combi_1.optPrio)(from), (0, combi_1.optPrio)(using)), key));
|
|
12836
12872
|
const other = (0, combi_1.seq)(expressions_1.Target, (0, combi_1.alt)((0, combi_1.per)(index, using), fromTo, key), (0, combi_1.opt)(where));
|
|
@@ -13022,12 +13058,13 @@ exports.Detail = Detail;
|
|
|
13022
13058
|
|
|
13023
13059
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
13024
13060
|
exports.Divide = void 0;
|
|
13061
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
13025
13062
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
13026
13063
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
13027
13064
|
class Divide {
|
|
13028
13065
|
getMatcher() {
|
|
13029
13066
|
const ret = (0, combi_1.seq)("DIVIDE", expressions_1.Target, "BY", expressions_1.Source);
|
|
13030
|
-
return ret;
|
|
13067
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, ret);
|
|
13031
13068
|
}
|
|
13032
13069
|
}
|
|
13033
13070
|
exports.Divide = Divide;
|
|
@@ -13473,10 +13510,10 @@ exports.EndExec = EndExec;
|
|
|
13473
13510
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
13474
13511
|
exports.EndForm = void 0;
|
|
13475
13512
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
13513
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
13476
13514
|
class EndForm {
|
|
13477
13515
|
getMatcher() {
|
|
13478
|
-
|
|
13479
|
-
return ret;
|
|
13516
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.str)("ENDFORM"));
|
|
13480
13517
|
}
|
|
13481
13518
|
}
|
|
13482
13519
|
exports.EndForm = EndForm;
|
|
@@ -13495,9 +13532,10 @@ exports.EndForm = EndForm;
|
|
|
13495
13532
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
13496
13533
|
exports.EndFunction = void 0;
|
|
13497
13534
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
13535
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
13498
13536
|
class EndFunction {
|
|
13499
13537
|
getMatcher() {
|
|
13500
|
-
return (0, combi_1.str)("ENDFUNCTION");
|
|
13538
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.str)("ENDFUNCTION"));
|
|
13501
13539
|
}
|
|
13502
13540
|
}
|
|
13503
13541
|
exports.EndFunction = EndFunction;
|
|
@@ -13734,7 +13772,7 @@ const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_st
|
|
|
13734
13772
|
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
13735
13773
|
class EndWith {
|
|
13736
13774
|
getMatcher() {
|
|
13737
|
-
return (0, combi_1.ver)(version_1.Release.v751, "ENDWITH");
|
|
13775
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.ver)(version_1.Release.v751, "ENDWITH"));
|
|
13738
13776
|
}
|
|
13739
13777
|
}
|
|
13740
13778
|
exports.EndWith = EndWith;
|
|
@@ -13897,6 +13935,7 @@ exports.Export = void 0;
|
|
|
13897
13935
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
13898
13936
|
const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
|
|
13899
13937
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
13938
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
13900
13939
|
// todo, cloud, split?
|
|
13901
13940
|
class Export {
|
|
13902
13941
|
getMatcher() {
|
|
@@ -13906,10 +13945,10 @@ class Export {
|
|
|
13906
13945
|
const using = (0, combi_1.seq)("USING", expressions_1.Source);
|
|
13907
13946
|
const cluster = (0, combi_1.seq)(expressions_1.NamespaceSimpleName, (0, combi_1.tok)(tokens_1.ParenLeft), (0, combi_1.regex)(/^[\w$%\^~]{2}$/), (0, combi_1.tok)(tokens_1.ParenRightW));
|
|
13908
13947
|
const buffer = (0, combi_1.seq)("DATA BUFFER", expressions_1.Target);
|
|
13909
|
-
const memory = (0, combi_1.seq)("MEMORY", (0, combi_1.opt)((0, combi_1.seq)("ID", expressions_1.Source)));
|
|
13948
|
+
const memory = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("MEMORY", (0, combi_1.opt)((0, combi_1.seq)("ID", expressions_1.Source))));
|
|
13910
13949
|
const table = (0, combi_1.seq)("INTERNAL TABLE", expressions_1.Target);
|
|
13911
|
-
const shared = (0, combi_1.seq)((0, combi_1.alt)("SHARED MEMORY", "SHARED BUFFER"), cluster, (0, combi_1.per)(from, client, id));
|
|
13912
|
-
const database = (0, combi_1.seq)("DATABASE", cluster, (0, combi_1.per)(from, client, id, using));
|
|
13950
|
+
const shared = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)((0, combi_1.alt)("SHARED MEMORY", "SHARED BUFFER"), cluster, (0, combi_1.per)(from, client, id)));
|
|
13951
|
+
const database = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("DATABASE", cluster, (0, combi_1.per)(from, client, id, using)));
|
|
13913
13952
|
const target = (0, combi_1.alt)(buffer, memory, database, table, shared);
|
|
13914
13953
|
const left = (0, combi_1.alt)(expressions_1.FieldSub, expressions_1.FieldSymbol);
|
|
13915
13954
|
const source = (0, combi_1.alt)((0, combi_1.plus)((0, combi_1.altPrio)((0, combi_1.seq)(left, from), left)), expressions_1.Dynamic, expressions_1.Constant);
|
|
@@ -14141,11 +14180,12 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
14141
14180
|
exports.Form = void 0;
|
|
14142
14181
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
14143
14182
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
14183
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
14144
14184
|
class Form {
|
|
14145
14185
|
getMatcher() {
|
|
14146
14186
|
const parameters = (0, combi_1.seq)((0, combi_1.opt)(expressions_1.FormTables), (0, combi_1.opt)(expressions_1.FormUsing), (0, combi_1.opt)(expressions_1.FormChanging), (0, combi_1.opt)(expressions_1.FormRaising));
|
|
14147
14187
|
const ret = (0, combi_1.seq)("FORM", expressions_1.FormName, (0, combi_1.alt)("IMPLEMENTATION", parameters));
|
|
14148
|
-
return ret;
|
|
14188
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, ret);
|
|
14149
14189
|
}
|
|
14150
14190
|
}
|
|
14151
14191
|
exports.Form = Form;
|
|
@@ -14215,10 +14255,11 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
14215
14255
|
exports.Free = void 0;
|
|
14216
14256
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
14217
14257
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
14258
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
14218
14259
|
class Free {
|
|
14219
14260
|
getMatcher() {
|
|
14220
14261
|
const ret = (0, combi_1.seq)("FREE", expressions_1.Target);
|
|
14221
|
-
return ret;
|
|
14262
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, ret);
|
|
14222
14263
|
}
|
|
14223
14264
|
}
|
|
14224
14265
|
exports.Free = Free;
|
|
@@ -14286,9 +14327,10 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
14286
14327
|
exports.FunctionModule = void 0;
|
|
14287
14328
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
14288
14329
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
14330
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
14289
14331
|
class FunctionModule {
|
|
14290
14332
|
getMatcher() {
|
|
14291
|
-
return (0, combi_1.seq)("FUNCTION", expressions_1.Field);
|
|
14333
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("FUNCTION", expressions_1.Field));
|
|
14292
14334
|
}
|
|
14293
14335
|
}
|
|
14294
14336
|
exports.FunctionModule = FunctionModule;
|
|
@@ -14308,12 +14350,13 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
14308
14350
|
exports.FunctionPool = void 0;
|
|
14309
14351
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
14310
14352
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
14353
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
14311
14354
|
class FunctionPool {
|
|
14312
14355
|
getMatcher() {
|
|
14313
14356
|
const message = (0, combi_1.seq)("MESSAGE-ID", expressions_1.MessageClass);
|
|
14314
14357
|
const line = (0, combi_1.seq)("LINE-SIZE", expressions_1.Integer);
|
|
14315
14358
|
const no = (0, combi_1.str)("NO STANDARD PAGE HEADING");
|
|
14316
|
-
return (0, combi_1.seq)("FUNCTION-POOL", expressions_1.IncludeName, (0, combi_1.opt)((0, combi_1.per)(message, line, no)));
|
|
14359
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("FUNCTION-POOL", expressions_1.IncludeName, (0, combi_1.opt)((0, combi_1.per)(message, line, no))));
|
|
14317
14360
|
}
|
|
14318
14361
|
}
|
|
14319
14362
|
exports.FunctionPool = FunctionPool;
|
|
@@ -14686,10 +14729,11 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
14686
14729
|
exports.GetReference = void 0;
|
|
14687
14730
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
14688
14731
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
14732
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
14689
14733
|
class GetReference {
|
|
14690
14734
|
getMatcher() {
|
|
14691
14735
|
const ret = (0, combi_1.seq)("GET REFERENCE OF", expressions_1.Source, "INTO", expressions_1.Target);
|
|
14692
|
-
return ret;
|
|
14736
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, ret);
|
|
14693
14737
|
}
|
|
14694
14738
|
}
|
|
14695
14739
|
exports.GetReference = GetReference;
|
|
@@ -14733,10 +14777,11 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
14733
14777
|
exports.GetTime = void 0;
|
|
14734
14778
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
14735
14779
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
14780
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
14736
14781
|
class GetTime {
|
|
14737
14782
|
getMatcher() {
|
|
14738
14783
|
const options = (0, combi_1.seq)((0, combi_1.alt)("STAMP FIELD", "FIELD"), expressions_1.Target);
|
|
14739
|
-
return (0, combi_1.seq)("GET TIME", (0, combi_1.opt)(options));
|
|
14784
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("GET TIME", (0, combi_1.opt)(options)));
|
|
14740
14785
|
}
|
|
14741
14786
|
}
|
|
14742
14787
|
exports.GetTime = GetTime;
|
|
@@ -14803,6 +14848,7 @@ exports.Import = void 0;
|
|
|
14803
14848
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
14804
14849
|
const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
|
|
14805
14850
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
14851
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
14806
14852
|
class Import {
|
|
14807
14853
|
getMatcher() {
|
|
14808
14854
|
const dto = (0, combi_1.seq)("TO", expressions_1.Target);
|
|
@@ -14811,11 +14857,11 @@ class Import {
|
|
|
14811
14857
|
const using = (0, combi_1.seq)("USING", expressions_1.Source);
|
|
14812
14858
|
const cluster = (0, combi_1.seq)(expressions_1.NamespaceSimpleName, (0, combi_1.tok)(tokens_1.ParenLeft), (0, combi_1.regex)(/^[\w$%\^]{2}$/), (0, combi_1.tok)(tokens_1.ParenRightW));
|
|
14813
14859
|
const buffer = (0, combi_1.seq)("DATA BUFFER", expressions_1.Source);
|
|
14814
|
-
const memory = (0, combi_1.seq)("MEMORY", (0, combi_1.opt)((0, combi_1.seq)("ID", expressions_1.Source)));
|
|
14860
|
+
const memory = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("MEMORY", (0, combi_1.opt)((0, combi_1.seq)("ID", expressions_1.Source))));
|
|
14815
14861
|
const table = (0, combi_1.seq)("INTERNAL TABLE", expressions_1.Source);
|
|
14816
|
-
const shared = (0, combi_1.seq)((0, combi_1.alt)("SHARED MEMORY", "SHARED BUFFER"), cluster, (0, combi_1.per)(dto, client, id));
|
|
14817
|
-
const database = (0, combi_1.seq)("DATABASE", cluster, (0, combi_1.per)(dto, client, id, using));
|
|
14818
|
-
const logfile = (0, combi_1.seq)("LOGFILE ID", expressions_1.Source);
|
|
14862
|
+
const shared = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)((0, combi_1.alt)("SHARED MEMORY", "SHARED BUFFER"), cluster, (0, combi_1.per)(dto, client, id)));
|
|
14863
|
+
const database = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("DATABASE", cluster, (0, combi_1.per)(dto, client, id, using)));
|
|
14864
|
+
const logfile = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("LOGFILE ID", expressions_1.Source));
|
|
14819
14865
|
const source = (0, combi_1.alt)(buffer, memory, database, table, shared, logfile);
|
|
14820
14866
|
const to = (0, combi_1.plus)((0, combi_1.seq)(expressions_1.ComponentChainSimple, (0, combi_1.alt)("TO", "INTO"), expressions_1.Target));
|
|
14821
14867
|
const toeq = (0, combi_1.plus)((0, combi_1.seq)((0, combi_1.alt)(expressions_1.ComponentChainSimple, expressions_1.FieldSymbol), "=", expressions_1.Target));
|
|
@@ -15391,13 +15437,14 @@ exports.InsertDatabase = void 0;
|
|
|
15391
15437
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
15392
15438
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
15393
15439
|
const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
|
|
15440
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
15394
15441
|
class InsertDatabase {
|
|
15395
15442
|
getMatcher() {
|
|
15396
15443
|
const sub = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), expressions_1.Select, (0, combi_1.tok)(tokens_1.WParenRightW));
|
|
15397
15444
|
const f = (0, combi_1.seq)((0, combi_1.opt)(expressions_1.SQLClient), (0, combi_1.opt)(expressions_1.DatabaseConnection), "FROM", (0, combi_1.opt)("TABLE"), (0, combi_1.alt)(expressions_1.SQLSource, sub), (0, combi_1.opt)("ACCEPTING DUPLICATE KEYS"));
|
|
15398
15445
|
const from = (0, combi_1.seq)(expressions_1.DatabaseTable, (0, combi_1.opt)((0, combi_1.alt)(f, expressions_1.SQLClient, expressions_1.DatabaseConnection)));
|
|
15399
15446
|
const into = (0, combi_1.seq)("INTO", expressions_1.DatabaseTable, (0, combi_1.opt)(expressions_1.SQLClient), (0, combi_1.opt)(expressions_1.DatabaseConnection), "VALUES", expressions_1.SQLSource);
|
|
15400
|
-
return (0, combi_1.seq)("INSERT", (0, combi_1.alt)(from, into));
|
|
15447
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("INSERT", (0, combi_1.alt)(from, into)));
|
|
15401
15448
|
}
|
|
15402
15449
|
}
|
|
15403
15450
|
exports.InsertDatabase = InsertDatabase;
|
|
@@ -15580,9 +15627,10 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
15580
15627
|
exports.InterfaceDeferred = void 0;
|
|
15581
15628
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
15582
15629
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
15630
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
15583
15631
|
class InterfaceDeferred {
|
|
15584
15632
|
getMatcher() {
|
|
15585
|
-
return (0, combi_1.seq)("INTERFACE", expressions_1.InterfaceName, "DEFERRED", (0, combi_1.opt)("PUBLIC"));
|
|
15633
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("INTERFACE", expressions_1.InterfaceName, "DEFERRED", (0, combi_1.opt)("PUBLIC")));
|
|
15586
15634
|
}
|
|
15587
15635
|
}
|
|
15588
15636
|
exports.InterfaceDeferred = InterfaceDeferred;
|
|
@@ -15600,11 +15648,12 @@ exports.InterfaceDeferred = InterfaceDeferred;
|
|
|
15600
15648
|
|
|
15601
15649
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
15602
15650
|
exports.InterfaceLoad = void 0;
|
|
15651
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
15603
15652
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
15604
15653
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
15605
15654
|
class InterfaceLoad {
|
|
15606
15655
|
getMatcher() {
|
|
15607
|
-
return (0, combi_1.seq)("INTERFACE", expressions_1.InterfaceName, "LOAD");
|
|
15656
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("INTERFACE", expressions_1.InterfaceName, "LOAD"));
|
|
15608
15657
|
}
|
|
15609
15658
|
}
|
|
15610
15659
|
exports.InterfaceLoad = InterfaceLoad;
|
|
@@ -15751,7 +15800,7 @@ const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src
|
|
|
15751
15800
|
const loop_group_by_1 = __webpack_require__(/*! ../expressions/loop_group_by */ "../core/build/src/abap/2_statements/expressions/loop_group_by.js");
|
|
15752
15801
|
class Loop {
|
|
15753
15802
|
getMatcher() {
|
|
15754
|
-
const where = (0, combi_1.seq)("WHERE", (0, combi_1.alt)(expressions_1.ComponentCond, expressions_1.Dynamic));
|
|
15803
|
+
const where = (0, combi_1.seq)("WHERE", (0, combi_1.alt)(expressions_1.ComponentCond, (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, expressions_1.Dynamic)));
|
|
15755
15804
|
const group = (0, combi_1.ver)(version_1.Release.v740sp08, (0, combi_1.seq)("GROUP BY", loop_group_by_1.LoopGroupBy), { also: combi_1.AlsoIn.OpenABAP });
|
|
15756
15805
|
const step = (0, combi_1.ver)(version_1.Release.v757, (0, combi_1.seq)("STEP", expressions_1.Source));
|
|
15757
15806
|
const from = (0, combi_1.seq)("FROM", expressions_1.Source);
|
|
@@ -15802,9 +15851,10 @@ exports.LoopAtScreen = LoopAtScreen;
|
|
|
15802
15851
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
15803
15852
|
exports.LoopExtract = void 0;
|
|
15804
15853
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
15854
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
15805
15855
|
class LoopExtract {
|
|
15806
15856
|
getMatcher() {
|
|
15807
|
-
return (0, combi_1.str)("LOOP");
|
|
15857
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.str)("LOOP"));
|
|
15808
15858
|
}
|
|
15809
15859
|
}
|
|
15810
15860
|
exports.LoopExtract = LoopExtract;
|
|
@@ -15829,7 +15879,8 @@ class Message {
|
|
|
15829
15879
|
getMatcher() {
|
|
15830
15880
|
const like = (0, combi_1.seq)("DISPLAY LIKE", expressions_1.Source);
|
|
15831
15881
|
const into = (0, combi_1.seq)("INTO", expressions_1.Target);
|
|
15832
|
-
|
|
15882
|
+
// RAISING addition blocked in KeyUser
|
|
15883
|
+
const raising = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("RAISING", expressions_1.ExceptionName));
|
|
15833
15884
|
const options = (0, combi_1.per)(like, into, raising);
|
|
15834
15885
|
const type = (0, combi_1.seq)("TYPE", expressions_1.Source);
|
|
15835
15886
|
const sou = (0, combi_1.altPrio)(options, expressions_1.MessageSourceSource);
|
|
@@ -15865,8 +15916,10 @@ const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/s
|
|
|
15865
15916
|
class MethodDef {
|
|
15866
15917
|
getMatcher() {
|
|
15867
15918
|
const def = (0, combi_1.ver)(version_1.Release.v740sp08, (0, combi_1.seq)("DEFAULT", (0, combi_1.altPrio)("FAIL", "IGNORE")), { also: combi_1.AlsoIn.OpenABAP });
|
|
15868
|
-
const parameters = (0, combi_1.seq)((0, combi_1.optPrio)((0, combi_1.altPrio)("FINAL", def, expressions_1.Abstract)), (0, combi_1.optPrio)(expressions_1.MethodDefImporting), (0, combi_1.optPrio)(expressions_1.MethodDefExporting), (0, combi_1.optPrio)(expressions_1.MethodDefChanging), (0, combi_1.optPrio)(expressions_1.MethodDefReturning),
|
|
15869
|
-
|
|
15919
|
+
const parameters = (0, combi_1.seq)((0, combi_1.optPrio)((0, combi_1.altPrio)("FINAL", def, expressions_1.Abstract)), (0, combi_1.optPrio)(expressions_1.MethodDefImporting), (0, combi_1.optPrio)(expressions_1.MethodDefExporting), (0, combi_1.optPrio)(expressions_1.MethodDefChanging), (0, combi_1.optPrio)(expressions_1.MethodDefReturning),
|
|
15920
|
+
// Old-style EXCEPTIONS blocked in KeyUser
|
|
15921
|
+
(0, combi_1.optPrio)((0, combi_1.altPrio)(expressions_1.MethodDefRaising, (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, expressions_1.MethodDefExceptions))));
|
|
15922
|
+
const testing = (0, combi_1.seq)((0, combi_1.optPrio)(expressions_1.Abstract), "FOR TESTING", (0, combi_1.optPrio)((0, combi_1.altPrio)(expressions_1.MethodDefRaising, (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, expressions_1.MethodDefExceptions))));
|
|
15870
15923
|
const result = (0, combi_1.seq)("RESULT", expressions_1.MethodParamName);
|
|
15871
15924
|
const link = (0, combi_1.seq)("LINK", expressions_1.MethodParamName);
|
|
15872
15925
|
const full = (0, combi_1.seq)("FULL", expressions_1.MethodParamName);
|
|
@@ -15877,8 +15930,10 @@ class MethodDef {
|
|
|
15877
15930
|
(0, combi_1.seq)("TABLE FUNCTION", expressions_1.NamespaceSimpleName), // todo, this is only from version something
|
|
15878
15931
|
(0, combi_1.seq)("VALIDATE ON SAVE IMPORTING", expressions_1.MethodParamName, "FOR", expressions_1.TypeName), (0, combi_1.seq)("MODIFY", (0, combi_1.opt)("IMPORTING"), (0, combi_1.plus)((0, combi_1.seq)(expressions_1.MethodParamName, modify))), (0, combi_1.seq)("PRECHECK IMPORTING", expressions_1.MethodParamName, modify), (0, combi_1.seq)("DETERMINATION", expressions_1.TypeName, "IMPORTING", expressions_1.MethodParamName, "FOR", expressions_1.TypeName), (0, combi_1.seq)("VALIDATION", expressions_1.TypeName, "IMPORTING", expressions_1.MethodParamName, "FOR", expressions_1.TypeName), (0, combi_1.seq)("NUMBERING IMPORTING", expressions_1.MethodParamName, modify), (0, combi_1.seq)("READ IMPORTING", expressions_1.MethodParamName, (0, combi_1.altPrio)(forRead, forfunction)), (0, combi_1.seq)("FEATURES IMPORTING", expressions_1.MethodParamName, "REQUEST", expressions_1.NamespaceSimpleName, "FOR", expressions_1.NamespaceSimpleName, result), (0, combi_1.seq)("BEHAVIOR IMPORTING", expressions_1.MethodParamName, "FOR CREATE", expressions_1.TypeName, expressions_1.MethodParamName, "FOR UPDATE", expressions_1.TypeName, expressions_1.MethodParamName, "FOR DELETE", expressions_1.TypeName), (0, combi_1.seq)("BEHAVIOR IMPORTING", expressions_1.MethodParamName, "FOR READ", expressions_1.TypeName, result), (0, combi_1.seq)("BEHAVIOR IMPORTING", expressions_1.MethodParamName, "FOR UPDATE", expressions_1.TypeName), (0, combi_1.seq)((0, combi_1.alt)("BEHAVIOR", "LOCK"), "IMPORTING", expressions_1.MethodParamName, "FOR LOCK", expressions_1.TypeName), (0, combi_1.seq)("DETERMINE", (0, combi_1.alt)("ON MODIFY", "ON SAVE"), "IMPORTING", expressions_1.MethodParamName, "FOR", expressions_1.TypeName), (0, combi_1.seq)("GLOBAL AUTHORIZATION IMPORTING REQUEST", expressions_1.MethodParamName, "FOR", expressions_1.TypeName, result), (0, combi_1.seq)("GLOBAL FEATURES IMPORTING REQUEST", expressions_1.MethodParamName, "FOR", expressions_1.TypeName, result), (0, combi_1.seq)((0, combi_1.seq)((0, combi_1.opt)("INSTANCE"), "AUTHORIZATION IMPORTING"), expressions_1.MethodParamName, "REQUEST", expressions_1.MethodParamName, "FOR", expressions_1.TypeName, result), (0, combi_1.seq)("INSTANCE FEATURES IMPORTING", expressions_1.MethodParamName, "REQUEST", expressions_1.MethodParamName, "FOR", expressions_1.TypeName, result));
|
|
15879
15932
|
// todo, this is only from version something
|
|
15880
|
-
|
|
15881
|
-
const
|
|
15933
|
+
// AMDP OPTIONS clause blocked in KeyUser
|
|
15934
|
+
const amdp = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("AMDP OPTIONS", (0, combi_1.optPrio)("READ-ONLY"), "CDS SESSION CLIENT", (0, combi_1.alt)("CURRENT", "DEPENDENT"), (0, combi_1.optPrio)(expressions_1.MethodDefImporting), (0, combi_1.optPrio)(expressions_1.MethodDefExporting), (0, combi_1.optPrio)(expressions_1.MethodDefRaising)));
|
|
15935
|
+
// FOR DDL OBJECT / FOR TABLE FUNCTION / FOR SCALAR FUNCTION blocked in KeyUser
|
|
15936
|
+
const ret = (0, combi_1.seq)((0, combi_1.altPrio)("CLASS-METHODS", "METHODS"), expressions_1.MethodName, (0, combi_1.alt)((0, combi_1.seq)((0, combi_1.optPrio)(expressions_1.Abstract), (0, combi_1.optPrio)(def), expressions_1.EventHandler), parameters, testing, (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("FOR", behavior)), amdp, "NOT AT END OF MODE", (0, combi_1.optPrio)(expressions_1.Redefinition)));
|
|
15882
15937
|
return ret;
|
|
15883
15938
|
}
|
|
15884
15939
|
}
|
|
@@ -15899,13 +15954,15 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
15899
15954
|
exports.MethodImplementation = void 0;
|
|
15900
15955
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
15901
15956
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
15957
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
15902
15958
|
class MethodImplementation {
|
|
15903
15959
|
getMatcher() {
|
|
15904
15960
|
const name = (0, combi_1.regex)(/[\w~]+/);
|
|
15905
15961
|
const kernel = (0, combi_1.seq)("KERNEL MODULE", (0, combi_1.plus)(name), (0, combi_1.optPrio)((0, combi_1.altPrio)("FAIL", "IGNORE")));
|
|
15906
15962
|
const using = (0, combi_1.seq)("USING", (0, combi_1.plus)(expressions_1.SimpleFieldChain));
|
|
15907
15963
|
const database = (0, combi_1.seq)("DATABASE", (0, combi_1.alt)("PROCEDURE", "FUNCTION", "GRAPH WORKSPACE"), "FOR HDB", expressions_1.Language, (0, combi_1.opt)("OPTIONS READ-ONLY"), (0, combi_1.opt)(using));
|
|
15908
|
-
|
|
15964
|
+
// BY DATABASE and BY KERNEL both blocked in KeyUser
|
|
15965
|
+
const by = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("BY", (0, combi_1.alt)(kernel, database)));
|
|
15909
15966
|
return (0, combi_1.seq)("METHOD", expressions_1.MethodName, (0, combi_1.optPrio)(by));
|
|
15910
15967
|
}
|
|
15911
15968
|
}
|
|
@@ -15926,11 +15983,12 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
15926
15983
|
exports.ModifyDatabase = void 0;
|
|
15927
15984
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
15928
15985
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
15986
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
15929
15987
|
class ModifyDatabase {
|
|
15930
15988
|
getMatcher() {
|
|
15931
15989
|
const from = (0, combi_1.seq)("FROM", (0, combi_1.opt)("TABLE"), expressions_1.SQLSource);
|
|
15932
15990
|
const options = (0, combi_1.per)(expressions_1.DatabaseConnection, from, expressions_1.SQLClient);
|
|
15933
|
-
return (0, combi_1.seq)("MODIFY", expressions_1.DatabaseTable, options);
|
|
15991
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("MODIFY", expressions_1.DatabaseTable, options));
|
|
15934
15992
|
}
|
|
15935
15993
|
}
|
|
15936
15994
|
exports.ModifyDatabase = ModifyDatabase;
|
|
@@ -16171,12 +16229,13 @@ exports.MoveCorresponding = MoveCorresponding;
|
|
|
16171
16229
|
|
|
16172
16230
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
16173
16231
|
exports.Multiply = void 0;
|
|
16232
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
16174
16233
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
16175
16234
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
16176
16235
|
class Multiply {
|
|
16177
16236
|
getMatcher() {
|
|
16178
16237
|
const ret = (0, combi_1.seq)("MULTIPLY", expressions_1.Target, "BY", expressions_1.Source);
|
|
16179
|
-
return ret;
|
|
16238
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, ret);
|
|
16180
16239
|
}
|
|
16181
16240
|
}
|
|
16182
16241
|
exports.Multiply = Multiply;
|
|
@@ -16507,7 +16566,7 @@ class Perform {
|
|
|
16507
16566
|
const normal = (0, combi_1.seq)((0, combi_1.opt)(found), (0, combi_1.opt)(expressions_1.PerformTables), (0, combi_1.opt)(expressions_1.PerformUsing), (0, combi_1.opt)(expressions_1.PerformChanging), (0, combi_1.opt)(found), (0, combi_1.opt)(commit));
|
|
16508
16567
|
const of = (0, combi_1.seq)("OF", (0, combi_1.plus)(Expressions.FormName));
|
|
16509
16568
|
const ret = (0, combi_1.seq)("PERFORM", (0, combi_1.alt)(short, full), (0, combi_1.altPrio)(of, normal));
|
|
16510
|
-
return ret;
|
|
16569
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, ret);
|
|
16511
16570
|
}
|
|
16512
16571
|
}
|
|
16513
16572
|
exports.Perform = Perform;
|
|
@@ -16826,7 +16885,8 @@ class Raise {
|
|
|
16826
16885
|
const from = (0, combi_1.seq)("TYPE", expressions_1.ClassName, (0, combi_1.opt)((0, combi_1.alt)((0, combi_1.ver)(version_1.Release.v750, (0, combi_1.alt)(mess, messid), { also: combi_1.AlsoIn.OpenABAP }), (0, combi_1.ver)(version_1.Release.v752, "USING MESSAGE"))), (0, combi_1.optPrio)(exporting));
|
|
16827
16886
|
const pre = (0, combi_1.altPrio)((0, combi_1.seq)((0, combi_1.optPrio)("RESUMABLE"), "EXCEPTION"), "SHORTDUMP");
|
|
16828
16887
|
const clas = (0, combi_1.seq)(pre, (0, combi_1.altPrio)(from, (0, combi_1.ver)(version_1.Release.v752, expressions_1.Source, { also: combi_1.AlsoIn.OpenABAP }), expressions_1.SimpleSource2));
|
|
16829
|
-
|
|
16888
|
+
// Old form "RAISE exception_name" blocked in KeyUser
|
|
16889
|
+
const ret = (0, combi_1.seq)("RAISE", (0, combi_1.altPrio)(clas, (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, expressions_1.ExceptionName)));
|
|
16830
16890
|
return ret;
|
|
16831
16891
|
}
|
|
16832
16892
|
}
|
|
@@ -16847,9 +16907,10 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
16847
16907
|
exports.RaiseEntityEvent = void 0;
|
|
16848
16908
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
16849
16909
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
16910
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
16850
16911
|
class RaiseEntityEvent {
|
|
16851
16912
|
getMatcher() {
|
|
16852
|
-
return (0, combi_1.seq)("RAISE ENTITY EVENT", expressions_1.EventName, "FROM", expressions_1.Source);
|
|
16913
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("RAISE ENTITY EVENT", expressions_1.EventName, "FROM", expressions_1.Source));
|
|
16853
16914
|
}
|
|
16854
16915
|
}
|
|
16855
16916
|
exports.RaiseEntityEvent = RaiseEntityEvent;
|
|
@@ -16869,10 +16930,11 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
16869
16930
|
exports.RaiseEvent = void 0;
|
|
16870
16931
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
16871
16932
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
16933
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
16872
16934
|
class RaiseEvent {
|
|
16873
16935
|
getMatcher() {
|
|
16874
16936
|
const exporting = (0, combi_1.seq)("EXPORTING", expressions_1.ParameterListS);
|
|
16875
|
-
return (0, combi_1.seq)("RAISE EVENT", expressions_1.EventName, (0, combi_1.opt)(exporting));
|
|
16937
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("RAISE EVENT", expressions_1.EventName, (0, combi_1.opt)(exporting)));
|
|
16876
16938
|
}
|
|
16877
16939
|
}
|
|
16878
16940
|
exports.RaiseEvent = RaiseEvent;
|
|
@@ -17041,9 +17103,10 @@ class ReadTable {
|
|
|
17041
17103
|
getMatcher() {
|
|
17042
17104
|
const comparing = (0, combi_1.seq)("COMPARING", (0, combi_1.alt)((0, combi_1.plus)(expressions_1.FieldSub), (0, combi_1.plus)(expressions_1.Dynamic)));
|
|
17043
17105
|
const index = (0, combi_1.seq)("INDEX", expressions_1.Source);
|
|
17044
|
-
|
|
17106
|
+
// Dynamic key name or dynamic component name blocked in KeyUser
|
|
17107
|
+
const components = (0, combi_1.seq)((0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.alt)(expressions_1.Field, expressions_1.Dynamic)), "COMPONENTS", expressions_1.ComponentCompareSimple);
|
|
17045
17108
|
const key = (0, combi_1.seq)((0, combi_1.altPrio)("WITH KEY", "WITH TABLE KEY"), (0, combi_1.alt)(expressions_1.ComponentCompareSimple, components, (0, combi_1.seq)((0, combi_1.optPrio)("="), expressions_1.Source)));
|
|
17046
|
-
const using = (0, combi_1.seq)("USING KEY", (0, combi_1.alt)(expressions_1.Field, expressions_1.Dynamic));
|
|
17109
|
+
const using = (0, combi_1.seq)("USING KEY", (0, combi_1.alt)(expressions_1.Field, (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, expressions_1.Dynamic)));
|
|
17047
17110
|
const from = (0, combi_1.seq)("FROM", expressions_1.Source);
|
|
17048
17111
|
const transporting = (0, combi_1.seq)("TRANSPORTING", (0, combi_1.altPrio)("ALL FIELDS", "NO FIELDS", transporting_fields_1.TransportingFields));
|
|
17049
17112
|
const common = [expressions_1.ReadTableTarget, comparing, "CASTING", transporting, "BINARY SEARCH"];
|
|
@@ -17348,9 +17411,10 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
17348
17411
|
exports.Rollback = void 0;
|
|
17349
17412
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
17350
17413
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
17414
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
17351
17415
|
class Rollback {
|
|
17352
17416
|
getMatcher() {
|
|
17353
|
-
return (0, combi_1.seq)("ROLLBACK", (0, combi_1.altPrio)("WORK", expressions_1.DatabaseConnection));
|
|
17417
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("ROLLBACK", (0, combi_1.altPrio)("WORK", expressions_1.DatabaseConnection)));
|
|
17354
17418
|
}
|
|
17355
17419
|
}
|
|
17356
17420
|
exports.Rollback = Rollback;
|
|
@@ -17373,7 +17437,7 @@ const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src
|
|
|
17373
17437
|
class RollbackEntities {
|
|
17374
17438
|
getMatcher() {
|
|
17375
17439
|
const s = "ROLLBACK ENTITIES";
|
|
17376
|
-
return (0, combi_1.ver)(version_1.Release.v754, s);
|
|
17440
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.ver)(version_1.Release.v754, s));
|
|
17377
17441
|
}
|
|
17378
17442
|
}
|
|
17379
17443
|
exports.RollbackEntities = RollbackEntities;
|
|
@@ -17777,12 +17841,13 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
17777
17841
|
exports.SetHandler = void 0;
|
|
17778
17842
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
17779
17843
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
17844
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
17780
17845
|
class SetHandler {
|
|
17781
17846
|
getMatcher() {
|
|
17782
17847
|
const activation = (0, combi_1.seq)("ACTIVATION", expressions_1.Source);
|
|
17783
17848
|
const fo = (0, combi_1.seq)("FOR", (0, combi_1.altPrio)("ALL INSTANCES", expressions_1.Source));
|
|
17784
17849
|
const ret = (0, combi_1.seq)("SET HANDLER", (0, combi_1.plus)(expressions_1.MethodSource), (0, combi_1.optPrio)(fo), (0, combi_1.optPrio)(activation));
|
|
17785
|
-
return ret;
|
|
17850
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, ret);
|
|
17786
17851
|
}
|
|
17787
17852
|
}
|
|
17788
17853
|
exports.SetHandler = SetHandler;
|
|
@@ -17880,7 +17945,7 @@ const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src
|
|
|
17880
17945
|
class SetLocks {
|
|
17881
17946
|
getMatcher() {
|
|
17882
17947
|
const s = (0, combi_1.seq)("SET LOCKS OF", expressions_1.SimpleName, "ENTITY", expressions_1.SimpleName, "FROM", expressions_1.Source, "FAILED", expressions_1.Target, "REPORTED", expressions_1.Target);
|
|
17883
|
-
return (0, combi_1.ver)(version_1.Release.v754, s);
|
|
17948
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.ver)(version_1.Release.v754, s));
|
|
17884
17949
|
}
|
|
17885
17950
|
}
|
|
17886
17951
|
exports.SetLocks = SetLocks;
|
|
@@ -18307,12 +18372,13 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
18307
18372
|
exports.Static = void 0;
|
|
18308
18373
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
18309
18374
|
const Expressions = __importStar(__webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js"));
|
|
18375
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
18310
18376
|
class Static {
|
|
18311
18377
|
getMatcher() {
|
|
18312
18378
|
const p = (0, combi_1.opt)((0, combi_1.per)(Expressions.Type, Expressions.Value, Expressions.Length, Expressions.Decimals));
|
|
18313
18379
|
const type = (0, combi_1.seq)((0, combi_1.opt)(Expressions.ConstantFieldLength), p);
|
|
18314
|
-
const
|
|
18315
|
-
return
|
|
18380
|
+
const body = (0, combi_1.seq)(Expressions.DefinitionName, (0, combi_1.optPrio)(Expressions.ConstantFieldLength), (0, combi_1.alt)(type, Expressions.TypeTable));
|
|
18381
|
+
return (0, combi_1.altPrio)((0, combi_1.seq)("STATIC", body), (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("STATICS", body)));
|
|
18316
18382
|
}
|
|
18317
18383
|
}
|
|
18318
18384
|
exports.Static = Static;
|
|
@@ -18455,12 +18521,13 @@ exports.Submit = Submit;
|
|
|
18455
18521
|
|
|
18456
18522
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
18457
18523
|
exports.Subtract = void 0;
|
|
18524
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
18458
18525
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
18459
18526
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
18460
18527
|
class Subtract {
|
|
18461
18528
|
getMatcher() {
|
|
18462
18529
|
const ret = (0, combi_1.seq)("SUBTRACT", expressions_1.Source, "FROM", expressions_1.Target);
|
|
18463
|
-
return ret;
|
|
18530
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, ret);
|
|
18464
18531
|
}
|
|
18465
18532
|
}
|
|
18466
18533
|
exports.Subtract = Subtract;
|
|
@@ -18686,11 +18753,12 @@ exports.Tables = Tables;
|
|
|
18686
18753
|
|
|
18687
18754
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
18688
18755
|
exports.TestInjection = void 0;
|
|
18756
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
18689
18757
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
18690
18758
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
18691
18759
|
class TestInjection {
|
|
18692
18760
|
getMatcher() {
|
|
18693
|
-
return (0, combi_1.seq)("TEST-INJECTION", expressions_1.TestSeamName);
|
|
18761
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("TEST-INJECTION", expressions_1.TestSeamName));
|
|
18694
18762
|
}
|
|
18695
18763
|
}
|
|
18696
18764
|
exports.TestInjection = TestInjection;
|
|
@@ -18713,7 +18781,7 @@ const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/s
|
|
|
18713
18781
|
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
18714
18782
|
class TestSeam {
|
|
18715
18783
|
getMatcher() {
|
|
18716
|
-
return (0, combi_1.ver)(version_1.Release.v750, (0, combi_1.seq)("TEST-SEAM", expressions_1.TestSeamName), { also: combi_1.AlsoIn.OpenABAP });
|
|
18784
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.ver)(version_1.Release.v750, (0, combi_1.seq)("TEST-SEAM", expressions_1.TestSeamName), { also: combi_1.AlsoIn.OpenABAP }));
|
|
18717
18785
|
}
|
|
18718
18786
|
}
|
|
18719
18787
|
exports.TestSeam = TestSeam;
|
|
@@ -19227,17 +19295,18 @@ exports.Unpack = Unpack;
|
|
|
19227
19295
|
|
|
19228
19296
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
19229
19297
|
exports.UpdateDatabase = void 0;
|
|
19298
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
19230
19299
|
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
19231
19300
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
19232
|
-
const
|
|
19301
|
+
const version_2 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
19233
19302
|
class UpdateDatabase {
|
|
19234
19303
|
getMatcher() {
|
|
19235
19304
|
const parameters = (0, combi_1.seq)(expressions_1.SQLFieldAndValue, (0, combi_1.star)((0, combi_1.seq)((0, combi_1.opt)(","), expressions_1.SQLFieldAndValue)));
|
|
19236
19305
|
const set = (0, combi_1.seq)("SET", (0, combi_1.alt)(parameters, expressions_1.Dynamic), (0, combi_1.opt)((0, combi_1.seq)("WHERE", expressions_1.SQLCond)));
|
|
19237
19306
|
const indicators = (0, combi_1.seq)("INDICATORS SET STRUCTURE", expressions_1.ComponentName);
|
|
19238
|
-
const fromTable = (0, combi_1.seq)("FROM", (0, combi_1.opt)("TABLE"), expressions_1.SQLSource, (0, combi_1.opt)((0, combi_1.ver)(
|
|
19307
|
+
const fromTable = (0, combi_1.seq)("FROM", (0, combi_1.opt)("TABLE"), expressions_1.SQLSource, (0, combi_1.opt)((0, combi_1.ver)(version_2.Release.v755, indicators)));
|
|
19239
19308
|
const ret = (0, combi_1.seq)("UPDATE", expressions_1.DatabaseTable, (0, combi_1.opt)(expressions_1.SQLClient), (0, combi_1.opt)(expressions_1.DatabaseConnection), (0, combi_1.opt)((0, combi_1.alt)(fromTable, set)));
|
|
19240
|
-
return ret;
|
|
19309
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, ret);
|
|
19241
19310
|
}
|
|
19242
19311
|
}
|
|
19243
19312
|
exports.UpdateDatabase = UpdateDatabase;
|
|
@@ -19280,19 +19349,20 @@ exports.VerificationMessage = VerificationMessage;
|
|
|
19280
19349
|
|
|
19281
19350
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
19282
19351
|
exports.Wait = void 0;
|
|
19283
|
-
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
19284
19352
|
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
19353
|
+
const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
|
|
19354
|
+
const version_2 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
19285
19355
|
const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
|
|
19286
19356
|
class Wait {
|
|
19287
19357
|
getMatcher() {
|
|
19288
19358
|
const up = (0, combi_1.seq)("UP TO", expressions_1.Source, "SECONDS");
|
|
19289
19359
|
const channels = "MESSAGING CHANNELS";
|
|
19290
|
-
const push = (0, combi_1.ver)(
|
|
19360
|
+
const push = (0, combi_1.ver)(version_2.Release.v750, "PUSH CHANNELS", { also: combi_1.AlsoIn.OpenABAP });
|
|
19291
19361
|
const tasks = "ASYNCHRONOUS TASKS";
|
|
19292
19362
|
const type = (0, combi_1.seq)("FOR", (0, combi_1.per)(channels, push, tasks));
|
|
19293
19363
|
const until = (0, combi_1.seq)((0, combi_1.opt)(type), "UNTIL", expressions_1.Cond, (0, combi_1.opt)(up));
|
|
19294
19364
|
const ret = (0, combi_1.seq)("WAIT", (0, combi_1.alt)(until, up));
|
|
19295
|
-
return ret;
|
|
19365
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, ret);
|
|
19296
19366
|
}
|
|
19297
19367
|
}
|
|
19298
19368
|
exports.Wait = Wait;
|
|
@@ -19435,7 +19505,7 @@ class With {
|
|
|
19435
19505
|
getMatcher() {
|
|
19436
19506
|
const exposing = (0, combi_1.optPrio)((0, combi_1.seq)("WITH", (0, combi_1.altPrio)(new expressions_1.SQLCTEHierarchy(), expressions_1.SQLCTEAssociations)));
|
|
19437
19507
|
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);
|
|
19438
|
-
return (0, combi_1.ver)(version_1.Release.v751, (0, combi_1.seq)("WITH", cte, (0, combi_1.star)((0, combi_1.seq)(",", cte)), expressions_1.Select));
|
|
19508
|
+
return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.ver)(version_1.Release.v751, (0, combi_1.seq)("WITH", cte, (0, combi_1.star)((0, combi_1.seq)(",", cte)), expressions_1.Select)));
|
|
19439
19509
|
}
|
|
19440
19510
|
}
|
|
19441
19511
|
exports.With = With;
|
|
@@ -25130,7 +25200,6 @@ BuiltIn.methods = {
|
|
|
25130
25200
|
|
|
25131
25201
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
25132
25202
|
exports.CurrentScope = void 0;
|
|
25133
|
-
const version_1 = __webpack_require__(/*! ../../version */ "../core/build/src/version.js");
|
|
25134
25203
|
const _builtin_1 = __webpack_require__(/*! ./_builtin */ "../core/build/src/abap/5_syntax/_builtin.js");
|
|
25135
25204
|
const ddic_1 = __webpack_require__(/*! ../../ddic */ "../core/build/src/ddic.js");
|
|
25136
25205
|
const position_1 = __webpack_require__(/*! ../../position */ "../core/build/src/position.js");
|
|
@@ -25166,7 +25235,7 @@ class CurrentScope {
|
|
|
25166
25235
|
}
|
|
25167
25236
|
///////////////////////////
|
|
25168
25237
|
getRelease() {
|
|
25169
|
-
return
|
|
25238
|
+
return this.reg.getConfig().getRelease();
|
|
25170
25239
|
}
|
|
25171
25240
|
getVersion() {
|
|
25172
25241
|
return this.reg.getConfig().getVersion();
|
|
@@ -32603,7 +32672,7 @@ const _syntax_input_1 = __webpack_require__(/*! ../_syntax_input */ "../core/bui
|
|
|
32603
32672
|
const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
|
|
32604
32673
|
const isSimple = /^\w+$/;
|
|
32605
32674
|
class Select {
|
|
32606
|
-
static runSyntax(node, input, skipImplicitInto = false) {
|
|
32675
|
+
static runSyntax(node, input, skipImplicitInto = false, selectLoop = false) {
|
|
32607
32676
|
var _a;
|
|
32608
32677
|
const token = node.getFirstToken();
|
|
32609
32678
|
let from = node.findDirectExpression(Expressions.SQLFrom);
|
|
@@ -32662,6 +32731,14 @@ class Select {
|
|
|
32662
32731
|
sql_source_1.SQLSource.runSyntax(s, input);
|
|
32663
32732
|
}
|
|
32664
32733
|
for (const up of node.findDirectExpressions(Expressions.SQLUpTo)) {
|
|
32734
|
+
if (intoExpression
|
|
32735
|
+
&& this.isStrictMode(node, input)
|
|
32736
|
+
&& (selectLoop === false || input.scope.getLanguageVersion() === version_1.LanguageVersion.Cloud)
|
|
32737
|
+
&& from.getFirstToken().getStart().isBefore(up.getFirstToken().getStart())
|
|
32738
|
+
&& up.getFirstToken().getStart().isBefore(intoExpression.getFirstToken().getStart())) {
|
|
32739
|
+
const message = `The addition "UP TO n ROWS" must only be placed after the INTO/APPENDING clause.`;
|
|
32740
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, up.getFirstToken(), message));
|
|
32741
|
+
}
|
|
32665
32742
|
for (const s of up.findDirectExpressions(Expressions.SQLSource)) {
|
|
32666
32743
|
sql_source_1.SQLSource.runSyntax(s, input);
|
|
32667
32744
|
}
|
|
@@ -32687,7 +32764,7 @@ class Select {
|
|
|
32687
32764
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, orderBy.getFirstToken(), message));
|
|
32688
32765
|
}
|
|
32689
32766
|
}
|
|
32690
|
-
if (this.isStrictMode(node)) {
|
|
32767
|
+
if (this.isStrictMode(node, input)) {
|
|
32691
32768
|
this.strictModeChecks(node, input);
|
|
32692
32769
|
}
|
|
32693
32770
|
if (input.scope.getType() === _scope_type_1.ScopeType.OpenSQL) {
|
|
@@ -32695,7 +32772,11 @@ class Select {
|
|
|
32695
32772
|
}
|
|
32696
32773
|
}
|
|
32697
32774
|
// there are multiple rules, but gotta start somewhere
|
|
32698
|
-
static isStrictMode(node) {
|
|
32775
|
+
static isStrictMode(node, input) {
|
|
32776
|
+
// strict OpenSQL is always required in the cloud language version
|
|
32777
|
+
if (input.scope.getLanguageVersion() === version_1.LanguageVersion.Cloud) {
|
|
32778
|
+
return true;
|
|
32779
|
+
}
|
|
32699
32780
|
const into = node.findDirectExpressionsMulti([Expressions.SQLIntoList, Expressions.SQLIntoStructure, Expressions.SQLIntoTable])[0];
|
|
32700
32781
|
const where = node.findDirectExpression(Expressions.SQLCond);
|
|
32701
32782
|
// INTO is after WHERE
|
|
@@ -38119,8 +38200,9 @@ class DeleteInternal {
|
|
|
38119
38200
|
const localVariable = input.scope.findVariable(target.concatTokens());
|
|
38120
38201
|
if (localVariable === undefined && node.getChildren().length === 5 && node.getChildren()[2].concatTokens().toUpperCase() === "FROM") {
|
|
38121
38202
|
// it might be a database table
|
|
38122
|
-
|
|
38123
|
-
if (
|
|
38203
|
+
const found = (_a = input.scope.getDDIC()) === null || _a === void 0 ? void 0 : _a.lookupTableOrView(target.concatTokens());
|
|
38204
|
+
if ((found === null || found === void 0 ? void 0 : found.object) !== undefined) {
|
|
38205
|
+
tabl = found;
|
|
38124
38206
|
input.scope.getDDICReferences().addUsing(input.scope.getParentObj(), { object: tabl.object });
|
|
38125
38207
|
}
|
|
38126
38208
|
}
|
|
@@ -38128,7 +38210,7 @@ class DeleteInternal {
|
|
|
38128
38210
|
targetType = target_1.Target.runSyntax(target, input);
|
|
38129
38211
|
if (node.findDirectTokenByText("TABLE") === undefined
|
|
38130
38212
|
&& node.findDirectTokenByText("ADJACENT") === undefined
|
|
38131
|
-
&& node.findDirectTokenByText("FROM")
|
|
38213
|
+
&& (node.findDirectTokenByText("FROM") || node.findDirectTokenByText("INDEX"))
|
|
38132
38214
|
&& targetType instanceof basic_1.TableType
|
|
38133
38215
|
&& targetType.getAccessType() === basic_1.TableAccessType.hashed) {
|
|
38134
38216
|
const message = "Implicit or explicit index operation on hashed table is not possible";
|
|
@@ -40693,6 +40775,14 @@ class Loop {
|
|
|
40693
40775
|
}
|
|
40694
40776
|
const targetConcat = loopTarget === null || loopTarget === void 0 ? void 0 : loopTarget.concatTokens().toUpperCase();
|
|
40695
40777
|
const topType = sourceType; // todo: refactor topType vs sourceType vs rowType
|
|
40778
|
+
if (topType instanceof basic_1.TableType
|
|
40779
|
+
&& topType.getAccessType() === basic_1.TableAccessType.hashed
|
|
40780
|
+
&& node.findDirectTokenByText("USING") === undefined
|
|
40781
|
+
&& (node.findDirectTokenByText("FROM") || node.findDirectTokenByText("TO"))) {
|
|
40782
|
+
const message = "Implicit or explicit index operation on hashed table is not possible";
|
|
40783
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
40784
|
+
return;
|
|
40785
|
+
}
|
|
40696
40786
|
if (sourceType instanceof basic_1.TableType) {
|
|
40697
40787
|
rowType = sourceType.getRowType();
|
|
40698
40788
|
sourceType = rowType;
|
|
@@ -41235,6 +41325,13 @@ class ModifyInternal {
|
|
|
41235
41325
|
// ok
|
|
41236
41326
|
}
|
|
41237
41327
|
else if (targetType instanceof basic_1.TableType) {
|
|
41328
|
+
if (node.findDirectTokenByText("TABLE") === undefined
|
|
41329
|
+
&& node.findDirectTokenByText("INDEX")
|
|
41330
|
+
&& targetType.getAccessType() === basic_1.TableAccessType.hashed) {
|
|
41331
|
+
const message = "Implicit or explicit index operation on hashed table is not possible";
|
|
41332
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
41333
|
+
return;
|
|
41334
|
+
}
|
|
41238
41335
|
if (node.findDirectTokenByText("TABLE")
|
|
41239
41336
|
&& node.findDirectTokenByText("INDEX")
|
|
41240
41337
|
&& targetType.isWithHeader() === false) {
|
|
@@ -43134,7 +43231,7 @@ class SelectLoop {
|
|
|
43134
43231
|
runSyntax(node, input) {
|
|
43135
43232
|
const s = node.findDirectExpression(Expressions.Select);
|
|
43136
43233
|
if (s) {
|
|
43137
|
-
select_1.Select.runSyntax(s, input);
|
|
43234
|
+
select_1.Select.runSyntax(s, input, false, true);
|
|
43138
43235
|
}
|
|
43139
43236
|
}
|
|
43140
43237
|
}
|
|
@@ -51972,27 +52069,27 @@ class CDSParser {
|
|
|
51972
52069
|
}
|
|
51973
52070
|
let tokens = cds_lexer_1.CDSLexer.run(file);
|
|
51974
52071
|
tokens = tokens.filter(t => !(t instanceof tokens_1.Comment));
|
|
51975
|
-
let res = combi_1.Combi.run(new Expressions.CDSDefineView(), tokens, version_1.
|
|
52072
|
+
let res = combi_1.Combi.run(new Expressions.CDSDefineView(), tokens, version_1.defaultRelease);
|
|
51976
52073
|
if (res === undefined || !(res[0] instanceof nodes_1.ExpressionNode)) {
|
|
51977
|
-
res = combi_1.Combi.run(new Expressions.CDSDefineAbstract(), tokens, version_1.
|
|
52074
|
+
res = combi_1.Combi.run(new Expressions.CDSDefineAbstract(), tokens, version_1.defaultRelease);
|
|
51978
52075
|
}
|
|
51979
52076
|
if (res === undefined || !(res[0] instanceof nodes_1.ExpressionNode)) {
|
|
51980
|
-
res = combi_1.Combi.run(new Expressions.CDSDefineProjection(), tokens, version_1.
|
|
52077
|
+
res = combi_1.Combi.run(new Expressions.CDSDefineProjection(), tokens, version_1.defaultRelease);
|
|
51981
52078
|
}
|
|
51982
52079
|
if (res === undefined || !(res[0] instanceof nodes_1.ExpressionNode)) {
|
|
51983
|
-
res = combi_1.Combi.run(new Expressions.CDSAnnotate(), tokens, version_1.
|
|
52080
|
+
res = combi_1.Combi.run(new Expressions.CDSAnnotate(), tokens, version_1.defaultRelease);
|
|
51984
52081
|
}
|
|
51985
52082
|
if (res === undefined || !(res[0] instanceof nodes_1.ExpressionNode)) {
|
|
51986
|
-
res = combi_1.Combi.run(new Expressions.CDSDefineCustom(), tokens, version_1.
|
|
52083
|
+
res = combi_1.Combi.run(new Expressions.CDSDefineCustom(), tokens, version_1.defaultRelease);
|
|
51987
52084
|
}
|
|
51988
52085
|
if (res === undefined || !(res[0] instanceof nodes_1.ExpressionNode)) {
|
|
51989
|
-
res = combi_1.Combi.run(new Expressions.CDSDefineTableFunction(), tokens, version_1.
|
|
52086
|
+
res = combi_1.Combi.run(new Expressions.CDSDefineTableFunction(), tokens, version_1.defaultRelease);
|
|
51990
52087
|
}
|
|
51991
52088
|
if (res === undefined || !(res[0] instanceof nodes_1.ExpressionNode)) {
|
|
51992
|
-
res = combi_1.Combi.run(new Expressions.CDSExtendView(), tokens, version_1.
|
|
52089
|
+
res = combi_1.Combi.run(new Expressions.CDSExtendView(), tokens, version_1.defaultRelease);
|
|
51993
52090
|
}
|
|
51994
52091
|
if (res === undefined || !(res[0] instanceof nodes_1.ExpressionNode)) {
|
|
51995
|
-
res = combi_1.Combi.run(new Expressions.CDSDefineHierarchy(), tokens, version_1.
|
|
52092
|
+
res = combi_1.Combi.run(new Expressions.CDSDefineHierarchy(), tokens, version_1.defaultRelease);
|
|
51996
52093
|
}
|
|
51997
52094
|
if (res === undefined || !(res[0] instanceof nodes_1.ExpressionNode)) {
|
|
51998
52095
|
return undefined;
|
|
@@ -53340,10 +53437,7 @@ class Config {
|
|
|
53340
53437
|
for (const rule of sorted) {
|
|
53341
53438
|
rules[rule.getMetadata().key] = rule.getConfig();
|
|
53342
53439
|
}
|
|
53343
|
-
|
|
53344
|
-
if (ver) {
|
|
53345
|
-
version = ver;
|
|
53346
|
-
}
|
|
53440
|
+
const version = ver;
|
|
53347
53441
|
// defaults: dont skip anything, report everything. The user can decide to skip stuff
|
|
53348
53442
|
// its difficult to debug errors not being reported
|
|
53349
53443
|
const config = {
|
|
@@ -53451,42 +53545,54 @@ class Config {
|
|
|
53451
53545
|
return this.config.syntax;
|
|
53452
53546
|
}
|
|
53453
53547
|
getRelease() {
|
|
53454
|
-
|
|
53548
|
+
const v = this.config.syntax.version;
|
|
53549
|
+
if (v !== undefined && typeof v !== "string") {
|
|
53550
|
+
return version_1.Release[v.release];
|
|
53551
|
+
}
|
|
53552
|
+
if (this.config.global === undefined || v === undefined) {
|
|
53553
|
+
return version_1.defaultRelease;
|
|
53554
|
+
}
|
|
53555
|
+
return (0, version_1.versionToABAPRelease)(v);
|
|
53455
53556
|
}
|
|
53456
53557
|
getOpenABAP() {
|
|
53457
53558
|
return this.config.syntax.openABAP === true;
|
|
53458
53559
|
}
|
|
53459
53560
|
getVersion() {
|
|
53460
|
-
|
|
53461
|
-
|
|
53561
|
+
const v = this.config.syntax.version;
|
|
53562
|
+
if (this.config.global === undefined || v === undefined || typeof v !== "string") {
|
|
53563
|
+
return version_1.Version.v816;
|
|
53462
53564
|
}
|
|
53463
|
-
return
|
|
53565
|
+
return v;
|
|
53464
53566
|
}
|
|
53465
53567
|
getLanguageVersion() {
|
|
53466
53568
|
var _a;
|
|
53569
|
+
const v = this.config.syntax.version;
|
|
53570
|
+
if (v !== undefined && typeof v !== "string") {
|
|
53571
|
+
return v.language;
|
|
53572
|
+
}
|
|
53467
53573
|
return (_a = this.config.syntax.languageVersion) !== null && _a !== void 0 ? _a : version_1.LanguageVersion.Normal;
|
|
53468
53574
|
}
|
|
53469
53575
|
checkVersion() {
|
|
53470
|
-
|
|
53471
|
-
|
|
53576
|
+
const version = this.config.syntax.version;
|
|
53577
|
+
if (version === undefined || typeof version !== "string") {
|
|
53578
|
+
return; // undefined handled in getVersion, object form is already explicit
|
|
53472
53579
|
}
|
|
53473
53580
|
let match = false;
|
|
53474
53581
|
const vers = version_1.Version;
|
|
53475
53582
|
for (const v in version_1.Version) {
|
|
53476
|
-
if (vers[v] ===
|
|
53583
|
+
if (vers[v] === version) {
|
|
53477
53584
|
match = true;
|
|
53478
53585
|
break;
|
|
53479
53586
|
}
|
|
53480
53587
|
}
|
|
53481
53588
|
if (match === false) {
|
|
53482
|
-
this.config.syntax.version =
|
|
53589
|
+
this.config.syntax.version = undefined;
|
|
53483
53590
|
return;
|
|
53484
53591
|
}
|
|
53485
|
-
if (
|
|
53486
|
-
this.config.syntax.version = version_1.Version.Newest;
|
|
53592
|
+
if (version === version_1.Version.Cloud) {
|
|
53487
53593
|
this.config.syntax.languageVersion = version_1.LanguageVersion.Cloud;
|
|
53488
53594
|
}
|
|
53489
|
-
else if (
|
|
53595
|
+
else if (version === version_1.Version.OpenABAP) {
|
|
53490
53596
|
this.config.syntax.version = version_1.Version.v702;
|
|
53491
53597
|
this.config.syntax.openABAP = true;
|
|
53492
53598
|
}
|
|
@@ -54169,9 +54275,9 @@ var DDLKind;
|
|
|
54169
54275
|
class DDLParser {
|
|
54170
54276
|
parse(file) {
|
|
54171
54277
|
const tokens = ddl_lexer_1.DDLLexer.run(file);
|
|
54172
|
-
let res = combi_1.Combi.run(new Expressions.DDLStructure(), tokens, version_1.
|
|
54278
|
+
let res = combi_1.Combi.run(new Expressions.DDLStructure(), tokens, version_1.defaultRelease);
|
|
54173
54279
|
if (res === undefined) {
|
|
54174
|
-
res = combi_1.Combi.run(new Expressions.DDLTable(), tokens, version_1.
|
|
54280
|
+
res = combi_1.Combi.run(new Expressions.DDLTable(), tokens, version_1.defaultRelease);
|
|
54175
54281
|
}
|
|
54176
54282
|
if (res === undefined || !(res[0] instanceof nodes_1.ExpressionNode)) {
|
|
54177
54283
|
return undefined;
|
|
@@ -67317,7 +67423,7 @@ class Registry {
|
|
|
67317
67423
|
}
|
|
67318
67424
|
static abaplintVersion() {
|
|
67319
67425
|
// magic, see build script "version.js"
|
|
67320
|
-
return "2.119.
|
|
67426
|
+
return "2.119.46";
|
|
67321
67427
|
}
|
|
67322
67428
|
getDDICReferences() {
|
|
67323
67429
|
return this.ddicReferences;
|
|
@@ -80866,6 +80972,7 @@ __exportStar(__webpack_require__(/*! ./strict_sql */ "../core/build/src/rules/st
|
|
|
80866
80972
|
__exportStar(__webpack_require__(/*! ./superclass_final */ "../core/build/src/rules/superclass_final.js"), exports);
|
|
80867
80973
|
__exportStar(__webpack_require__(/*! ./superfluous_value */ "../core/build/src/rules/superfluous_value.js"), exports);
|
|
80868
80974
|
__exportStar(__webpack_require__(/*! ./sy_modification */ "../core/build/src/rules/sy_modification.js"), exports);
|
|
80975
|
+
__exportStar(__webpack_require__(/*! ./sy_read_restriction */ "../core/build/src/rules/sy_read_restriction.js"), exports);
|
|
80869
80976
|
__exportStar(__webpack_require__(/*! ./tabl_enhancement_category */ "../core/build/src/rules/tabl_enhancement_category.js"), exports);
|
|
80870
80977
|
__exportStar(__webpack_require__(/*! ./tables_declared_locally */ "../core/build/src/rules/tables_declared_locally.js"), exports);
|
|
80871
80978
|
__exportStar(__webpack_require__(/*! ./try_without_catch */ "../core/build/src/rules/try_without_catch.js"), exports);
|
|
@@ -91930,6 +92037,168 @@ exports.SyModification = SyModification;
|
|
|
91930
92037
|
|
|
91931
92038
|
/***/ },
|
|
91932
92039
|
|
|
92040
|
+
/***/ "../core/build/src/rules/sy_read_restriction.js"
|
|
92041
|
+
/*!******************************************************!*\
|
|
92042
|
+
!*** ../core/build/src/rules/sy_read_restriction.js ***!
|
|
92043
|
+
\******************************************************/
|
|
92044
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
92045
|
+
|
|
92046
|
+
"use strict";
|
|
92047
|
+
|
|
92048
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
92049
|
+
if (k2 === undefined) k2 = k;
|
|
92050
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
92051
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
92052
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
92053
|
+
}
|
|
92054
|
+
Object.defineProperty(o, k2, desc);
|
|
92055
|
+
}) : (function(o, m, k, k2) {
|
|
92056
|
+
if (k2 === undefined) k2 = k;
|
|
92057
|
+
o[k2] = m[k];
|
|
92058
|
+
}));
|
|
92059
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
92060
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
92061
|
+
}) : function(o, v) {
|
|
92062
|
+
o["default"] = v;
|
|
92063
|
+
});
|
|
92064
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
92065
|
+
var ownKeys = function(o) {
|
|
92066
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
92067
|
+
var ar = [];
|
|
92068
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
92069
|
+
return ar;
|
|
92070
|
+
};
|
|
92071
|
+
return ownKeys(o);
|
|
92072
|
+
};
|
|
92073
|
+
return function (mod) {
|
|
92074
|
+
if (mod && mod.__esModule) return mod;
|
|
92075
|
+
var result = {};
|
|
92076
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
92077
|
+
__setModuleDefault(result, mod);
|
|
92078
|
+
return result;
|
|
92079
|
+
};
|
|
92080
|
+
})();
|
|
92081
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
92082
|
+
exports.SyReadRestriction = exports.SyReadRestrictionConf = void 0;
|
|
92083
|
+
const issue_1 = __webpack_require__(/*! ../issue */ "../core/build/src/issue.js");
|
|
92084
|
+
const Expressions = __importStar(__webpack_require__(/*! ../abap/2_statements/expressions */ "../core/build/src/abap/2_statements/expressions/index.js"));
|
|
92085
|
+
const _abap_rule_1 = __webpack_require__(/*! ./_abap_rule */ "../core/build/src/rules/_abap_rule.js");
|
|
92086
|
+
const _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ "../core/build/src/rules/_basic_rule_config.js");
|
|
92087
|
+
const _irule_1 = __webpack_require__(/*! ./_irule */ "../core/build/src/rules/_irule.js");
|
|
92088
|
+
const version_1 = __webpack_require__(/*! ../version */ "../core/build/src/version.js");
|
|
92089
|
+
const severity_1 = __webpack_require__(/*! ../severity */ "../core/build/src/severity.js");
|
|
92090
|
+
// ABAP Cloud: 17 system fields allowed for reading
|
|
92091
|
+
// https://help.sap.com/doc/abapdocu_cp_index_htm/CLOUD/en-US/ABENSYSTEM_FIELDS.html
|
|
92092
|
+
const CLOUD_ALLOWED = new Set([
|
|
92093
|
+
"SY-BATCH",
|
|
92094
|
+
"SY-DBCNT",
|
|
92095
|
+
"SY-FDPOS",
|
|
92096
|
+
"SY-INDEX",
|
|
92097
|
+
"SY-LANGU",
|
|
92098
|
+
"SY-MANDT",
|
|
92099
|
+
"SY-MSGID",
|
|
92100
|
+
"SY-MSGNO",
|
|
92101
|
+
"SY-MSGTY",
|
|
92102
|
+
"SY-MSGV1",
|
|
92103
|
+
"SY-MSGV2",
|
|
92104
|
+
"SY-MSGV3",
|
|
92105
|
+
"SY-MSGV4",
|
|
92106
|
+
"SY-SUBRC",
|
|
92107
|
+
"SY-SYSID",
|
|
92108
|
+
"SY-TABIX",
|
|
92109
|
+
"SY-UNAME",
|
|
92110
|
+
]);
|
|
92111
|
+
// ABAP for Key Users: 5 system fields allowed for reading
|
|
92112
|
+
const KEYUSER_ALLOWED = new Set([
|
|
92113
|
+
"SY-DBCNT",
|
|
92114
|
+
"SY-FDPOS",
|
|
92115
|
+
"SY-INDEX",
|
|
92116
|
+
"SY-SUBRC",
|
|
92117
|
+
"SY-TABIX",
|
|
92118
|
+
]);
|
|
92119
|
+
class SyReadRestrictionConf extends _basic_rule_config_1.BasicRuleConfig {
|
|
92120
|
+
}
|
|
92121
|
+
exports.SyReadRestrictionConf = SyReadRestrictionConf;
|
|
92122
|
+
class SyReadRestriction extends _abap_rule_1.ABAPRule {
|
|
92123
|
+
constructor() {
|
|
92124
|
+
super(...arguments);
|
|
92125
|
+
this.conf = new SyReadRestrictionConf();
|
|
92126
|
+
}
|
|
92127
|
+
getMetadata() {
|
|
92128
|
+
return {
|
|
92129
|
+
key: "sy_read_restriction",
|
|
92130
|
+
title: "SY field read restriction",
|
|
92131
|
+
shortDescription: `Finds reads of SY fields not allowed in the current language version`,
|
|
92132
|
+
extendedInformation: `In ABAP Cloud, only 17 system fields may be read; reads of other fields produce a warning.\n` +
|
|
92133
|
+
`In ABAP for Key Users, only 5 system fields may be read:\n` +
|
|
92134
|
+
`SY-DBCNT, SY-FDPOS, SY-INDEX, SY-SUBRC, SY-TABIX.\n` +
|
|
92135
|
+
`https://help.sap.com/doc/abapdocu_cp_index_htm/CLOUD/en-US/ABENSYSTEM_FIELDS.html`,
|
|
92136
|
+
tags: [_irule_1.RuleTag.SingleFile],
|
|
92137
|
+
badExample: `lv = sy-uname.`,
|
|
92138
|
+
goodExample: `IF sy-subrc = 0. ENDIF.`,
|
|
92139
|
+
};
|
|
92140
|
+
}
|
|
92141
|
+
getConfig() {
|
|
92142
|
+
return this.conf;
|
|
92143
|
+
}
|
|
92144
|
+
setConfig(conf) {
|
|
92145
|
+
this.conf = conf;
|
|
92146
|
+
}
|
|
92147
|
+
runParsed(file, _obj) {
|
|
92148
|
+
var _a;
|
|
92149
|
+
const issues = [];
|
|
92150
|
+
const langVer = this.reg.getConfig().getLanguageVersion();
|
|
92151
|
+
if (langVer === version_1.LanguageVersion.Normal) {
|
|
92152
|
+
return [];
|
|
92153
|
+
}
|
|
92154
|
+
const allowed = langVer === version_1.LanguageVersion.KeyUser ? KEYUSER_ALLOWED : CLOUD_ALLOWED;
|
|
92155
|
+
const severity = langVer === version_1.LanguageVersion.KeyUser ? this.conf.severity : severity_1.Severity.Warning;
|
|
92156
|
+
// Collect tokens that appear in writable Target positions — they're modifications,
|
|
92157
|
+
// handled by the sy_modification rule, not this one.
|
|
92158
|
+
const writeTokens = new Set();
|
|
92159
|
+
for (const t of ((_a = file.getStructure()) === null || _a === void 0 ? void 0 : _a.findAllExpressionsRecursive(Expressions.Target)) || []) {
|
|
92160
|
+
const concat = t.concatTokens().toUpperCase();
|
|
92161
|
+
if (!concat.startsWith("SY-")) {
|
|
92162
|
+
continue;
|
|
92163
|
+
}
|
|
92164
|
+
writeTokens.add(t.getFirstToken());
|
|
92165
|
+
}
|
|
92166
|
+
// Walk all tokens looking for the sequence SY - <fieldname>
|
|
92167
|
+
const tokens = file.getTokens();
|
|
92168
|
+
for (let i = 0; i + 2 < tokens.length; i++) {
|
|
92169
|
+
const sy = tokens[i];
|
|
92170
|
+
const dash = tokens[i + 1];
|
|
92171
|
+
const fld = tokens[i + 2];
|
|
92172
|
+
if (sy.getStr().toUpperCase() !== "SY") {
|
|
92173
|
+
continue;
|
|
92174
|
+
}
|
|
92175
|
+
if (dash.getStr() !== "-") {
|
|
92176
|
+
continue;
|
|
92177
|
+
}
|
|
92178
|
+
// Adjacent: no whitespace between the three tokens, on the same row
|
|
92179
|
+
if (sy.getEnd().getCol() !== dash.getStart().getCol()
|
|
92180
|
+
|| dash.getEnd().getCol() !== fld.getStart().getCol()
|
|
92181
|
+
|| sy.getRow() !== dash.getRow()
|
|
92182
|
+
|| dash.getRow() !== fld.getRow()) {
|
|
92183
|
+
continue;
|
|
92184
|
+
}
|
|
92185
|
+
if (writeTokens.has(sy)) {
|
|
92186
|
+
continue;
|
|
92187
|
+
}
|
|
92188
|
+
const fieldName = "SY-" + fld.getStr().toUpperCase();
|
|
92189
|
+
if (!allowed.has(fieldName)) {
|
|
92190
|
+
const message = `SY field "${fieldName}" cannot be read in language version ${langVer}`;
|
|
92191
|
+
issues.push(issue_1.Issue.atToken(file, sy, message, this.getMetadata().key, severity));
|
|
92192
|
+
}
|
|
92193
|
+
}
|
|
92194
|
+
return issues;
|
|
92195
|
+
}
|
|
92196
|
+
}
|
|
92197
|
+
exports.SyReadRestriction = SyReadRestriction;
|
|
92198
|
+
//# sourceMappingURL=sy_read_restriction.js.map
|
|
92199
|
+
|
|
92200
|
+
/***/ },
|
|
92201
|
+
|
|
91933
92202
|
/***/ "../core/build/src/rules/tabl_enhancement_category.js"
|
|
91934
92203
|
/*!************************************************************!*\
|
|
91935
92204
|
!*** ../core/build/src/rules/tabl_enhancement_category.js ***!
|
|
@@ -96713,12 +96982,8 @@ exports.NameValidator = NameValidator;
|
|
|
96713
96982
|
"use strict";
|
|
96714
96983
|
|
|
96715
96984
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
96716
|
-
exports.defaultRelease = exports.
|
|
96985
|
+
exports.defaultRelease = exports.Release = exports.ReleaseList = exports.LanguageVersion = exports.Version = void 0;
|
|
96717
96986
|
exports.releaseAtLeast = releaseAtLeast;
|
|
96718
|
-
exports.fromABAP = fromABAP;
|
|
96719
|
-
exports.fromKernel = fromKernel;
|
|
96720
|
-
exports.fromCloud = fromCloud;
|
|
96721
|
-
exports.fromOP = fromOP;
|
|
96722
96987
|
exports.versionToABAPRelease = versionToABAPRelease;
|
|
96723
96988
|
exports.getPreviousVersion = getPreviousVersion;
|
|
96724
96989
|
/** @deprecated Use ABAPRelease and Release instead */
|
|
@@ -96747,7 +97012,6 @@ var Version;
|
|
|
96747
97012
|
* Release.Newest + {@link LanguageVersion.Cloud} pair.
|
|
96748
97013
|
*/
|
|
96749
97014
|
Version["Cloud"] = "Cloud";
|
|
96750
|
-
Version["Newest"] = "Newest";
|
|
96751
97015
|
})(Version || (exports.Version = Version = {}));
|
|
96752
97016
|
/**
|
|
96753
97017
|
* Dialect / flavor axis, orthogonal to the on-prem/cloud release track.
|
|
@@ -96855,62 +97119,6 @@ exports.Release = Object.freeze(Object.assign(Object.assign({}, Object.fromEntri
|
|
|
96855
97119
|
function releaseAtLeast(running, required) {
|
|
96856
97120
|
return running.ordinal >= required.ordinal;
|
|
96857
97121
|
}
|
|
96858
|
-
// Lookup maps for the four constructor functions
|
|
96859
|
-
const byAbap = new Map();
|
|
96860
|
-
const byKernel = new Map();
|
|
96861
|
-
const byOp = new Map();
|
|
96862
|
-
const byCloud = new Map();
|
|
96863
|
-
for (const r of exports.ReleaseList) {
|
|
96864
|
-
if (r.abap !== null) {
|
|
96865
|
-
byAbap.set(r.abap, r);
|
|
96866
|
-
}
|
|
96867
|
-
if (r.kernel !== null) {
|
|
96868
|
-
byKernel.set(r.kernel, r);
|
|
96869
|
-
}
|
|
96870
|
-
if (r.cloud !== null) {
|
|
96871
|
-
byCloud.set(r.cloud, r);
|
|
96872
|
-
}
|
|
96873
|
-
if (r.op !== null) {
|
|
96874
|
-
// fromOP returns the *last* row at that op (the full on-prem release),
|
|
96875
|
-
// so we overwrite on each iteration — later rows win.
|
|
96876
|
-
byOp.set(r.op, r);
|
|
96877
|
-
}
|
|
96878
|
-
}
|
|
96879
|
-
/** Look up a release by its ABAP name, e.g. "7.90", "740SP05", "9.16" */
|
|
96880
|
-
function fromABAP(abap) {
|
|
96881
|
-
const found = byAbap.get(abap);
|
|
96882
|
-
if (found === undefined) {
|
|
96883
|
-
throw new Error("Unknown ABAP release: " + abap);
|
|
96884
|
-
}
|
|
96885
|
-
return found;
|
|
96886
|
-
}
|
|
96887
|
-
/** Look up a release by its kernel release number, e.g. 753, 790, 916 */
|
|
96888
|
-
function fromKernel(kernel) {
|
|
96889
|
-
const found = byKernel.get(kernel);
|
|
96890
|
-
if (found === undefined) {
|
|
96891
|
-
throw new Error("Unknown kernel release: " + kernel);
|
|
96892
|
-
}
|
|
96893
|
-
return found;
|
|
96894
|
-
}
|
|
96895
|
-
/** Look up a release by its cloud release number, e.g. 793, 916 */
|
|
96896
|
-
function fromCloud(cloud) {
|
|
96897
|
-
const found = byCloud.get(cloud);
|
|
96898
|
-
if (found === undefined) {
|
|
96899
|
-
throw new Error("Unknown cloud release: " + cloud);
|
|
96900
|
-
}
|
|
96901
|
-
return found;
|
|
96902
|
-
}
|
|
96903
|
-
/**
|
|
96904
|
-
* Look up a release by its on-prem release number, e.g. 758, 816.
|
|
96905
|
-
* Returns the *last* cloud row at that op number, which is the full on-prem release.
|
|
96906
|
-
*/
|
|
96907
|
-
function fromOP(op) {
|
|
96908
|
-
const found = byOp.get(op);
|
|
96909
|
-
if (found === undefined) {
|
|
96910
|
-
throw new Error("Unknown on-prem release: " + op);
|
|
96911
|
-
}
|
|
96912
|
-
return found;
|
|
96913
|
-
}
|
|
96914
97122
|
// ---------------------------------------------------------------------------
|
|
96915
97123
|
// Deprecated compatibility layer — keeps existing callers working
|
|
96916
97124
|
// ---------------------------------------------------------------------------
|
|
@@ -96930,7 +97138,6 @@ const byDeprecated = Object.freeze({
|
|
|
96930
97138
|
[Version.v757]: exports.Release["v757"],
|
|
96931
97139
|
[Version.v758]: exports.Release["v758"],
|
|
96932
97140
|
[Version.v816]: exports.Release["v816"],
|
|
96933
|
-
[Version.Newest]: exports.Release["Newest"],
|
|
96934
97141
|
[Version.Cloud]: exports.Release["Newest"], // Cloud → Newest sentinel
|
|
96935
97142
|
[Version.OpenABAP]: exports.Release["v702"], // OpenABAP shares v702 release identity
|
|
96936
97143
|
});
|
|
@@ -96941,8 +97148,7 @@ function versionToABAPRelease(v) {
|
|
|
96941
97148
|
}
|
|
96942
97149
|
return found;
|
|
96943
97150
|
}
|
|
96944
|
-
exports.
|
|
96945
|
-
exports.defaultRelease = exports.Release.v758;
|
|
97151
|
+
exports.defaultRelease = exports.Release.Newest;
|
|
96946
97152
|
function getPreviousVersion(v) {
|
|
96947
97153
|
if (v === Version.OpenABAP) {
|
|
96948
97154
|
return Version.v702;
|
|
@@ -98256,7 +98462,25 @@ class Progress {
|
|
|
98256
98462
|
this.bar.render();
|
|
98257
98463
|
}
|
|
98258
98464
|
}
|
|
98465
|
+
function validateVersion(version) {
|
|
98466
|
+
if (version === undefined) {
|
|
98467
|
+
return;
|
|
98468
|
+
}
|
|
98469
|
+
let known = false;
|
|
98470
|
+
if (typeof version === "string") {
|
|
98471
|
+
const vers = core_1.Version;
|
|
98472
|
+
known = Object.keys(core_1.Version).some(v => vers[v] === version);
|
|
98473
|
+
}
|
|
98474
|
+
else if (typeof version === "object" && typeof version.release === "string") {
|
|
98475
|
+
// new object form: {release, language}
|
|
98476
|
+
known = core_1.Release[version.release] !== undefined;
|
|
98477
|
+
}
|
|
98478
|
+
if (known === false) {
|
|
98479
|
+
throw "Error: Unknown version in abaplint.json";
|
|
98480
|
+
}
|
|
98481
|
+
}
|
|
98259
98482
|
function loadConfig(filename) {
|
|
98483
|
+
var _a;
|
|
98260
98484
|
// possible cases:
|
|
98261
98485
|
// a) nothing specified, using abaplint.json from cwd
|
|
98262
98486
|
// b) nothing specified, no abaplint.json in cwd
|
|
@@ -98296,10 +98520,7 @@ function loadConfig(filename) {
|
|
|
98296
98520
|
process.stderr.write("Using config: " + f + "\n");
|
|
98297
98521
|
const json = fs.readFileSync(f, "utf8");
|
|
98298
98522
|
const parsed = JSON5.parse(json);
|
|
98299
|
-
|
|
98300
|
-
if (Object.keys(core_1.Version).some(v => vers[v] === parsed.syntax.version) === false) {
|
|
98301
|
-
throw "Error: Unknown version in abaplint.json";
|
|
98302
|
-
}
|
|
98523
|
+
validateVersion((_a = parsed.syntax) === null || _a === void 0 ? void 0 : _a.version);
|
|
98303
98524
|
return {
|
|
98304
98525
|
config: new core_1.Config(json),
|
|
98305
98526
|
base: path.dirname(f) === process.cwd() ? "." : path.dirname(f),
|