@abaplint/core 2.113.126 → 2.113.128
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 +17 -3
- package/build/src/abap/3_structures/structures/dynpro_loop.js +1 -1
- package/build/src/abap/5_syntax/_builtin.js +10 -10
- package/build/src/abap/5_syntax/_procedural.js +2 -2
- package/build/src/abap/5_syntax/_type_utils.js +16 -7
- package/build/src/abap/5_syntax/basic_types.js +10 -10
- package/build/src/abap/5_syntax/expressions/attribute_chain.js +6 -7
- package/build/src/abap/5_syntax/expressions/attribute_name.js +6 -6
- package/build/src/abap/5_syntax/expressions/cast.js +9 -9
- package/build/src/abap/5_syntax/expressions/compare.js +4 -4
- package/build/src/abap/5_syntax/expressions/component_chain.js +8 -8
- package/build/src/abap/5_syntax/expressions/component_compare.js +3 -3
- package/build/src/abap/5_syntax/expressions/component_compare_simple.js +3 -3
- package/build/src/abap/5_syntax/expressions/component_cond.js +3 -3
- package/build/src/abap/5_syntax/expressions/component_name.js +4 -4
- package/build/src/abap/5_syntax/expressions/cond.js +3 -3
- package/build/src/abap/5_syntax/expressions/cond_body.js +5 -5
- package/build/src/abap/5_syntax/expressions/constant.js +1 -1
- package/build/src/abap/5_syntax/expressions/conv_body.js +4 -4
- package/build/src/abap/5_syntax/expressions/corresponding_body.js +3 -3
- package/build/src/abap/5_syntax/expressions/data_definition.js +3 -3
- package/build/src/abap/5_syntax/expressions/database_table.js +1 -1
- package/build/src/abap/5_syntax/expressions/default.js +3 -3
- package/build/src/abap/5_syntax/expressions/dereference.js +2 -2
- package/build/src/abap/5_syntax/expressions/dynamic.js +2 -2
- package/build/src/abap/5_syntax/expressions/field_assignment.js +2 -2
- package/build/src/abap/5_syntax/expressions/field_chain.js +19 -19
- package/build/src/abap/5_syntax/expressions/field_length.js +2 -2
- package/build/src/abap/5_syntax/expressions/field_offset.js +2 -2
- package/build/src/abap/5_syntax/expressions/filter_body.js +3 -3
- package/build/src/abap/5_syntax/expressions/for.js +8 -8
- package/build/src/abap/5_syntax/expressions/form_param.js +2 -2
- package/build/src/abap/5_syntax/expressions/fstarget.js +2 -2
- package/build/src/abap/5_syntax/expressions/inline_data.js +1 -1
- package/build/src/abap/5_syntax/expressions/inline_field_definition.js +3 -3
- package/build/src/abap/5_syntax/expressions/inline_fs.js +1 -1
- package/build/src/abap/5_syntax/expressions/inline_loop_definition.js +2 -2
- package/build/src/abap/5_syntax/expressions/let.js +2 -2
- package/build/src/abap/5_syntax/expressions/loop_group_by.js +6 -6
- package/build/src/abap/5_syntax/expressions/message_source.js +2 -2
- package/build/src/abap/5_syntax/expressions/method_call_body.js +3 -3
- package/build/src/abap/5_syntax/expressions/method_call_chain.js +21 -19
- package/build/src/abap/5_syntax/expressions/method_call_param.js +2 -2
- package/build/src/abap/5_syntax/expressions/method_def_returning.js +1 -1
- package/build/src/abap/5_syntax/expressions/method_param.js +4 -4
- package/build/src/abap/5_syntax/expressions/method_parameters.js +7 -7
- package/build/src/abap/5_syntax/expressions/method_source.js +20 -20
- package/build/src/abap/5_syntax/expressions/new_object.js +10 -10
- package/build/src/abap/5_syntax/expressions/raise_with.js +2 -2
- package/build/src/abap/5_syntax/expressions/reduce_body.js +7 -7
- package/build/src/abap/5_syntax/expressions/reduce_next.js +3 -3
- package/build/src/abap/5_syntax/expressions/select.js +25 -25
- package/build/src/abap/5_syntax/expressions/select_loop.js +2 -2
- package/build/src/abap/5_syntax/expressions/source.js +63 -60
- package/build/src/abap/5_syntax/expressions/source_field.js +2 -2
- package/build/src/abap/5_syntax/expressions/source_field_symbol.js +2 -2
- package/build/src/abap/5_syntax/expressions/sql_compare.js +6 -6
- package/build/src/abap/5_syntax/expressions/sql_for_all_entries.js +2 -2
- package/build/src/abap/5_syntax/expressions/sql_from.js +3 -3
- package/build/src/abap/5_syntax/expressions/sql_in.js +4 -4
- package/build/src/abap/5_syntax/expressions/sql_order_by.js +2 -2
- package/build/src/abap/5_syntax/expressions/sql_source.js +3 -3
- package/build/src/abap/5_syntax/expressions/string_template.js +6 -6
- package/build/src/abap/5_syntax/expressions/switch_body.js +4 -4
- package/build/src/abap/5_syntax/expressions/table_expression.js +2 -2
- package/build/src/abap/5_syntax/expressions/target.js +25 -23
- package/build/src/abap/5_syntax/expressions/type_table.js +2 -2
- package/build/src/abap/5_syntax/expressions/type_table_key.js +1 -1
- package/build/src/abap/5_syntax/expressions/value_body.js +10 -10
- package/build/src/abap/5_syntax/statements/add.js +2 -2
- package/build/src/abap/5_syntax/statements/add_corresponding.js +2 -2
- package/build/src/abap/5_syntax/statements/append.js +6 -6
- package/build/src/abap/5_syntax/statements/assert.js +1 -1
- package/build/src/abap/5_syntax/statements/assign.js +8 -8
- package/build/src/abap/5_syntax/statements/authority_check.js +1 -1
- package/build/src/abap/5_syntax/statements/call.js +3 -3
- package/build/src/abap/5_syntax/statements/call_badi.js +3 -3
- package/build/src/abap/5_syntax/statements/call_function.js +6 -6
- package/build/src/abap/5_syntax/statements/call_kernel.js +1 -1
- package/build/src/abap/5_syntax/statements/call_transaction.js +2 -2
- package/build/src/abap/5_syntax/statements/call_transformation.js +4 -4
- package/build/src/abap/5_syntax/statements/case.js +1 -1
- package/build/src/abap/5_syntax/statements/case_type.js +1 -1
- package/build/src/abap/5_syntax/statements/catch.js +2 -2
- package/build/src/abap/5_syntax/statements/check.js +1 -1
- package/build/src/abap/5_syntax/statements/class_data.js +2 -2
- package/build/src/abap/5_syntax/statements/class_implementation.js +1 -1
- package/build/src/abap/5_syntax/statements/clear.js +2 -2
- package/build/src/abap/5_syntax/statements/close_dataset.js +1 -1
- package/build/src/abap/5_syntax/statements/collect.js +3 -3
- package/build/src/abap/5_syntax/statements/commit_entities.js +3 -3
- package/build/src/abap/5_syntax/statements/concatenate.js +5 -5
- package/build/src/abap/5_syntax/statements/condense.js +1 -1
- package/build/src/abap/5_syntax/statements/convert.js +7 -7
- package/build/src/abap/5_syntax/statements/create_data.js +3 -3
- package/build/src/abap/5_syntax/statements/create_object.js +9 -6
- package/build/src/abap/5_syntax/statements/data.js +2 -2
- package/build/src/abap/5_syntax/statements/delete_cluster.js +1 -1
- package/build/src/abap/5_syntax/statements/delete_database.js +4 -4
- package/build/src/abap/5_syntax/statements/delete_internal.js +4 -4
- package/build/src/abap/5_syntax/statements/delete_memory.js +1 -1
- package/build/src/abap/5_syntax/statements/delete_report.js +1 -1
- package/build/src/abap/5_syntax/statements/describe.js +10 -10
- package/build/src/abap/5_syntax/statements/divide.js +2 -2
- package/build/src/abap/5_syntax/statements/do.js +2 -2
- package/build/src/abap/5_syntax/statements/editor_call.js +2 -2
- package/build/src/abap/5_syntax/statements/else_if.js +1 -1
- package/build/src/abap/5_syntax/statements/export.js +2 -2
- package/build/src/abap/5_syntax/statements/find.js +5 -5
- package/build/src/abap/5_syntax/statements/format.js +1 -1
- package/build/src/abap/5_syntax/statements/get_badi.js +3 -3
- package/build/src/abap/5_syntax/statements/get_bit.js +3 -3
- package/build/src/abap/5_syntax/statements/get_cursor.js +1 -1
- package/build/src/abap/5_syntax/statements/get_locale.js +2 -2
- package/build/src/abap/5_syntax/statements/get_parameter.js +3 -3
- package/build/src/abap/5_syntax/statements/get_reference.js +3 -3
- package/build/src/abap/5_syntax/statements/get_run_time.js +2 -2
- package/build/src/abap/5_syntax/statements/get_time.js +2 -2
- package/build/src/abap/5_syntax/statements/if.js +1 -1
- package/build/src/abap/5_syntax/statements/import.js +2 -2
- package/build/src/abap/5_syntax/statements/import_dynpro.js +2 -2
- package/build/src/abap/5_syntax/statements/include_type.js +2 -2
- package/build/src/abap/5_syntax/statements/insert_database.js +4 -4
- package/build/src/abap/5_syntax/statements/insert_field_group.js +3 -3
- package/build/src/abap/5_syntax/statements/insert_internal.js +7 -7
- package/build/src/abap/5_syntax/statements/insert_report.js +1 -1
- package/build/src/abap/5_syntax/statements/insert_textpool.js +1 -1
- package/build/src/abap/5_syntax/statements/log_point.js +1 -1
- package/build/src/abap/5_syntax/statements/loop.js +10 -10
- package/build/src/abap/5_syntax/statements/loop_at_screen.js +2 -2
- package/build/src/abap/5_syntax/statements/message.js +5 -5
- package/build/src/abap/5_syntax/statements/modify_database.js +5 -5
- package/build/src/abap/5_syntax/statements/modify_entities.js +3 -3
- package/build/src/abap/5_syntax/statements/modify_internal.js +4 -4
- package/build/src/abap/5_syntax/statements/modify_screen.js +1 -1
- package/build/src/abap/5_syntax/statements/move.js +4 -4
- package/build/src/abap/5_syntax/statements/move_corresponding.js +2 -2
- package/build/src/abap/5_syntax/statements/multiply.js +2 -2
- package/build/src/abap/5_syntax/statements/open_dataset.js +2 -2
- package/build/src/abap/5_syntax/statements/pack.js +2 -2
- package/build/src/abap/5_syntax/statements/parameter.js +1 -1
- package/build/src/abap/5_syntax/statements/perform.js +4 -4
- package/build/src/abap/5_syntax/statements/raise.js +8 -8
- package/build/src/abap/5_syntax/statements/raise_event.js +1 -1
- package/build/src/abap/5_syntax/statements/read_entities.js +3 -3
- package/build/src/abap/5_syntax/statements/read_report.js +2 -2
- package/build/src/abap/5_syntax/statements/read_table.js +8 -8
- package/build/src/abap/5_syntax/statements/read_textpool.js +2 -2
- package/build/src/abap/5_syntax/statements/receive.js +2 -2
- package/build/src/abap/5_syntax/statements/replace.js +2 -2
- package/build/src/abap/5_syntax/statements/scan.js +2 -2
- package/build/src/abap/5_syntax/statements/search.js +1 -1
- package/build/src/abap/5_syntax/statements/select.js +1 -1
- package/build/src/abap/5_syntax/statements/select_loop.js +1 -1
- package/build/src/abap/5_syntax/statements/selectoption.js +4 -4
- package/build/src/abap/5_syntax/statements/set_bit.js +2 -2
- package/build/src/abap/5_syntax/statements/set_handler.js +2 -2
- package/build/src/abap/5_syntax/statements/set_locale.js +2 -2
- package/build/src/abap/5_syntax/statements/set_parameter.js +1 -1
- package/build/src/abap/5_syntax/statements/set_pf_status.js +1 -1
- package/build/src/abap/5_syntax/statements/set_titlebar.js +1 -1
- package/build/src/abap/5_syntax/statements/shift.js +2 -2
- package/build/src/abap/5_syntax/statements/sort.js +2 -2
- package/build/src/abap/5_syntax/statements/split.js +3 -3
- package/build/src/abap/5_syntax/statements/static.js +1 -1
- package/build/src/abap/5_syntax/statements/submit.js +3 -3
- package/build/src/abap/5_syntax/statements/subtract.js +2 -2
- package/build/src/abap/5_syntax/statements/subtract_corresponding.js +2 -2
- package/build/src/abap/5_syntax/statements/syntax_check.js +2 -2
- package/build/src/abap/5_syntax/statements/system_call.js +1 -1
- package/build/src/abap/5_syntax/statements/transfer.js +2 -2
- package/build/src/abap/5_syntax/statements/translate.js +2 -2
- package/build/src/abap/5_syntax/statements/truncate_dataset.js +1 -1
- package/build/src/abap/5_syntax/statements/type.js +3 -3
- package/build/src/abap/5_syntax/statements/unpack.js +2 -2
- package/build/src/abap/5_syntax/statements/update_database.js +4 -4
- package/build/src/abap/5_syntax/statements/wait.js +2 -2
- package/build/src/abap/5_syntax/statements/when.js +1 -1
- package/build/src/abap/5_syntax/statements/when_type.js +3 -3
- package/build/src/abap/5_syntax/statements/while.js +3 -3
- package/build/src/abap/5_syntax/statements/with.js +2 -2
- package/build/src/abap/5_syntax/statements/with_loop.js +2 -2
- package/build/src/abap/5_syntax/statements/write.js +4 -4
- package/build/src/abap/5_syntax/structures/data.js +1 -1
- package/build/src/abap/5_syntax/structures/statics.js +1 -1
- package/build/src/abap/types/basic/any_type.js +13 -0
- package/build/src/abap/types/basic/cgeneric_type.js +7 -0
- package/build/src/abap/types/basic/integer_type.js +7 -4
- package/build/src/abap/types/basic/string_type.js +7 -4
- package/build/src/abap/types/basic/void_type.js +10 -0
- package/build/src/abap/types/basic/xgeneric_type.js +7 -0
- package/build/src/abap/types/basic/xstring_type.js +13 -0
- package/build/src/abap/types/event_definition.js +1 -1
- package/build/src/abap/types/form_definition.js +3 -3
- package/build/src/abap/types/method_parameters.js +11 -11
- package/build/src/cds/cds_determine_types.js +5 -5
- package/build/src/ddic.js +11 -11
- package/build/src/objects/authorization_check_field.js +1 -1
- package/build/src/objects/lock_object.js +1 -1
- package/build/src/objects/maintenance_and_transport_object.js +2 -2
- package/build/src/objects/table.js +1 -1
- package/build/src/objects/view.js +1 -1
- package/build/src/registry.js +1 -1
- package/build/src/rules/downport.js +2 -1
- package/package.json +5 -5
|
@@ -7,27 +7,27 @@ const source_1 = require("./source");
|
|
|
7
7
|
const _type_utils_1 = require("../_type_utils");
|
|
8
8
|
const _syntax_input_1 = require("../_syntax_input");
|
|
9
9
|
class StringTemplate {
|
|
10
|
-
runSyntax(node, input) {
|
|
10
|
+
static runSyntax(node, input) {
|
|
11
11
|
const typeUtils = new _type_utils_1.TypeUtils(input.scope);
|
|
12
12
|
const ret = basic_1.StringType.get();
|
|
13
13
|
for (const templateSource of node.findAllExpressions(Expressions.StringTemplateSource)) {
|
|
14
14
|
const s = templateSource.findDirectExpression(Expressions.Source);
|
|
15
|
-
const type =
|
|
15
|
+
const type = source_1.Source.runSyntax(s, input, ret);
|
|
16
16
|
if (type === undefined) {
|
|
17
17
|
const message = "No target type determined";
|
|
18
18
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
19
|
-
return
|
|
19
|
+
return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
20
20
|
}
|
|
21
21
|
else if ((typeUtils.isCharLike(type) === false && typeUtils.isHexLike(type) === false)
|
|
22
22
|
|| type instanceof basic_1.StructureType) {
|
|
23
23
|
const message = "String template, not character like, " + type.constructor.name;
|
|
24
24
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
25
|
-
return
|
|
25
|
+
return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
26
26
|
}
|
|
27
27
|
const format = templateSource.findDirectExpression(Expressions.StringTemplateFormatting);
|
|
28
28
|
const formatConcat = format === null || format === void 0 ? void 0 : format.concatTokens();
|
|
29
29
|
for (const formatSource of (format === null || format === void 0 ? void 0 : format.findAllExpressions(Expressions.Source)) || []) {
|
|
30
|
-
|
|
30
|
+
source_1.Source.runSyntax(formatSource, input);
|
|
31
31
|
}
|
|
32
32
|
if (format
|
|
33
33
|
&& (formatConcat === null || formatConcat === void 0 ? void 0 : formatConcat.includes("ALPHA = "))
|
|
@@ -41,7 +41,7 @@ class StringTemplate {
|
|
|
41
41
|
&& !(type instanceof basic_1.AnyType)) {
|
|
42
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
|
-
return
|
|
44
|
+
return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
return ret;
|
|
@@ -6,7 +6,7 @@ const source_1 = require("./source");
|
|
|
6
6
|
const _syntax_input_1 = require("../_syntax_input");
|
|
7
7
|
const basic_1 = require("../../types/basic");
|
|
8
8
|
class SwitchBody {
|
|
9
|
-
runSyntax(node, input) {
|
|
9
|
+
static runSyntax(node, input) {
|
|
10
10
|
if (node === undefined) {
|
|
11
11
|
return;
|
|
12
12
|
}
|
|
@@ -14,14 +14,14 @@ class SwitchBody {
|
|
|
14
14
|
if (!((thenSource === null || thenSource === void 0 ? void 0 : thenSource.get()) instanceof Expressions.Source)) {
|
|
15
15
|
const message = "SwitchBody, unexpected";
|
|
16
16
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
17
|
-
return
|
|
17
|
+
return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
18
18
|
}
|
|
19
|
-
const type =
|
|
19
|
+
const type = source_1.Source.runSyntax(thenSource, input);
|
|
20
20
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
21
21
|
if (s === thenSource) {
|
|
22
22
|
continue;
|
|
23
23
|
}
|
|
24
|
-
|
|
24
|
+
source_1.Source.runSyntax(s, input);
|
|
25
25
|
}
|
|
26
26
|
return type;
|
|
27
27
|
}
|
|
@@ -4,12 +4,12 @@ exports.TableExpression = void 0;
|
|
|
4
4
|
const Expressions = require("../../2_statements/expressions");
|
|
5
5
|
const source_1 = require("./source");
|
|
6
6
|
class TableExpression {
|
|
7
|
-
runSyntax(node, input) {
|
|
7
|
+
static runSyntax(node, input) {
|
|
8
8
|
if (node === undefined) {
|
|
9
9
|
return;
|
|
10
10
|
}
|
|
11
11
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
12
|
-
|
|
12
|
+
source_1.Source.runSyntax(s, input);
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
}
|
|
@@ -16,7 +16,7 @@ const field_length_1 = require("./field_length");
|
|
|
16
16
|
const cast_1 = require("./cast");
|
|
17
17
|
const _syntax_input_1 = require("../_syntax_input");
|
|
18
18
|
class Target {
|
|
19
|
-
runSyntax(node, input) {
|
|
19
|
+
static runSyntax(node, input) {
|
|
20
20
|
const concat = node.concatTokens();
|
|
21
21
|
if (concat.includes("-")) {
|
|
22
22
|
// workaround for names with dashes
|
|
@@ -26,8 +26,8 @@ class Target {
|
|
|
26
26
|
return found.getType();
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
const children = node.getChildren()
|
|
30
|
-
const first = children
|
|
29
|
+
const children = node.getChildren();
|
|
30
|
+
const first = children[0];
|
|
31
31
|
if (first === undefined || !(first instanceof nodes_1.ExpressionNode)) {
|
|
32
32
|
return undefined;
|
|
33
33
|
}
|
|
@@ -35,18 +35,20 @@ class Target {
|
|
|
35
35
|
if (context === undefined) {
|
|
36
36
|
const message = `"${first.getFirstToken().getStr()}" not found, Target`;
|
|
37
37
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
38
|
-
return
|
|
38
|
+
return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
39
39
|
}
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
let currentIndex = 1;
|
|
41
|
+
while (currentIndex <= children.length) {
|
|
42
|
+
const current = children[currentIndex];
|
|
42
43
|
if (current === undefined) {
|
|
43
44
|
break;
|
|
44
45
|
}
|
|
46
|
+
currentIndex++;
|
|
45
47
|
if (current.get() instanceof tokens_1.Dash) {
|
|
46
48
|
if (context instanceof unknown_type_1.UnknownType) {
|
|
47
49
|
const message = "Not a structure, type unknown, target";
|
|
48
50
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
49
|
-
return
|
|
51
|
+
return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
50
52
|
}
|
|
51
53
|
else if (!(context instanceof basic_1.StructureType)
|
|
52
54
|
&& !(context instanceof basic_1.TableType && context.isWithHeader() && context.getRowType() instanceof basic_1.StructureType)
|
|
@@ -54,7 +56,7 @@ class Target {
|
|
|
54
56
|
&& !(context instanceof basic_1.VoidType)) {
|
|
55
57
|
const message = "Not a structure, target";
|
|
56
58
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
57
|
-
return
|
|
59
|
+
return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
58
60
|
}
|
|
59
61
|
}
|
|
60
62
|
else if (current.get() instanceof tokens_1.InstanceArrow) {
|
|
@@ -63,21 +65,21 @@ class Target {
|
|
|
63
65
|
&& !(context instanceof basic_1.VoidType)) {
|
|
64
66
|
const message = "Not an object reference, target";
|
|
65
67
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
66
|
-
return
|
|
68
|
+
return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
67
69
|
}
|
|
68
70
|
}
|
|
69
71
|
else if (current.get() instanceof expressions_1.Dereference) {
|
|
70
72
|
if (!(context instanceof basic_1.DataReference) && !(context instanceof basic_1.VoidType)) {
|
|
71
73
|
const message = "Not an object reference, target";
|
|
72
74
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
73
|
-
return
|
|
75
|
+
return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
74
76
|
}
|
|
75
77
|
if (!(context instanceof basic_1.VoidType)) {
|
|
76
78
|
context = context.getType();
|
|
77
79
|
}
|
|
78
80
|
}
|
|
79
81
|
else if (current.get() instanceof Expressions.ComponentName) {
|
|
80
|
-
context =
|
|
82
|
+
context = component_name_1.ComponentName.runSyntax(context, current, input);
|
|
81
83
|
}
|
|
82
84
|
else if (current.get() instanceof Expressions.TableBody) {
|
|
83
85
|
if (!(context instanceof basic_1.TableType)
|
|
@@ -86,7 +88,7 @@ class Target {
|
|
|
86
88
|
&& !(context instanceof unknown_type_1.UnknownType)) {
|
|
87
89
|
const message = "Not a internal table, \"[]\"";
|
|
88
90
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
89
|
-
return
|
|
91
|
+
return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
90
92
|
}
|
|
91
93
|
if (context instanceof basic_1.TableType && context.isWithHeader()) {
|
|
92
94
|
context = new basic_1.TableType(context.getRowType(), Object.assign(Object.assign({}, context.getOptions()), { withHeader: false }));
|
|
@@ -97,16 +99,16 @@ class Target {
|
|
|
97
99
|
if (!(context instanceof basic_1.TableType) && !(context instanceof basic_1.VoidType)) {
|
|
98
100
|
const message = "Table expression, expected table";
|
|
99
101
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
100
|
-
return
|
|
102
|
+
return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
101
103
|
}
|
|
102
|
-
|
|
104
|
+
table_expression_1.TableExpression.runSyntax(current, input);
|
|
103
105
|
if (!(context instanceof basic_1.VoidType)) {
|
|
104
106
|
context = context.getRowType();
|
|
105
107
|
}
|
|
106
108
|
}
|
|
107
109
|
else if (current.get() instanceof Expressions.AttributeName) {
|
|
108
110
|
const type = children.length === 0 ? _reference_1.ReferenceType.DataWriteReference : _reference_1.ReferenceType.DataReadReference;
|
|
109
|
-
context =
|
|
111
|
+
context = attribute_name_1.AttributeName.runSyntax(context, current, input, type);
|
|
110
112
|
}
|
|
111
113
|
}
|
|
112
114
|
const offset = node.findDirectExpression(Expressions.FieldOffset);
|
|
@@ -114,23 +116,23 @@ class Target {
|
|
|
114
116
|
if (context instanceof basic_1.XStringType || context instanceof basic_1.StringType) {
|
|
115
117
|
const message = "xstring/string offset/length in writer position not possible";
|
|
116
118
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
117
|
-
return
|
|
119
|
+
return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
118
120
|
}
|
|
119
|
-
|
|
121
|
+
field_offset_1.FieldOffset.runSyntax(offset, input);
|
|
120
122
|
}
|
|
121
123
|
const length = node.findDirectExpression(Expressions.FieldLength);
|
|
122
124
|
if (length) {
|
|
123
125
|
if (context instanceof basic_1.XStringType || context instanceof basic_1.StringType) {
|
|
124
126
|
const message = "xstring/string offset/length in writer position not possible";
|
|
125
127
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
126
|
-
return
|
|
128
|
+
return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
127
129
|
}
|
|
128
|
-
|
|
130
|
+
field_length_1.FieldLength.runSyntax(length, input);
|
|
129
131
|
}
|
|
130
132
|
return context;
|
|
131
133
|
}
|
|
132
134
|
/////////////////////////////////
|
|
133
|
-
findTop(node, input) {
|
|
135
|
+
static findTop(node, input) {
|
|
134
136
|
if (node === undefined) {
|
|
135
137
|
return undefined;
|
|
136
138
|
}
|
|
@@ -158,18 +160,18 @@ class Target {
|
|
|
158
160
|
}
|
|
159
161
|
else if (input.scope.getDDIC().inErrorNamespace(name) === false) {
|
|
160
162
|
input.scope.addReference(token, undefined, _reference_1.ReferenceType.ObjectOrientedVoidReference, input.filename, { ooName: name, ooType: "CLAS" });
|
|
161
|
-
return
|
|
163
|
+
return basic_1.VoidType.get(name);
|
|
162
164
|
}
|
|
163
165
|
else {
|
|
164
166
|
return new unknown_type_1.UnknownType(name + " unknown, Target");
|
|
165
167
|
}
|
|
166
168
|
}
|
|
167
169
|
else if (node.get() instanceof Expressions.Cast && node instanceof nodes_1.ExpressionNode) {
|
|
168
|
-
const ret =
|
|
170
|
+
const ret = cast_1.Cast.runSyntax(node, input, undefined);
|
|
169
171
|
if (ret instanceof unknown_type_1.UnknownType) {
|
|
170
172
|
const message = "CAST, uknown type";
|
|
171
173
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
172
|
-
return
|
|
174
|
+
return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
173
175
|
}
|
|
174
176
|
return ret;
|
|
175
177
|
}
|
|
@@ -8,7 +8,7 @@ const basic_1 = require("../../types/basic");
|
|
|
8
8
|
const _scope_type_1 = require("../_scope_type");
|
|
9
9
|
const type_table_key_1 = require("./type_table_key");
|
|
10
10
|
class TypeTable {
|
|
11
|
-
runSyntax(node, input, qualifiedNamePrefix) {
|
|
11
|
+
static runSyntax(node, input, qualifiedNamePrefix) {
|
|
12
12
|
// todo, input is currently the statement, but should be the expression?
|
|
13
13
|
let nameExpr = node.findFirstExpression(Expressions.DefinitionName);
|
|
14
14
|
if (nameExpr === undefined) {
|
|
@@ -31,7 +31,7 @@ class TypeTable {
|
|
|
31
31
|
return new _typed_identifier_1.TypedIdentifier(name, input.filename, new basic_1.UnknownType("TableType, fallback"));
|
|
32
32
|
}
|
|
33
33
|
for (const tt of node.findAllExpressions(Expressions.TypeTableKey)) {
|
|
34
|
-
const error =
|
|
34
|
+
const error = type_table_key_1.TypeTableKey.runSyntax(tt, type);
|
|
35
35
|
if (error) {
|
|
36
36
|
type = error;
|
|
37
37
|
}
|
|
@@ -4,7 +4,7 @@ exports.TypeTableKey = void 0;
|
|
|
4
4
|
const Expressions = require("../../2_statements/expressions");
|
|
5
5
|
const basic_1 = require("../../types/basic");
|
|
6
6
|
class TypeTableKey {
|
|
7
|
-
runSyntax(node, type) {
|
|
7
|
+
static runSyntax(node, type) {
|
|
8
8
|
if (type instanceof basic_1.TableType) {
|
|
9
9
|
const rowType = type.getRowType();
|
|
10
10
|
if (rowType instanceof basic_1.StructureType) {
|
|
@@ -9,7 +9,7 @@ const field_assignment_1 = require("./field_assignment");
|
|
|
9
9
|
const basic_1 = require("../../types/basic");
|
|
10
10
|
const _syntax_input_1 = require("../_syntax_input");
|
|
11
11
|
class ValueBody {
|
|
12
|
-
runSyntax(node, input, targetType) {
|
|
12
|
+
static runSyntax(node, input, targetType) {
|
|
13
13
|
var _a;
|
|
14
14
|
if (node === undefined) {
|
|
15
15
|
return targetType;
|
|
@@ -17,31 +17,31 @@ class ValueBody {
|
|
|
17
17
|
let letScoped = false;
|
|
18
18
|
const letNode = node.findDirectExpression(Expressions.Let);
|
|
19
19
|
if (letNode) {
|
|
20
|
-
letScoped =
|
|
20
|
+
letScoped = let_1.Let.runSyntax(letNode, input);
|
|
21
21
|
}
|
|
22
22
|
let forScopes = 0;
|
|
23
23
|
for (const forNode of node.findDirectExpressions(Expressions.For) || []) {
|
|
24
|
-
const scoped =
|
|
24
|
+
const scoped = for_1.For.runSyntax(forNode, input);
|
|
25
25
|
if (scoped === true) {
|
|
26
26
|
forScopes++;
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
const fields = new Set();
|
|
30
30
|
for (const s of node.findDirectExpressions(Expressions.FieldAssignment)) {
|
|
31
|
-
|
|
31
|
+
field_assignment_1.FieldAssignment.runSyntax(s, input, targetType);
|
|
32
32
|
const fieldname = (_a = s.findDirectExpression(Expressions.FieldSub)) === null || _a === void 0 ? void 0 : _a.concatTokens().toUpperCase();
|
|
33
33
|
if (fieldname) {
|
|
34
34
|
if (fields.has(fieldname)) {
|
|
35
35
|
const message = "Duplicate field assignment";
|
|
36
36
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, s.getFirstToken(), message));
|
|
37
|
-
return
|
|
37
|
+
return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
38
38
|
}
|
|
39
39
|
fields.add(fieldname);
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
let type = undefined; // todo, this is only correct if there is a single source in the body
|
|
43
43
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
44
|
-
type =
|
|
44
|
+
type = source_1.Source.runSyntax(s, input, type);
|
|
45
45
|
}
|
|
46
46
|
for (const foo of node.findDirectExpressions(Expressions.ValueBodyLine)) {
|
|
47
47
|
if (!(targetType instanceof basic_1.TableType)
|
|
@@ -51,7 +51,7 @@ class ValueBody {
|
|
|
51
51
|
&& !(targetType instanceof basic_1.VoidType)) {
|
|
52
52
|
const message = "Value, not a table type";
|
|
53
53
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, foo.getFirstToken(), message));
|
|
54
|
-
return
|
|
54
|
+
return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
55
55
|
}
|
|
56
56
|
let rowType = targetType;
|
|
57
57
|
if (targetType instanceof basic_1.TableType) {
|
|
@@ -60,14 +60,14 @@ class ValueBody {
|
|
|
60
60
|
for (const l of foo.findDirectExpressions(Expressions.ValueBodyLines)) {
|
|
61
61
|
for (const s of l.findDirectExpressions(Expressions.Source)) {
|
|
62
62
|
// LINES OF ?? todo, pass type,
|
|
63
|
-
|
|
63
|
+
source_1.Source.runSyntax(s, input);
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
for (const s of foo.findDirectExpressions(Expressions.FieldAssignment)) {
|
|
67
|
-
|
|
67
|
+
field_assignment_1.FieldAssignment.runSyntax(s, input, rowType);
|
|
68
68
|
}
|
|
69
69
|
for (const s of foo.findDirectExpressions(Expressions.Source)) {
|
|
70
|
-
|
|
70
|
+
source_1.Source.runSyntax(s, input, rowType);
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
if (letScoped === true) {
|
|
@@ -7,10 +7,10 @@ const target_1 = require("../expressions/target");
|
|
|
7
7
|
class Add {
|
|
8
8
|
runSyntax(node, input) {
|
|
9
9
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
10
|
-
|
|
10
|
+
source_1.Source.runSyntax(s, input);
|
|
11
11
|
}
|
|
12
12
|
for (const t of node.findDirectExpressions(Expressions.Target)) {
|
|
13
|
-
|
|
13
|
+
target_1.Target.runSyntax(t, input);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -7,10 +7,10 @@ const target_1 = require("../expressions/target");
|
|
|
7
7
|
class AddCorresponding {
|
|
8
8
|
runSyntax(node, input) {
|
|
9
9
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
10
|
-
|
|
10
|
+
source_1.Source.runSyntax(s, input);
|
|
11
11
|
}
|
|
12
12
|
for (const t of node.findDirectExpressions(Expressions.Target)) {
|
|
13
|
-
|
|
13
|
+
target_1.Target.runSyntax(t, input);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -15,7 +15,7 @@ class Append {
|
|
|
15
15
|
let targetType = undefined;
|
|
16
16
|
const target = node.findDirectExpression(Expressions.Target);
|
|
17
17
|
if (target) {
|
|
18
|
-
targetType =
|
|
18
|
+
targetType = target_1.Target.runSyntax(target, input);
|
|
19
19
|
}
|
|
20
20
|
const fsTarget = node.findExpressionAfterToken("ASSIGNING");
|
|
21
21
|
if (fsTarget && fsTarget.get() instanceof Expressions.FSTarget) {
|
|
@@ -25,7 +25,7 @@ class Append {
|
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
27
|
const rowType = targetType instanceof basic_1.TableType ? targetType.getRowType() : targetType;
|
|
28
|
-
|
|
28
|
+
fstarget_1.FSTarget.runSyntax(fsTarget, input, rowType);
|
|
29
29
|
}
|
|
30
30
|
const dataTarget = node.findExpressionAfterToken("INTO");
|
|
31
31
|
if (dataTarget && node.concatTokens().toUpperCase().includes(" REFERENCE INTO DATA(")) {
|
|
@@ -35,7 +35,7 @@ class Append {
|
|
|
35
35
|
return;
|
|
36
36
|
}
|
|
37
37
|
const rowType = targetType instanceof basic_1.TableType ? targetType.getRowType() : targetType;
|
|
38
|
-
|
|
38
|
+
inline_data_1.InlineData.runSyntax(dataTarget, input, new basic_1.DataReference(rowType));
|
|
39
39
|
}
|
|
40
40
|
let source = node.findDirectExpression(Expressions.SimpleSource4);
|
|
41
41
|
if (source === undefined) {
|
|
@@ -57,7 +57,7 @@ class Append {
|
|
|
57
57
|
else if (targetType instanceof basic_1.VoidType) {
|
|
58
58
|
rowType = targetType;
|
|
59
59
|
}
|
|
60
|
-
let sourceType =
|
|
60
|
+
let sourceType = source_1.Source.runSyntax(source, input, rowType);
|
|
61
61
|
if (node.findDirectTokenByText("LINES")) {
|
|
62
62
|
// hmm, checking only the row types are compatible will not check the table type, e.g. sorted or hashed
|
|
63
63
|
if (sourceType instanceof basic_1.TableType) {
|
|
@@ -82,11 +82,11 @@ class Append {
|
|
|
82
82
|
}
|
|
83
83
|
const from = node.findExpressionAfterToken("FROM");
|
|
84
84
|
if (from && from.get() instanceof Expressions.Source) {
|
|
85
|
-
|
|
85
|
+
source_1.Source.runSyntax(from, input);
|
|
86
86
|
}
|
|
87
87
|
const to = node.findExpressionAfterToken("TO");
|
|
88
88
|
if (to && to.get() instanceof Expressions.Source) {
|
|
89
|
-
|
|
89
|
+
source_1.Source.runSyntax(to, input);
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
}
|
|
@@ -26,15 +26,15 @@ class Assign {
|
|
|
26
26
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
27
27
|
return;
|
|
28
28
|
}
|
|
29
|
-
sourceType =
|
|
29
|
+
sourceType = basic_1.VoidType.get("Dynamic");
|
|
30
30
|
}
|
|
31
31
|
else {
|
|
32
|
-
sourceType =
|
|
32
|
+
sourceType = source_1.Source.runSyntax(theSource, input);
|
|
33
33
|
}
|
|
34
34
|
if ((assignSource === null || assignSource === void 0 ? void 0 : assignSource.getChildren().length) === 5
|
|
35
35
|
&& ((_a = assignSource === null || assignSource === void 0 ? void 0 : assignSource.getFirstChild()) === null || _a === void 0 ? void 0 : _a.concatTokens().toUpperCase()) === "COMPONENT") {
|
|
36
36
|
const componentSource = sources[sources.length - 2];
|
|
37
|
-
const componentType =
|
|
37
|
+
const componentType = source_1.Source.runSyntax(componentSource, input);
|
|
38
38
|
if (new _type_utils_1.TypeUtils(input.scope).isAssignable(componentType, new basic_1.CharacterType(30)) === false) {
|
|
39
39
|
const message = "component name must be charlike";
|
|
40
40
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
@@ -42,25 +42,25 @@ class Assign {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
if (sourceType === undefined || (assignSource === null || assignSource === void 0 ? void 0 : assignSource.findDirectExpression(Expressions.Dynamic))) {
|
|
45
|
-
sourceType =
|
|
45
|
+
sourceType = basic_1.AnyType.get();
|
|
46
46
|
}
|
|
47
47
|
for (const d of (assignSource === null || assignSource === void 0 ? void 0 : assignSource.findAllExpressions(Expressions.Dynamic)) || []) {
|
|
48
|
-
|
|
48
|
+
dynamic_1.Dynamic.runSyntax(d, input);
|
|
49
49
|
}
|
|
50
50
|
const target = node.findDirectExpression(Expressions.FSTarget);
|
|
51
51
|
if (target) {
|
|
52
52
|
if (((_b = assignSource === null || assignSource === void 0 ? void 0 : assignSource.getFirstChild()) === null || _b === void 0 ? void 0 : _b.concatTokens().toUpperCase()) === "COMPONENT") {
|
|
53
|
-
|
|
53
|
+
fstarget_1.FSTarget.runSyntax(target, input, basic_1.AnyType.get());
|
|
54
54
|
}
|
|
55
55
|
else {
|
|
56
|
-
|
|
56
|
+
fstarget_1.FSTarget.runSyntax(target, input, sourceType);
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
for (const s of node.findAllExpressions(Expressions.Source)) {
|
|
60
60
|
if (s === theSource) {
|
|
61
61
|
continue;
|
|
62
62
|
}
|
|
63
|
-
|
|
63
|
+
source_1.Source.runSyntax(s, input);
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
}
|
|
@@ -6,7 +6,7 @@ const source_1 = require("../expressions/source");
|
|
|
6
6
|
class AuthorityCheck {
|
|
7
7
|
runSyntax(node, input) {
|
|
8
8
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
9
|
-
|
|
9
|
+
source_1.Source.runSyntax(s, input);
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
}
|
|
@@ -12,7 +12,7 @@ class Call {
|
|
|
12
12
|
const children = node.getChildren();
|
|
13
13
|
if (children.length === 2) {
|
|
14
14
|
const first = children[0];
|
|
15
|
-
|
|
15
|
+
method_call_chain_1.MethodCallChain.runSyntax(first, input);
|
|
16
16
|
return;
|
|
17
17
|
}
|
|
18
18
|
const methodSource = children[2];
|
|
@@ -21,11 +21,11 @@ class Call {
|
|
|
21
21
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
24
|
-
const methodDef =
|
|
24
|
+
const methodDef = method_source_1.MethodSource.runSyntax(methodSource, input);
|
|
25
25
|
const body = children[3];
|
|
26
26
|
if (body instanceof nodes_1.ExpressionNode) {
|
|
27
27
|
// todo, resolve the method definition above and pass, if possible, in case of dynamic pass void
|
|
28
|
-
|
|
28
|
+
method_call_body_1.MethodCallBody.runSyntax(body, input, methodDef || void_type_1.VoidType.get("CallTODO"));
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
}
|
|
@@ -8,13 +8,13 @@ const dynamic_1 = require("../expressions/dynamic");
|
|
|
8
8
|
class CallBadi {
|
|
9
9
|
runSyntax(node, input) {
|
|
10
10
|
for (const s of node.findAllExpressions(Expressions.Source)) {
|
|
11
|
-
|
|
11
|
+
source_1.Source.runSyntax(s, input);
|
|
12
12
|
}
|
|
13
13
|
for (const t of node.findAllExpressions(Expressions.Target)) {
|
|
14
|
-
|
|
14
|
+
target_1.Target.runSyntax(t, input);
|
|
15
15
|
}
|
|
16
16
|
for (const d of node.findAllExpressions(Expressions.Dynamic)) {
|
|
17
|
-
|
|
17
|
+
dynamic_1.Dynamic.runSyntax(d, input);
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
}
|
|
@@ -14,7 +14,7 @@ class CallFunction {
|
|
|
14
14
|
const name = node.findFirstExpression(Expressions.FunctionName);
|
|
15
15
|
const chain = name === null || name === void 0 ? void 0 : name.findFirstExpression(Expressions.FieldChain);
|
|
16
16
|
if (chain) {
|
|
17
|
-
|
|
17
|
+
field_chain_1.FieldChain.runSyntax(chain, input, _reference_1.ReferenceType.DataReadReference);
|
|
18
18
|
}
|
|
19
19
|
else if (input.scope.getVersion() === version_1.Version.Cloud
|
|
20
20
|
&& node.findDirectExpression(Expressions.Destination) === undefined) {
|
|
@@ -27,20 +27,20 @@ class CallFunction {
|
|
|
27
27
|
}
|
|
28
28
|
// just recurse
|
|
29
29
|
for (const s of node.findAllExpressions(Expressions.Source)) {
|
|
30
|
-
|
|
30
|
+
source_1.Source.runSyntax(s, input);
|
|
31
31
|
}
|
|
32
32
|
for (const s of node.findAllExpressions(Expressions.SimpleSource3)) {
|
|
33
|
-
|
|
33
|
+
source_1.Source.runSyntax(s, input);
|
|
34
34
|
}
|
|
35
35
|
for (const t of node.findAllExpressions(Expressions.Target)) {
|
|
36
|
-
|
|
36
|
+
target_1.Target.runSyntax(t, input);
|
|
37
37
|
}
|
|
38
38
|
for (const s of node.findDirectExpressions(Expressions.SimpleSource2)) {
|
|
39
|
-
|
|
39
|
+
source_1.Source.runSyntax(s, input);
|
|
40
40
|
}
|
|
41
41
|
const exceptions = node.findFirstExpression(Expressions.ParameterException);
|
|
42
42
|
for (const s of (exceptions === null || exceptions === void 0 ? void 0 : exceptions.findAllExpressions(Expressions.SimpleFieldChain)) || []) {
|
|
43
|
-
|
|
43
|
+
field_chain_1.FieldChain.runSyntax(s, input, _reference_1.ReferenceType.DataReadReference);
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
}
|
|
@@ -7,10 +7,10 @@ const source_1 = require("../expressions/source");
|
|
|
7
7
|
class CallTransaction {
|
|
8
8
|
runSyntax(node, input) {
|
|
9
9
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
10
|
-
|
|
10
|
+
source_1.Source.runSyntax(s, input);
|
|
11
11
|
}
|
|
12
12
|
for (const t of node.findDirectExpressions(Expressions.Target)) {
|
|
13
|
-
|
|
13
|
+
target_1.Target.runSyntax(t, input);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -10,18 +10,18 @@ const dynamic_1 = require("../expressions/dynamic");
|
|
|
10
10
|
class CallTransformation {
|
|
11
11
|
runSyntax(node, input) {
|
|
12
12
|
for (const s of node.findAllExpressions(Expressions.SimpleSource3)) {
|
|
13
|
-
|
|
13
|
+
source_1.Source.runSyntax(s, input);
|
|
14
14
|
}
|
|
15
15
|
for (const d of node.findAllExpressions(Expressions.Dynamic)) {
|
|
16
|
-
|
|
16
|
+
dynamic_1.Dynamic.runSyntax(d, input);
|
|
17
17
|
}
|
|
18
18
|
for (const t of node.findAllExpressions(Expressions.Target)) {
|
|
19
19
|
const inline = t === null || t === void 0 ? void 0 : t.findDirectExpression(Expressions.InlineData);
|
|
20
20
|
if (inline) {
|
|
21
|
-
|
|
21
|
+
inline_data_1.InlineData.runSyntax(inline, input, basic_1.XStringType.get());
|
|
22
22
|
}
|
|
23
23
|
else {
|
|
24
|
-
|
|
24
|
+
target_1.Target.runSyntax(t, input);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
}
|