@abaplint/core 2.89.9 → 2.89.10
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/5_syntax/expressions/compare.js +4 -0
- package/build/src/abap/5_syntax/expressions/field_chain.js +7 -3
- package/build/src/abap/5_syntax/expressions/field_length.js +2 -6
- package/build/src/abap/5_syntax/expressions/field_offset.js +2 -6
- package/build/src/abap/5_syntax/expressions/source_field_symbol.js +17 -0
- package/build/src/registry.js +1 -1
- package/package.json +2 -2
|
@@ -4,11 +4,15 @@ exports.Compare = void 0;
|
|
|
4
4
|
const Expressions = require("../../2_statements/expressions");
|
|
5
5
|
const source_1 = require("./source");
|
|
6
6
|
const method_call_chain_1 = require("./method_call_chain");
|
|
7
|
+
const source_field_symbol_1 = require("./source_field_symbol");
|
|
7
8
|
class Compare {
|
|
8
9
|
runSyntax(node, scope, filename) {
|
|
9
10
|
for (const t of node.findDirectExpressions(Expressions.Source)) {
|
|
10
11
|
new source_1.Source().runSyntax(t, scope, filename);
|
|
11
12
|
}
|
|
13
|
+
for (const t of node.findDirectExpressions(Expressions.SourceFieldSymbol)) {
|
|
14
|
+
new source_field_symbol_1.SourceFieldSymbol().runSyntax(t, scope, filename);
|
|
15
|
+
}
|
|
12
16
|
for (const t of node.findDirectExpressions(Expressions.MethodCallChain)) {
|
|
13
17
|
new method_call_chain_1.MethodCallChain().runSyntax(t, scope, filename);
|
|
14
18
|
}
|
|
@@ -13,6 +13,7 @@ const field_length_1 = require("./field_length");
|
|
|
13
13
|
const table_expression_1 = require("./table_expression");
|
|
14
14
|
const expressions_1 = require("../../2_statements/expressions");
|
|
15
15
|
const dereference_1 = require("./dereference");
|
|
16
|
+
const source_field_symbol_1 = require("./source_field_symbol");
|
|
16
17
|
class FieldChain {
|
|
17
18
|
runSyntax(node, scope, filename, refType) {
|
|
18
19
|
const concat = node.concatTokens();
|
|
@@ -102,8 +103,11 @@ class FieldChain {
|
|
|
102
103
|
if (node === undefined) {
|
|
103
104
|
return undefined;
|
|
104
105
|
}
|
|
105
|
-
if (node
|
|
106
|
-
|
|
106
|
+
if (node instanceof nodes_1.ExpressionNode
|
|
107
|
+
&& node.get() instanceof Expressions.SourceFieldSymbol) {
|
|
108
|
+
return new source_field_symbol_1.SourceFieldSymbol().runSyntax(node, scope, filename);
|
|
109
|
+
}
|
|
110
|
+
else if (node.get() instanceof Expressions.SourceField) {
|
|
107
111
|
const token = node.getFirstToken();
|
|
108
112
|
const name = token.getStr();
|
|
109
113
|
const found = scope.findVariable(name);
|
|
@@ -121,7 +125,7 @@ class FieldChain {
|
|
|
121
125
|
}
|
|
122
126
|
return found.getType();
|
|
123
127
|
}
|
|
124
|
-
if (node.get() instanceof Expressions.ClassName) {
|
|
128
|
+
else if (node.get() instanceof Expressions.ClassName) {
|
|
125
129
|
const classTok = node.getFirstToken();
|
|
126
130
|
const classNam = classTok.getStr();
|
|
127
131
|
if (classNam.toUpperCase() === "OBJECT") {
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.FieldLength = void 0;
|
|
4
4
|
const Expressions = require("../../2_statements/expressions");
|
|
5
5
|
const _reference_1 = require("../_reference");
|
|
6
|
+
const source_field_symbol_1 = require("./source_field_symbol");
|
|
6
7
|
class FieldLength {
|
|
7
8
|
runSyntax(node, scope, filename) {
|
|
8
9
|
const field = node.findDirectExpression(Expressions.SourceField);
|
|
@@ -16,12 +17,7 @@ class FieldLength {
|
|
|
16
17
|
}
|
|
17
18
|
const symbol = node.findDirectExpression(Expressions.SourceFieldSymbol);
|
|
18
19
|
if (symbol) {
|
|
19
|
-
|
|
20
|
-
const found = scope.findVariable(token.getStr());
|
|
21
|
-
if (found === undefined) {
|
|
22
|
-
throw new Error("\"" + symbol.getFirstToken().getStr() + "\" not found, FieldLength");
|
|
23
|
-
}
|
|
24
|
-
scope.addReference(token, found, _reference_1.ReferenceType.DataReadReference, filename);
|
|
20
|
+
new source_field_symbol_1.SourceFieldSymbol().runSyntax(symbol, scope, filename);
|
|
25
21
|
}
|
|
26
22
|
}
|
|
27
23
|
}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.FieldOffset = void 0;
|
|
4
4
|
const Expressions = require("../../2_statements/expressions");
|
|
5
5
|
const _reference_1 = require("../_reference");
|
|
6
|
+
const source_field_symbol_1 = require("./source_field_symbol");
|
|
6
7
|
class FieldOffset {
|
|
7
8
|
runSyntax(node, scope, filename) {
|
|
8
9
|
const field = node.findDirectExpression(Expressions.SourceField);
|
|
@@ -16,12 +17,7 @@ class FieldOffset {
|
|
|
16
17
|
}
|
|
17
18
|
const symbol = node.findDirectExpression(Expressions.SourceFieldSymbol);
|
|
18
19
|
if (symbol) {
|
|
19
|
-
|
|
20
|
-
const found = scope.findVariable(token.getStr());
|
|
21
|
-
if (found === undefined) {
|
|
22
|
-
throw new Error("\"" + symbol.getFirstToken().getStr() + "\" not found, FieldOffset");
|
|
23
|
-
}
|
|
24
|
-
scope.addReference(token, found, _reference_1.ReferenceType.DataReadReference, filename);
|
|
20
|
+
new source_field_symbol_1.SourceFieldSymbol().runSyntax(symbol, scope, filename);
|
|
25
21
|
}
|
|
26
22
|
}
|
|
27
23
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SourceFieldSymbol = void 0;
|
|
4
|
+
const _reference_1 = require("../_reference");
|
|
5
|
+
class SourceFieldSymbol {
|
|
6
|
+
runSyntax(node, scope, filename) {
|
|
7
|
+
const token = node.getFirstToken();
|
|
8
|
+
const found = scope.findVariable(token.getStr());
|
|
9
|
+
if (found === undefined) {
|
|
10
|
+
throw new Error("\"" + node.getFirstToken().getStr() + "\" not found, SourceFieldSymbol");
|
|
11
|
+
}
|
|
12
|
+
scope.addReference(token, found, _reference_1.ReferenceType.DataReadReference, filename);
|
|
13
|
+
return found.getType();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.SourceFieldSymbol = SourceFieldSymbol;
|
|
17
|
+
//# sourceMappingURL=source_field_symbol.js.map
|
package/build/src/registry.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/core",
|
|
3
|
-
"version": "2.89.
|
|
3
|
+
"version": "2.89.10",
|
|
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.23.0",
|
|
49
49
|
"@types/chai": "^4.3.1",
|
|
50
50
|
"@types/mocha": "^9.1.1",
|
|
51
|
-
"@types/node": "^17.0.
|
|
51
|
+
"@types/node": "^17.0.27",
|
|
52
52
|
"chai": "^4.3.6",
|
|
53
53
|
"eslint": "^8.14.0",
|
|
54
54
|
"mocha": "^9.2.2",
|