@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
|
@@ -7,10 +7,10 @@ const target_1 = require("../expressions/target");
|
|
|
7
7
|
class ReadTextpool {
|
|
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.SimpleTarget)) {
|
|
13
|
-
|
|
13
|
+
target_1.Target.runSyntax(t, input);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -9,10 +9,10 @@ class Receive {
|
|
|
9
9
|
// todo, lots of work here, similar to call_function.ts
|
|
10
10
|
// just recurse
|
|
11
11
|
for (const s of node.findAllExpressions(Expressions.Source)) {
|
|
12
|
-
|
|
12
|
+
source_1.Source.runSyntax(s, input);
|
|
13
13
|
}
|
|
14
14
|
for (const t of node.findAllExpressions(Expressions.Target)) {
|
|
15
|
-
|
|
15
|
+
target_1.Target.runSyntax(t, input);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
}
|
|
@@ -7,10 +7,10 @@ const target_1 = require("../expressions/target");
|
|
|
7
7
|
class Replace {
|
|
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 Scan {
|
|
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,7 +10,7 @@ class Select {
|
|
|
10
10
|
for (let i = 0; i < selects.length; i++) {
|
|
11
11
|
const last = i === selects.length - 1;
|
|
12
12
|
const s = selects[i];
|
|
13
|
-
|
|
13
|
+
select_1.Select.runSyntax(s, input, last === false);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -21,8 +21,8 @@ class SelectOption {
|
|
|
21
21
|
return;
|
|
22
22
|
}
|
|
23
23
|
for (const d of node.findDirectExpressions(Expressions.Dynamic)) {
|
|
24
|
-
|
|
25
|
-
input.scope.addIdentifier(new _typed_identifier_1.TypedIdentifier(nameToken, input.filename,
|
|
24
|
+
dynamic_1.Dynamic.runSyntax(d, input);
|
|
25
|
+
input.scope.addIdentifier(new _typed_identifier_1.TypedIdentifier(nameToken, input.filename, basic_1.VoidType.get("DYNAMIC_SELECT_OPTION")));
|
|
26
26
|
return;
|
|
27
27
|
}
|
|
28
28
|
const nameExpression = node.findFirstExpression(Expressions.FieldChain);
|
|
@@ -36,7 +36,7 @@ class SelectOption {
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
if (length === 0) {
|
|
39
|
-
found =
|
|
39
|
+
found = basic_1.VoidType.get("Selectoption, fallback");
|
|
40
40
|
}
|
|
41
41
|
else {
|
|
42
42
|
found = new basic_1.CharacterType(length);
|
|
@@ -55,7 +55,7 @@ class SelectOption {
|
|
|
55
55
|
}
|
|
56
56
|
const magicName = "%_" + nameToken.getStr() + "_%_app_%";
|
|
57
57
|
const magicToken = new tokens_1.Identifier(nameToken.getStart(), magicName);
|
|
58
|
-
input.scope.addIdentifier(new _typed_identifier_1.TypedIdentifier(magicToken, input.filename,
|
|
58
|
+
input.scope.addIdentifier(new _typed_identifier_1.TypedIdentifier(magicToken, input.filename, basic_1.VoidType.get("SELECT-OPTION magic")));
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
exports.SelectOption = SelectOption;
|
|
@@ -9,10 +9,10 @@ const _syntax_input_1 = require("../_syntax_input");
|
|
|
9
9
|
class SetBit {
|
|
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
|
-
const typ =
|
|
15
|
+
const typ = target_1.Target.runSyntax(t, input);
|
|
16
16
|
if (typ && new _type_utils_1.TypeUtils(input.scope).isHexLike(typ) === false) {
|
|
17
17
|
const message = "Input must be byte-like";
|
|
18
18
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, t.getFirstToken(), message));
|
|
@@ -7,10 +7,10 @@ const method_source_1 = require("../expressions/method_source");
|
|
|
7
7
|
class SetHandler {
|
|
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 s of node.findDirectExpressions(Expressions.MethodSource)) {
|
|
13
|
-
|
|
13
|
+
method_source_1.MethodSource.runSyntax(s, input);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -7,10 +7,10 @@ const source_1 = require("../expressions/source");
|
|
|
7
7
|
class SetLocale {
|
|
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
|
}
|
|
@@ -6,7 +6,7 @@ const source_1 = require("../expressions/source");
|
|
|
6
6
|
class SetParameter {
|
|
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 SetPFStatus {
|
|
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 SetTitlebar {
|
|
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
|
}
|
|
@@ -9,7 +9,7 @@ const _syntax_input_1 = require("../_syntax_input");
|
|
|
9
9
|
class Shift {
|
|
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 target = node.findDirectExpression(Expressions.Target);
|
|
15
15
|
if (target === undefined) {
|
|
@@ -17,7 +17,7 @@ class Shift {
|
|
|
17
17
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
20
|
-
const targetType =
|
|
20
|
+
const targetType = target_1.Target.runSyntax(target, input);
|
|
21
21
|
if (node.concatTokens().toUpperCase().includes(" IN BYTE MODE")) {
|
|
22
22
|
if (new _type_utils_1.TypeUtils(input.scope).isHexLike(targetType) === false) {
|
|
23
23
|
const message = "Shift, Target not hex like";
|
|
@@ -10,11 +10,11 @@ class Sort {
|
|
|
10
10
|
runSyntax(node, input) {
|
|
11
11
|
var _a, _b;
|
|
12
12
|
for (const s of node.findDirectExpressions(Expressions.Dynamic)) {
|
|
13
|
-
|
|
13
|
+
dynamic_1.Dynamic.runSyntax(s, input);
|
|
14
14
|
}
|
|
15
15
|
const tnode = node.findDirectExpression(Expressions.Target);
|
|
16
16
|
if (tnode) {
|
|
17
|
-
const ttype =
|
|
17
|
+
const ttype = target_1.Target.runSyntax(tnode, input);
|
|
18
18
|
if (ttype instanceof basic_1.TableType) {
|
|
19
19
|
if (((_b = (_a = ttype.getOptions()) === null || _a === void 0 ? void 0 : _a.primaryKey) === null || _b === void 0 ? void 0 : _b.type) === basic_1.TableAccessType.sorted) {
|
|
20
20
|
const message = `Sorted table, already sorted`;
|
|
@@ -15,10 +15,10 @@ class Split {
|
|
|
15
15
|
for (const target of node.findAllExpressions(Expressions.Target)) {
|
|
16
16
|
const inline = target.findDirectExpression(Expressions.InlineData);
|
|
17
17
|
if (inline) {
|
|
18
|
-
|
|
18
|
+
inline_data_1.InlineData.runSyntax(inline, input, type);
|
|
19
19
|
}
|
|
20
20
|
else {
|
|
21
|
-
let targetType =
|
|
21
|
+
let targetType = target_1.Target.runSyntax(target, input);
|
|
22
22
|
if (intoTable) {
|
|
23
23
|
if (!(targetType instanceof basic_1.TableType)
|
|
24
24
|
&& !(targetType instanceof basic_1.UnknownType)
|
|
@@ -39,7 +39,7 @@ class Split {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
42
|
-
|
|
42
|
+
source_1.Source.runSyntax(s, input);
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
}
|
|
@@ -10,7 +10,7 @@ class Static {
|
|
|
10
10
|
runSyntax(node, input) {
|
|
11
11
|
const tt = node.findFirstExpression(Expressions.TypeTable);
|
|
12
12
|
if (tt) {
|
|
13
|
-
const ttfound =
|
|
13
|
+
const ttfound = type_table_1.TypeTable.runSyntax(node, input);
|
|
14
14
|
if (ttfound) {
|
|
15
15
|
return ttfound;
|
|
16
16
|
}
|
|
@@ -8,13 +8,13 @@ const dynamic_1 = require("../expressions/dynamic");
|
|
|
8
8
|
class Submit {
|
|
9
9
|
runSyntax(node, input) {
|
|
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
|
for (const t of node.findDirectExpressions(Expressions.Dynamic)) {
|
|
17
|
-
|
|
17
|
+
dynamic_1.Dynamic.runSyntax(t, input);
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
}
|
|
@@ -7,10 +7,10 @@ const target_1 = require("../expressions/target");
|
|
|
7
7
|
class Subtract {
|
|
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 SubtractCorresponding {
|
|
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 SyntaxCheck {
|
|
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
|
}
|
|
@@ -6,7 +6,7 @@ const source_1 = require("../expressions/source");
|
|
|
6
6
|
class SystemCall {
|
|
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
|
}
|
|
@@ -7,11 +7,11 @@ const target_1 = require("../expressions/target");
|
|
|
7
7
|
class Transfer {
|
|
8
8
|
runSyntax(node, input) {
|
|
9
9
|
for (const source of node.findDirectExpressions(Expressions.Source)) {
|
|
10
|
-
|
|
10
|
+
source_1.Source.runSyntax(source, input);
|
|
11
11
|
}
|
|
12
12
|
const target = node.findDirectExpression(Expressions.Target);
|
|
13
13
|
if (target) {
|
|
14
|
-
|
|
14
|
+
target_1.Target.runSyntax(target, input);
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -7,10 +7,10 @@ const target_1 = require("../expressions/target");
|
|
|
7
7
|
class Translate {
|
|
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
|
}
|
|
@@ -6,7 +6,7 @@ const source_1 = require("../expressions/source");
|
|
|
6
6
|
class TruncateDataset {
|
|
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,7 +11,7 @@ class Type {
|
|
|
11
11
|
runSyntax(node, input, qualifiedNamePrefix) {
|
|
12
12
|
const tt = node.findFirstExpression(Expressions.TypeTable);
|
|
13
13
|
if (tt) {
|
|
14
|
-
return
|
|
14
|
+
return type_table_1.TypeTable.runSyntax(node, input, qualifiedNamePrefix);
|
|
15
15
|
}
|
|
16
16
|
const found = new basic_types_1.BasicTypes(input).simpleType(node, qualifiedNamePrefix);
|
|
17
17
|
if (found) {
|
|
@@ -19,7 +19,7 @@ class Type {
|
|
|
19
19
|
&& (found === null || found === void 0 ? void 0 : found.getType().containsVoid()) === false) {
|
|
20
20
|
const message = "TYPES definition cannot be generic, " + found.getName();
|
|
21
21
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
22
|
-
return new _typed_identifier_1.TypedIdentifier(found.getToken(), input.filename,
|
|
22
|
+
return new _typed_identifier_1.TypedIdentifier(found.getToken(), input.filename, basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey));
|
|
23
23
|
}
|
|
24
24
|
if (input.scope.isGlobalOO() && found.getType() instanceof basic_1.PackedType) {
|
|
25
25
|
const concat = node.concatTokens().toUpperCase();
|
|
@@ -27,7 +27,7 @@ class Type {
|
|
|
27
27
|
&& concat.includes(" DECIMALS ") === false) {
|
|
28
28
|
const message = "Specify DECIMALS in OO context for packed";
|
|
29
29
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
30
|
-
return new _typed_identifier_1.TypedIdentifier(found.getToken(), input.filename,
|
|
30
|
+
return new _typed_identifier_1.TypedIdentifier(found.getToken(), input.filename, basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey));
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
return found;
|
|
@@ -7,10 +7,10 @@ const target_1 = require("../expressions/target");
|
|
|
7
7
|
class Unpack {
|
|
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
|
}
|
|
@@ -13,7 +13,7 @@ class UpdateDatabase {
|
|
|
13
13
|
runSyntax(node, input) {
|
|
14
14
|
const dbtab = node.findFirstExpression(Expressions.DatabaseTable);
|
|
15
15
|
if (dbtab !== undefined) {
|
|
16
|
-
|
|
16
|
+
database_table_1.DatabaseTable.runSyntax(dbtab, input);
|
|
17
17
|
}
|
|
18
18
|
const tableName = node.findDirectExpression(Expressions.DatabaseTable);
|
|
19
19
|
const tokenName = tableName === null || tableName === void 0 ? void 0 : tableName.getFirstToken();
|
|
@@ -30,13 +30,13 @@ class UpdateDatabase {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
for (const s of node.findAllExpressions(Expressions.Source)) {
|
|
33
|
-
|
|
33
|
+
source_1.Source.runSyntax(s, input);
|
|
34
34
|
}
|
|
35
35
|
for (const s of node.findAllExpressions(Expressions.SimpleSource3)) {
|
|
36
|
-
|
|
36
|
+
source_1.Source.runSyntax(s, input);
|
|
37
37
|
}
|
|
38
38
|
for (const d of node.findAllExpressions(Expressions.Dynamic)) {
|
|
39
|
-
|
|
39
|
+
dynamic_1.Dynamic.runSyntax(d, input);
|
|
40
40
|
}
|
|
41
41
|
if (input.scope.getType() === _scope_type_1.ScopeType.OpenSQL) {
|
|
42
42
|
input.scope.pop(node.getLastToken().getEnd());
|
|
@@ -7,10 +7,10 @@ const cond_1 = require("../expressions/cond");
|
|
|
7
7
|
class Wait {
|
|
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.Cond)) {
|
|
13
|
-
|
|
13
|
+
cond_1.Cond.runSyntax(t, input);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -17,7 +17,7 @@ class WhenType {
|
|
|
17
17
|
const className = nameToken.getStr();
|
|
18
18
|
const found = input.scope.findObjectDefinition(className);
|
|
19
19
|
if (found === undefined && input.scope.getDDIC().inErrorNamespace(className) === false) {
|
|
20
|
-
type =
|
|
20
|
+
type = basic_1.VoidType.get(className);
|
|
21
21
|
}
|
|
22
22
|
else if (found === undefined) {
|
|
23
23
|
const message = "Class " + className + " not found";
|
|
@@ -30,10 +30,10 @@ class WhenType {
|
|
|
30
30
|
const target = node === null || node === void 0 ? void 0 : node.findDirectExpression(Expressions.Target);
|
|
31
31
|
const inline = target === null || target === void 0 ? void 0 : target.findDirectExpression(Expressions.InlineData);
|
|
32
32
|
if (inline) {
|
|
33
|
-
|
|
33
|
+
inline_data_1.InlineData.runSyntax(inline, input, type);
|
|
34
34
|
}
|
|
35
35
|
else if (target) {
|
|
36
|
-
|
|
36
|
+
target_1.Target.runSyntax(target, input);
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
}
|
|
@@ -8,13 +8,13 @@ const target_1 = require("../expressions/target");
|
|
|
8
8
|
class While {
|
|
9
9
|
runSyntax(node, input) {
|
|
10
10
|
for (const s of node.findDirectExpressions(Expressions.Cond)) {
|
|
11
|
-
|
|
11
|
+
cond_1.Cond.runSyntax(s, input);
|
|
12
12
|
}
|
|
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.Target)) {
|
|
17
|
-
|
|
17
|
+
target_1.Target.runSyntax(s, input);
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
}
|
|
@@ -7,10 +7,10 @@ const select_loop_1 = require("../expressions/select_loop");
|
|
|
7
7
|
class With {
|
|
8
8
|
runSyntax(node, input) {
|
|
9
9
|
for (const s of node.findAllExpressions(Expressions.Select)) {
|
|
10
|
-
|
|
10
|
+
select_1.Select.runSyntax(s, input);
|
|
11
11
|
}
|
|
12
12
|
for (const s of node.findAllExpressions(Expressions.SelectLoop)) {
|
|
13
|
-
|
|
13
|
+
select_loop_1.SelectLoop.runSyntax(s, input);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -7,10 +7,10 @@ const select_loop_1 = require("../expressions/select_loop");
|
|
|
7
7
|
class WithLoop {
|
|
8
8
|
runSyntax(node, input) {
|
|
9
9
|
for (const s of node.findAllExpressions(Expressions.Select)) {
|
|
10
|
-
|
|
10
|
+
select_1.Select.runSyntax(s, input);
|
|
11
11
|
}
|
|
12
12
|
for (const s of node.findAllExpressions(Expressions.SelectLoop)) {
|
|
13
|
-
|
|
13
|
+
select_loop_1.SelectLoop.runSyntax(s, input);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -18,7 +18,7 @@ class Write {
|
|
|
18
18
|
second = node.getChildren()[2];
|
|
19
19
|
}
|
|
20
20
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
21
|
-
const type =
|
|
21
|
+
const type = source_1.Source.runSyntax(s, input);
|
|
22
22
|
if (s === second
|
|
23
23
|
&& new _type_utils_1.TypeUtils(input.scope).isCharLike(type) === false
|
|
24
24
|
&& new _type_utils_1.TypeUtils(input.scope).isHexLike(type) === false) {
|
|
@@ -28,14 +28,14 @@ class Write {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
for (const s of ((_a = node.findDirectExpression(Expressions.WriteOffsetLength)) === null || _a === void 0 ? void 0 : _a.findDirectExpressions(Expressions.SimpleFieldChain2)) || []) {
|
|
31
|
-
|
|
31
|
+
field_chain_1.FieldChain.runSyntax(s, input, _reference_1.ReferenceType.DataReadReference);
|
|
32
32
|
}
|
|
33
33
|
for (const s of node.findAllExpressions(Expressions.Dynamic)) {
|
|
34
|
-
|
|
34
|
+
dynamic_1.Dynamic.runSyntax(s, input);
|
|
35
35
|
}
|
|
36
36
|
const target = node.findDirectExpression(Expressions.Target);
|
|
37
37
|
if (target) {
|
|
38
|
-
|
|
38
|
+
target_1.Target.runSyntax(target, input);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -78,7 +78,7 @@ class Data {
|
|
|
78
78
|
if (!(found instanceof Basic.StructureType)) {
|
|
79
79
|
const message = "not structured, " + typeName;
|
|
80
80
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, typeToken, message));
|
|
81
|
-
return new _typed_identifier_1.TypedIdentifier(name, input.filename,
|
|
81
|
+
return new _typed_identifier_1.TypedIdentifier(name, input.filename, Basic.VoidType.get(_syntax_input_1.CheckSyntaxKey));
|
|
82
82
|
}
|
|
83
83
|
for (const c of found.getComponents()) {
|
|
84
84
|
components.push(c);
|
|
@@ -63,7 +63,7 @@ class Statics {
|
|
|
63
63
|
if (!(found instanceof Basic.StructureType)) {
|
|
64
64
|
const message = "not structured, " + typeName;
|
|
65
65
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
66
|
-
return new _typed_identifier_1.TypedIdentifier(name, input.filename,
|
|
66
|
+
return new _typed_identifier_1.TypedIdentifier(name, input.filename, Basic.VoidType.get(_syntax_input_1.CheckSyntaxKey));
|
|
67
67
|
}
|
|
68
68
|
for (const c of found.getComponents()) {
|
|
69
69
|
components.push(c);
|
|
@@ -3,6 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.AnyType = void 0;
|
|
4
4
|
const _abstract_type_1 = require("./_abstract_type");
|
|
5
5
|
class AnyType extends _abstract_type_1.AbstractType {
|
|
6
|
+
static get(input) {
|
|
7
|
+
const key = JSON.stringify(input);
|
|
8
|
+
if (this.singletons.has(key)) {
|
|
9
|
+
return this.singletons.get(key);
|
|
10
|
+
}
|
|
11
|
+
const ret = new AnyType(input);
|
|
12
|
+
this.singletons.set(key, ret);
|
|
13
|
+
return ret;
|
|
14
|
+
}
|
|
15
|
+
constructor(input) {
|
|
16
|
+
super(input);
|
|
17
|
+
}
|
|
6
18
|
toText() {
|
|
7
19
|
return "```any```";
|
|
8
20
|
}
|
|
@@ -20,4 +32,5 @@ class AnyType extends _abstract_type_1.AbstractType {
|
|
|
20
32
|
}
|
|
21
33
|
}
|
|
22
34
|
exports.AnyType = AnyType;
|
|
35
|
+
AnyType.singletons = new Map();
|
|
23
36
|
//# sourceMappingURL=any_type.js.map
|
|
@@ -3,6 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CGenericType = void 0;
|
|
4
4
|
const _abstract_type_1 = require("./_abstract_type");
|
|
5
5
|
class CGenericType extends _abstract_type_1.AbstractType {
|
|
6
|
+
static get() {
|
|
7
|
+
return this.singleton;
|
|
8
|
+
}
|
|
9
|
+
constructor() {
|
|
10
|
+
super();
|
|
11
|
+
}
|
|
6
12
|
toText() {
|
|
7
13
|
return "```c```";
|
|
8
14
|
}
|
|
@@ -20,4 +26,5 @@ class CGenericType extends _abstract_type_1.AbstractType {
|
|
|
20
26
|
}
|
|
21
27
|
}
|
|
22
28
|
exports.CGenericType = CGenericType;
|
|
29
|
+
CGenericType.singleton = new CGenericType();
|
|
23
30
|
//# sourceMappingURL=cgeneric_type.js.map
|