@abaplint/core 2.85.4 → 2.85.8
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/src/abap/2_statements/expressions/method_source.js +3 -2
- package/build/src/abap/2_statements/statements/assign.js +4 -3
- package/build/src/abap/2_statements/statements/modify_internal.js +1 -1
- package/build/src/abap/5_syntax/_object_oriented.js +7 -0
- package/build/src/abap/5_syntax/_type_utils.js +4 -3
- package/build/src/abap/5_syntax/expressions/field_chain.js +3 -0
- package/build/src/registry.js +1 -1
- package/package.json +2 -2
|
@@ -8,9 +8,10 @@ class MethodSource extends combi_1.Expression {
|
|
|
8
8
|
getRunnable() {
|
|
9
9
|
const mname = (0, combi_1.alt)(_1.MethodName, _1.Dynamic);
|
|
10
10
|
const cname = (0, combi_1.alt)(_1.FieldChain, _1.MethodCallChain, _1.Dynamic);
|
|
11
|
-
|
|
11
|
+
// this is a bit tricky, this part is required as FieldChain takes a AttributeName
|
|
12
|
+
const stati = (0, combi_1.seq)(_1.ClassName, (0, combi_1.tok)(tokens_1.StaticArrow), mname);
|
|
12
13
|
const part1 = (0, combi_1.seq)(cname, (0, combi_1.alt)((0, combi_1.tok)(tokens_1.InstanceArrow), (0, combi_1.tok)(tokens_1.StaticArrow)));
|
|
13
|
-
return (0, combi_1.
|
|
14
|
+
return (0, combi_1.alt)(stati, (0, combi_1.seq)((0, combi_1.starPrio)(part1), mname));
|
|
14
15
|
}
|
|
15
16
|
}
|
|
16
17
|
exports.MethodSource = MethodSource;
|
|
@@ -10,13 +10,14 @@ class Assign {
|
|
|
10
10
|
const tableField = (0, combi_1.seq)("TABLE FIELD", (0, combi_1.alt)(expressions_1.Source, expressions_1.Dynamic));
|
|
11
11
|
const arrow = (0, combi_1.alt)((0, combi_1.tok)(tokens_1.InstanceArrow), (0, combi_1.tok)(tokens_1.StaticArrow));
|
|
12
12
|
const source = (0, combi_1.alt)((0, combi_1.seq)(expressions_1.Source, (0, combi_1.opt)((0, combi_1.seq)(arrow, expressions_1.Dynamic))), component, tableField, (0, combi_1.seq)(expressions_1.Dynamic, (0, combi_1.opt)((0, combi_1.seq)(arrow, (0, combi_1.alt)(expressions_1.Field, expressions_1.Dynamic)))));
|
|
13
|
-
const type = (0, combi_1.seq)("TYPE", (0, combi_1.alt)(expressions_1.Dynamic, expressions_1.
|
|
13
|
+
const type = (0, combi_1.seq)("TYPE", (0, combi_1.alt)(expressions_1.Dynamic, expressions_1.TypeName));
|
|
14
14
|
const like = (0, combi_1.seq)("LIKE", (0, combi_1.alt)(expressions_1.Dynamic, expressions_1.Source));
|
|
15
15
|
const handle = (0, combi_1.seq)("TYPE HANDLE", expressions_1.Source);
|
|
16
16
|
const range = (0, combi_1.seq)("RANGE", expressions_1.Source);
|
|
17
17
|
const decimals = (0, combi_1.seq)("DECIMALS", expressions_1.Source);
|
|
18
|
-
const casting = (0, combi_1.seq)(
|
|
19
|
-
const
|
|
18
|
+
const casting = (0, combi_1.seq)("CASTING", (0, combi_1.opt)((0, combi_1.alt)(like, handle, (0, combi_1.per)(type, decimals))));
|
|
19
|
+
const obsoleteType = (0, combi_1.seq)("TYPE", expressions_1.Source, (0, combi_1.optPrio)(decimals));
|
|
20
|
+
const ret = (0, combi_1.seq)("ASSIGN", (0, combi_1.opt)((0, combi_1.seq)(expressions_1.Target, "INCREMENT")), source, "TO", expressions_1.FSTarget, (0, combi_1.opt)((0, combi_1.altPrio)(casting, obsoleteType)), (0, combi_1.opt)(range));
|
|
20
21
|
return ret;
|
|
21
22
|
}
|
|
22
23
|
}
|
|
@@ -7,7 +7,7 @@ class ModifyInternal {
|
|
|
7
7
|
getMatcher() {
|
|
8
8
|
const index = (0, combi_1.seq)("INDEX", expressions_1.Source);
|
|
9
9
|
const from = (0, combi_1.seq)("FROM", expressions_1.Source);
|
|
10
|
-
const transporting = (0, combi_1.seq)("TRANSPORTING", (0, combi_1.plus)((0, combi_1.alt)(expressions_1.
|
|
10
|
+
const transporting = (0, combi_1.seq)("TRANSPORTING", (0, combi_1.plus)((0, combi_1.alt)(expressions_1.ComponentChainSimple, expressions_1.Dynamic)));
|
|
11
11
|
const where = (0, combi_1.seq)("WHERE", expressions_1.ComponentCond);
|
|
12
12
|
const assigning = (0, combi_1.seq)("ASSIGNING", expressions_1.FSTarget);
|
|
13
13
|
const using = (0, combi_1.seq)("USING KEY", expressions_1.SimpleName);
|
|
@@ -43,6 +43,13 @@ class ObjectOriented {
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
+
const superName = classDefinition.getSuperClass();
|
|
47
|
+
if (superName !== undefined) {
|
|
48
|
+
const def = this.scope.findClassDefinition(superName);
|
|
49
|
+
if (def) {
|
|
50
|
+
this.addAliasedAttributes(def);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
46
53
|
}
|
|
47
54
|
addAliasedTypes(aliases) {
|
|
48
55
|
for (const alias of aliases.getAll()) {
|
|
@@ -53,8 +53,8 @@ class TypeUtils {
|
|
|
53
53
|
}
|
|
54
54
|
static isAssignable(source, target) {
|
|
55
55
|
/*
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
console.dir(source);
|
|
57
|
+
console.dir(target);
|
|
58
58
|
*/
|
|
59
59
|
if (target instanceof basic_1.TableType) {
|
|
60
60
|
if (target.isWithHeader()) {
|
|
@@ -103,7 +103,8 @@ class TypeUtils {
|
|
|
103
103
|
}
|
|
104
104
|
return false;
|
|
105
105
|
}
|
|
106
|
-
else if (target instanceof basic_1.IntegerType
|
|
106
|
+
else if (target instanceof basic_1.IntegerType
|
|
107
|
+
|| target instanceof basic_1.StringType) {
|
|
107
108
|
if (source instanceof basic_1.DataReference
|
|
108
109
|
|| source instanceof basic_1.ObjectReferenceType
|
|
109
110
|
|| source instanceof basic_1.GenericObjectReferenceType
|
|
@@ -70,6 +70,9 @@ class FieldChain {
|
|
|
70
70
|
context = new dereference_1.Dereference().runSyntax(context);
|
|
71
71
|
}
|
|
72
72
|
else if (current.get() instanceof Expressions.ComponentName) {
|
|
73
|
+
if (context instanceof basic_1.TableType && context.isWithHeader()) {
|
|
74
|
+
context = context.getRowType();
|
|
75
|
+
}
|
|
73
76
|
context = new component_name_1.ComponentName().runSyntax(context, current);
|
|
74
77
|
}
|
|
75
78
|
else if (current instanceof nodes_1.ExpressionNode
|
package/build/src/registry.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/core",
|
|
3
|
-
"version": "2.85.
|
|
3
|
+
"version": "2.85.8",
|
|
4
4
|
"description": "abaplint - Core API",
|
|
5
5
|
"main": "build/src/index.js",
|
|
6
6
|
"typings": "build/abaplint.d.ts",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"@microsoft/api-extractor": "^7.19.4",
|
|
49
49
|
"@types/chai": "^4.3.0",
|
|
50
50
|
"@types/mocha": "^9.1.0",
|
|
51
|
-
"@types/node": "^17.0.
|
|
51
|
+
"@types/node": "^17.0.14",
|
|
52
52
|
"chai": "^4.3.6",
|
|
53
53
|
"eslint": "^8.8.0",
|
|
54
54
|
"mocha": "^9.2.0",
|