@abaplint/core 2.113.63 → 2.113.64

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.
@@ -6,7 +6,7 @@ const tokens_1 = require("../../1_lexer/tokens");
6
6
  const table_body_1 = require("./table_body");
7
7
  class FieldSub extends combi_1.Expression {
8
8
  getRunnable() {
9
- const ret = (0, combi_1.seq)((0, combi_1.regex)(/^\*?!?(\/\w+\/)?[a-zA-Z_%$\?][\w%$\$\*]*$/), (0, combi_1.starPrio)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.Dash), (0, combi_1.regex)(/^[\w%$\$\*]+$/))), (0, combi_1.opt)(table_body_1.TableBody));
9
+ const ret = (0, combi_1.seq)((0, combi_1.regex)(/^\*?!?&?(\/\w+\/)?[a-zA-Z_%$\?][\w%$\$\*]*$/), (0, combi_1.starPrio)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.Dash), (0, combi_1.regex)(/^[\w%$\$\*]+$/))), (0, combi_1.opt)(table_body_1.TableBody));
10
10
  return ret;
11
11
  }
12
12
  }
@@ -6,7 +6,7 @@ const combi_1 = require("../combi");
6
6
  class MessageClass extends combi_1.Expression {
7
7
  getRunnable() {
8
8
  // "&1" can be used for almost anything(field names, method names etc.) in macros
9
- return (0, combi_1.seq)((0, combi_1.regex)(/^>?[\w\/]+#?@?\/?!?&?>?\$?\??<?$/), (0, combi_1.starPrio)((0, combi_1.tok)(tokens_1.PlusW)), (0, combi_1.starPrio)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.Dash), (0, combi_1.optPrio)((0, combi_1.regex)(/^\w+$/)))), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.DashW)));
9
+ return (0, combi_1.seq)((0, combi_1.regex)(/^>?[\w\/]+#?@?\/?!?&?>?\$?\??<?$/), (0, combi_1.starPrio)((0, combi_1.tok)(tokens_1.Plus)), (0, combi_1.starPrio)((0, combi_1.tok)(tokens_1.PlusW)), (0, combi_1.starPrio)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.Dash), (0, combi_1.optPrio)((0, combi_1.regex)(/^\w+$/)))), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.DashW)));
10
10
  }
11
11
  }
12
12
  exports.MessageClass = MessageClass;
@@ -6,7 +6,8 @@ const expressions_1 = require("../expressions");
6
6
  class Add {
7
7
  getMatcher() {
8
8
  const to = (0, combi_1.seq)("TO", expressions_1.Target);
9
- const giving = (0, combi_1.seq)("GIVING", expressions_1.FieldSub);
9
+ const accordingTo = (0, combi_1.seq)("ACCORDING TO", expressions_1.FieldSub);
10
+ const giving = (0, combi_1.seq)("GIVING", expressions_1.FieldSub, (0, combi_1.opt)(accordingTo));
10
11
  const then = (0, combi_1.seq)("THEN", expressions_1.FieldSub, "UNTIL", expressions_1.FieldSub, (0, combi_1.alt)(giving, to));
11
12
  const ret = (0, combi_1.seq)("ADD", expressions_1.Source, (0, combi_1.altPrio)(to, then));
12
13
  return ret;
@@ -10,7 +10,7 @@ class CallDialog {
10
10
  const exporting = (0, combi_1.seq)("EXPORTING", (0, combi_1.plus)(from));
11
11
  const to = (0, combi_1.seq)(expressions_1.Field, (0, combi_1.optPrio)((0, combi_1.seq)("TO", expressions_1.Field)));
12
12
  const importing = (0, combi_1.seq)("IMPORTING", (0, combi_1.plus)(to));
13
- const ret = (0, combi_1.seq)("CALL DIALOG", expressions_1.Constant, (0, combi_1.opt)(exporting), (0, combi_1.opt)(importing));
13
+ const ret = (0, combi_1.seq)("CALL DIALOG", (0, combi_1.alt)(expressions_1.Constant, expressions_1.FieldSub), (0, combi_1.opt)(exporting), (0, combi_1.opt)(importing));
14
14
  return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
15
15
  }
16
16
  }
@@ -5,7 +5,7 @@ const combi_1 = require("../combi");
5
5
  const expressions_1 = require("../expressions");
6
6
  class Check {
7
7
  getMatcher() {
8
- const ret = (0, combi_1.seq)("CHECK", (0, combi_1.altPrio)(expressions_1.Cond, expressions_1.Field));
8
+ const ret = (0, combi_1.seq)("CHECK", (0, combi_1.altPrio)(expressions_1.Cond, expressions_1.FieldSub));
9
9
  return ret;
10
10
  }
11
11
  }
@@ -8,7 +8,7 @@ const tokens_1 = require("../../1_lexer/tokens");
8
8
  class Move {
9
9
  getMatcher() {
10
10
  const mov = (0, combi_1.verNot)(version_1.Version.Cloud, "MOVE");
11
- const move = (0, combi_1.seq)(mov, (0, combi_1.altPrio)((0, combi_1.seq)("EXACT", expressions_1.Source, "TO", expressions_1.Target), (0, combi_1.seq)(expressions_1.Source, (0, combi_1.altPrio)("?TO", "TO"), expressions_1.Target)), (0, combi_1.opt)((0, combi_1.seq)("PERCENTAGE", expressions_1.Source)));
11
+ const move = (0, combi_1.seq)(mov, (0, combi_1.altPrio)((0, combi_1.seq)("EXACT", expressions_1.Source, "TO", expressions_1.Target), (0, combi_1.seq)(expressions_1.Source, (0, combi_1.altPrio)("?TO", "TO"), expressions_1.Target)), (0, combi_1.opt)((0, combi_1.seq)("PERCENTAGE", expressions_1.Source, (0, combi_1.opt)((0, combi_1.alt)("LEFT", "RIGHT")))));
12
12
  const calcAssign = (0, combi_1.ver)(version_1.Version.v754, (0, combi_1.alt)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.WPlus), "="), (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WDash), "="), "/=", "*=", "&&="));
13
13
  const chained = (0, combi_1.seq)("=", (0, combi_1.star)((0, combi_1.seq)(expressions_1.Target, "=")));
14
14
  const equals = (0, combi_1.altPrio)((0, combi_1.altPrio)(chained, "?="), calcAssign);
@@ -24,7 +24,7 @@ class NewPage {
24
24
  const dataset = (0, combi_1.seq)("LIST DATASET", expressions_1.Source);
25
25
  const name = (0, combi_1.seq)("LIST NAME", expressions_1.Source);
26
26
  const newList = (0, combi_1.seq)("NEW LIST IDENTIFICATION", expressions_1.Source);
27
- const ret = (0, combi_1.seq)("NEW-PAGE", (0, combi_1.opt)((0, combi_1.per)(print, (0, combi_1.alt)("NO-TITLE", "WITH-TITLE"), (0, combi_1.alt)("NO-HEADING", "WITH-HEADING"), "NO DIALOG", parameters, listAuth, immediately, dataset, coverPage, newList, keep, department, name, layout, destination, receiver, copies, coverText, archive, "NEW-SECTION", lineCount, line)));
27
+ const ret = (0, combi_1.seq)("NEW-PAGE", (0, combi_1.opt)((0, combi_1.per)(print, (0, combi_1.alt)("NO-TITLE", "WITH-TITLE"), (0, combi_1.alt)("NO-HEADING", "WITH-HEADING"), "NO DIALOG", "NO-TOPOFPAGE", parameters, listAuth, immediately, dataset, coverPage, newList, keep, department, name, layout, destination, receiver, copies, coverText, archive, "NEW-SECTION", lineCount, line)));
28
28
  return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
29
29
  }
30
30
  }
@@ -20,7 +20,7 @@ class Parameter {
20
20
  const decimals = (0, combi_1.seq)("DECIMALS", expressions_1.Source);
21
21
  const forTable = (0, combi_1.seq)("FOR TABLE", expressions_1.DatabaseTable, (0, combi_1.opt)("VALUE-REQUEST"));
22
22
  const perm = (0, combi_1.per)(type, def, "OBLIGATORY", match, cmd, length, decimals, radio, memory, modif, listbox, visible, forTable, "VALUE CHECK", "NO-DISPLAY", "AS CHECKBOX", "LOWER CASE");
23
- const ret = (0, combi_1.seq)(para, expressions_1.FieldSub, (0, combi_1.opt)(expressions_1.FieldLength), (0, combi_1.opt)(perm));
23
+ const ret = (0, combi_1.seq)(para, expressions_1.FieldSub, (0, combi_1.opt)(expressions_1.ConstantFieldLength), (0, combi_1.opt)(perm));
24
24
  return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
25
25
  }
26
26
  }
@@ -72,6 +72,9 @@ class Data {
72
72
  if (found instanceof Basic.UnknownType) {
73
73
  return new _typed_identifier_1.TypedIdentifier(name, input.filename, new Basic.UnknownType("unknown type, " + typeName));
74
74
  }
75
+ if (found instanceof Basic.TableType && found.isWithHeader()) {
76
+ found = found.getRowType();
77
+ }
75
78
  if (!(found instanceof Basic.StructureType)) {
76
79
  const message = "not structured, " + typeName;
77
80
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, typeToken, message));
@@ -67,7 +67,7 @@ class Registry {
67
67
  }
68
68
  static abaplintVersion() {
69
69
  // magic, see build script "version.sh"
70
- return "2.113.63";
70
+ return "2.113.64";
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.63",
3
+ "version": "2.113.64",
4
4
  "description": "abaplint - Core API",
5
5
  "main": "build/src/index.js",
6
6
  "typings": "build/abaplint.d.ts",