@abaplint/core 2.113.75 → 2.113.77

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.
@@ -703,6 +703,10 @@ declare class CallSelectionScreen implements IStatement {
703
703
  getMatcher(): IStatementRunnable;
704
704
  }
705
705
 
706
+ declare class CallSubscreen implements IStatement {
707
+ getMatcher(): IStatementRunnable;
708
+ }
709
+
706
710
  declare class CallTransaction implements IStatement {
707
711
  getMatcher(): IStatementRunnable;
708
712
  }
@@ -942,6 +946,10 @@ declare class CGenericType extends AbstractType {
942
946
  toCDS(): string;
943
947
  }
944
948
 
949
+ declare class Chain implements IStatement {
950
+ getMatcher(): IStatementRunnable;
951
+ }
952
+
945
953
  declare class ChangeDocument extends AbstractObject {
946
954
  getType(): string;
947
955
  getAllowedNaming(): {
@@ -1868,6 +1876,10 @@ declare type DynproHeader = {
1868
1876
 
1869
1877
  declare type DynproList = DynproHeader[];
1870
1878
 
1879
+ declare class DynproLogic implements IStructure {
1880
+ getMatcher(): IStructureRunnable;
1881
+ }
1882
+
1871
1883
  declare class EcattTestConfiguration extends AbstractObject {
1872
1884
  getType(): string;
1873
1885
  getAllowedNaming(): {
@@ -1931,6 +1943,10 @@ declare class EndCatch implements IStatement {
1931
1943
  getMatcher(): IStatementRunnable;
1932
1944
  }
1933
1945
 
1946
+ declare class EndChain implements IStatement {
1947
+ getMatcher(): IStatementRunnable;
1948
+ }
1949
+
1934
1950
  declare class EndClass implements IStatement {
1935
1951
  getMatcher(): IStatementRunnable;
1936
1952
  }
@@ -2237,7 +2253,7 @@ declare namespace Expressions {
2237
2253
  FieldOffset,
2238
2254
  FieldSub,
2239
2255
  FieldSymbol_2 as FieldSymbol,
2240
- Field,
2256
+ Field_2 as Field,
2241
2257
  FilterBody,
2242
2258
  FinalMethods,
2243
2259
  FindType,
@@ -2471,7 +2487,11 @@ declare class FetchNextCursor implements IStatement {
2471
2487
  getMatcher(): IStatementRunnable;
2472
2488
  }
2473
2489
 
2474
- declare class Field extends Expression {
2490
+ declare class Field implements IStatement {
2491
+ getMatcher(): IStatementRunnable;
2492
+ }
2493
+
2494
+ declare class Field_2 extends Expression {
2475
2495
  getRunnable(): IStatementRunnable;
2476
2496
  }
2477
2497
 
@@ -5230,6 +5250,18 @@ declare class PrivateSection implements IStructure {
5230
5250
  getMatcher(): IStructureRunnable;
5231
5251
  }
5232
5252
 
5253
+ declare class ProcessAfterInput implements IStatement {
5254
+ getMatcher(): IStatementRunnable;
5255
+ }
5256
+
5257
+ declare class ProcessBeforeOutput implements IStatement {
5258
+ getMatcher(): IStatementRunnable;
5259
+ }
5260
+
5261
+ declare class ProcessOnValueRequest implements IStatement {
5262
+ getMatcher(): IStatementRunnable;
5263
+ }
5264
+
5233
5265
  declare class Program extends ABAPObject {
5234
5266
  private parsedXML;
5235
5267
  getType(): string;
@@ -6450,6 +6482,7 @@ declare namespace Statements {
6450
6482
  Retry,
6451
6483
  AuthorityCheck,
6452
6484
  SetParameter,
6485
+ Field,
6453
6486
  GetCursor,
6454
6487
  CallKernel,
6455
6488
  CallTransaction,
@@ -6459,6 +6492,9 @@ declare namespace Statements {
6459
6492
  DataBegin,
6460
6493
  DataEnd,
6461
6494
  TypeBegin,
6495
+ ProcessAfterInput,
6496
+ ProcessBeforeOutput,
6497
+ ProcessOnValueRequest,
6462
6498
  TypeEnd,
6463
6499
  RaiseEvent,
6464
6500
  Cleanup_2 as Cleanup,
@@ -6472,6 +6508,9 @@ declare namespace Statements {
6472
6508
  DeleteMemory,
6473
6509
  Provide_2 as Provide,
6474
6510
  EndExec,
6511
+ Chain,
6512
+ EndChain,
6513
+ CallSubscreen,
6475
6514
  SortDataset,
6476
6515
  GetPermissions,
6477
6516
  SetLocks,
@@ -6579,9 +6618,9 @@ declare class StructureNode extends AbstractNode<StructureNode | StatementNode>
6579
6618
  declare namespace Structures {
6580
6619
  export {
6581
6620
  Any,
6582
- At,
6583
6621
  AtFirst,
6584
6622
  AtLast,
6623
+ At,
6585
6624
  Body,
6586
6625
  CaseType,
6587
6626
  Case,
@@ -6596,7 +6635,7 @@ declare namespace Structures {
6596
6635
  Data,
6597
6636
  Define,
6598
6637
  Do,
6599
- TypeMesh,
6638
+ DynproLogic,
6600
6639
  Else,
6601
6640
  ElseIf,
6602
6641
  EnhancementSection,
@@ -6624,6 +6663,7 @@ declare namespace Structures {
6624
6663
  TestSeam,
6625
6664
  Try,
6626
6665
  TypeEnum,
6666
+ TypeMesh,
6627
6667
  Types_2 as Types,
6628
6668
  WhenType,
6629
6669
  When,
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CallSubscreen = void 0;
4
+ const combi_1 = require("../combi");
5
+ const expressions_1 = require("../expressions");
6
+ const version_1 = require("../../../version");
7
+ class CallSubscreen {
8
+ getMatcher() {
9
+ const including = (0, combi_1.seq)("INCLUDING", expressions_1.Source, expressions_1.Source);
10
+ const ret = (0, combi_1.seq)("CALL SUBSCREEN", expressions_1.Source, (0, combi_1.optPrio)(including));
11
+ return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
12
+ }
13
+ }
14
+ exports.CallSubscreen = CallSubscreen;
15
+ //# sourceMappingURL=call_subscreen.js.map
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Chain = void 0;
4
+ const combi_1 = require("../combi");
5
+ const version_1 = require("../../../version");
6
+ class Chain {
7
+ getMatcher() {
8
+ return (0, combi_1.verNot)(version_1.Version.Cloud, "CHAIN");
9
+ }
10
+ }
11
+ exports.Chain = Chain;
12
+ //# sourceMappingURL=chain.js.map
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EndChain = void 0;
4
+ const combi_1 = require("../combi");
5
+ const version_1 = require("../../../version");
6
+ class EndChain {
7
+ getMatcher() {
8
+ return (0, combi_1.verNot)(version_1.Version.Cloud, "ENDCHAIN");
9
+ }
10
+ }
11
+ exports.EndChain = EndChain;
12
+ //# sourceMappingURL=end_chain.js.map
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Field = void 0;
4
+ const combi_1 = require("../combi");
5
+ const expressions_1 = require("../expressions");
6
+ const version_1 = require("../../../version");
7
+ class Field {
8
+ getMatcher() {
9
+ const ret = (0, combi_1.seq)("FIELD", expressions_1.FieldChain, "MODULE", expressions_1.FormName, (0, combi_1.opt)((0, combi_1.alt)("ON INPUT", "ON REQUEST")));
10
+ return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
11
+ }
12
+ }
13
+ exports.Field = Field;
14
+ //# sourceMappingURL=field.js.map
@@ -294,6 +294,7 @@ __exportStar(require("./endfunction"), exports);
294
294
  __exportStar(require("./retry"), exports);
295
295
  __exportStar(require("./authority_check"), exports);
296
296
  __exportStar(require("./set_parameter"), exports);
297
+ __exportStar(require("./field"), exports);
297
298
  __exportStar(require("./get_cursor"), exports);
298
299
  __exportStar(require("./call_kernel"), exports);
299
300
  __exportStar(require("./call_transaction"), exports);
@@ -303,6 +304,9 @@ __exportStar(require("./uline"), exports);
303
304
  __exportStar(require("./data_begin"), exports);
304
305
  __exportStar(require("./data_end"), exports);
305
306
  __exportStar(require("./type_begin"), exports);
307
+ __exportStar(require("./process_after_input"), exports);
308
+ __exportStar(require("./process_before_output"), exports);
309
+ __exportStar(require("./process_on_value_request"), exports);
306
310
  __exportStar(require("./type_end"), exports);
307
311
  __exportStar(require("./raise_event"), exports);
308
312
  __exportStar(require("./cleanup"), exports);
@@ -316,6 +320,9 @@ __exportStar(require("./end_test_seam"), exports);
316
320
  __exportStar(require("./delete_memory"), exports);
317
321
  __exportStar(require("./provide"), exports);
318
322
  __exportStar(require("./endexec"), exports);
323
+ __exportStar(require("./chain"), exports);
324
+ __exportStar(require("./end_chain"), exports);
325
+ __exportStar(require("./call_subscreen"), exports);
319
326
  __exportStar(require("./sort_dataset"), exports);
320
327
  __exportStar(require("./get_permissions"), exports);
321
328
  __exportStar(require("./set_locks"), exports);
@@ -6,7 +6,7 @@ const expressions_1 = require("../expressions");
6
6
  const version_1 = require("../../../version");
7
7
  class Module {
8
8
  getMatcher() {
9
- const ret = (0, combi_1.seq)("MODULE", expressions_1.FormName, (0, combi_1.opt)((0, combi_1.alt)("INPUT", "OUTPUT")));
9
+ const ret = (0, combi_1.seq)("MODULE", expressions_1.FormName, (0, combi_1.opt)((0, combi_1.alt)("INPUT", "OUTPUT", "ON CHAIN-REQUEST")));
10
10
  return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
11
11
  }
12
12
  }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcessAfterInput = void 0;
4
+ const combi_1 = require("../combi");
5
+ const version_1 = require("../../../version");
6
+ class ProcessAfterInput {
7
+ getMatcher() {
8
+ return (0, combi_1.verNot)(version_1.Version.Cloud, "PROCESS AFTER INPUT");
9
+ }
10
+ }
11
+ exports.ProcessAfterInput = ProcessAfterInput;
12
+ //# sourceMappingURL=process_after_input.js.map
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcessBeforeOutput = void 0;
4
+ const combi_1 = require("../combi");
5
+ const version_1 = require("../../../version");
6
+ class ProcessBeforeOutput {
7
+ getMatcher() {
8
+ return (0, combi_1.verNot)(version_1.Version.Cloud, "PROCESS BEFORE OUTPUT");
9
+ }
10
+ }
11
+ exports.ProcessBeforeOutput = ProcessBeforeOutput;
12
+ //# sourceMappingURL=process_before_output.js.map
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcessOnValueRequest = void 0;
4
+ const combi_1 = require("../combi");
5
+ const version_1 = require("../../../version");
6
+ class ProcessOnValueRequest {
7
+ getMatcher() {
8
+ return (0, combi_1.verNot)(version_1.Version.Cloud, "PROCESS ON VALUE-REQUEST");
9
+ }
10
+ }
11
+ exports.ProcessOnValueRequest = ProcessOnValueRequest;
12
+ //# sourceMappingURL=process_on_value_request.js.map
@@ -29,6 +29,9 @@ class StructureParser {
29
29
  else if (filename.endsWith(".intf.abap")) {
30
30
  return new Structures.InterfaceGlobal();
31
31
  }
32
+ else if (filename.match(/\.screen\_\d+\.abap$/i)) {
33
+ return new Structures.DynproLogic();
34
+ }
32
35
  else {
33
36
  // todo, add a special structure for TYPE-POOLS
34
37
  return new Structures.Any();
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Chain = void 0;
4
+ const Statements = require("../../2_statements/statements");
5
+ const _combi_1 = require("./_combi");
6
+ class Chain {
7
+ getMatcher() {
8
+ return (0, _combi_1.beginEnd)((0, _combi_1.sta)(Statements.Chain), (0, _combi_1.star)((0, _combi_1.alt)((0, _combi_1.sta)(Statements.Field), (0, _combi_1.sta)(Statements.Module))), (0, _combi_1.sta)(Statements.EndChain));
9
+ }
10
+ }
11
+ exports.Chain = Chain;
12
+ //# sourceMappingURL=chain.js.map
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DynproLogic = void 0;
4
+ const Statements = require("../../2_statements/statements");
5
+ const _combi_1 = require("./_combi");
6
+ const chain_1 = require("./chain");
7
+ class DynproLogic {
8
+ getMatcher() {
9
+ const pai = (0, _combi_1.star)((0, _combi_1.alt)((0, _combi_1.sta)(Statements.Module), (0, _combi_1.sta)(Statements.Field), (0, _combi_1.sta)(Statements.CallSubscreen), (0, _combi_1.sub)(chain_1.Chain)));
10
+ const pbo = (0, _combi_1.star)((0, _combi_1.alt)((0, _combi_1.sta)(Statements.Module), (0, _combi_1.sta)(Statements.Field), (0, _combi_1.sta)(Statements.CallSubscreen)));
11
+ const pov = (0, _combi_1.star)((0, _combi_1.sta)(Statements.Field));
12
+ return (0, _combi_1.seq)((0, _combi_1.sta)(Statements.ProcessBeforeOutput), pbo, (0, _combi_1.sta)(Statements.ProcessAfterInput), pai, (0, _combi_1.opt)((0, _combi_1.seq)((0, _combi_1.sta)(Statements.ProcessOnValueRequest), pov)));
13
+ }
14
+ }
15
+ exports.DynproLogic = DynproLogic;
16
+ //# sourceMappingURL=dynpro_logic.js.map
@@ -15,9 +15,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./any"), exports);
18
- __exportStar(require("./at"), exports);
19
18
  __exportStar(require("./at_first"), exports);
20
19
  __exportStar(require("./at_last"), exports);
20
+ __exportStar(require("./at"), exports);
21
21
  __exportStar(require("./body"), exports);
22
22
  __exportStar(require("./case_type"), exports);
23
23
  __exportStar(require("./case"), exports);
@@ -32,7 +32,7 @@ __exportStar(require("./constants"), exports);
32
32
  __exportStar(require("./data"), exports);
33
33
  __exportStar(require("./define"), exports);
34
34
  __exportStar(require("./do"), exports);
35
- __exportStar(require("./type_mesh"), exports);
35
+ __exportStar(require("./dynpro_logic"), exports);
36
36
  __exportStar(require("./else"), exports);
37
37
  __exportStar(require("./elseif"), exports);
38
38
  __exportStar(require("./enhancement_section"), exports);
@@ -60,6 +60,7 @@ __exportStar(require("./test_injection"), exports);
60
60
  __exportStar(require("./test_seam"), exports);
61
61
  __exportStar(require("./try"), exports);
62
62
  __exportStar(require("./type_enum"), exports);
63
+ __exportStar(require("./type_mesh"), exports);
63
64
  __exportStar(require("./types"), exports);
64
65
  __exportStar(require("./when_type"), exports);
65
66
  __exportStar(require("./when"), exports);
@@ -5,6 +5,7 @@ const Statements = require("../abap/2_statements/statements");
5
5
  const Expressions = require("../abap/2_statements/expressions");
6
6
  const _statement_1 = require("../abap/2_statements/statements/_statement");
7
7
  const virtual_position_1 = require("../virtual_position");
8
+ const structures_1 = require("../abap/3_structures/structures");
8
9
  // todo, will break if there is multiple statements per line?
9
10
  class Indent {
10
11
  constructor(options) {
@@ -33,11 +34,13 @@ class Indent {
33
34
  }
34
35
  // returns list of expected indentation for each line/statement?
35
36
  getExpectedIndents(file) {
37
+ var _a;
36
38
  const ret = [];
37
39
  const init = 1;
38
40
  const stack = new Stack();
39
41
  let indent = init;
40
42
  let parentIsEvent = false;
43
+ const isDynpro = ((_a = file.getStructure()) === null || _a === void 0 ? void 0 : _a.get()) instanceof structures_1.DynproLogic;
41
44
  let previousStatement = undefined;
42
45
  for (const statement of file.getStatements()) {
43
46
  if (statement.getFirstToken().getStart() instanceof virtual_position_1.VirtualPosition) {
@@ -75,6 +78,9 @@ class Indent {
75
78
  || type instanceof Statements.AtPF
76
79
  || type instanceof Statements.Initialization
77
80
  || type instanceof Statements.AtUserCommand
81
+ || type instanceof Statements.ProcessAfterInput
82
+ || type instanceof Statements.ProcessBeforeOutput
83
+ || type instanceof Statements.ProcessOnValueRequest
78
84
  || type instanceof Statements.TopOfPage
79
85
  || type instanceof Statements.Get
80
86
  || type instanceof Statements.EndOfSelection
@@ -84,7 +90,7 @@ class Indent {
84
90
  }
85
91
  else if (type instanceof Statements.Form
86
92
  || (type instanceof Statements.Include && parentIsEvent)
87
- || type instanceof Statements.Module
93
+ || (type instanceof Statements.Module && isDynpro === false)
88
94
  || type instanceof Statements.ClassImplementation
89
95
  || type instanceof Statements.ClassDefinition) {
90
96
  indent = init;
@@ -129,7 +135,7 @@ class Indent {
129
135
  ret.push(indent);
130
136
  if (type instanceof Statements.If
131
137
  || type instanceof Statements.While
132
- || type instanceof Statements.Module
138
+ || (type instanceof Statements.Module && isDynpro === false)
133
139
  || type instanceof Statements.SelectLoop
134
140
  || type instanceof Statements.FunctionModule
135
141
  || type instanceof Statements.Interface
@@ -139,6 +145,9 @@ class Indent {
139
145
  || type instanceof Statements.AtLast
140
146
  || type instanceof Statements.ExecSQL
141
147
  || type instanceof Statements.Catch
148
+ || type instanceof Statements.ProcessAfterInput
149
+ || type instanceof Statements.ProcessBeforeOutput
150
+ || type instanceof Statements.ProcessOnValueRequest
142
151
  || type instanceof Statements.Define
143
152
  || type instanceof Statements.When
144
153
  || type instanceof Statements.WhenType
@@ -67,7 +67,7 @@ class Registry {
67
67
  }
68
68
  static abaplintVersion() {
69
69
  // magic, see build script "version.sh"
70
- return "2.113.75";
70
+ return "2.113.77";
71
71
  }
72
72
  getDDICReferences() {
73
73
  return this.ddicReferences;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/core",
3
- "version": "2.113.75",
3
+ "version": "2.113.77",
4
4
  "description": "abaplint - Core API",
5
5
  "main": "build/src/index.js",
6
6
  "typings": "build/abaplint.d.ts",
@@ -57,7 +57,7 @@
57
57
  "chai": "^4.5.0",
58
58
  "eslint": "^9.16.0",
59
59
  "mocha": "^11.0.1",
60
- "c8": "^10.1.2",
60
+ "c8": "^10.1.3",
61
61
  "source-map-support": "^0.5.21",
62
62
  "ts-json-schema-generator": "^2.3.0",
63
63
  "typescript": "^5.7.2"