@abaplint/core 2.113.125 → 2.113.127
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 +18 -3
- package/build/src/abap/5_syntax/_builtin.js +10 -10
- package/build/src/abap/5_syntax/_current_scope.js +13 -0
- package/build/src/abap/5_syntax/_procedural.js +2 -2
- package/build/src/abap/5_syntax/_type_utils.js +13 -7
- package/build/src/abap/5_syntax/basic_types.js +11 -11
- package/build/src/abap/5_syntax/expressions/attribute_chain.js +5 -5
- 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 -4
- 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 +14 -14
- 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 +30 -30
- 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 +19 -19
- 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/xml_consistency.js +1 -1
- package/package.json +5 -5
|
@@ -9,15 +9,15 @@ class Collect {
|
|
|
9
9
|
runSyntax(node, input) {
|
|
10
10
|
const source = node.findDirectExpression(Expressions.Source);
|
|
11
11
|
if (source) {
|
|
12
|
-
|
|
12
|
+
source_1.Source.runSyntax(source, input);
|
|
13
13
|
}
|
|
14
14
|
const target = node.findDirectExpression(Expressions.Target);
|
|
15
15
|
if (target) {
|
|
16
|
-
|
|
16
|
+
target_1.Target.runSyntax(target, input);
|
|
17
17
|
}
|
|
18
18
|
const fs = node.findDirectExpression(Expressions.FSTarget);
|
|
19
19
|
if (fs) {
|
|
20
|
-
|
|
20
|
+
fstarget_1.FSTarget.runSyntax(fs, input, undefined);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -9,15 +9,15 @@ const basic_1 = require("../../types/basic");
|
|
|
9
9
|
class CommitEntities {
|
|
10
10
|
runSyntax(node, input) {
|
|
11
11
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
12
|
-
|
|
12
|
+
source_1.Source.runSyntax(s, input);
|
|
13
13
|
}
|
|
14
14
|
for (const t of node.findDirectExpressions(Expressions.Target)) {
|
|
15
15
|
const inline = t === null || t === void 0 ? void 0 : t.findDirectExpression(Expressions.InlineData);
|
|
16
16
|
if (inline) {
|
|
17
|
-
|
|
17
|
+
inline_data_1.InlineData.runSyntax(inline, input, basic_1.VoidType.get("CommitEntities"));
|
|
18
18
|
}
|
|
19
19
|
else {
|
|
20
|
-
|
|
20
|
+
target_1.Target.runSyntax(t, input);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -16,14 +16,14 @@ class Concatenate {
|
|
|
16
16
|
const inline = target === null || target === void 0 ? void 0 : target.findDirectExpression(Expressions.InlineData);
|
|
17
17
|
if (inline) {
|
|
18
18
|
if (byteMode) {
|
|
19
|
-
|
|
19
|
+
inline_data_1.InlineData.runSyntax(inline, input, basic_1.XStringType.get());
|
|
20
20
|
}
|
|
21
21
|
else {
|
|
22
|
-
|
|
22
|
+
inline_data_1.InlineData.runSyntax(inline, input, basic_1.StringType.get());
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
else if (target) {
|
|
26
|
-
const type =
|
|
26
|
+
const type = target_1.Target.runSyntax(target, input);
|
|
27
27
|
const compatible = byteMode ? new _type_utils_1.TypeUtils(input.scope).isHexLike(type) : new _type_utils_1.TypeUtils(input.scope).isCharLikeStrict(type);
|
|
28
28
|
if (compatible === false) {
|
|
29
29
|
const message = "Target type not compatible";
|
|
@@ -33,7 +33,7 @@ class Concatenate {
|
|
|
33
33
|
}
|
|
34
34
|
if (linesMode) {
|
|
35
35
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
36
|
-
const type =
|
|
36
|
+
const type = source_1.Source.runSyntax(s, input);
|
|
37
37
|
if (!(type instanceof basic_1.UnknownType) && !(type instanceof basic_1.VoidType) && !(type instanceof basic_1.TableType)) {
|
|
38
38
|
const message = "Source must be an internal table";
|
|
39
39
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
@@ -42,7 +42,7 @@ class Concatenate {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
for (const s of node.findDirectExpressions(Expressions.SimpleSource3)) {
|
|
45
|
-
const type =
|
|
45
|
+
const type = source_1.Source.runSyntax(s, input);
|
|
46
46
|
const compatible = byteMode ? new _type_utils_1.TypeUtils(input.scope).isHexLike(type) : new _type_utils_1.TypeUtils(input.scope).isCharLikeStrict(type);
|
|
47
47
|
if (compatible === false) {
|
|
48
48
|
const message = "Source type not compatible";
|
|
@@ -10,36 +10,36 @@ class Convert {
|
|
|
10
10
|
runSyntax(node, input) {
|
|
11
11
|
// todo, the source must be of a specific type
|
|
12
12
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
13
|
-
|
|
13
|
+
source_1.Source.runSyntax(s, input);
|
|
14
14
|
}
|
|
15
15
|
const timeTarget = node.findExpressionAfterToken("TIME");
|
|
16
16
|
if ((timeTarget === null || timeTarget === void 0 ? void 0 : timeTarget.get()) instanceof Expressions.Target) {
|
|
17
17
|
const inline = timeTarget === null || timeTarget === void 0 ? void 0 : timeTarget.findDirectExpression(Expressions.InlineData);
|
|
18
18
|
if (inline) {
|
|
19
|
-
|
|
19
|
+
inline_data_1.InlineData.runSyntax(inline, input, new basic_1.TimeType());
|
|
20
20
|
}
|
|
21
21
|
else {
|
|
22
|
-
|
|
22
|
+
target_1.Target.runSyntax(timeTarget, input);
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
const dateTarget = node.findExpressionAfterToken("DATE");
|
|
26
26
|
if ((dateTarget === null || dateTarget === void 0 ? void 0 : dateTarget.get()) instanceof Expressions.Target) {
|
|
27
27
|
const inline = dateTarget === null || dateTarget === void 0 ? void 0 : dateTarget.findDirectExpression(Expressions.InlineData);
|
|
28
28
|
if (inline) {
|
|
29
|
-
|
|
29
|
+
inline_data_1.InlineData.runSyntax(inline, input, new basic_1.DateType());
|
|
30
30
|
}
|
|
31
31
|
else {
|
|
32
|
-
|
|
32
|
+
target_1.Target.runSyntax(dateTarget, input);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
const stampTarget = node.findExpressionAfterToken("STAMP");
|
|
36
36
|
if ((stampTarget === null || stampTarget === void 0 ? void 0 : stampTarget.get()) instanceof Expressions.Target) {
|
|
37
37
|
const inline = stampTarget === null || stampTarget === void 0 ? void 0 : stampTarget.findDirectExpression(Expressions.InlineData);
|
|
38
38
|
if (inline) {
|
|
39
|
-
|
|
39
|
+
inline_data_1.InlineData.runSyntax(inline, input, new basic_1.PackedType(8, 4));
|
|
40
40
|
}
|
|
41
41
|
else {
|
|
42
|
-
|
|
42
|
+
target_1.Target.runSyntax(stampTarget, input);
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
}
|
|
@@ -12,13 +12,13 @@ const _reference_1 = require("../_reference");
|
|
|
12
12
|
class CreateData {
|
|
13
13
|
runSyntax(node, input) {
|
|
14
14
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
15
|
-
|
|
15
|
+
source_1.Source.runSyntax(s, input);
|
|
16
16
|
}
|
|
17
17
|
for (const t of node.findDirectExpressions(Expressions.Target)) {
|
|
18
|
-
|
|
18
|
+
target_1.Target.runSyntax(t, input);
|
|
19
19
|
}
|
|
20
20
|
for (const t of node.findDirectExpressions(Expressions.Dynamic)) {
|
|
21
|
-
|
|
21
|
+
dynamic_1.Dynamic.runSyntax(t, input);
|
|
22
22
|
}
|
|
23
23
|
const type = node.findDirectExpression(Expressions.TypeName);
|
|
24
24
|
if (type) {
|
|
@@ -41,14 +41,14 @@ class CreateObject {
|
|
|
41
41
|
}
|
|
42
42
|
// just recurse
|
|
43
43
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
44
|
-
|
|
44
|
+
source_1.Source.runSyntax(s, input);
|
|
45
45
|
}
|
|
46
46
|
for (const t of ((_a = node.findDirectExpression(Expressions.ParameterListExceptions)) === null || _a === void 0 ? void 0 : _a.findAllExpressions(Expressions.Target)) || []) {
|
|
47
|
-
|
|
47
|
+
target_1.Target.runSyntax(t, input);
|
|
48
48
|
}
|
|
49
49
|
const t = node.findDirectExpression(Expressions.Target);
|
|
50
50
|
if (t) {
|
|
51
|
-
const found =
|
|
51
|
+
const found = target_1.Target.runSyntax(t, input);
|
|
52
52
|
if (found instanceof basic_1.VoidType) {
|
|
53
53
|
// do nothing
|
|
54
54
|
}
|
|
@@ -93,9 +93,12 @@ class CreateObject {
|
|
|
93
93
|
return;
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
+
if (found instanceof basic_1.ObjectReferenceType && cdef === undefined) {
|
|
97
|
+
cdef = input.scope.findClassDefinition(found.getQualifiedName());
|
|
98
|
+
}
|
|
96
99
|
}
|
|
97
100
|
for (const t of node.findDirectExpressions(Expressions.Dynamic)) {
|
|
98
|
-
|
|
101
|
+
dynamic_1.Dynamic.runSyntax(t, input);
|
|
99
102
|
}
|
|
100
103
|
input.scope.addReference(t === null || t === void 0 ? void 0 : t.getFirstToken(), cdef, _reference_1.ReferenceType.ConstructorReference, input.filename, { ooName: cdef === null || cdef === void 0 ? void 0 : cdef.getName() });
|
|
101
104
|
this.validateParameters(cdef, node, input);
|
|
@@ -105,7 +108,7 @@ class CreateObject {
|
|
|
105
108
|
if (cdef === undefined) {
|
|
106
109
|
const sources = (_a = node.findDirectExpression(Expressions.ParameterListS)) === null || _a === void 0 ? void 0 : _a.findAllExpressions(Expressions.Source);
|
|
107
110
|
for (const s of sources || []) {
|
|
108
|
-
|
|
111
|
+
source_1.Source.runSyntax(s, input);
|
|
109
112
|
}
|
|
110
113
|
return;
|
|
111
114
|
}
|
|
@@ -119,7 +122,7 @@ class CreateObject {
|
|
|
119
122
|
continue;
|
|
120
123
|
}
|
|
121
124
|
const source = p.findDirectExpression(Expressions.Source);
|
|
122
|
-
const sourceType =
|
|
125
|
+
const sourceType = source_1.Source.runSyntax(source, input);
|
|
123
126
|
const found = allImporting === null || allImporting === void 0 ? void 0 : allImporting.find(p => p.getName().toUpperCase() === name);
|
|
124
127
|
if (found === undefined) {
|
|
125
128
|
const message = `constructor parameter "${name}" does not exist`;
|
|
@@ -12,12 +12,12 @@ class Data {
|
|
|
12
12
|
const name = node.findFirstExpression(Expressions.DefinitionName);
|
|
13
13
|
const dd = node.findFirstExpression(Expressions.DataDefinition);
|
|
14
14
|
if (dd) {
|
|
15
|
-
const id =
|
|
15
|
+
const id = data_definition_1.DataDefinition.runSyntax(dd, input);
|
|
16
16
|
if ((id === null || id === void 0 ? void 0 : id.getType().isGeneric()) === true
|
|
17
17
|
&& (id === null || id === void 0 ? void 0 : id.getType().containsVoid()) === false) {
|
|
18
18
|
const message = "DATA definition cannot be generic, " + (name === null || name === void 0 ? void 0 : name.concatTokens());
|
|
19
19
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
20
|
-
return new _typed_identifier_1.TypedIdentifier(id.getToken(), input.filename,
|
|
20
|
+
return new _typed_identifier_1.TypedIdentifier(id.getToken(), input.filename, basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey));
|
|
21
21
|
}
|
|
22
22
|
return id;
|
|
23
23
|
}
|
|
@@ -7,7 +7,7 @@ class DeleteCluster {
|
|
|
7
7
|
runSyntax(node, input) {
|
|
8
8
|
var _a;
|
|
9
9
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
10
|
-
|
|
10
|
+
source_1.Source.runSyntax(s, input);
|
|
11
11
|
}
|
|
12
12
|
const databaseName = node.findExpressionAfterToken("DATABASE");
|
|
13
13
|
if (databaseName) {
|
|
@@ -8,17 +8,17 @@ const database_table_1 = require("../expressions/database_table");
|
|
|
8
8
|
class DeleteDatabase {
|
|
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 s of node.findAllExpressions(Expressions.SimpleSource3)) {
|
|
14
|
-
|
|
14
|
+
source_1.Source.runSyntax(s, 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
|
const dbtab = node.findFirstExpression(Expressions.DatabaseTable);
|
|
20
20
|
if (dbtab !== undefined) {
|
|
21
|
-
|
|
21
|
+
database_table_1.DatabaseTable.runSyntax(dbtab, input);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -11,7 +11,7 @@ class DeleteInternal {
|
|
|
11
11
|
runSyntax(node, input) {
|
|
12
12
|
var _a;
|
|
13
13
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
14
|
-
|
|
14
|
+
source_1.Source.runSyntax(s, input);
|
|
15
15
|
}
|
|
16
16
|
let targetType = undefined;
|
|
17
17
|
const target = node.findDirectExpression(Expressions.Target);
|
|
@@ -25,17 +25,17 @@ class DeleteInternal {
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
if (tabl === undefined) {
|
|
28
|
-
targetType =
|
|
28
|
+
targetType = target_1.Target.runSyntax(target, input);
|
|
29
29
|
if (targetType instanceof basic_1.TableType) {
|
|
30
30
|
targetType = targetType.getRowType();
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
for (const t of node.findDirectExpressions(Expressions.ComponentCompare)) {
|
|
35
|
-
|
|
35
|
+
component_compare_1.ComponentCompare.runSyntax(t, input, targetType);
|
|
36
36
|
}
|
|
37
37
|
for (const t of node.findDirectExpressions(Expressions.ComponentCond)) {
|
|
38
|
-
|
|
38
|
+
component_cond_1.ComponentCond.runSyntax(t, input, targetType);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -6,7 +6,7 @@ const source_1 = require("../expressions/source");
|
|
|
6
6
|
class DeleteMemory {
|
|
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
|
}
|
|
@@ -6,7 +6,7 @@ const source_1 = require("../expressions/source");
|
|
|
6
6
|
class DeleteReport {
|
|
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
|
}
|
|
@@ -11,49 +11,49 @@ const _reference_1 = require("../_reference");
|
|
|
11
11
|
class Describe {
|
|
12
12
|
runSyntax(node, input) {
|
|
13
13
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
14
|
-
|
|
14
|
+
source_1.Source.runSyntax(s, input);
|
|
15
15
|
}
|
|
16
16
|
for (const s of node.findDirectExpressions(Expressions.FieldChain)) {
|
|
17
|
-
|
|
17
|
+
field_chain_1.FieldChain.runSyntax(s, input, _reference_1.ReferenceType.DataReadReference);
|
|
18
18
|
}
|
|
19
19
|
const linesTarget = node.findExpressionAfterToken("LINES");
|
|
20
20
|
if ((linesTarget === null || linesTarget === void 0 ? void 0 : linesTarget.get()) instanceof Expressions.Target) {
|
|
21
21
|
const inline = linesTarget === null || linesTarget === void 0 ? void 0 : linesTarget.findDirectExpression(Expressions.InlineData);
|
|
22
22
|
if (inline) {
|
|
23
|
-
|
|
23
|
+
inline_data_1.InlineData.runSyntax(inline, input, basic_1.IntegerType.get());
|
|
24
24
|
}
|
|
25
25
|
else {
|
|
26
|
-
|
|
26
|
+
target_1.Target.runSyntax(linesTarget, input);
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
const typeTarget = node.findExpressionAfterToken("TYPE");
|
|
30
30
|
if ((typeTarget === null || typeTarget === void 0 ? void 0 : typeTarget.get()) instanceof Expressions.Target) {
|
|
31
31
|
const inline = typeTarget === null || typeTarget === void 0 ? void 0 : typeTarget.findDirectExpression(Expressions.InlineData);
|
|
32
32
|
if (inline) {
|
|
33
|
-
|
|
33
|
+
inline_data_1.InlineData.runSyntax(inline, input, new basic_1.CharacterType(1));
|
|
34
34
|
}
|
|
35
35
|
else {
|
|
36
|
-
|
|
36
|
+
target_1.Target.runSyntax(typeTarget, input);
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
const lengthTarget = node.findExpressionAfterToken("LENGTH");
|
|
40
40
|
if ((lengthTarget === null || lengthTarget === void 0 ? void 0 : lengthTarget.get()) instanceof Expressions.Target) {
|
|
41
41
|
const inline = lengthTarget === null || lengthTarget === void 0 ? void 0 : lengthTarget.findDirectExpression(Expressions.InlineData);
|
|
42
42
|
if (inline) {
|
|
43
|
-
|
|
43
|
+
inline_data_1.InlineData.runSyntax(inline, input, basic_1.IntegerType.get());
|
|
44
44
|
}
|
|
45
45
|
else {
|
|
46
|
-
|
|
46
|
+
target_1.Target.runSyntax(lengthTarget, input);
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
const componentsTarget = node.findExpressionAfterToken("COMPONENTS");
|
|
50
50
|
if ((componentsTarget === null || componentsTarget === void 0 ? void 0 : componentsTarget.get()) instanceof Expressions.Target) {
|
|
51
51
|
const inline = componentsTarget === null || componentsTarget === void 0 ? void 0 : componentsTarget.findDirectExpression(Expressions.InlineData);
|
|
52
52
|
if (inline) {
|
|
53
|
-
|
|
53
|
+
inline_data_1.InlineData.runSyntax(inline, input, basic_1.IntegerType.get());
|
|
54
54
|
}
|
|
55
55
|
else {
|
|
56
|
-
|
|
56
|
+
target_1.Target.runSyntax(componentsTarget, input);
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
}
|
|
@@ -7,10 +7,10 @@ const target_1 = require("../expressions/target");
|
|
|
7
7
|
class Divide {
|
|
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
|
}
|
|
@@ -11,7 +11,7 @@ class Do {
|
|
|
11
11
|
runSyntax(node, input) {
|
|
12
12
|
const afterDo = node.findExpressionAfterToken("DO");
|
|
13
13
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
14
|
-
const type =
|
|
14
|
+
const type = source_1.Source.runSyntax(s, input);
|
|
15
15
|
if (s === afterDo
|
|
16
16
|
&& new _type_utils_1.TypeUtils(input.scope).isAssignable(type, basic_1.IntegerType.get()) === false) {
|
|
17
17
|
const message = "DO TIMES must be numeric";
|
|
@@ -20,7 +20,7 @@ class Do {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
for (const t of node.findDirectExpressions(Expressions.Target)) {
|
|
23
|
-
|
|
23
|
+
target_1.Target.runSyntax(t, input);
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
}
|
|
@@ -6,10 +6,10 @@ const source_1 = require("../expressions/source");
|
|
|
6
6
|
class EditorCall {
|
|
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
|
for (const t of node.findDirectExpressions(Expressions.SimpleSource3)) {
|
|
12
|
-
|
|
12
|
+
source_1.Source.runSyntax(t, input);
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
}
|
|
@@ -8,10 +8,10 @@ class Export {
|
|
|
8
8
|
runSyntax(node, input) {
|
|
9
9
|
var _a;
|
|
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.findDirectExpressions(Expressions.Target)) {
|
|
14
|
-
|
|
14
|
+
target_1.Target.runSyntax(t, input);
|
|
15
15
|
}
|
|
16
16
|
const databaseName = node.findExpressionAfterToken("DATABASE");
|
|
17
17
|
if (databaseName) {
|
|
@@ -9,7 +9,7 @@ const target_1 = require("../expressions/target");
|
|
|
9
9
|
class Find {
|
|
10
10
|
runSyntax(node, input) {
|
|
11
11
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
12
|
-
|
|
12
|
+
source_1.Source.runSyntax(s, input);
|
|
13
13
|
}
|
|
14
14
|
const rfound = node.findExpressionAfterToken("RESULTS");
|
|
15
15
|
if (rfound && rfound.get() instanceof Expressions.Target) {
|
|
@@ -58,10 +58,10 @@ class Find {
|
|
|
58
58
|
}
|
|
59
59
|
const inline = t === null || t === void 0 ? void 0 : t.findDirectExpression(Expressions.InlineData);
|
|
60
60
|
if (inline) {
|
|
61
|
-
|
|
61
|
+
inline_data_1.InlineData.runSyntax(inline, input, basic_1.StringType.get());
|
|
62
62
|
}
|
|
63
63
|
else {
|
|
64
|
-
|
|
64
|
+
target_1.Target.runSyntax(t, input);
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
}
|
|
@@ -70,10 +70,10 @@ class Find {
|
|
|
70
70
|
inline(node, input, type) {
|
|
71
71
|
const inline = node.findDirectExpression(Expressions.InlineData);
|
|
72
72
|
if (inline) {
|
|
73
|
-
|
|
73
|
+
inline_data_1.InlineData.runSyntax(inline, input, type);
|
|
74
74
|
}
|
|
75
75
|
else {
|
|
76
|
-
|
|
76
|
+
target_1.Target.runSyntax(node, input);
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
}
|
|
@@ -8,13 +8,13 @@ const dynamic_1 = require("../expressions/dynamic");
|
|
|
8
8
|
class GetBadi {
|
|
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.findDirectExpressions(Expressions.Target)) {
|
|
14
|
-
|
|
14
|
+
target_1.Target.runSyntax(t, input);
|
|
15
15
|
}
|
|
16
16
|
for (const d of node.findDirectExpressions(Expressions.Dynamic)) {
|
|
17
|
-
|
|
17
|
+
dynamic_1.Dynamic.runSyntax(d, input);
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
}
|
|
@@ -12,7 +12,7 @@ class GetBit {
|
|
|
12
12
|
runSyntax(node, input) {
|
|
13
13
|
let lastType = undefined;
|
|
14
14
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
15
|
-
lastType =
|
|
15
|
+
lastType = source_1.Source.runSyntax(s, input);
|
|
16
16
|
}
|
|
17
17
|
if (lastType && new _type_utils_1.TypeUtils(input.scope).isHexLike(lastType) === false) {
|
|
18
18
|
const message = "Input must be byte-like";
|
|
@@ -22,10 +22,10 @@ class GetBit {
|
|
|
22
22
|
for (const t of node.findDirectExpressions(Expressions.Target)) {
|
|
23
23
|
const inline = t === null || t === void 0 ? void 0 : t.findDirectExpression(Expressions.InlineData);
|
|
24
24
|
if (inline) {
|
|
25
|
-
|
|
25
|
+
inline_data_1.InlineData.runSyntax(t, input, basic_1.IntegerType.get());
|
|
26
26
|
}
|
|
27
27
|
else {
|
|
28
|
-
|
|
28
|
+
target_1.Target.runSyntax(t, input);
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
}
|
|
@@ -7,10 +7,10 @@ const source_1 = require("../expressions/source");
|
|
|
7
7
|
class GetLocale {
|
|
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
|
}
|
|
@@ -11,13 +11,13 @@ class GetParameter {
|
|
|
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
|
-
|
|
14
|
+
inline_data_1.InlineData.runSyntax(inline, input, new basic_1.CharacterType(40));
|
|
15
15
|
}
|
|
16
16
|
else if (target) {
|
|
17
|
-
|
|
17
|
+
target_1.Target.runSyntax(target, input);
|
|
18
18
|
}
|
|
19
19
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
20
|
-
|
|
20
|
+
source_1.Source.runSyntax(s, input);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -10,7 +10,7 @@ const _syntax_input_1 = require("../_syntax_input");
|
|
|
10
10
|
class GetReference {
|
|
11
11
|
runSyntax(node, input) {
|
|
12
12
|
const s = node.findDirectExpression(Expressions.Source);
|
|
13
|
-
const type =
|
|
13
|
+
const type = source_1.Source.runSyntax(s, input);
|
|
14
14
|
const target = node.findDirectExpression(Expressions.Target);
|
|
15
15
|
const inline = target === null || target === void 0 ? void 0 : target.findDirectExpression(Expressions.InlineData);
|
|
16
16
|
// todo: error if inline field symbol
|
|
@@ -20,10 +20,10 @@ class GetReference {
|
|
|
20
20
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
21
21
|
return;
|
|
22
22
|
}
|
|
23
|
-
|
|
23
|
+
inline_data_1.InlineData.runSyntax(inline, input, type ? new basic_1.DataReference(type) : undefined);
|
|
24
24
|
}
|
|
25
25
|
else if (target) {
|
|
26
|
-
|
|
26
|
+
target_1.Target.runSyntax(target, input);
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
}
|
|
@@ -10,10 +10,10 @@ class GetRunTime {
|
|
|
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
|
-
|
|
13
|
+
inline_data_1.InlineData.runSyntax(inline, input, basic_1.IntegerType.get());
|
|
14
14
|
}
|
|
15
15
|
else if (target) {
|
|
16
|
-
|
|
16
|
+
target_1.Target.runSyntax(target, input);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
}
|
|
@@ -10,10 +10,10 @@ class GetTime {
|
|
|
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
|
-
|
|
13
|
+
inline_data_1.InlineData.runSyntax(inline, input, new basic_1.PackedType(8, 0));
|
|
14
14
|
}
|
|
15
15
|
else if (target) {
|
|
16
|
-
|
|
16
|
+
target_1.Target.runSyntax(target, input);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
}
|
|
@@ -8,10 +8,10 @@ class Import {
|
|
|
8
8
|
runSyntax(node, input) {
|
|
9
9
|
var _a;
|
|
10
10
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
11
|
-
|
|
11
|
+
source_1.Source.runSyntax(s, input);
|
|
12
12
|
}
|
|
13
13
|
for (const t of node.findDirectExpressions(Expressions.Target)) {
|
|
14
|
-
|
|
14
|
+
target_1.Target.runSyntax(t, input);
|
|
15
15
|
}
|
|
16
16
|
const databaseName = node.findExpressionAfterToken("DATABASE");
|
|
17
17
|
if (databaseName) {
|