@abaplint/core 2.113.227 → 2.113.228
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/abaplint.d.ts +10 -0
- package/build/src/abap/2_statements/expressions/inline_field.js +2 -1
- package/build/src/abap/2_statements/expressions/select_loop.js +1 -1
- package/build/src/abap/2_statements/statements/index.js +1 -0
- package/build/src/abap/2_statements/statements/loop.js +2 -2
- package/build/src/abap/2_statements/statements/loop_extract.js +11 -0
- package/build/src/abap/2_statements/statements/selectionscreen.js +6 -5
- package/build/src/abap/3_structures/structures/index.js +1 -0
- package/build/src/abap/3_structures/structures/loop_extract.js +13 -0
- package/build/src/abap/3_structures/structures/normal.js +1 -1
- package/build/src/abap/3_structures/structures/on_change.js +2 -1
- package/build/src/abap/5_syntax/basic_types.js +4 -1
- package/build/src/abap/5_syntax/statements/selection_screen.js +6 -4
- package/build/src/registry.js +1 -1
- package/package.json +3 -3
package/build/abaplint.d.ts
CHANGED
|
@@ -4318,6 +4318,14 @@ declare class LoopAtScreen_2 implements IStatement {
|
|
|
4318
4318
|
getMatcher(): IStatementRunnable;
|
|
4319
4319
|
}
|
|
4320
4320
|
|
|
4321
|
+
declare class LoopExtract implements IStructure {
|
|
4322
|
+
getMatcher(): IStructureRunnable;
|
|
4323
|
+
}
|
|
4324
|
+
|
|
4325
|
+
declare class LoopExtract_2 implements IStatement {
|
|
4326
|
+
getMatcher(): IStatementRunnable;
|
|
4327
|
+
}
|
|
4328
|
+
|
|
4321
4329
|
declare class LoopGroupBy extends Expression {
|
|
4322
4330
|
getRunnable(): IStatementRunnable;
|
|
4323
4331
|
}
|
|
@@ -6591,6 +6599,7 @@ declare namespace Statements {
|
|
|
6591
6599
|
Break,
|
|
6592
6600
|
DeleteTextpool,
|
|
6593
6601
|
Get,
|
|
6602
|
+
LoopExtract_2 as LoopExtract,
|
|
6594
6603
|
SelectOption,
|
|
6595
6604
|
Convert,
|
|
6596
6605
|
Static,
|
|
@@ -6828,6 +6837,7 @@ declare namespace Structures {
|
|
|
6828
6837
|
Statics,
|
|
6829
6838
|
TestInjection,
|
|
6830
6839
|
TestSeam,
|
|
6840
|
+
LoopExtract,
|
|
6831
6841
|
Try,
|
|
6832
6842
|
TypeEnum,
|
|
6833
6843
|
TypeMesh,
|
|
@@ -3,9 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.InlineField = void 0;
|
|
4
4
|
const combi_1 = require("../combi");
|
|
5
5
|
const _1 = require(".");
|
|
6
|
+
const tokens_1 = require("../../1_lexer/tokens");
|
|
6
7
|
class InlineField extends combi_1.Expression {
|
|
7
8
|
getRunnable() {
|
|
8
|
-
return
|
|
9
|
+
return (0, combi_1.seq)(_1.Field, (0, combi_1.starPrio)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.Dash), _1.FieldAll)));
|
|
9
10
|
}
|
|
10
11
|
}
|
|
11
12
|
exports.InlineField = InlineField;
|
|
@@ -22,7 +22,7 @@ class SelectLoop extends combi_1.Expression {
|
|
|
22
22
|
const into = (0, combi_1.altPrio)(sql_into_structure_1.SQLIntoStructure, _1.SQLIntoList);
|
|
23
23
|
const perm = (0, combi_1.per)(_1.SQLFrom, where, sql_up_to_1.SQLUpTo, sql_order_by_1.SQLOrderBy, sql_having_1.SQLHaving, _1.SQLClient, bypass, _1.SQLGroupBy, _1.SQLForAllEntries, (0, combi_1.alt)(tab, sql_into_structure_1.SQLIntoStructure, _1.SQLIntoList, packTab));
|
|
24
24
|
const strict = (0, combi_1.seq)(_1.SQLFrom, (0, combi_1.ver)(version_1.Version.v750, sql_fields_loop_1.SQLFieldsLoop), (0, combi_1.optPrio)(_1.SQLForAllEntries), (0, combi_1.optPrio)((0, combi_1.seq)(where, (0, combi_1.optPrio)(sql_order_by_1.SQLOrderBy), into, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo))));
|
|
25
|
-
const aggr = (0, combi_1.seq)(_1.SQLAggregation, into, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), _1.SQLFrom, where, _1.SQLGroupBy);
|
|
25
|
+
const aggr = (0, combi_1.seq)((0, combi_1.plusPrio)(_1.SQLAggregation), into, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), _1.SQLFrom, (0, combi_1.optPrio)(_1.SQLClient), (0, combi_1.optPrio)(where), _1.SQLGroupBy);
|
|
26
26
|
const ret = (0, combi_1.seq)("SELECT", (0, combi_1.altPrio)((0, combi_1.seq)((0, combi_1.optPrio)("DISTINCT"), sql_field_list_loop_1.SQLFieldListLoop, perm), strict, aggr), (0, combi_1.optPrio)(sql_hints_1.SQLHints));
|
|
27
27
|
return ret;
|
|
28
28
|
}
|
|
@@ -246,6 +246,7 @@ __exportStar(require("./editor_call"), exports);
|
|
|
246
246
|
__exportStar(require("./break"), exports);
|
|
247
247
|
__exportStar(require("./delete_textpool"), exports);
|
|
248
248
|
__exportStar(require("./get"), exports);
|
|
249
|
+
__exportStar(require("./loop_extract"), exports);
|
|
249
250
|
__exportStar(require("./selectoption"), exports);
|
|
250
251
|
__exportStar(require("./convert"), exports);
|
|
251
252
|
__exportStar(require("./static"), exports);
|
|
@@ -14,8 +14,8 @@ class Loop {
|
|
|
14
14
|
const to = (0, combi_1.seq)("TO", expressions_1.Source);
|
|
15
15
|
const usingKey = (0, combi_1.seq)("USING KEY", (0, combi_1.altPrio)(expressions_1.SimpleName, expressions_1.Dynamic));
|
|
16
16
|
const options = (0, combi_1.per)(expressions_1.LoopTarget, from, to, where, usingKey, group, step);
|
|
17
|
-
const at = (0, combi_1.seq)(
|
|
18
|
-
return (0, combi_1.seq)("LOOP",
|
|
17
|
+
const at = (0, combi_1.seq)((0, combi_1.opt)((0, combi_1.seq)("SCREEN", (0, combi_1.failCombinator)())), (0, combi_1.opt)((0, combi_1.ver)(version_1.Version.v740sp08, "GROUP", version_1.Version.OpenABAP)), expressions_1.LoopSource, (0, combi_1.opt)(options));
|
|
18
|
+
return (0, combi_1.seq)("LOOP AT", at);
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
exports.Loop = Loop;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LoopExtract = void 0;
|
|
4
|
+
const combi_1 = require("../combi");
|
|
5
|
+
class LoopExtract {
|
|
6
|
+
getMatcher() {
|
|
7
|
+
return (0, combi_1.str)("LOOP");
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.LoopExtract = LoopExtract;
|
|
11
|
+
//# sourceMappingURL=loop_extract.js.map
|
|
@@ -7,10 +7,11 @@ const expressions_1 = require("../expressions");
|
|
|
7
7
|
const version_1 = require("../../../version");
|
|
8
8
|
class SelectionScreen {
|
|
9
9
|
getMatcher() {
|
|
10
|
-
const
|
|
10
|
+
const text = (0, combi_1.altPrio)(expressions_1.TextElement, expressions_1.InlineField);
|
|
11
|
+
const beginBlock = (0, combi_1.seq)("BEGIN OF BLOCK", expressions_1.BlockName, (0, combi_1.optPrio)("WITH FRAME"), (0, combi_1.optPrio)((0, combi_1.seq)("TITLE", text)), (0, combi_1.optPrio)("NO INTERVALS"));
|
|
11
12
|
const endBlock = (0, combi_1.seq)("END OF BLOCK", expressions_1.BlockName);
|
|
12
13
|
const nesting = (0, combi_1.seq)("NESTING LEVEL", expressions_1.Source);
|
|
13
|
-
const scrOptions = (0, combi_1.per)((0, combi_1.seq)("AS", (0, combi_1.alt)("WINDOW", "SUBSCREEN")), (0, combi_1.seq)("TITLE",
|
|
14
|
+
const scrOptions = (0, combi_1.per)((0, combi_1.seq)("AS", (0, combi_1.alt)("WINDOW", "SUBSCREEN")), (0, combi_1.seq)("TITLE", text), "NO INTERVALS", nesting);
|
|
14
15
|
const beginScreen = (0, combi_1.seq)("BEGIN OF SCREEN", expressions_1.Integer, (0, combi_1.opt)(scrOptions));
|
|
15
16
|
const endScreen = (0, combi_1.seq)("END OF SCREEN", expressions_1.Integer);
|
|
16
17
|
const beginLine = (0, combi_1.str)("BEGIN OF LINE");
|
|
@@ -21,12 +22,12 @@ class SelectionScreen {
|
|
|
21
22
|
const ldb = (0, combi_1.seq)("FOR FIELD", expressions_1.FieldSub, (0, combi_1.optPrio)(ldbId));
|
|
22
23
|
const commentOpt = (0, combi_1.per)(ldb, modif, visible);
|
|
23
24
|
const position = (0, combi_1.seq)((0, combi_1.opt)((0, combi_1.regex)(/^\/?[\d\w]+$/)), (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.ParenLeft), (0, combi_1.tok)(tokens_1.WParenLeft)), expressions_1.Integer, (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.ParenRightW), (0, combi_1.tok)(tokens_1.ParenRight)));
|
|
24
|
-
const comment = (0, combi_1.seq)("COMMENT", position, (0, combi_1.opt)(
|
|
25
|
+
const comment = (0, combi_1.seq)("COMMENT", position, (0, combi_1.opt)(text), (0, combi_1.opt)(commentOpt));
|
|
25
26
|
const command = (0, combi_1.seq)("USER-COMMAND", (0, combi_1.alt)(expressions_1.Field, expressions_1.Constant));
|
|
26
|
-
const push = (0, combi_1.seq)("PUSHBUTTON", position,
|
|
27
|
+
const push = (0, combi_1.seq)("PUSHBUTTON", position, text, command, (0, combi_1.opt)(modif), (0, combi_1.opt)(visible));
|
|
27
28
|
const prog = (0, combi_1.seq)("PROGRAM", expressions_1.Field);
|
|
28
29
|
const def = (0, combi_1.seq)("DEFAULT", (0, combi_1.opt)(prog), "SCREEN", expressions_1.Integer);
|
|
29
|
-
const tab = (0, combi_1.seq)("TAB", (0, combi_1.tok)(tokens_1.WParenLeft), expressions_1.Integer, (0, combi_1.tok)(tokens_1.ParenRightW),
|
|
30
|
+
const tab = (0, combi_1.seq)("TAB", (0, combi_1.tok)(tokens_1.WParenLeft), expressions_1.Integer, (0, combi_1.tok)(tokens_1.ParenRightW), text, command, (0, combi_1.opt)(def), (0, combi_1.opt)(modif));
|
|
30
31
|
const func = (0, combi_1.seq)("FUNCTION KEY", expressions_1.Integer);
|
|
31
32
|
const skip = (0, combi_1.seq)("SKIP", (0, combi_1.opt)(expressions_1.Integer));
|
|
32
33
|
const posSymbols = (0, combi_1.altPrio)("POS_LOW", "POS_HIGH");
|
|
@@ -64,6 +64,7 @@ __exportStar(require("./dynpro_loop"), exports);
|
|
|
64
64
|
__exportStar(require("./statics"), exports);
|
|
65
65
|
__exportStar(require("./test_injection"), exports);
|
|
66
66
|
__exportStar(require("./test_seam"), exports);
|
|
67
|
+
__exportStar(require("./loop_extract"), exports);
|
|
67
68
|
__exportStar(require("./try"), exports);
|
|
68
69
|
__exportStar(require("./type_enum"), exports);
|
|
69
70
|
__exportStar(require("./type_mesh"), exports);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LoopExtract = void 0;
|
|
4
|
+
const Statements = require("../../2_statements/statements");
|
|
5
|
+
const _combi_1 = require("./_combi");
|
|
6
|
+
const _1 = require(".");
|
|
7
|
+
class LoopExtract {
|
|
8
|
+
getMatcher() {
|
|
9
|
+
return (0, _combi_1.beginEnd)((0, _combi_1.sta)(Statements.LoopExtract), (0, _combi_1.star)((0, _combi_1.sub)(_1.Body)), (0, _combi_1.sta)(Statements.EndLoop));
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.LoopExtract = LoopExtract;
|
|
13
|
+
//# sourceMappingURL=loop_extract.js.map
|
|
@@ -8,7 +8,7 @@ const _statement_1 = require("../../2_statements/statements/_statement");
|
|
|
8
8
|
class Normal {
|
|
9
9
|
getMatcher() {
|
|
10
10
|
// note that the sequence of alternatives here influences performance
|
|
11
|
-
return (0, _combi_1.alt)((0, _combi_1.sta)(Statements.Move), (0, _combi_1.sta)(Statements.Call), (0, _combi_1.sta)(Statements.Data), (0, _combi_1.sub)(Structures.If), (0, _combi_1.sta)(Statements.Clear), (0, _combi_1.sta)(Statements.FieldSymbol), (0, _combi_1.sta)(Statements.CreateObject), (0, _combi_1.sta)(Statements.CallFunction), (0, _combi_1.sta)(_statement_1.MacroCall), (0, _combi_1.sub)(Structures.LoopAtScreen), (0, _combi_1.sub)(Structures.Loop), (0, _combi_1.sta)(Statements.Append), (0, _combi_1.sub)(Structures.Try), (0, _combi_1.sub)(Structures.OnChange), (0, _combi_1.sta)(Statements.ReadTable), (0, _combi_1.sta)(Statements.Assert), (0, _combi_1.sta)(Statements.Return), (0, _combi_1.sta)(Statements.Select), (0, _combi_1.sta)(Statements.Assign), (0, _combi_1.sta)(Statements.InsertInternal), (0, _combi_1.sta)(Statements.DeleteInternal), (0, _combi_1.sta)(Statements.Concatenate), (0, _combi_1.sub)(Structures.Case), (0, _combi_1.sub)(Structures.CaseType), (0, _combi_1.sub)(Structures.Enhancement), (0, _combi_1.sub)(Structures.EnhancementSection), (0, _combi_1.sta)(Statements.AddCorresponding), (0, _combi_1.sta)(Statements.Add), (0, _combi_1.sta)(Statements.AssignLocalCopy), (0, _combi_1.sta)(Statements.AuthorityCheck), (0, _combi_1.sta)(Statements.Back), (0, _combi_1.sta)(Statements.Break), (0, _combi_1.sta)(Statements.BreakId), (0, _combi_1.sta)(Statements.CallDatabase), (0, _combi_1.sta)(Statements.CallDialog), (0, _combi_1.sta)(Statements.CallKernel), (0, _combi_1.sta)(Statements.CallOLE), (0, _combi_1.sta)(Statements.CallScreen), (0, _combi_1.sta)(Statements.ModifyScreen), (0, _combi_1.sta)(Statements.CallSelectionScreen), (0, _combi_1.sta)(Statements.CallTransaction), (0, _combi_1.sta)(Statements.CallTransformation), (0, _combi_1.sta)(Statements.Check), (0, _combi_1.sta)(Statements.ClassDefinitionLoad), (0, _combi_1.sta)(Statements.CloseCursor), (0, _combi_1.sta)(Statements.CloseDataset), (0, _combi_1.sta)(Statements.Collect), (0, _combi_1.sta)(Statements.Commit), (0, _combi_1.sta)(Statements.Communication), (0, _combi_1.sta)(Statements.Compute), (0, _combi_1.sta)(Statements.CallBadi), (0, _combi_1.sta)(Statements.Condense), (0, _combi_1.sta)(Statements.Constant), (0, _combi_1.sta)(Statements.Contexts), (0, _combi_1.sta)(Statements.Continue), (0, _combi_1.sta)(Statements.ConvertText), (0, _combi_1.sta)(Statements.Convert), (0, _combi_1.sta)(Statements.CreateData), (0, _combi_1.sta)(Statements.CreateOLE), (0, _combi_1.sta)(Statements.DeleteCluster), (0, _combi_1.sta)(Statements.DeleteDatabase), (0, _combi_1.sta)(Statements.DeleteDataset), (0, _combi_1.sta)(Statements.DeleteDynpro), (0, _combi_1.sta)(Statements.DeleteMemory), (0, _combi_1.sta)(Statements.DeleteReport), (0, _combi_1.sta)(Statements.DeleteTextpool), (0, _combi_1.sta)(Statements.Demand), (0, _combi_1.sta)(Statements.Describe), (0, _combi_1.sta)(Statements.Detail), (0, _combi_1.sta)(Statements.Divide), (0, _combi_1.sta)(Statements.EditorCall), (0, _combi_1.sta)(Statements.EnhancementPoint), (0, _combi_1.sta)(Statements.Exit), (0, _combi_1.sta)(Statements.ExportDynpro), (0, _combi_1.sta)(Statements.Export), (0, _combi_1.sta)(Statements.Extract), (0, _combi_1.sta)(Statements.FetchNextCursor), (0, _combi_1.sta)(Statements.FieldGroup), (0, _combi_1.sta)(Statements.Fields), (0, _combi_1.sta)(Statements.Find), (0, _combi_1.sta)(Statements.Format), (0, _combi_1.sta)(Statements.FreeMemory), (0, _combi_1.sta)(Statements.FreeObject), (0, _combi_1.sta)(Statements.Free), (0, _combi_1.sta)(Statements.GenerateDynpro), (0, _combi_1.sta)(Statements.GenerateReport), (0, _combi_1.sta)(Statements.GenerateSubroutine), (0, _combi_1.sta)(Statements.GetBadi), (0, _combi_1.sta)(Statements.GetBit), (0, _combi_1.sta)(Statements.GetCursor), (0, _combi_1.sta)(Statements.GetDataset), (0, _combi_1.sta)(Statements.GetLocale), (0, _combi_1.sta)(Statements.GetParameter), (0, _combi_1.sta)(Statements.GetPFStatus), (0, _combi_1.sta)(Statements.GetProperty), (0, _combi_1.sta)(Statements.GetReference), (0, _combi_1.sta)(Statements.GetRunTime), (0, _combi_1.sta)(Statements.GetTime), (0, _combi_1.sta)(Statements.Hide), (0, _combi_1.sta)(Statements.Nodes), (0, _combi_1.sta)(Statements.ImportDynpro), (0, _combi_1.sta)(Statements.ImportNametab), (0, _combi_1.sta)(Statements.MoveCorresponding), (0, _combi_1.sta)(Statements.Import), (0, _combi_1.sta)(Statements.Infotypes), (0, _combi_1.sta)(Statements.Include), // include does not have to be at top level
|
|
11
|
+
return (0, _combi_1.alt)((0, _combi_1.sta)(Statements.Move), (0, _combi_1.sta)(Statements.Call), (0, _combi_1.sta)(Statements.Data), (0, _combi_1.sub)(Structures.If), (0, _combi_1.sta)(Statements.Clear), (0, _combi_1.sta)(Statements.FieldSymbol), (0, _combi_1.sta)(Statements.CreateObject), (0, _combi_1.sta)(Statements.CallFunction), (0, _combi_1.sta)(_statement_1.MacroCall), (0, _combi_1.sub)(Structures.LoopAtScreen), (0, _combi_1.sub)(Structures.Loop), (0, _combi_1.sub)(Structures.LoopExtract), (0, _combi_1.sta)(Statements.Append), (0, _combi_1.sub)(Structures.Try), (0, _combi_1.sub)(Structures.OnChange), (0, _combi_1.sta)(Statements.ReadTable), (0, _combi_1.sta)(Statements.Assert), (0, _combi_1.sta)(Statements.Return), (0, _combi_1.sta)(Statements.Select), (0, _combi_1.sta)(Statements.Assign), (0, _combi_1.sta)(Statements.InsertInternal), (0, _combi_1.sta)(Statements.DeleteInternal), (0, _combi_1.sta)(Statements.Concatenate), (0, _combi_1.sub)(Structures.Case), (0, _combi_1.sub)(Structures.CaseType), (0, _combi_1.sub)(Structures.Enhancement), (0, _combi_1.sub)(Structures.EnhancementSection), (0, _combi_1.sta)(Statements.AddCorresponding), (0, _combi_1.sta)(Statements.Add), (0, _combi_1.sta)(Statements.AssignLocalCopy), (0, _combi_1.sta)(Statements.AuthorityCheck), (0, _combi_1.sta)(Statements.Back), (0, _combi_1.sta)(Statements.Break), (0, _combi_1.sta)(Statements.BreakId), (0, _combi_1.sta)(Statements.CallDatabase), (0, _combi_1.sta)(Statements.CallDialog), (0, _combi_1.sta)(Statements.CallKernel), (0, _combi_1.sta)(Statements.CallOLE), (0, _combi_1.sta)(Statements.CallScreen), (0, _combi_1.sta)(Statements.ModifyScreen), (0, _combi_1.sta)(Statements.CallSelectionScreen), (0, _combi_1.sta)(Statements.CallTransaction), (0, _combi_1.sta)(Statements.CallTransformation), (0, _combi_1.sta)(Statements.Check), (0, _combi_1.sta)(Statements.ClassDefinitionLoad), (0, _combi_1.sta)(Statements.CloseCursor), (0, _combi_1.sta)(Statements.CloseDataset), (0, _combi_1.sta)(Statements.Collect), (0, _combi_1.sta)(Statements.Commit), (0, _combi_1.sta)(Statements.Communication), (0, _combi_1.sta)(Statements.Compute), (0, _combi_1.sta)(Statements.CallBadi), (0, _combi_1.sta)(Statements.Condense), (0, _combi_1.sta)(Statements.Constant), (0, _combi_1.sta)(Statements.Contexts), (0, _combi_1.sta)(Statements.Continue), (0, _combi_1.sta)(Statements.ConvertText), (0, _combi_1.sta)(Statements.Convert), (0, _combi_1.sta)(Statements.CreateData), (0, _combi_1.sta)(Statements.CreateOLE), (0, _combi_1.sta)(Statements.DeleteCluster), (0, _combi_1.sta)(Statements.DeleteDatabase), (0, _combi_1.sta)(Statements.DeleteDataset), (0, _combi_1.sta)(Statements.DeleteDynpro), (0, _combi_1.sta)(Statements.DeleteMemory), (0, _combi_1.sta)(Statements.DeleteReport), (0, _combi_1.sta)(Statements.DeleteTextpool), (0, _combi_1.sta)(Statements.Demand), (0, _combi_1.sta)(Statements.Describe), (0, _combi_1.sta)(Statements.Detail), (0, _combi_1.sta)(Statements.Divide), (0, _combi_1.sta)(Statements.EditorCall), (0, _combi_1.sta)(Statements.EnhancementPoint), (0, _combi_1.sta)(Statements.Exit), (0, _combi_1.sta)(Statements.ExportDynpro), (0, _combi_1.sta)(Statements.Export), (0, _combi_1.sta)(Statements.Extract), (0, _combi_1.sta)(Statements.FetchNextCursor), (0, _combi_1.sta)(Statements.FieldGroup), (0, _combi_1.sta)(Statements.Fields), (0, _combi_1.sta)(Statements.Find), (0, _combi_1.sta)(Statements.Format), (0, _combi_1.sta)(Statements.FreeMemory), (0, _combi_1.sta)(Statements.FreeObject), (0, _combi_1.sta)(Statements.Free), (0, _combi_1.sta)(Statements.GenerateDynpro), (0, _combi_1.sta)(Statements.GenerateReport), (0, _combi_1.sta)(Statements.GenerateSubroutine), (0, _combi_1.sta)(Statements.GetBadi), (0, _combi_1.sta)(Statements.GetBit), (0, _combi_1.sta)(Statements.GetCursor), (0, _combi_1.sta)(Statements.GetDataset), (0, _combi_1.sta)(Statements.GetLocale), (0, _combi_1.sta)(Statements.GetParameter), (0, _combi_1.sta)(Statements.GetPFStatus), (0, _combi_1.sta)(Statements.GetProperty), (0, _combi_1.sta)(Statements.GetReference), (0, _combi_1.sta)(Statements.GetRunTime), (0, _combi_1.sta)(Statements.GetTime), (0, _combi_1.sta)(Statements.Hide), (0, _combi_1.sta)(Statements.Nodes), (0, _combi_1.sta)(Statements.ImportDynpro), (0, _combi_1.sta)(Statements.ImportNametab), (0, _combi_1.sta)(Statements.MoveCorresponding), (0, _combi_1.sta)(Statements.Import), (0, _combi_1.sta)(Statements.Infotypes), (0, _combi_1.sta)(Statements.Include), // include does not have to be at top level
|
|
12
12
|
(0, _combi_1.sta)(Statements.InsertDatabase), (0, _combi_1.sta)(Statements.InsertReport), (0, _combi_1.sta)(Statements.InsertTextpool), (0, _combi_1.sta)(Statements.InsertFieldGroup), (0, _combi_1.sta)(Statements.InterfaceLoad), (0, _combi_1.sta)(Statements.Leave), (0, _combi_1.sta)(Statements.LoadReport), (0, _combi_1.sta)(Statements.Local), (0, _combi_1.sta)(Statements.With), (0, _combi_1.sta)(Statements.LogPoint), (0, _combi_1.sta)(Statements.Message), (0, _combi_1.sta)(Statements.ModifyLine), (0, _combi_1.sta)(Statements.ModifyDatabase), (0, _combi_1.sta)(Statements.ModifyInternal), (0, _combi_1.sta)(Statements.Multiply), (0, _combi_1.sta)(Statements.NewLine), (0, _combi_1.sta)(Statements.NewPage), (0, _combi_1.sta)(Statements.OpenCursor), (0, _combi_1.sta)(Statements.OpenDataset), (0, _combi_1.sta)(Statements.Overlay), (0, _combi_1.sta)(Statements.Pack), (0, _combi_1.sta)(Statements.Perform), (0, _combi_1.sta)(Statements.FormDefinition), (0, _combi_1.sta)(Statements.Position), (0, _combi_1.sta)(Statements.Put), (0, _combi_1.sta)(Statements.PrintControl), (0, _combi_1.sta)(Statements.RaiseEvent), (0, _combi_1.sta)(Statements.RaiseEntityEvent), (0, _combi_1.sta)(Statements.Raise), (0, _combi_1.sta)(Statements.Ranges), (0, _combi_1.sta)(Statements.ReadDataset), (0, _combi_1.sta)(Statements.ReadLine), (0, _combi_1.sta)(Statements.ReadReport), (0, _combi_1.sta)(Statements.ReadTextpool), (0, _combi_1.sta)(Statements.Receive), (0, _combi_1.sta)(Statements.RefreshControl), (0, _combi_1.sta)(Statements.Refresh), (0, _combi_1.sta)(Statements.Reject), (0, _combi_1.sta)(Statements.Replace), (0, _combi_1.sta)(Statements.Reserve), (0, _combi_1.sta)(Statements.Resume), (0, _combi_1.sta)(Statements.Retry), (0, _combi_1.sta)(Statements.Rollback), (0, _combi_1.sta)(Statements.Scan), (0, _combi_1.sta)(Statements.ScrollList), (0, _combi_1.sta)(Statements.Search), (0, _combi_1.sta)(Statements.SetBit), (0, _combi_1.sta)(Statements.SetBlank), (0, _combi_1.sta)(Statements.SetCountry), (0, _combi_1.sta)(Statements.SetCursor), (0, _combi_1.sta)(Statements.SetDataset), (0, _combi_1.sta)(Statements.SetExtendedCheck), (0, _combi_1.sta)(Statements.SetHandler), (0, _combi_1.sta)(Statements.SetLanguage), (0, _combi_1.sta)(Statements.SetLeft), (0, _combi_1.sta)(Statements.SetLocale), (0, _combi_1.sta)(Statements.SetMargin), (0, _combi_1.sta)(Statements.SetParameter), (0, _combi_1.sta)(Statements.SetPFStatus), (0, _combi_1.sta)(Statements.SetProperty), (0, _combi_1.sta)(Statements.SetRunTime), (0, _combi_1.sta)(Statements.SetScreen), (0, _combi_1.sta)(Statements.SetTitlebar), (0, _combi_1.sta)(Statements.SetUserCommand), (0, _combi_1.sta)(Statements.SetUpdateTask), (0, _combi_1.sta)(Statements.Shift), (0, _combi_1.sta)(Statements.Skip), (0, _combi_1.sta)(Statements.SortDataset), (0, _combi_1.sta)(Statements.Sort), (0, _combi_1.sta)(Statements.Static), (0, _combi_1.sta)(Statements.Split), (0, _combi_1.sta)(Statements.Stop), (0, _combi_1.sta)(Statements.Submit), (0, _combi_1.sta)(Statements.Summary), (0, _combi_1.sta)(Statements.SubtractCorresponding), (0, _combi_1.sta)(Statements.Subtract), (0, _combi_1.sta)(Statements.SuppressDialog), (0, _combi_1.sta)(Statements.Supply), (0, _combi_1.sta)(Statements.Sum), (0, _combi_1.sta)(Statements.SyntaxCheck), (0, _combi_1.sta)(Statements.SystemCall), (0, _combi_1.sta)(Statements.Tables), (0, _combi_1.sta)(Statements.Transfer), (0, _combi_1.sta)(Statements.Translate), (0, _combi_1.sta)(Statements.Type), (0, _combi_1.sta)(Statements.TypePools), (0, _combi_1.sta)(Statements.Uline), (0, _combi_1.sta)(Statements.Unassign), (0, _combi_1.sta)(Statements.Unpack), (0, _combi_1.sta)(Statements.UpdateDatabase), (0, _combi_1.sta)(Statements.Wait), (0, _combi_1.sta)(Statements.Window), (0, _combi_1.sta)(Statements.Write), (0, _combi_1.sta)(Statements.CommitEntities), (0, _combi_1.sta)(Statements.GetPermissions), (0, _combi_1.sta)(Statements.SetLocks), (0, _combi_1.sta)(Statements.ModifyEntities), (0, _combi_1.sta)(Statements.ReadEntities), (0, _combi_1.sta)(Statements.RollbackEntities), (0, _combi_1.sta)(Statements.Module), // todo, should be dynpro specific
|
|
13
13
|
(0, _combi_1.sta)(Statements.Field), // todo, should be dynpro specific
|
|
14
14
|
(0, _combi_1.sub)(Structures.Chain), // todo, should be dynpro specific
|
|
@@ -4,9 +4,10 @@ exports.OnChange = void 0;
|
|
|
4
4
|
const Statements = require("../../2_statements/statements");
|
|
5
5
|
const _combi_1 = require("./_combi");
|
|
6
6
|
const body_1 = require("./body");
|
|
7
|
+
const else_1 = require("./else");
|
|
7
8
|
class OnChange {
|
|
8
9
|
getMatcher() {
|
|
9
|
-
return (0, _combi_1.beginEnd)((0, _combi_1.sta)(Statements.OnChange), (0, _combi_1.opt)((0, _combi_1.sub)(body_1.Body)), (0, _combi_1.sta)(Statements.EndOn));
|
|
10
|
+
return (0, _combi_1.beginEnd)((0, _combi_1.sta)(Statements.OnChange), (0, _combi_1.seq)((0, _combi_1.opt)((0, _combi_1.sub)(body_1.Body)), (0, _combi_1.opt)((0, _combi_1.sub)(else_1.Else))), (0, _combi_1.sta)(Statements.EndOn));
|
|
10
11
|
}
|
|
11
12
|
}
|
|
12
13
|
exports.OnChange = OnChange;
|
|
@@ -848,7 +848,10 @@ class BasicTypes {
|
|
|
848
848
|
}
|
|
849
849
|
}
|
|
850
850
|
const found = this.resolveTypeName(chain);
|
|
851
|
-
if (found &&
|
|
851
|
+
if (found && found instanceof Types.VoidType) {
|
|
852
|
+
return found;
|
|
853
|
+
}
|
|
854
|
+
else if (found && !(found instanceof Types.UnknownType)) {
|
|
852
855
|
return new Types.DataReference(found);
|
|
853
856
|
}
|
|
854
857
|
else if (chain.concatTokens().toUpperCase() === "DATA") {
|
|
@@ -18,8 +18,8 @@ class SelectionScreen {
|
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
20
20
|
const field = node.findFirstExpression(Expressions.InlineField);
|
|
21
|
-
if (field !== undefined && field.
|
|
22
|
-
const message = "SELECTION-SCREEN name too long, " + field.
|
|
21
|
+
if (field !== undefined && field.concatTokens().length > 8) {
|
|
22
|
+
const message = "SELECTION-SCREEN name too long, " + field.concatTokens();
|
|
23
23
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, field.getFirstToken(), message));
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
@@ -33,10 +33,12 @@ class SelectionScreen {
|
|
|
33
33
|
input.scope.addIdentifier(new _typed_identifier_1.TypedIdentifier(blockToken, input.filename, type, ["selection_screen_tab" /* IdentifierMeta.SelectionScreenTab */]));
|
|
34
34
|
}
|
|
35
35
|
else if (concat.startsWith("SELECTION-SCREEN TAB") && fieldName) {
|
|
36
|
-
|
|
36
|
+
const id = new _typed_identifier_1.TypedIdentifier(fieldName, input.filename, new basic_1.CharacterType(83), ["selection_screen_tab" /* IdentifierMeta.SelectionScreenTab */]);
|
|
37
|
+
input.scope.addNamedIdentifier(field.concatTokens(), id);
|
|
37
38
|
}
|
|
38
39
|
else if (fieldName) {
|
|
39
|
-
|
|
40
|
+
const id = new _typed_identifier_1.TypedIdentifier(fieldName, input.filename, new basic_1.CharacterType(83));
|
|
41
|
+
input.scope.addNamedIdentifier(field.concatTokens(), id);
|
|
40
42
|
}
|
|
41
43
|
}
|
|
42
44
|
}
|
package/build/src/registry.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/core",
|
|
3
|
-
"version": "2.113.
|
|
3
|
+
"version": "2.113.228",
|
|
4
4
|
"description": "abaplint - Core API",
|
|
5
5
|
"main": "build/src/index.js",
|
|
6
6
|
"typings": "build/abaplint.d.ts",
|
|
@@ -50,10 +50,10 @@
|
|
|
50
50
|
},
|
|
51
51
|
"homepage": "https://abaplint.org",
|
|
52
52
|
"devDependencies": {
|
|
53
|
-
"@microsoft/api-extractor": "^7.53.
|
|
53
|
+
"@microsoft/api-extractor": "^7.53.1",
|
|
54
54
|
"@types/chai": "^4.3.20",
|
|
55
55
|
"@types/mocha": "^10.0.10",
|
|
56
|
-
"@types/node": "^24.
|
|
56
|
+
"@types/node": "^24.7.2",
|
|
57
57
|
"chai": "^4.5.0",
|
|
58
58
|
"eslint": "^9.37.0",
|
|
59
59
|
"mocha": "^11.7.4",
|