@abaplint/core 2.111.1 → 2.112.0
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 -8
- package/build/src/abap/5_syntax/_builtin.js +2 -2
- package/build/src/abap/5_syntax/_current_scope.js +2 -0
- package/build/src/abap/5_syntax/_procedural.js +6 -2
- package/build/src/abap/5_syntax/_syntax_input.js +11 -0
- package/build/src/abap/5_syntax/assert_error.js +7 -0
- package/build/src/abap/5_syntax/basic_types.js +78 -79
- package/build/src/abap/5_syntax/expressions/attribute_chain.js +15 -8
- package/build/src/abap/5_syntax/expressions/attribute_name.js +24 -11
- package/build/src/abap/5_syntax/expressions/cast.js +24 -13
- package/build/src/abap/5_syntax/expressions/compare.js +4 -4
- package/build/src/abap/5_syntax/expressions/component_chain.js +26 -11
- package/build/src/abap/5_syntax/expressions/component_compare.js +7 -4
- package/build/src/abap/5_syntax/expressions/component_compare_simple.js +11 -6
- package/build/src/abap/5_syntax/expressions/component_cond.js +3 -3
- package/build/src/abap/5_syntax/expressions/component_name.js +10 -5
- package/build/src/abap/5_syntax/expressions/cond.js +3 -6
- package/build/src/abap/5_syntax/expressions/cond_body.js +6 -6
- package/build/src/abap/5_syntax/expressions/conv_body.js +9 -8
- package/build/src/abap/5_syntax/expressions/corresponding_body.js +3 -3
- package/build/src/abap/5_syntax/expressions/data_definition.js +7 -7
- package/build/src/abap/5_syntax/expressions/database_table.js +9 -7
- package/build/src/abap/5_syntax/expressions/default.js +2 -2
- package/build/src/abap/5_syntax/expressions/dereference.js +5 -2
- package/build/src/abap/5_syntax/expressions/dynamic.js +2 -2
- package/build/src/abap/5_syntax/expressions/field_assignment.js +12 -5
- package/build/src/abap/5_syntax/expressions/field_chain.js +40 -25
- 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 +11 -11
- package/build/src/abap/5_syntax/expressions/form_param.js +10 -9
- package/build/src/abap/5_syntax/expressions/fstarget.js +8 -5
- package/build/src/abap/5_syntax/expressions/inline_data.js +11 -8
- package/build/src/abap/5_syntax/expressions/inline_field_definition.js +12 -8
- package/build/src/abap/5_syntax/expressions/inline_fs.js +7 -7
- package/build/src/abap/5_syntax/expressions/inline_loop_definition.js +16 -11
- package/build/src/abap/5_syntax/expressions/let.js +3 -3
- package/build/src/abap/5_syntax/expressions/loop_group_by.js +5 -15
- package/build/src/abap/5_syntax/expressions/message_source.js +4 -4
- package/build/src/abap/5_syntax/expressions/method_call_body.js +4 -4
- package/build/src/abap/5_syntax/expressions/method_call_chain.js +34 -25
- package/build/src/abap/5_syntax/expressions/method_call_param.js +33 -14
- package/build/src/abap/5_syntax/expressions/method_def_returning.js +7 -6
- package/build/src/abap/5_syntax/expressions/method_param.js +11 -10
- package/build/src/abap/5_syntax/expressions/method_parameters.js +76 -49
- package/build/src/abap/5_syntax/expressions/method_source.js +47 -38
- package/build/src/abap/5_syntax/expressions/new_object.js +48 -28
- package/build/src/abap/5_syntax/expressions/raise_with.js +2 -2
- package/build/src/abap/5_syntax/expressions/reduce_body.js +10 -10
- package/build/src/abap/5_syntax/expressions/reduce_next.js +3 -3
- package/build/src/abap/5_syntax/expressions/select.js +48 -33
- package/build/src/abap/5_syntax/expressions/select_loop.js +2 -2
- package/build/src/abap/5_syntax/expressions/source.js +74 -64
- package/build/src/abap/5_syntax/expressions/source_field.js +12 -6
- package/build/src/abap/5_syntax/expressions/source_field_symbol.js +8 -4
- package/build/src/abap/5_syntax/expressions/sql_compare.js +11 -19
- package/build/src/abap/5_syntax/expressions/sql_for_all_entries.js +7 -4
- package/build/src/abap/5_syntax/expressions/sql_from.js +3 -3
- package/build/src/abap/5_syntax/expressions/sql_in.js +34 -0
- 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 +16 -8
- package/build/src/abap/5_syntax/expressions/switch_body.js +8 -4
- package/build/src/abap/5_syntax/expressions/table_expression.js +2 -2
- package/build/src/abap/5_syntax/expressions/target.js +50 -29
- package/build/src/abap/5_syntax/expressions/type_table.js +7 -7
- package/build/src/abap/5_syntax/expressions/value_body.js +17 -12
- package/build/src/abap/5_syntax/global_definitions/find_global_definitions.js +19 -6
- package/build/src/abap/5_syntax/spaghetti_scope.js +2 -1
- package/build/src/abap/5_syntax/statements/add.js +3 -3
- package/build/src/abap/5_syntax/statements/add_corresponding.js +3 -3
- package/build/src/abap/5_syntax/statements/append.js +25 -14
- package/build/src/abap/5_syntax/statements/assert.js +2 -2
- package/build/src/abap/5_syntax/statements/assign.js +17 -12
- package/build/src/abap/5_syntax/statements/authority_check.js +2 -2
- package/build/src/abap/5_syntax/statements/call.js +8 -5
- package/build/src/abap/5_syntax/statements/call_badi.js +4 -4
- package/build/src/abap/5_syntax/statements/call_function.js +12 -9
- package/build/src/abap/5_syntax/statements/call_kernel.js +2 -2
- package/build/src/abap/5_syntax/statements/call_transaction.js +3 -3
- package/build/src/abap/5_syntax/statements/call_transformation.js +5 -5
- package/build/src/abap/5_syntax/statements/case.js +2 -2
- package/build/src/abap/5_syntax/statements/case_type.js +2 -2
- package/build/src/abap/5_syntax/statements/catch.js +24 -19
- package/build/src/abap/5_syntax/statements/check.js +2 -2
- package/build/src/abap/5_syntax/statements/class_data.js +9 -5
- package/build/src/abap/5_syntax/statements/class_deferred.js +2 -2
- package/build/src/abap/5_syntax/statements/class_implementation.js +16 -13
- package/build/src/abap/5_syntax/statements/class_local_friends.js +16 -9
- package/build/src/abap/5_syntax/statements/clear.js +3 -3
- package/build/src/abap/5_syntax/statements/close_dataset.js +2 -2
- package/build/src/abap/5_syntax/statements/collect.js +4 -4
- package/build/src/abap/5_syntax/statements/commit_entities.js +4 -4
- package/build/src/abap/5_syntax/statements/concatenate.js +18 -11
- package/build/src/abap/5_syntax/statements/condense.js +2 -2
- package/build/src/abap/5_syntax/statements/constant.js +6 -5
- package/build/src/abap/5_syntax/statements/controls.js +5 -5
- package/build/src/abap/5_syntax/statements/convert.js +8 -8
- package/build/src/abap/5_syntax/statements/create_data.js +11 -11
- package/build/src/abap/5_syntax/statements/create_object.js +49 -26
- package/build/src/abap/5_syntax/statements/data.js +8 -4
- package/build/src/abap/5_syntax/statements/delete_cluster.js +4 -4
- package/build/src/abap/5_syntax/statements/delete_database.js +5 -5
- package/build/src/abap/5_syntax/statements/delete_internal.js +7 -7
- package/build/src/abap/5_syntax/statements/delete_report.js +2 -2
- package/build/src/abap/5_syntax/statements/describe.js +13 -13
- package/build/src/abap/5_syntax/statements/divide.js +3 -3
- package/build/src/abap/5_syntax/statements/do.js +8 -5
- package/build/src/abap/5_syntax/statements/editor_call.js +3 -3
- package/build/src/abap/5_syntax/statements/else_if.js +2 -2
- package/build/src/abap/5_syntax/statements/export.js +5 -5
- package/build/src/abap/5_syntax/statements/fieldsymbol.js +4 -4
- package/build/src/abap/5_syntax/statements/find.js +13 -13
- package/build/src/abap/5_syntax/statements/form.js +10 -7
- package/build/src/abap/5_syntax/statements/format.js +2 -2
- package/build/src/abap/5_syntax/statements/get_badi.js +4 -4
- package/build/src/abap/5_syntax/statements/get_bit.js +9 -6
- package/build/src/abap/5_syntax/statements/get_cursor.js +2 -2
- package/build/src/abap/5_syntax/statements/get_locale.js +3 -3
- package/build/src/abap/5_syntax/statements/get_parameter.js +4 -4
- package/build/src/abap/5_syntax/statements/get_reference.js +8 -5
- package/build/src/abap/5_syntax/statements/get_run_time.js +3 -3
- package/build/src/abap/5_syntax/statements/get_time.js +3 -3
- package/build/src/abap/5_syntax/statements/if.js +2 -2
- package/build/src/abap/5_syntax/statements/import.js +5 -5
- package/build/src/abap/5_syntax/statements/import_dynpro.js +3 -3
- package/build/src/abap/5_syntax/statements/include_type.js +9 -5
- package/build/src/abap/5_syntax/statements/insert_database.js +5 -5
- package/build/src/abap/5_syntax/statements/insert_field_group.js +4 -4
- package/build/src/abap/5_syntax/statements/insert_internal.js +22 -13
- package/build/src/abap/5_syntax/statements/insert_report.js +2 -2
- package/build/src/abap/5_syntax/statements/insert_textpool.js +2 -2
- package/build/src/abap/5_syntax/statements/interface_deferred.js +2 -2
- package/build/src/abap/5_syntax/statements/log_point.js +2 -2
- package/build/src/abap/5_syntax/statements/loop.js +29 -16
- package/build/src/abap/5_syntax/statements/loop_at_screen.js +3 -3
- package/build/src/abap/5_syntax/statements/message.js +6 -6
- package/build/src/abap/5_syntax/statements/method_implementation.js +18 -13
- package/build/src/abap/5_syntax/statements/modify_database.js +8 -8
- package/build/src/abap/5_syntax/statements/modify_entities.js +4 -4
- package/build/src/abap/5_syntax/statements/modify_internal.js +15 -8
- package/build/src/abap/5_syntax/statements/modify_screen.js +2 -2
- package/build/src/abap/5_syntax/statements/move.js +17 -10
- package/build/src/abap/5_syntax/statements/move_corresponding.js +14 -7
- package/build/src/abap/5_syntax/statements/multiply.js +3 -3
- package/build/src/abap/5_syntax/statements/open_dataset.js +3 -3
- package/build/src/abap/5_syntax/statements/pack.js +3 -3
- package/build/src/abap/5_syntax/statements/parameter.js +11 -6
- package/build/src/abap/5_syntax/statements/perform.js +12 -8
- package/build/src/abap/5_syntax/statements/raise.js +23 -18
- package/build/src/abap/5_syntax/statements/raise_event.js +4 -4
- package/build/src/abap/5_syntax/statements/ranges.js +6 -5
- package/build/src/abap/5_syntax/statements/read_entities.js +4 -4
- package/build/src/abap/5_syntax/statements/read_report.js +3 -3
- package/build/src/abap/5_syntax/statements/read_table.js +40 -21
- package/build/src/abap/5_syntax/statements/read_textpool.js +3 -3
- package/build/src/abap/5_syntax/statements/receive.js +3 -3
- package/build/src/abap/5_syntax/statements/replace.js +3 -3
- package/build/src/abap/5_syntax/statements/scan.js +3 -3
- package/build/src/abap/5_syntax/statements/search.js +2 -2
- package/build/src/abap/5_syntax/statements/select.js +2 -2
- package/build/src/abap/5_syntax/statements/select_loop.js +2 -2
- package/build/src/abap/5_syntax/statements/selection_screen.js +4 -4
- package/build/src/abap/5_syntax/statements/selectoption.js +9 -6
- package/build/src/abap/5_syntax/statements/set_bit.js +8 -5
- package/build/src/abap/5_syntax/statements/set_handler.js +3 -3
- package/build/src/abap/5_syntax/statements/set_locale.js +3 -3
- package/build/src/abap/5_syntax/statements/set_parameter.js +2 -2
- package/build/src/abap/5_syntax/statements/set_pf_status.js +2 -2
- package/build/src/abap/5_syntax/statements/set_titlebar.js +2 -2
- package/build/src/abap/5_syntax/statements/shift.js +15 -8
- package/build/src/abap/5_syntax/statements/sort.js +16 -7
- package/build/src/abap/5_syntax/statements/split.js +12 -7
- package/build/src/abap/5_syntax/statements/static.js +4 -4
- package/build/src/abap/5_syntax/statements/submit.js +4 -4
- package/build/src/abap/5_syntax/statements/subtract.js +3 -3
- package/build/src/abap/5_syntax/statements/subtract_corresponding.js +3 -3
- package/build/src/abap/5_syntax/statements/syntax_check.js +3 -3
- package/build/src/abap/5_syntax/statements/system_call.js +2 -2
- package/build/src/abap/5_syntax/statements/tables.js +7 -7
- package/build/src/abap/5_syntax/statements/transfer.js +3 -3
- package/build/src/abap/5_syntax/statements/translate.js +3 -3
- package/build/src/abap/5_syntax/statements/truncate_dataset.js +2 -2
- package/build/src/abap/5_syntax/statements/type.js +12 -7
- package/build/src/abap/5_syntax/statements/unassign.js +7 -4
- package/build/src/abap/5_syntax/statements/unpack.js +3 -3
- package/build/src/abap/5_syntax/statements/update_database.js +11 -11
- package/build/src/abap/5_syntax/statements/wait.js +3 -3
- package/build/src/abap/5_syntax/statements/when.js +2 -2
- package/build/src/abap/5_syntax/statements/when_type.js +9 -6
- package/build/src/abap/5_syntax/statements/while.js +4 -4
- package/build/src/abap/5_syntax/statements/with.js +3 -3
- package/build/src/abap/5_syntax/statements/with_loop.js +3 -3
- package/build/src/abap/5_syntax/statements/write.js +14 -10
- package/build/src/abap/5_syntax/structures/class_data.js +3 -3
- package/build/src/abap/5_syntax/structures/constants.js +6 -5
- package/build/src/abap/5_syntax/structures/data.js +17 -13
- package/build/src/abap/5_syntax/structures/statics.js +16 -11
- package/build/src/abap/5_syntax/structures/type_enum.js +15 -13
- package/build/src/abap/5_syntax/structures/types.js +9 -9
- package/build/src/abap/5_syntax/syntax.js +32 -16
- package/build/src/abap/types/class_attributes.js +30 -30
- package/build/src/abap/types/class_definition.js +29 -29
- package/build/src/abap/types/event_definition.js +5 -5
- package/build/src/abap/types/form_definition.js +13 -13
- package/build/src/abap/types/interface_definition.js +19 -19
- package/build/src/abap/types/method_definition.js +10 -10
- package/build/src/abap/types/method_definitions.js +9 -10
- package/build/src/abap/types/method_parameters.js +29 -29
- package/build/src/issue.js +12 -0
- package/build/src/registry.js +1 -1
- package/build/src/rules/check_syntax.js +2 -1
- package/package.json +3 -3
|
@@ -7,22 +7,25 @@ const target_1 = require("../expressions/target");
|
|
|
7
7
|
const basic_1 = require("../../types/basic");
|
|
8
8
|
const inline_data_1 = require("../expressions/inline_data");
|
|
9
9
|
const _type_utils_1 = require("../_type_utils");
|
|
10
|
+
const _syntax_input_1 = require("../_syntax_input");
|
|
10
11
|
class GetBit {
|
|
11
|
-
runSyntax(node,
|
|
12
|
+
runSyntax(node, input) {
|
|
12
13
|
let lastType = undefined;
|
|
13
14
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
14
|
-
lastType = new source_1.Source().runSyntax(s,
|
|
15
|
+
lastType = new source_1.Source().runSyntax(s, input);
|
|
15
16
|
}
|
|
16
|
-
if (lastType && new _type_utils_1.TypeUtils(scope).isHexLike(lastType) === false) {
|
|
17
|
-
|
|
17
|
+
if (lastType && new _type_utils_1.TypeUtils(input.scope).isHexLike(lastType) === false) {
|
|
18
|
+
const message = "Input must be byte-like";
|
|
19
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
20
|
+
return;
|
|
18
21
|
}
|
|
19
22
|
for (const t of node.findDirectExpressions(Expressions.Target)) {
|
|
20
23
|
const inline = t === null || t === void 0 ? void 0 : t.findDirectExpression(Expressions.InlineData);
|
|
21
24
|
if (inline) {
|
|
22
|
-
new inline_data_1.InlineData().runSyntax(t,
|
|
25
|
+
new inline_data_1.InlineData().runSyntax(t, input, basic_1.IntegerType.get());
|
|
23
26
|
}
|
|
24
27
|
else {
|
|
25
|
-
new target_1.Target().runSyntax(t,
|
|
28
|
+
new target_1.Target().runSyntax(t, input);
|
|
26
29
|
}
|
|
27
30
|
}
|
|
28
31
|
}
|
|
@@ -4,9 +4,9 @@ exports.GetCursor = void 0;
|
|
|
4
4
|
const Expressions = require("../../2_statements/expressions");
|
|
5
5
|
const target_1 = require("../expressions/target");
|
|
6
6
|
class GetCursor {
|
|
7
|
-
runSyntax(node,
|
|
7
|
+
runSyntax(node, input) {
|
|
8
8
|
for (const t of node.findAllExpressions(Expressions.Target)) {
|
|
9
|
-
new target_1.Target().runSyntax(t,
|
|
9
|
+
new target_1.Target().runSyntax(t, input);
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
}
|
|
@@ -5,12 +5,12 @@ const Expressions = require("../../2_statements/expressions");
|
|
|
5
5
|
const target_1 = require("../expressions/target");
|
|
6
6
|
const source_1 = require("../expressions/source");
|
|
7
7
|
class GetLocale {
|
|
8
|
-
runSyntax(node,
|
|
8
|
+
runSyntax(node, input) {
|
|
9
9
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
10
|
-
new source_1.Source().runSyntax(s,
|
|
10
|
+
new source_1.Source().runSyntax(s, input);
|
|
11
11
|
}
|
|
12
12
|
for (const t of node.findDirectExpressions(Expressions.Target)) {
|
|
13
|
-
new target_1.Target().runSyntax(t,
|
|
13
|
+
new target_1.Target().runSyntax(t, input);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -7,17 +7,17 @@ const basic_1 = require("../../types/basic");
|
|
|
7
7
|
const target_1 = require("../expressions/target");
|
|
8
8
|
const source_1 = require("../expressions/source");
|
|
9
9
|
class GetParameter {
|
|
10
|
-
runSyntax(node,
|
|
10
|
+
runSyntax(node, input) {
|
|
11
11
|
const target = node.findDirectExpression(Expressions.Target);
|
|
12
12
|
const inline = target === null || target === void 0 ? void 0 : target.findDirectExpression(Expressions.InlineData);
|
|
13
13
|
if (inline) {
|
|
14
|
-
new inline_data_1.InlineData().runSyntax(inline,
|
|
14
|
+
new inline_data_1.InlineData().runSyntax(inline, input, new basic_1.CharacterType(40));
|
|
15
15
|
}
|
|
16
16
|
else if (target) {
|
|
17
|
-
new target_1.Target().runSyntax(target,
|
|
17
|
+
new target_1.Target().runSyntax(target, input);
|
|
18
18
|
}
|
|
19
19
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
20
|
-
new source_1.Source().runSyntax(s,
|
|
20
|
+
new source_1.Source().runSyntax(s, input);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -6,21 +6,24 @@ const source_1 = require("../expressions/source");
|
|
|
6
6
|
const target_1 = require("../expressions/target");
|
|
7
7
|
const inline_data_1 = require("../expressions/inline_data");
|
|
8
8
|
const basic_1 = require("../../types/basic");
|
|
9
|
+
const _syntax_input_1 = require("../_syntax_input");
|
|
9
10
|
class GetReference {
|
|
10
|
-
runSyntax(node,
|
|
11
|
+
runSyntax(node, input) {
|
|
11
12
|
const s = node.findDirectExpression(Expressions.Source);
|
|
12
|
-
const type = new source_1.Source().runSyntax(s,
|
|
13
|
+
const type = new source_1.Source().runSyntax(s, input);
|
|
13
14
|
const target = node.findDirectExpression(Expressions.Target);
|
|
14
15
|
const inline = target === null || target === void 0 ? void 0 : target.findDirectExpression(Expressions.InlineData);
|
|
15
16
|
// todo: error if inline field symbol
|
|
16
17
|
if (inline) {
|
|
17
18
|
if (type instanceof basic_1.AnyType) {
|
|
18
|
-
|
|
19
|
+
const message = "GET REFERENCE generic and inline declaration not possible";
|
|
20
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
21
|
+
return;
|
|
19
22
|
}
|
|
20
|
-
new inline_data_1.InlineData().runSyntax(inline,
|
|
23
|
+
new inline_data_1.InlineData().runSyntax(inline, input, type ? new basic_1.DataReference(type) : undefined);
|
|
21
24
|
}
|
|
22
25
|
else if (target) {
|
|
23
|
-
new target_1.Target().runSyntax(target,
|
|
26
|
+
new target_1.Target().runSyntax(target, input);
|
|
24
27
|
}
|
|
25
28
|
}
|
|
26
29
|
}
|
|
@@ -6,14 +6,14 @@ const inline_data_1 = require("../expressions/inline_data");
|
|
|
6
6
|
const basic_1 = require("../../types/basic");
|
|
7
7
|
const target_1 = require("../expressions/target");
|
|
8
8
|
class GetRunTime {
|
|
9
|
-
runSyntax(node,
|
|
9
|
+
runSyntax(node, input) {
|
|
10
10
|
const target = node.findDirectExpression(Expressions.Target);
|
|
11
11
|
const inline = target === null || target === void 0 ? void 0 : target.findDirectExpression(Expressions.InlineData);
|
|
12
12
|
if (inline) {
|
|
13
|
-
new inline_data_1.InlineData().runSyntax(inline,
|
|
13
|
+
new inline_data_1.InlineData().runSyntax(inline, input, basic_1.IntegerType.get());
|
|
14
14
|
}
|
|
15
15
|
else if (target) {
|
|
16
|
-
new target_1.Target().runSyntax(target,
|
|
16
|
+
new target_1.Target().runSyntax(target, input);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
}
|
|
@@ -6,14 +6,14 @@ const inline_data_1 = require("../expressions/inline_data");
|
|
|
6
6
|
const basic_1 = require("../../types/basic");
|
|
7
7
|
const target_1 = require("../expressions/target");
|
|
8
8
|
class GetTime {
|
|
9
|
-
runSyntax(node,
|
|
9
|
+
runSyntax(node, input) {
|
|
10
10
|
const target = node.findDirectExpression(Expressions.Target);
|
|
11
11
|
const inline = target === null || target === void 0 ? void 0 : target.findDirectExpression(Expressions.InlineData);
|
|
12
12
|
if (inline) {
|
|
13
|
-
new inline_data_1.InlineData().runSyntax(inline,
|
|
13
|
+
new inline_data_1.InlineData().runSyntax(inline, input, new basic_1.PackedType(8, 0));
|
|
14
14
|
}
|
|
15
15
|
else if (target) {
|
|
16
|
-
new target_1.Target().runSyntax(target,
|
|
16
|
+
new target_1.Target().runSyntax(target, input);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
}
|
|
@@ -4,9 +4,9 @@ exports.If = void 0;
|
|
|
4
4
|
const Expressions = require("../../2_statements/expressions");
|
|
5
5
|
const cond_1 = require("../expressions/cond");
|
|
6
6
|
class If {
|
|
7
|
-
runSyntax(node,
|
|
7
|
+
runSyntax(node, input) {
|
|
8
8
|
for (const s of node.findDirectExpressions(Expressions.Cond)) {
|
|
9
|
-
new cond_1.Cond().runSyntax(s,
|
|
9
|
+
new cond_1.Cond().runSyntax(s, input);
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
}
|
|
@@ -5,19 +5,19 @@ const Expressions = require("../../2_statements/expressions");
|
|
|
5
5
|
const source_1 = require("../expressions/source");
|
|
6
6
|
const target_1 = require("../expressions/target");
|
|
7
7
|
class Import {
|
|
8
|
-
runSyntax(node,
|
|
8
|
+
runSyntax(node, input) {
|
|
9
9
|
var _a;
|
|
10
10
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
11
|
-
new source_1.Source().runSyntax(s,
|
|
11
|
+
new source_1.Source().runSyntax(s, input);
|
|
12
12
|
}
|
|
13
13
|
for (const t of node.findDirectExpressions(Expressions.Target)) {
|
|
14
|
-
new target_1.Target().runSyntax(t,
|
|
14
|
+
new target_1.Target().runSyntax(t, input);
|
|
15
15
|
}
|
|
16
16
|
const databaseName = node.findExpressionAfterToken("DATABASE");
|
|
17
17
|
if (databaseName) {
|
|
18
|
-
const found = (_a = scope.getDDIC()) === null || _a === void 0 ? void 0 : _a.lookupTableOrView(databaseName.concatTokens());
|
|
18
|
+
const found = (_a = input.scope.getDDIC()) === null || _a === void 0 ? void 0 : _a.lookupTableOrView(databaseName.concatTokens());
|
|
19
19
|
if (found) {
|
|
20
|
-
scope.getDDICReferences().addUsing(scope.getParentObj(), { object: found.object });
|
|
20
|
+
input.scope.getDDICReferences().addUsing(input.scope.getParentObj(), { object: found.object });
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -5,12 +5,12 @@ const Expressions = require("../../2_statements/expressions");
|
|
|
5
5
|
const source_1 = require("../expressions/source");
|
|
6
6
|
const target_1 = require("../expressions/target");
|
|
7
7
|
class ImportDynpro {
|
|
8
|
-
runSyntax(node,
|
|
8
|
+
runSyntax(node, input) {
|
|
9
9
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
10
|
-
new source_1.Source().runSyntax(s,
|
|
10
|
+
new source_1.Source().runSyntax(s, input);
|
|
11
11
|
}
|
|
12
12
|
for (const t of node.findDirectExpressions(Expressions.Target)) {
|
|
13
|
-
new target_1.Target().runSyntax(t,
|
|
13
|
+
new target_1.Target().runSyntax(t, input);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -5,16 +5,18 @@ const Expressions = require("../../2_statements/expressions");
|
|
|
5
5
|
const basic_1 = require("../../types/basic");
|
|
6
6
|
const basic_types_1 = require("../basic_types");
|
|
7
7
|
const _typed_identifier_1 = require("../../types/_typed_identifier");
|
|
8
|
+
const _syntax_input_1 = require("../_syntax_input");
|
|
9
|
+
const assert_error_1 = require("../assert_error");
|
|
8
10
|
class IncludeType {
|
|
9
|
-
runSyntax(node,
|
|
11
|
+
runSyntax(node, input) {
|
|
10
12
|
var _a, _b;
|
|
11
13
|
const components = [];
|
|
12
14
|
const iname = node.findFirstExpression(Expressions.TypeName);
|
|
13
15
|
if (iname === undefined) {
|
|
14
|
-
throw new
|
|
16
|
+
throw new assert_error_1.AssertError("IncludeType, unexpected node structure");
|
|
15
17
|
}
|
|
16
18
|
const name = iname.getFirstToken().getStr();
|
|
17
|
-
let ityp = new basic_types_1.BasicTypes(
|
|
19
|
+
let ityp = new basic_types_1.BasicTypes(input).parseType(iname);
|
|
18
20
|
const as = (_a = node.findExpressionAfterToken("AS")) === null || _a === void 0 ? void 0 : _a.concatTokens();
|
|
19
21
|
if (as && ityp instanceof basic_1.StructureType) {
|
|
20
22
|
ityp = new basic_1.StructureType(ityp.getComponents().concat([{
|
|
@@ -50,11 +52,13 @@ class IncludeType {
|
|
|
50
52
|
else if (ityp && ityp instanceof basic_1.VoidType) {
|
|
51
53
|
return ityp;
|
|
52
54
|
}
|
|
53
|
-
else if (scope.getDDIC().inErrorNamespace(name) === false) {
|
|
55
|
+
else if (input.scope.getDDIC().inErrorNamespace(name) === false) {
|
|
54
56
|
return new basic_1.VoidType(name);
|
|
55
57
|
}
|
|
56
58
|
else {
|
|
57
|
-
|
|
59
|
+
const message = "IncludeType, type not found \"" + iname.concatTokens() + "\"";
|
|
60
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
61
|
+
return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
|
|
58
62
|
}
|
|
59
63
|
return components;
|
|
60
64
|
}
|
|
@@ -6,19 +6,19 @@ const source_1 = require("../expressions/source");
|
|
|
6
6
|
const dynamic_1 = require("../expressions/dynamic");
|
|
7
7
|
const database_table_1 = require("../expressions/database_table");
|
|
8
8
|
class InsertDatabase {
|
|
9
|
-
runSyntax(node,
|
|
9
|
+
runSyntax(node, input) {
|
|
10
10
|
for (const s of node.findAllExpressions(Expressions.Source)) {
|
|
11
|
-
new source_1.Source().runSyntax(s,
|
|
11
|
+
new source_1.Source().runSyntax(s, input);
|
|
12
12
|
}
|
|
13
13
|
for (const s of node.findAllExpressions(Expressions.SimpleSource3)) {
|
|
14
|
-
new source_1.Source().runSyntax(s,
|
|
14
|
+
new source_1.Source().runSyntax(s, input);
|
|
15
15
|
}
|
|
16
16
|
for (const d of node.findAllExpressions(Expressions.Dynamic)) {
|
|
17
|
-
new dynamic_1.Dynamic().runSyntax(d,
|
|
17
|
+
new dynamic_1.Dynamic().runSyntax(d, input);
|
|
18
18
|
}
|
|
19
19
|
const dbtab = node.findFirstExpression(Expressions.DatabaseTable);
|
|
20
20
|
if (dbtab !== undefined) {
|
|
21
|
-
new database_table_1.DatabaseTable().runSyntax(dbtab,
|
|
21
|
+
new database_table_1.DatabaseTable().runSyntax(dbtab, input);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -5,15 +5,15 @@ const Expressions = require("../../2_statements/expressions");
|
|
|
5
5
|
const source_1 = require("../expressions/source");
|
|
6
6
|
const target_1 = require("../expressions/target");
|
|
7
7
|
class InsertFieldGroup {
|
|
8
|
-
runSyntax(node,
|
|
8
|
+
runSyntax(node, input) {
|
|
9
9
|
for (const s of node.findAllExpressions(Expressions.Source)) {
|
|
10
|
-
new source_1.Source().runSyntax(s,
|
|
10
|
+
new source_1.Source().runSyntax(s, input);
|
|
11
11
|
}
|
|
12
12
|
for (const s of node.findAllExpressions(Expressions.SimpleSource1)) {
|
|
13
|
-
new source_1.Source().runSyntax(s,
|
|
13
|
+
new source_1.Source().runSyntax(s, input);
|
|
14
14
|
}
|
|
15
15
|
for (const t of node.findDirectExpressions(Expressions.Target)) {
|
|
16
|
-
new target_1.Target().runSyntax(t,
|
|
16
|
+
new target_1.Target().runSyntax(t, input);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
}
|
|
@@ -9,19 +9,22 @@ const fstarget_1 = require("../expressions/fstarget");
|
|
|
9
9
|
const basic_1 = require("../../types/basic");
|
|
10
10
|
const inline_data_1 = require("../expressions/inline_data");
|
|
11
11
|
const _type_utils_1 = require("../_type_utils");
|
|
12
|
+
const _syntax_input_1 = require("../_syntax_input");
|
|
12
13
|
class InsertInternal {
|
|
13
|
-
runSyntax(node,
|
|
14
|
+
runSyntax(node, input) {
|
|
14
15
|
let targetType;
|
|
15
16
|
const t = node.findDirectExpression(Expressions.Target);
|
|
16
17
|
if (t) {
|
|
17
|
-
targetType = new target_1.Target().runSyntax(t,
|
|
18
|
+
targetType = new target_1.Target().runSyntax(t, input);
|
|
18
19
|
}
|
|
19
20
|
if (!(targetType instanceof basic_1.TableType)
|
|
20
21
|
&& !(targetType instanceof basic_1.VoidType)
|
|
21
22
|
&& !(targetType instanceof basic_1.AnyType)
|
|
22
23
|
&& !(targetType instanceof basic_1.UnknownType)
|
|
23
24
|
&& targetType !== undefined) {
|
|
24
|
-
|
|
25
|
+
const message = "INSERT target must be a table";
|
|
26
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
27
|
+
return;
|
|
25
28
|
}
|
|
26
29
|
else if (targetType instanceof basic_1.TableType
|
|
27
30
|
&& node.findDirectTokenByText("LINES") === undefined) {
|
|
@@ -31,48 +34,54 @@ class InsertInternal {
|
|
|
31
34
|
if (source === undefined) {
|
|
32
35
|
source = node.findDirectExpression(Expressions.Source);
|
|
33
36
|
}
|
|
34
|
-
const sourceType = source ? new source_1.Source().runSyntax(source,
|
|
37
|
+
const sourceType = source ? new source_1.Source().runSyntax(source, input, targetType) : targetType;
|
|
35
38
|
if (targetType === undefined
|
|
36
39
|
&& !(sourceType instanceof basic_1.TableType)
|
|
37
40
|
&& !(sourceType instanceof basic_1.VoidType)
|
|
38
41
|
&& !(sourceType instanceof basic_1.AnyType)
|
|
39
42
|
&& !(sourceType instanceof basic_1.UnknownType)) {
|
|
40
|
-
|
|
43
|
+
const message = "INSERT target must be a table";
|
|
44
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
45
|
+
return;
|
|
41
46
|
}
|
|
42
47
|
const afterAssigning = node.findExpressionAfterToken("ASSIGNING");
|
|
43
48
|
if ((afterAssigning === null || afterAssigning === void 0 ? void 0 : afterAssigning.get()) instanceof Expressions.FSTarget) {
|
|
44
49
|
const inlinefs = afterAssigning === null || afterAssigning === void 0 ? void 0 : afterAssigning.findDirectExpression(Expressions.InlineFS);
|
|
45
50
|
if (inlinefs) {
|
|
46
|
-
new inline_fs_1.InlineFS().runSyntax(inlinefs,
|
|
51
|
+
new inline_fs_1.InlineFS().runSyntax(inlinefs, input, sourceType);
|
|
47
52
|
}
|
|
48
53
|
else {
|
|
49
|
-
new fstarget_1.FSTarget().runSyntax(afterAssigning,
|
|
54
|
+
new fstarget_1.FSTarget().runSyntax(afterAssigning, input, sourceType);
|
|
50
55
|
}
|
|
51
56
|
}
|
|
52
57
|
if (node.findDirectTokenByText("INITIAL") === undefined) {
|
|
53
|
-
if (new _type_utils_1.TypeUtils(scope).isAssignableStrict(sourceType, targetType) === false) {
|
|
54
|
-
|
|
58
|
+
if (new _type_utils_1.TypeUtils(input.scope).isAssignableStrict(sourceType, targetType) === false) {
|
|
59
|
+
const message = "Types not compatible";
|
|
60
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
61
|
+
return;
|
|
55
62
|
}
|
|
56
63
|
else if (sourceType instanceof basic_1.CharacterType && targetType instanceof basic_1.StringType) {
|
|
57
64
|
// yea, well, INSERT doesnt convert the values automatically, like everything else?
|
|
58
|
-
|
|
65
|
+
const message = "Types not compatible";
|
|
66
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
67
|
+
return;
|
|
59
68
|
}
|
|
60
69
|
}
|
|
61
70
|
const afterInto = node.findExpressionAfterToken("INTO");
|
|
62
71
|
if ((afterInto === null || afterInto === void 0 ? void 0 : afterInto.get()) instanceof Expressions.Target && sourceType) {
|
|
63
72
|
const inline = afterInto.findDirectExpression(Expressions.InlineData);
|
|
64
73
|
if (inline) {
|
|
65
|
-
new inline_data_1.InlineData().runSyntax(afterInto,
|
|
74
|
+
new inline_data_1.InlineData().runSyntax(afterInto, input, new basic_1.DataReference(sourceType));
|
|
66
75
|
}
|
|
67
76
|
else {
|
|
68
|
-
new target_1.Target().runSyntax(afterInto,
|
|
77
|
+
new target_1.Target().runSyntax(afterInto, input);
|
|
69
78
|
}
|
|
70
79
|
}
|
|
71
80
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
72
81
|
if (s === source) {
|
|
73
82
|
continue;
|
|
74
83
|
}
|
|
75
|
-
new source_1.Source().runSyntax(s,
|
|
84
|
+
new source_1.Source().runSyntax(s, input, targetType);
|
|
76
85
|
}
|
|
77
86
|
}
|
|
78
87
|
}
|
|
@@ -4,9 +4,9 @@ exports.InsertReport = void 0;
|
|
|
4
4
|
const Expressions = require("../../2_statements/expressions");
|
|
5
5
|
const source_1 = require("../expressions/source");
|
|
6
6
|
class InsertReport {
|
|
7
|
-
runSyntax(node,
|
|
7
|
+
runSyntax(node, input) {
|
|
8
8
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
9
|
-
new source_1.Source().runSyntax(s,
|
|
9
|
+
new source_1.Source().runSyntax(s, input);
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
}
|
|
@@ -4,9 +4,9 @@ exports.InsertTextpool = void 0;
|
|
|
4
4
|
const Expressions = require("../../2_statements/expressions");
|
|
5
5
|
const source_1 = require("../expressions/source");
|
|
6
6
|
class InsertTextpool {
|
|
7
|
-
runSyntax(node,
|
|
7
|
+
runSyntax(node, input) {
|
|
8
8
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
9
|
-
new source_1.Source().runSyntax(s,
|
|
9
|
+
new source_1.Source().runSyntax(s, input);
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
}
|
|
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.InterfaceDeferred = void 0;
|
|
4
4
|
const Expressions = require("../../2_statements/expressions");
|
|
5
5
|
class InterfaceDeferred {
|
|
6
|
-
runSyntax(node,
|
|
6
|
+
runSyntax(node, input) {
|
|
7
7
|
var _a;
|
|
8
8
|
const name = (_a = node.findFirstExpression(Expressions.InterfaceName)) === null || _a === void 0 ? void 0 : _a.getFirstToken();
|
|
9
|
-
scope.addDeferred(name, "INTF");
|
|
9
|
+
input.scope.addDeferred(name, "INTF");
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
exports.InterfaceDeferred = InterfaceDeferred;
|
|
@@ -4,10 +4,10 @@ exports.LogPoint = void 0;
|
|
|
4
4
|
const Expressions = require("../../2_statements/expressions");
|
|
5
5
|
const source_1 = require("../expressions/source");
|
|
6
6
|
class LogPoint {
|
|
7
|
-
runSyntax(node,
|
|
7
|
+
runSyntax(node, input) {
|
|
8
8
|
// just recurse
|
|
9
9
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
10
|
-
new source_1.Source().runSyntax(s,
|
|
10
|
+
new source_1.Source().runSyntax(s, input);
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
}
|
|
@@ -11,11 +11,12 @@ const fstarget_1 = require("../expressions/fstarget");
|
|
|
11
11
|
const component_cond_1 = require("../expressions/component_cond");
|
|
12
12
|
const dynamic_1 = require("../expressions/dynamic");
|
|
13
13
|
const loop_group_by_1 = require("../expressions/loop_group_by");
|
|
14
|
+
const _syntax_input_1 = require("../_syntax_input");
|
|
14
15
|
class Loop {
|
|
15
|
-
runSyntax(node,
|
|
16
|
+
runSyntax(node, input) {
|
|
16
17
|
const loopTarget = node.findDirectExpression(Expressions.LoopTarget);
|
|
17
18
|
let target = loopTarget === null || loopTarget === void 0 ? void 0 : loopTarget.findDirectExpression(Expressions.Target);
|
|
18
|
-
const targetType = target ? new target_1.Target().runSyntax(target,
|
|
19
|
+
const targetType = target ? new target_1.Target().runSyntax(target, input) : undefined;
|
|
19
20
|
if (target === undefined) {
|
|
20
21
|
target = node.findDirectExpression(Expressions.FSTarget);
|
|
21
22
|
}
|
|
@@ -25,32 +26,42 @@ class Loop {
|
|
|
25
26
|
if (firstSource === undefined) {
|
|
26
27
|
firstSource = sources[0];
|
|
27
28
|
}
|
|
28
|
-
let sourceType = firstSource ? new source_1.Source().runSyntax(firstSource,
|
|
29
|
+
let sourceType = firstSource ? new source_1.Source().runSyntax(firstSource, input, targetType, write) : undefined;
|
|
29
30
|
let rowType = undefined;
|
|
30
31
|
const concat = node.concatTokens().toUpperCase();
|
|
31
32
|
if (sourceType === undefined) {
|
|
32
|
-
|
|
33
|
+
const message = "No source type determined";
|
|
34
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
35
|
+
return;
|
|
33
36
|
}
|
|
34
37
|
else if (sourceType instanceof basic_1.UnknownType) {
|
|
35
|
-
|
|
38
|
+
const message = "Loop, not a table type, " + sourceType.getError();
|
|
39
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
40
|
+
return;
|
|
36
41
|
}
|
|
37
42
|
else if (sourceType instanceof basic_1.TableType
|
|
38
43
|
&& target === undefined
|
|
39
44
|
&& sourceType.isWithHeader() === false
|
|
40
45
|
&& node.getChildren().length === 4) {
|
|
41
|
-
|
|
46
|
+
const message = "Loop, no header line";
|
|
47
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
48
|
+
return;
|
|
42
49
|
}
|
|
43
50
|
else if (!(sourceType instanceof basic_1.TableType)
|
|
44
51
|
&& !(sourceType instanceof basic_1.AnyType)
|
|
45
52
|
&& !(sourceType instanceof basic_1.DataType)
|
|
46
53
|
&& !(sourceType instanceof basic_1.VoidType)
|
|
47
54
|
&& concat.startsWith("LOOP AT GROUP ") === false) {
|
|
48
|
-
|
|
55
|
+
const message = "Loop, not a table type";
|
|
56
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
57
|
+
return;
|
|
49
58
|
}
|
|
50
59
|
else if (loopTarget === undefined
|
|
51
60
|
&& sourceType instanceof basic_1.TableType
|
|
52
61
|
&& sourceType.isWithHeader() === false) {
|
|
53
|
-
|
|
62
|
+
const message = "Loop, no header";
|
|
63
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
64
|
+
return;
|
|
54
65
|
}
|
|
55
66
|
const targetConcat = loopTarget === null || loopTarget === void 0 ? void 0 : loopTarget.concatTokens().toUpperCase();
|
|
56
67
|
if (sourceType instanceof basic_1.TableType) {
|
|
@@ -63,37 +74,39 @@ class Loop {
|
|
|
63
74
|
if (targetConcat
|
|
64
75
|
&& targetConcat.startsWith("TRANSPORTING ")
|
|
65
76
|
&& node.findDirectTokenByText("WHERE") === undefined) {
|
|
66
|
-
|
|
77
|
+
const message = "Loop, TRANSPORTING NO FIELDS only with WHERE";
|
|
78
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
79
|
+
return;
|
|
67
80
|
}
|
|
68
81
|
const inline = target === null || target === void 0 ? void 0 : target.findDirectExpression(Expressions.InlineData);
|
|
69
82
|
if (inline) {
|
|
70
|
-
new inline_data_1.InlineData().runSyntax(inline,
|
|
83
|
+
new inline_data_1.InlineData().runSyntax(inline, input, sourceType);
|
|
71
84
|
}
|
|
72
85
|
for (const s of sources) {
|
|
73
86
|
if (s === firstSource) {
|
|
74
87
|
continue;
|
|
75
88
|
}
|
|
76
|
-
new source_1.Source().runSyntax(s,
|
|
89
|
+
new source_1.Source().runSyntax(s, input);
|
|
77
90
|
}
|
|
78
91
|
const inlinefs = target === null || target === void 0 ? void 0 : target.findDirectExpression(Expressions.InlineFS);
|
|
79
92
|
if (inlinefs) {
|
|
80
|
-
new inline_fs_1.InlineFS().runSyntax(inlinefs,
|
|
93
|
+
new inline_fs_1.InlineFS().runSyntax(inlinefs, input, sourceType);
|
|
81
94
|
}
|
|
82
95
|
else {
|
|
83
96
|
const fstarget = loopTarget === null || loopTarget === void 0 ? void 0 : loopTarget.findDirectExpression(Expressions.FSTarget);
|
|
84
97
|
if (fstarget) {
|
|
85
|
-
new fstarget_1.FSTarget().runSyntax(fstarget,
|
|
98
|
+
new fstarget_1.FSTarget().runSyntax(fstarget, input, sourceType);
|
|
86
99
|
}
|
|
87
100
|
}
|
|
88
101
|
for (const t of node.findDirectExpressions(Expressions.ComponentCond)) {
|
|
89
|
-
new component_cond_1.ComponentCond().runSyntax(t,
|
|
102
|
+
new component_cond_1.ComponentCond().runSyntax(t, input, rowType);
|
|
90
103
|
}
|
|
91
104
|
for (const t of node.findDirectExpressions(Expressions.Dynamic)) {
|
|
92
|
-
new dynamic_1.Dynamic().runSyntax(t,
|
|
105
|
+
new dynamic_1.Dynamic().runSyntax(t, input);
|
|
93
106
|
}
|
|
94
107
|
const group = node.findDirectExpression(Expressions.LoopGroupBy);
|
|
95
108
|
if (group) {
|
|
96
|
-
new loop_group_by_1.LoopGroupBy().runSyntax(group,
|
|
109
|
+
new loop_group_by_1.LoopGroupBy().runSyntax(group, input);
|
|
97
110
|
}
|
|
98
111
|
}
|
|
99
112
|
}
|
|
@@ -6,14 +6,14 @@ const target_1 = require("../expressions/target");
|
|
|
6
6
|
const inline_data_1 = require("../expressions/inline_data");
|
|
7
7
|
const basic_1 = require("../../types/basic");
|
|
8
8
|
class LoopAtScreen {
|
|
9
|
-
runSyntax(node,
|
|
9
|
+
runSyntax(node, input) {
|
|
10
10
|
const target = node.findDirectExpression(Expressions.Target);
|
|
11
11
|
if (target) {
|
|
12
|
-
new target_1.Target().runSyntax(target,
|
|
12
|
+
new target_1.Target().runSyntax(target, input);
|
|
13
13
|
}
|
|
14
14
|
const inline = target === null || target === void 0 ? void 0 : target.findDirectExpression(Expressions.InlineData);
|
|
15
15
|
if (inline) {
|
|
16
|
-
new inline_data_1.InlineData().runSyntax(inline,
|
|
16
|
+
new inline_data_1.InlineData().runSyntax(inline, input, new basic_1.VoidType("SCREEN"));
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
}
|
|
@@ -8,23 +8,23 @@ const source_1 = require("../expressions/source");
|
|
|
8
8
|
const target_1 = require("../expressions/target");
|
|
9
9
|
const message_source_1 = require("../expressions/message_source");
|
|
10
10
|
class Message {
|
|
11
|
-
runSyntax(node,
|
|
11
|
+
runSyntax(node, input) {
|
|
12
12
|
const found = node.findExpressionAfterToken("INTO");
|
|
13
13
|
const inline = found === null || found === void 0 ? void 0 : found.findDirectExpression(Expressions.InlineData);
|
|
14
14
|
if (inline) {
|
|
15
|
-
new inline_data_1.InlineData().runSyntax(inline,
|
|
15
|
+
new inline_data_1.InlineData().runSyntax(inline, input, basic_1.StringType.get());
|
|
16
16
|
}
|
|
17
17
|
else if (found) {
|
|
18
|
-
new target_1.Target().runSyntax(found,
|
|
18
|
+
new target_1.Target().runSyntax(found, input);
|
|
19
19
|
}
|
|
20
20
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
21
|
-
new source_1.Source().runSyntax(s,
|
|
21
|
+
new source_1.Source().runSyntax(s, input);
|
|
22
22
|
}
|
|
23
23
|
for (const s of node.findDirectExpressions(Expressions.SimpleSource3)) {
|
|
24
|
-
new source_1.Source().runSyntax(s,
|
|
24
|
+
new source_1.Source().runSyntax(s, input);
|
|
25
25
|
}
|
|
26
26
|
for (const s of node.findDirectExpressions(Expressions.MessageSource)) {
|
|
27
|
-
new message_source_1.MessageSource().runSyntax(s,
|
|
27
|
+
new message_source_1.MessageSource().runSyntax(s, input);
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
}
|