@abaplint/core 2.112.9 → 2.112.11
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 +20 -0
- package/build/src/abap/2_statements/expressions/message_class.js +1 -1
- package/build/src/abap/2_statements/statements/ranges.js +1 -1
- package/build/src/abap/3_structures/structures/class_definition.js +1 -1
- package/build/src/abap/3_structures/structures/index.js +1 -1
- package/build/src/abap/3_structures/structures/interface.js +2 -2
- package/build/src/abap/3_structures/structures/private_section.js +2 -2
- package/build/src/abap/3_structures/structures/protected_section.js +2 -2
- package/build/src/abap/3_structures/structures/public_section.js +2 -2
- package/build/src/abap/3_structures/structures/{section_section.js → section_contents.js} +2 -2
- package/build/src/abap/5_syntax/expressions/field_chain.js +4 -0
- package/build/src/abap/5_syntax/expressions/method_parameters.js +10 -1
- package/build/src/abap/5_syntax/expressions/string_template.js +1 -1
- package/build/src/abap/5_syntax/statements/call_function.js +4 -0
- package/build/src/abap/5_syntax/statements/loop.js +5 -2
- package/build/src/abap/5_syntax/statements/ranges.js +1 -1
- package/build/src/ddic.js +1 -0
- package/build/src/objects/abap_query_functional_area.js +21 -0
- package/build/src/objects/abap_query_query.js +21 -0
- package/build/src/objects/index.js +2 -0
- package/build/src/registry.js +1 -1
- package/package.json +3 -3
package/build/abaplint.d.ts
CHANGED
|
@@ -33,6 +33,24 @@ export declare abstract class ABAPObject extends AbstractObject {
|
|
|
33
33
|
protected findTexts(parsed: any): void;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
+
declare class ABAPQueryFunctionalArea extends AbstractObject {
|
|
37
|
+
getType(): string;
|
|
38
|
+
getAllowedNaming(): {
|
|
39
|
+
maxLength: number;
|
|
40
|
+
allowNamespace: boolean;
|
|
41
|
+
};
|
|
42
|
+
getDescription(): string | undefined;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
declare class ABAPQueryQuery extends AbstractObject {
|
|
46
|
+
getType(): string;
|
|
47
|
+
getAllowedNaming(): {
|
|
48
|
+
maxLength: number;
|
|
49
|
+
allowNamespace: boolean;
|
|
50
|
+
};
|
|
51
|
+
getDescription(): string | undefined;
|
|
52
|
+
}
|
|
53
|
+
|
|
36
54
|
declare class Abstract extends Expression {
|
|
37
55
|
getRunnable(): IStatementRunnable;
|
|
38
56
|
}
|
|
@@ -4713,6 +4731,8 @@ declare class ObjectReferenceType extends AbstractType {
|
|
|
4713
4731
|
|
|
4714
4732
|
declare namespace Objects {
|
|
4715
4733
|
export {
|
|
4734
|
+
ABAPQueryFunctionalArea,
|
|
4735
|
+
ABAPQueryQuery,
|
|
4716
4736
|
ActivationVariant,
|
|
4717
4737
|
APIReleaseState,
|
|
4718
4738
|
ApplicationJobCatalogEntry,
|
|
@@ -5,7 +5,7 @@ const combi_1 = require("../combi");
|
|
|
5
5
|
class MessageClass extends combi_1.Expression {
|
|
6
6
|
getRunnable() {
|
|
7
7
|
// "&1" can be used for almost anything(field names, method names etc.) in macros
|
|
8
|
-
return (0, combi_1.regex)(/^>?
|
|
8
|
+
return (0, combi_1.regex)(/^>?[\w\/]+#?@?\/?!?&?>?\$?$/);
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
11
|
exports.MessageClass = MessageClass;
|
|
@@ -7,7 +7,7 @@ const version_1 = require("../../../version");
|
|
|
7
7
|
class Ranges {
|
|
8
8
|
getMatcher() {
|
|
9
9
|
const occurs = (0, combi_1.seq)("OCCURS", expressions_1.Source);
|
|
10
|
-
const ret = (0, combi_1.seq)("RANGES", expressions_1.SimpleName, "FOR", expressions_1.
|
|
10
|
+
const ret = (0, combi_1.seq)("RANGES", expressions_1.SimpleName, "FOR", expressions_1.SimpleFieldChain2, (0, combi_1.opt)(occurs));
|
|
11
11
|
return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
|
|
12
12
|
}
|
|
13
13
|
}
|
|
@@ -8,7 +8,7 @@ const protected_section_1 = require("./protected_section");
|
|
|
8
8
|
const public_section_1 = require("./public_section");
|
|
9
9
|
class ClassDefinition {
|
|
10
10
|
getMatcher() {
|
|
11
|
-
const body = (0, _combi_1.seq)((0, _combi_1.opt)((0, _combi_1.sta)(Statements.SetExtendedCheck)), (0, _combi_1.star)((0, _combi_1.sta)(Statements.TypePools)), (0, _combi_1.opt)((0, _combi_1.sub)(public_section_1.PublicSection)), (0, _combi_1.
|
|
11
|
+
const body = (0, _combi_1.seq)((0, _combi_1.opt)((0, _combi_1.sta)(Statements.SetExtendedCheck)), (0, _combi_1.star)((0, _combi_1.sta)(Statements.TypePools)), (0, _combi_1.opt)((0, _combi_1.sub)(public_section_1.PublicSection)), (0, _combi_1.opt)((0, _combi_1.sub)(protected_section_1.ProtectedSection)), (0, _combi_1.opt)((0, _combi_1.sub)(private_section_1.PrivateSection)), (0, _combi_1.opt)((0, _combi_1.sta)(Statements.SetExtendedCheck)));
|
|
12
12
|
return (0, _combi_1.beginEnd)((0, _combi_1.sta)(Statements.ClassDefinition), body, (0, _combi_1.sta)(Statements.EndClass));
|
|
13
13
|
}
|
|
14
14
|
}
|
|
@@ -53,7 +53,7 @@ __exportStar(require("./private_section"), exports);
|
|
|
53
53
|
__exportStar(require("./protected_section"), exports);
|
|
54
54
|
__exportStar(require("./provide"), exports);
|
|
55
55
|
__exportStar(require("./public_section"), exports);
|
|
56
|
-
__exportStar(require("./
|
|
56
|
+
__exportStar(require("./section_contents"), exports);
|
|
57
57
|
__exportStar(require("./select"), exports);
|
|
58
58
|
__exportStar(require("./statics"), exports);
|
|
59
59
|
__exportStar(require("./test_injection"), exports);
|
|
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Interface = void 0;
|
|
4
4
|
const Statements = require("../../2_statements/statements");
|
|
5
5
|
const _combi_1 = require("./_combi");
|
|
6
|
-
const
|
|
6
|
+
const section_contents_1 = require("./section_contents");
|
|
7
7
|
class Interface {
|
|
8
8
|
getMatcher() {
|
|
9
|
-
const intf = (0, _combi_1.beginEnd)((0, _combi_1.sta)(Statements.Interface), (0, _combi_1.star)((0, _combi_1.sub)(
|
|
9
|
+
const intf = (0, _combi_1.beginEnd)((0, _combi_1.sta)(Statements.Interface), (0, _combi_1.star)((0, _combi_1.sub)(section_contents_1.SectionContents)), (0, _combi_1.sta)(Statements.EndInterface));
|
|
10
10
|
return intf;
|
|
11
11
|
}
|
|
12
12
|
}
|
|
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.PrivateSection = void 0;
|
|
4
4
|
const Statements = require("../../2_statements/statements");
|
|
5
5
|
const _combi_1 = require("./_combi");
|
|
6
|
-
const
|
|
6
|
+
const section_contents_1 = require("./section_contents");
|
|
7
7
|
class PrivateSection {
|
|
8
8
|
getMatcher() {
|
|
9
|
-
return (0, _combi_1.seq)((0, _combi_1.sta)(Statements.Private), (0, _combi_1.opt)((0, _combi_1.sub)(
|
|
9
|
+
return (0, _combi_1.seq)((0, _combi_1.sta)(Statements.Private), (0, _combi_1.opt)((0, _combi_1.sub)(section_contents_1.SectionContents)));
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
exports.PrivateSection = PrivateSection;
|
|
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ProtectedSection = void 0;
|
|
4
4
|
const Statements = require("../../2_statements/statements");
|
|
5
5
|
const _combi_1 = require("./_combi");
|
|
6
|
-
const
|
|
6
|
+
const section_contents_1 = require("./section_contents");
|
|
7
7
|
class ProtectedSection {
|
|
8
8
|
getMatcher() {
|
|
9
|
-
return (0, _combi_1.seq)((0, _combi_1.sta)(Statements.Protected), (0, _combi_1.opt)((0, _combi_1.sub)(
|
|
9
|
+
return (0, _combi_1.seq)((0, _combi_1.sta)(Statements.Protected), (0, _combi_1.opt)((0, _combi_1.sub)(section_contents_1.SectionContents)));
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
exports.ProtectedSection = ProtectedSection;
|
|
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.PublicSection = void 0;
|
|
4
4
|
const Statements = require("../../2_statements/statements");
|
|
5
5
|
const _combi_1 = require("./_combi");
|
|
6
|
-
const
|
|
6
|
+
const section_contents_1 = require("./section_contents");
|
|
7
7
|
class PublicSection {
|
|
8
8
|
getMatcher() {
|
|
9
|
-
return (0, _combi_1.seq)((0, _combi_1.sta)(Statements.Public), (0, _combi_1.opt)((0, _combi_1.sub)(
|
|
9
|
+
return (0, _combi_1.seq)((0, _combi_1.sta)(Statements.Public), (0, _combi_1.opt)((0, _combi_1.sub)(section_contents_1.SectionContents)));
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
exports.PublicSection = PublicSection;
|
|
@@ -11,8 +11,8 @@ const data_1 = require("./data");
|
|
|
11
11
|
const _1 = require(".");
|
|
12
12
|
class SectionContents {
|
|
13
13
|
getMatcher() {
|
|
14
|
-
return (0, _combi_1.star)((0, _combi_1.alt)((0, _combi_1.sta)(Statements.MethodDef), (0, _combi_1.sta)(Statements.InterfaceDef), (0, _combi_1.sta)(Statements.Data), (0, _combi_1.sta)(Statements.ClassData), (0, _combi_1.sta)(Statements.Events), (0, _combi_1.sta)(Statements.Constant), (0, _combi_1.sta)(Statements.Aliases), (0, _combi_1.sta)(Statements.TypePools), (0, _combi_1.sta)(Statements.InterfaceLoad), (0, _combi_1.sta)(Statements.ClassDefinitionLoad), (0, _combi_1.sub)(types_1.Types), (0, _combi_1.sub)(constants_1.Constants), (0, _combi_1.sub)(type_enum_1.TypeEnum), (0, _combi_1.sub)(_1.TypeMesh), (0, _combi_1.sub)(data_1.Data), (0, _combi_1.sub)(class_data_1.ClassData), (0, _combi_1.sta)(Statements.Type)));
|
|
14
|
+
return (0, _combi_1.star)((0, _combi_1.alt)((0, _combi_1.sta)(Statements.MethodDef), (0, _combi_1.sta)(Statements.InterfaceDef), (0, _combi_1.sta)(Statements.Data), (0, _combi_1.sta)(Statements.ClassData), (0, _combi_1.sta)(Statements.Events), (0, _combi_1.sta)(Statements.Constant), (0, _combi_1.sta)(Statements.Aliases), (0, _combi_1.sta)(Statements.TypePools), (0, _combi_1.sta)(Statements.InterfaceLoad), (0, _combi_1.sta)(Statements.ClassDefinitionLoad), (0, _combi_1.sta)(Statements.Include), (0, _combi_1.sub)(types_1.Types), (0, _combi_1.sub)(constants_1.Constants), (0, _combi_1.sub)(type_enum_1.TypeEnum), (0, _combi_1.sub)(_1.TypeMesh), (0, _combi_1.sub)(data_1.Data), (0, _combi_1.sub)(class_data_1.ClassData), (0, _combi_1.sta)(Statements.Type)));
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
exports.SectionContents = SectionContents;
|
|
18
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=section_contents.js.map
|
|
@@ -152,6 +152,10 @@ class FieldChain {
|
|
|
152
152
|
&& node.get() instanceof Expressions.SourceField) {
|
|
153
153
|
return new source_field_1.SourceField().runSyntax(node, input, type);
|
|
154
154
|
}
|
|
155
|
+
else if (node instanceof nodes_1.ExpressionNode
|
|
156
|
+
&& node.get() instanceof Expressions.Field) {
|
|
157
|
+
return new source_field_1.SourceField().runSyntax(node, input, type);
|
|
158
|
+
}
|
|
155
159
|
else if (node.get() instanceof Expressions.ClassName) {
|
|
156
160
|
const classTok = node.getFirstToken();
|
|
157
161
|
const classNam = classTok.getStr();
|
|
@@ -10,6 +10,8 @@ const source_1 = require("./source");
|
|
|
10
10
|
const _type_utils_1 = require("../_type_utils");
|
|
11
11
|
const _syntax_input_1 = require("../_syntax_input");
|
|
12
12
|
const assert_error_1 = require("../assert_error");
|
|
13
|
+
const field_chain_1 = require("./field_chain");
|
|
14
|
+
const _reference_1 = require("../_reference");
|
|
13
15
|
class MethodParameters {
|
|
14
16
|
constructor() {
|
|
15
17
|
this.requiredParameters = undefined;
|
|
@@ -42,7 +44,14 @@ class MethodParameters {
|
|
|
42
44
|
this.checkReceiving(children.shift(), input, method);
|
|
43
45
|
break;
|
|
44
46
|
case "EXCEPTIONS":
|
|
45
|
-
|
|
47
|
+
{
|
|
48
|
+
// todo, old style exceptions
|
|
49
|
+
const node = children.shift();
|
|
50
|
+
const exceptions = node.findFirstExpression(Expressions.ParameterException);
|
|
51
|
+
for (const s of (exceptions === null || exceptions === void 0 ? void 0 : exceptions.findAllExpressions(Expressions.SimpleFieldChain)) || []) {
|
|
52
|
+
new field_chain_1.FieldChain().runSyntax(s, input, _reference_1.ReferenceType.DataReadReference);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
46
55
|
break;
|
|
47
56
|
default:
|
|
48
57
|
throw new assert_error_1.AssertError("MethodParameters, unexpected token, " + name);
|
|
@@ -39,7 +39,7 @@ class StringTemplate {
|
|
|
39
39
|
&& !(type instanceof basic_1.NumericGenericType)
|
|
40
40
|
&& !(type instanceof basic_1.NumericType)
|
|
41
41
|
&& !(type instanceof basic_1.AnyType)) {
|
|
42
|
-
const message =
|
|
42
|
+
const message = `Cannot apply ALPHA to this type (${type.constructor.name})`;
|
|
43
43
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, format.getFirstToken(), message));
|
|
44
44
|
return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
|
|
45
45
|
}
|
|
@@ -38,6 +38,10 @@ class CallFunction {
|
|
|
38
38
|
for (const s of node.findDirectExpressions(Expressions.SimpleSource2)) {
|
|
39
39
|
new source_1.Source().runSyntax(s, input);
|
|
40
40
|
}
|
|
41
|
+
const exceptions = node.findFirstExpression(Expressions.ParameterException);
|
|
42
|
+
for (const s of (exceptions === null || exceptions === void 0 ? void 0 : exceptions.findAllExpressions(Expressions.SimpleFieldChain)) || []) {
|
|
43
|
+
new field_chain_1.FieldChain().runSyntax(s, input, _reference_1.ReferenceType.DataReadReference);
|
|
44
|
+
}
|
|
41
45
|
}
|
|
42
46
|
}
|
|
43
47
|
exports.CallFunction = CallFunction;
|
|
@@ -30,8 +30,11 @@ class Loop {
|
|
|
30
30
|
let rowType = undefined;
|
|
31
31
|
const concat = node.concatTokens().toUpperCase();
|
|
32
32
|
if (sourceType === undefined) {
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
// if its a dynpro table control loop, then dont issue error
|
|
34
|
+
if (concat !== "LOOP.") {
|
|
35
|
+
const message = "No source type determined";
|
|
36
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
37
|
+
}
|
|
35
38
|
return;
|
|
36
39
|
}
|
|
37
40
|
else if (sourceType instanceof basic_1.UnknownType) {
|
|
@@ -10,7 +10,7 @@ class Ranges {
|
|
|
10
10
|
runSyntax(node, input) {
|
|
11
11
|
var _a;
|
|
12
12
|
const nameToken = (_a = node.findFirstExpression(Expressions.SimpleName)) === null || _a === void 0 ? void 0 : _a.getFirstToken();
|
|
13
|
-
const typeExpression = node.findFirstExpression(Expressions.
|
|
13
|
+
const typeExpression = node.findFirstExpression(Expressions.SimpleFieldChain2);
|
|
14
14
|
if (typeExpression === undefined) {
|
|
15
15
|
throw new assert_error_1.AssertError("Ranges, unexpected node");
|
|
16
16
|
}
|
package/build/src/ddic.js
CHANGED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ABAPQueryFunctionalArea = void 0;
|
|
4
|
+
const _abstract_object_1 = require("./_abstract_object");
|
|
5
|
+
class ABAPQueryFunctionalArea extends _abstract_object_1.AbstractObject {
|
|
6
|
+
getType() {
|
|
7
|
+
return "AQSG";
|
|
8
|
+
}
|
|
9
|
+
getAllowedNaming() {
|
|
10
|
+
return {
|
|
11
|
+
maxLength: 60, // todo
|
|
12
|
+
allowNamespace: true,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
getDescription() {
|
|
16
|
+
// todo
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.ABAPQueryFunctionalArea = ABAPQueryFunctionalArea;
|
|
21
|
+
//# sourceMappingURL=abap_query_functional_area.js.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ABAPQueryQuery = void 0;
|
|
4
|
+
const _abstract_object_1 = require("./_abstract_object");
|
|
5
|
+
class ABAPQueryQuery extends _abstract_object_1.AbstractObject {
|
|
6
|
+
getType() {
|
|
7
|
+
return "AQQU";
|
|
8
|
+
}
|
|
9
|
+
getAllowedNaming() {
|
|
10
|
+
return {
|
|
11
|
+
maxLength: 60, // todo
|
|
12
|
+
allowNamespace: true,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
getDescription() {
|
|
16
|
+
// todo
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.ABAPQueryQuery = ABAPQueryQuery;
|
|
21
|
+
//# sourceMappingURL=abap_query_query.js.map
|
|
@@ -14,6 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./abap_query_functional_area"), exports);
|
|
18
|
+
__exportStar(require("./abap_query_query"), exports);
|
|
17
19
|
__exportStar(require("./activation_variant"), exports);
|
|
18
20
|
__exportStar(require("./api_release_state"), exports);
|
|
19
21
|
__exportStar(require("./application_job_catalog_entry"), exports);
|
package/build/src/registry.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/core",
|
|
3
|
-
"version": "2.112.
|
|
3
|
+
"version": "2.112.11",
|
|
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.47.
|
|
53
|
+
"@microsoft/api-extractor": "^7.47.5",
|
|
54
54
|
"@types/chai": "^4.3.17",
|
|
55
55
|
"@types/mocha": "^10.0.7",
|
|
56
|
-
"@types/node": "^22.0
|
|
56
|
+
"@types/node": "^22.1.0",
|
|
57
57
|
"chai": "^4.5.0",
|
|
58
58
|
"eslint": "^8.57.0",
|
|
59
59
|
"mocha": "^10.7.0",
|