@abaplint/core 2.113.126 → 2.113.128

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. package/build/abaplint.d.ts +17 -3
  2. package/build/src/abap/3_structures/structures/dynpro_loop.js +1 -1
  3. package/build/src/abap/5_syntax/_builtin.js +10 -10
  4. package/build/src/abap/5_syntax/_procedural.js +2 -2
  5. package/build/src/abap/5_syntax/_type_utils.js +16 -7
  6. package/build/src/abap/5_syntax/basic_types.js +10 -10
  7. package/build/src/abap/5_syntax/expressions/attribute_chain.js +6 -7
  8. package/build/src/abap/5_syntax/expressions/attribute_name.js +6 -6
  9. package/build/src/abap/5_syntax/expressions/cast.js +9 -9
  10. package/build/src/abap/5_syntax/expressions/compare.js +4 -4
  11. package/build/src/abap/5_syntax/expressions/component_chain.js +8 -8
  12. package/build/src/abap/5_syntax/expressions/component_compare.js +3 -3
  13. package/build/src/abap/5_syntax/expressions/component_compare_simple.js +3 -3
  14. package/build/src/abap/5_syntax/expressions/component_cond.js +3 -3
  15. package/build/src/abap/5_syntax/expressions/component_name.js +4 -4
  16. package/build/src/abap/5_syntax/expressions/cond.js +3 -3
  17. package/build/src/abap/5_syntax/expressions/cond_body.js +5 -5
  18. package/build/src/abap/5_syntax/expressions/constant.js +1 -1
  19. package/build/src/abap/5_syntax/expressions/conv_body.js +4 -4
  20. package/build/src/abap/5_syntax/expressions/corresponding_body.js +3 -3
  21. package/build/src/abap/5_syntax/expressions/data_definition.js +3 -3
  22. package/build/src/abap/5_syntax/expressions/database_table.js +1 -1
  23. package/build/src/abap/5_syntax/expressions/default.js +3 -3
  24. package/build/src/abap/5_syntax/expressions/dereference.js +2 -2
  25. package/build/src/abap/5_syntax/expressions/dynamic.js +2 -2
  26. package/build/src/abap/5_syntax/expressions/field_assignment.js +2 -2
  27. package/build/src/abap/5_syntax/expressions/field_chain.js +19 -19
  28. package/build/src/abap/5_syntax/expressions/field_length.js +2 -2
  29. package/build/src/abap/5_syntax/expressions/field_offset.js +2 -2
  30. package/build/src/abap/5_syntax/expressions/filter_body.js +3 -3
  31. package/build/src/abap/5_syntax/expressions/for.js +8 -8
  32. package/build/src/abap/5_syntax/expressions/form_param.js +2 -2
  33. package/build/src/abap/5_syntax/expressions/fstarget.js +2 -2
  34. package/build/src/abap/5_syntax/expressions/inline_data.js +1 -1
  35. package/build/src/abap/5_syntax/expressions/inline_field_definition.js +3 -3
  36. package/build/src/abap/5_syntax/expressions/inline_fs.js +1 -1
  37. package/build/src/abap/5_syntax/expressions/inline_loop_definition.js +2 -2
  38. package/build/src/abap/5_syntax/expressions/let.js +2 -2
  39. package/build/src/abap/5_syntax/expressions/loop_group_by.js +6 -6
  40. package/build/src/abap/5_syntax/expressions/message_source.js +2 -2
  41. package/build/src/abap/5_syntax/expressions/method_call_body.js +3 -3
  42. package/build/src/abap/5_syntax/expressions/method_call_chain.js +21 -19
  43. package/build/src/abap/5_syntax/expressions/method_call_param.js +2 -2
  44. package/build/src/abap/5_syntax/expressions/method_def_returning.js +1 -1
  45. package/build/src/abap/5_syntax/expressions/method_param.js +4 -4
  46. package/build/src/abap/5_syntax/expressions/method_parameters.js +7 -7
  47. package/build/src/abap/5_syntax/expressions/method_source.js +20 -20
  48. package/build/src/abap/5_syntax/expressions/new_object.js +10 -10
  49. package/build/src/abap/5_syntax/expressions/raise_with.js +2 -2
  50. package/build/src/abap/5_syntax/expressions/reduce_body.js +7 -7
  51. package/build/src/abap/5_syntax/expressions/reduce_next.js +3 -3
  52. package/build/src/abap/5_syntax/expressions/select.js +25 -25
  53. package/build/src/abap/5_syntax/expressions/select_loop.js +2 -2
  54. package/build/src/abap/5_syntax/expressions/source.js +63 -60
  55. package/build/src/abap/5_syntax/expressions/source_field.js +2 -2
  56. package/build/src/abap/5_syntax/expressions/source_field_symbol.js +2 -2
  57. package/build/src/abap/5_syntax/expressions/sql_compare.js +6 -6
  58. package/build/src/abap/5_syntax/expressions/sql_for_all_entries.js +2 -2
  59. package/build/src/abap/5_syntax/expressions/sql_from.js +3 -3
  60. package/build/src/abap/5_syntax/expressions/sql_in.js +4 -4
  61. package/build/src/abap/5_syntax/expressions/sql_order_by.js +2 -2
  62. package/build/src/abap/5_syntax/expressions/sql_source.js +3 -3
  63. package/build/src/abap/5_syntax/expressions/string_template.js +6 -6
  64. package/build/src/abap/5_syntax/expressions/switch_body.js +4 -4
  65. package/build/src/abap/5_syntax/expressions/table_expression.js +2 -2
  66. package/build/src/abap/5_syntax/expressions/target.js +25 -23
  67. package/build/src/abap/5_syntax/expressions/type_table.js +2 -2
  68. package/build/src/abap/5_syntax/expressions/type_table_key.js +1 -1
  69. package/build/src/abap/5_syntax/expressions/value_body.js +10 -10
  70. package/build/src/abap/5_syntax/statements/add.js +2 -2
  71. package/build/src/abap/5_syntax/statements/add_corresponding.js +2 -2
  72. package/build/src/abap/5_syntax/statements/append.js +6 -6
  73. package/build/src/abap/5_syntax/statements/assert.js +1 -1
  74. package/build/src/abap/5_syntax/statements/assign.js +8 -8
  75. package/build/src/abap/5_syntax/statements/authority_check.js +1 -1
  76. package/build/src/abap/5_syntax/statements/call.js +3 -3
  77. package/build/src/abap/5_syntax/statements/call_badi.js +3 -3
  78. package/build/src/abap/5_syntax/statements/call_function.js +6 -6
  79. package/build/src/abap/5_syntax/statements/call_kernel.js +1 -1
  80. package/build/src/abap/5_syntax/statements/call_transaction.js +2 -2
  81. package/build/src/abap/5_syntax/statements/call_transformation.js +4 -4
  82. package/build/src/abap/5_syntax/statements/case.js +1 -1
  83. package/build/src/abap/5_syntax/statements/case_type.js +1 -1
  84. package/build/src/abap/5_syntax/statements/catch.js +2 -2
  85. package/build/src/abap/5_syntax/statements/check.js +1 -1
  86. package/build/src/abap/5_syntax/statements/class_data.js +2 -2
  87. package/build/src/abap/5_syntax/statements/class_implementation.js +1 -1
  88. package/build/src/abap/5_syntax/statements/clear.js +2 -2
  89. package/build/src/abap/5_syntax/statements/close_dataset.js +1 -1
  90. package/build/src/abap/5_syntax/statements/collect.js +3 -3
  91. package/build/src/abap/5_syntax/statements/commit_entities.js +3 -3
  92. package/build/src/abap/5_syntax/statements/concatenate.js +5 -5
  93. package/build/src/abap/5_syntax/statements/condense.js +1 -1
  94. package/build/src/abap/5_syntax/statements/convert.js +7 -7
  95. package/build/src/abap/5_syntax/statements/create_data.js +3 -3
  96. package/build/src/abap/5_syntax/statements/create_object.js +9 -6
  97. package/build/src/abap/5_syntax/statements/data.js +2 -2
  98. package/build/src/abap/5_syntax/statements/delete_cluster.js +1 -1
  99. package/build/src/abap/5_syntax/statements/delete_database.js +4 -4
  100. package/build/src/abap/5_syntax/statements/delete_internal.js +4 -4
  101. package/build/src/abap/5_syntax/statements/delete_memory.js +1 -1
  102. package/build/src/abap/5_syntax/statements/delete_report.js +1 -1
  103. package/build/src/abap/5_syntax/statements/describe.js +10 -10
  104. package/build/src/abap/5_syntax/statements/divide.js +2 -2
  105. package/build/src/abap/5_syntax/statements/do.js +2 -2
  106. package/build/src/abap/5_syntax/statements/editor_call.js +2 -2
  107. package/build/src/abap/5_syntax/statements/else_if.js +1 -1
  108. package/build/src/abap/5_syntax/statements/export.js +2 -2
  109. package/build/src/abap/5_syntax/statements/find.js +5 -5
  110. package/build/src/abap/5_syntax/statements/format.js +1 -1
  111. package/build/src/abap/5_syntax/statements/get_badi.js +3 -3
  112. package/build/src/abap/5_syntax/statements/get_bit.js +3 -3
  113. package/build/src/abap/5_syntax/statements/get_cursor.js +1 -1
  114. package/build/src/abap/5_syntax/statements/get_locale.js +2 -2
  115. package/build/src/abap/5_syntax/statements/get_parameter.js +3 -3
  116. package/build/src/abap/5_syntax/statements/get_reference.js +3 -3
  117. package/build/src/abap/5_syntax/statements/get_run_time.js +2 -2
  118. package/build/src/abap/5_syntax/statements/get_time.js +2 -2
  119. package/build/src/abap/5_syntax/statements/if.js +1 -1
  120. package/build/src/abap/5_syntax/statements/import.js +2 -2
  121. package/build/src/abap/5_syntax/statements/import_dynpro.js +2 -2
  122. package/build/src/abap/5_syntax/statements/include_type.js +2 -2
  123. package/build/src/abap/5_syntax/statements/insert_database.js +4 -4
  124. package/build/src/abap/5_syntax/statements/insert_field_group.js +3 -3
  125. package/build/src/abap/5_syntax/statements/insert_internal.js +7 -7
  126. package/build/src/abap/5_syntax/statements/insert_report.js +1 -1
  127. package/build/src/abap/5_syntax/statements/insert_textpool.js +1 -1
  128. package/build/src/abap/5_syntax/statements/log_point.js +1 -1
  129. package/build/src/abap/5_syntax/statements/loop.js +10 -10
  130. package/build/src/abap/5_syntax/statements/loop_at_screen.js +2 -2
  131. package/build/src/abap/5_syntax/statements/message.js +5 -5
  132. package/build/src/abap/5_syntax/statements/modify_database.js +5 -5
  133. package/build/src/abap/5_syntax/statements/modify_entities.js +3 -3
  134. package/build/src/abap/5_syntax/statements/modify_internal.js +4 -4
  135. package/build/src/abap/5_syntax/statements/modify_screen.js +1 -1
  136. package/build/src/abap/5_syntax/statements/move.js +4 -4
  137. package/build/src/abap/5_syntax/statements/move_corresponding.js +2 -2
  138. package/build/src/abap/5_syntax/statements/multiply.js +2 -2
  139. package/build/src/abap/5_syntax/statements/open_dataset.js +2 -2
  140. package/build/src/abap/5_syntax/statements/pack.js +2 -2
  141. package/build/src/abap/5_syntax/statements/parameter.js +1 -1
  142. package/build/src/abap/5_syntax/statements/perform.js +4 -4
  143. package/build/src/abap/5_syntax/statements/raise.js +8 -8
  144. package/build/src/abap/5_syntax/statements/raise_event.js +1 -1
  145. package/build/src/abap/5_syntax/statements/read_entities.js +3 -3
  146. package/build/src/abap/5_syntax/statements/read_report.js +2 -2
  147. package/build/src/abap/5_syntax/statements/read_table.js +8 -8
  148. package/build/src/abap/5_syntax/statements/read_textpool.js +2 -2
  149. package/build/src/abap/5_syntax/statements/receive.js +2 -2
  150. package/build/src/abap/5_syntax/statements/replace.js +2 -2
  151. package/build/src/abap/5_syntax/statements/scan.js +2 -2
  152. package/build/src/abap/5_syntax/statements/search.js +1 -1
  153. package/build/src/abap/5_syntax/statements/select.js +1 -1
  154. package/build/src/abap/5_syntax/statements/select_loop.js +1 -1
  155. package/build/src/abap/5_syntax/statements/selectoption.js +4 -4
  156. package/build/src/abap/5_syntax/statements/set_bit.js +2 -2
  157. package/build/src/abap/5_syntax/statements/set_handler.js +2 -2
  158. package/build/src/abap/5_syntax/statements/set_locale.js +2 -2
  159. package/build/src/abap/5_syntax/statements/set_parameter.js +1 -1
  160. package/build/src/abap/5_syntax/statements/set_pf_status.js +1 -1
  161. package/build/src/abap/5_syntax/statements/set_titlebar.js +1 -1
  162. package/build/src/abap/5_syntax/statements/shift.js +2 -2
  163. package/build/src/abap/5_syntax/statements/sort.js +2 -2
  164. package/build/src/abap/5_syntax/statements/split.js +3 -3
  165. package/build/src/abap/5_syntax/statements/static.js +1 -1
  166. package/build/src/abap/5_syntax/statements/submit.js +3 -3
  167. package/build/src/abap/5_syntax/statements/subtract.js +2 -2
  168. package/build/src/abap/5_syntax/statements/subtract_corresponding.js +2 -2
  169. package/build/src/abap/5_syntax/statements/syntax_check.js +2 -2
  170. package/build/src/abap/5_syntax/statements/system_call.js +1 -1
  171. package/build/src/abap/5_syntax/statements/transfer.js +2 -2
  172. package/build/src/abap/5_syntax/statements/translate.js +2 -2
  173. package/build/src/abap/5_syntax/statements/truncate_dataset.js +1 -1
  174. package/build/src/abap/5_syntax/statements/type.js +3 -3
  175. package/build/src/abap/5_syntax/statements/unpack.js +2 -2
  176. package/build/src/abap/5_syntax/statements/update_database.js +4 -4
  177. package/build/src/abap/5_syntax/statements/wait.js +2 -2
  178. package/build/src/abap/5_syntax/statements/when.js +1 -1
  179. package/build/src/abap/5_syntax/statements/when_type.js +3 -3
  180. package/build/src/abap/5_syntax/statements/while.js +3 -3
  181. package/build/src/abap/5_syntax/statements/with.js +2 -2
  182. package/build/src/abap/5_syntax/statements/with_loop.js +2 -2
  183. package/build/src/abap/5_syntax/statements/write.js +4 -4
  184. package/build/src/abap/5_syntax/structures/data.js +1 -1
  185. package/build/src/abap/5_syntax/structures/statics.js +1 -1
  186. package/build/src/abap/types/basic/any_type.js +13 -0
  187. package/build/src/abap/types/basic/cgeneric_type.js +7 -0
  188. package/build/src/abap/types/basic/integer_type.js +7 -4
  189. package/build/src/abap/types/basic/string_type.js +7 -4
  190. package/build/src/abap/types/basic/void_type.js +10 -0
  191. package/build/src/abap/types/basic/xgeneric_type.js +7 -0
  192. package/build/src/abap/types/basic/xstring_type.js +13 -0
  193. package/build/src/abap/types/event_definition.js +1 -1
  194. package/build/src/abap/types/form_definition.js +3 -3
  195. package/build/src/abap/types/method_parameters.js +11 -11
  196. package/build/src/cds/cds_determine_types.js +5 -5
  197. package/build/src/ddic.js +11 -11
  198. package/build/src/objects/authorization_check_field.js +1 -1
  199. package/build/src/objects/lock_object.js +1 -1
  200. package/build/src/objects/maintenance_and_transport_object.js +2 -2
  201. package/build/src/objects/table.js +1 -1
  202. package/build/src/objects/view.js +1 -1
  203. package/build/src/registry.js +1 -1
  204. package/build/src/rules/downport.js +2 -1
  205. package/package.json +5 -5
@@ -46,7 +46,7 @@ class Catch {
46
46
  input.scope.addReference(token, identifier, _reference_1.ReferenceType.DataWriteReference, input.filename);
47
47
  }
48
48
  else if (token && input.scope.getDDIC().inErrorNamespace(firstClassName) === false) {
49
- const identifier = new _typed_identifier_1.TypedIdentifier(token, input.filename, new basic_1.VoidType(firstClassName), ["inline" /* IdentifierMeta.InlineDefinition */]);
49
+ const identifier = new _typed_identifier_1.TypedIdentifier(token, input.filename, basic_1.VoidType.get(firstClassName), ["inline" /* IdentifierMeta.InlineDefinition */]);
50
50
  input.scope.addIdentifier(identifier);
51
51
  input.scope.addReference(token, identifier, _reference_1.ReferenceType.DataWriteReference, input.filename);
52
52
  }
@@ -58,7 +58,7 @@ class Catch {
58
58
  }
59
59
  }
60
60
  else if (target) {
61
- new target_1.Target().runSyntax(target, input);
61
+ target_1.Target.runSyntax(target, input);
62
62
  }
63
63
  }
64
64
  }
@@ -6,7 +6,7 @@ const cond_1 = require("../expressions/cond");
6
6
  class Check {
7
7
  runSyntax(node, input) {
8
8
  for (const s of node.findDirectExpressions(Expressions.Cond)) {
9
- new cond_1.Cond().runSyntax(s, input);
9
+ cond_1.Cond.runSyntax(s, input);
10
10
  }
11
11
  }
12
12
  }
@@ -11,7 +11,7 @@ class ClassData {
11
11
  runSyntax(node, input) {
12
12
  const dd = node.findFirstExpression(Expressions.DataDefinition);
13
13
  if (dd) {
14
- const found = new data_definition_1.DataDefinition().runSyntax(dd, input);
14
+ const found = data_definition_1.DataDefinition.runSyntax(dd, input);
15
15
  if (found === undefined) {
16
16
  return undefined;
17
17
  }
@@ -19,7 +19,7 @@ class ClassData {
19
19
  && (found === null || found === void 0 ? void 0 : found.getType().containsVoid()) === false) {
20
20
  const message = "DATA 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, new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey));
22
+ return new _typed_identifier_1.TypedIdentifier(found.getToken(), input.filename, basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey));
23
23
  }
24
24
  const meta = [...found.getMeta(), "static" /* IdentifierMeta.Static */];
25
25
  return new _typed_identifier_1.TypedIdentifier(found.getToken(), input.filename, found.getType(), meta, found.getValue());
@@ -32,7 +32,7 @@ class ClassImplementation {
32
32
  }
33
33
  else {
34
34
  // todo: instead of the void type, do proper typing, ie. only empty constructor method
35
- input.scope.addIdentifier(new _typed_identifier_1.TypedIdentifier(new tokens_1.Identifier(new position_1.Position(1, 1), "super"), _builtin_1.BuiltIn.filename, new basic_1.VoidType("noSuper")));
35
+ input.scope.addIdentifier(new _typed_identifier_1.TypedIdentifier(new tokens_1.Identifier(new position_1.Position(1, 1), "super"), _builtin_1.BuiltIn.filename, basic_1.VoidType.get("noSuper")));
36
36
  }
37
37
  input.scope.addIdentifier(new _typed_identifier_1.TypedIdentifier(new tokens_1.Identifier(new position_1.Position(1, 1), "me"), _builtin_1.BuiltIn.filename, new basic_1.ObjectReferenceType(classDefinition)));
38
38
  helper.addAliasedAttributes(classDefinition); // todo, this is not correct, take care of instance vs static
@@ -7,10 +7,10 @@ const target_1 = require("../expressions/target");
7
7
  class Clear {
8
8
  runSyntax(node, input) {
9
9
  for (const t of node.findDirectExpressions(Expressions.Target)) {
10
- new target_1.Target().runSyntax(t, input);
10
+ target_1.Target.runSyntax(t, input);
11
11
  }
12
12
  for (const s of node.findDirectExpressions(Expressions.Source)) {
13
- new source_1.Source().runSyntax(s, input);
13
+ source_1.Source.runSyntax(s, input);
14
14
  }
15
15
  }
16
16
  }
@@ -6,7 +6,7 @@ const source_1 = require("../expressions/source");
6
6
  class CloseDataset {
7
7
  runSyntax(node, input) {
8
8
  for (const s of node.findDirectExpressions(Expressions.Source)) {
9
- new source_1.Source().runSyntax(s, input);
9
+ source_1.Source.runSyntax(s, input);
10
10
  }
11
11
  }
12
12
  }
@@ -9,15 +9,15 @@ class Collect {
9
9
  runSyntax(node, input) {
10
10
  const source = node.findDirectExpression(Expressions.Source);
11
11
  if (source) {
12
- new source_1.Source().runSyntax(source, input);
12
+ source_1.Source.runSyntax(source, input);
13
13
  }
14
14
  const target = node.findDirectExpression(Expressions.Target);
15
15
  if (target) {
16
- new target_1.Target().runSyntax(target, input);
16
+ target_1.Target.runSyntax(target, input);
17
17
  }
18
18
  const fs = node.findDirectExpression(Expressions.FSTarget);
19
19
  if (fs) {
20
- new fstarget_1.FSTarget().runSyntax(fs, input, undefined);
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
- new source_1.Source().runSyntax(s, input);
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
- new inline_data_1.InlineData().runSyntax(inline, input, new basic_1.VoidType("CommitEntities"));
17
+ inline_data_1.InlineData.runSyntax(inline, input, basic_1.VoidType.get("CommitEntities"));
18
18
  }
19
19
  else {
20
- new target_1.Target().runSyntax(t, input);
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
- new inline_data_1.InlineData().runSyntax(inline, input, new basic_1.XStringType());
19
+ inline_data_1.InlineData.runSyntax(inline, input, basic_1.XStringType.get());
20
20
  }
21
21
  else {
22
- new inline_data_1.InlineData().runSyntax(inline, input, basic_1.StringType.get());
22
+ inline_data_1.InlineData.runSyntax(inline, input, basic_1.StringType.get());
23
23
  }
24
24
  }
25
25
  else if (target) {
26
- const type = new target_1.Target().runSyntax(target, input);
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 = new source_1.Source().runSyntax(s, input);
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 = new source_1.Source().runSyntax(s, input);
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";
@@ -6,7 +6,7 @@ const target_1 = require("../expressions/target");
6
6
  class Condense {
7
7
  runSyntax(node, input) {
8
8
  for (const t of node.findDirectExpressions(Expressions.Target)) {
9
- new target_1.Target().runSyntax(t, input);
9
+ target_1.Target.runSyntax(t, input);
10
10
  }
11
11
  }
12
12
  }
@@ -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
- new source_1.Source().runSyntax(s, input);
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
- new inline_data_1.InlineData().runSyntax(inline, input, new basic_1.TimeType());
19
+ inline_data_1.InlineData.runSyntax(inline, input, new basic_1.TimeType());
20
20
  }
21
21
  else {
22
- new target_1.Target().runSyntax(timeTarget, input);
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
- new inline_data_1.InlineData().runSyntax(inline, input, new basic_1.DateType());
29
+ inline_data_1.InlineData.runSyntax(inline, input, new basic_1.DateType());
30
30
  }
31
31
  else {
32
- new target_1.Target().runSyntax(dateTarget, input);
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
- new inline_data_1.InlineData().runSyntax(inline, input, new basic_1.PackedType(8, 4));
39
+ inline_data_1.InlineData.runSyntax(inline, input, new basic_1.PackedType(8, 4));
40
40
  }
41
41
  else {
42
- new target_1.Target().runSyntax(stampTarget, input);
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
- new source_1.Source().runSyntax(s, input);
15
+ source_1.Source.runSyntax(s, input);
16
16
  }
17
17
  for (const t of node.findDirectExpressions(Expressions.Target)) {
18
- new target_1.Target().runSyntax(t, input);
18
+ target_1.Target.runSyntax(t, input);
19
19
  }
20
20
  for (const t of node.findDirectExpressions(Expressions.Dynamic)) {
21
- new dynamic_1.Dynamic().runSyntax(t, input);
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
- new source_1.Source().runSyntax(s, input);
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
- new target_1.Target().runSyntax(t, input);
47
+ target_1.Target.runSyntax(t, input);
48
48
  }
49
49
  const t = node.findDirectExpression(Expressions.Target);
50
50
  if (t) {
51
- const found = new target_1.Target().runSyntax(t, input);
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
- new dynamic_1.Dynamic().runSyntax(t, input);
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
- new source_1.Source().runSyntax(s, input);
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 = new source_1.Source().runSyntax(source, input);
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 = new data_definition_1.DataDefinition().runSyntax(dd, input);
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, new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey));
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
- new source_1.Source().runSyntax(s, input);
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
- new source_1.Source().runSyntax(s, input);
11
+ 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, input);
14
+ 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, input);
17
+ 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, input);
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
- new source_1.Source().runSyntax(s, input);
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 = new target_1.Target().runSyntax(target, input);
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
- new component_compare_1.ComponentCompare().runSyntax(t, input, targetType);
35
+ component_compare_1.ComponentCompare.runSyntax(t, input, targetType);
36
36
  }
37
37
  for (const t of node.findDirectExpressions(Expressions.ComponentCond)) {
38
- new component_cond_1.ComponentCond().runSyntax(t, input, targetType);
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
- new source_1.Source().runSyntax(s, input);
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
- new source_1.Source().runSyntax(s, input);
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
- new source_1.Source().runSyntax(s, input);
14
+ source_1.Source.runSyntax(s, input);
15
15
  }
16
16
  for (const s of node.findDirectExpressions(Expressions.FieldChain)) {
17
- new field_chain_1.FieldChain().runSyntax(s, input, _reference_1.ReferenceType.DataReadReference);
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
- new inline_data_1.InlineData().runSyntax(inline, input, basic_1.IntegerType.get());
23
+ inline_data_1.InlineData.runSyntax(inline, input, basic_1.IntegerType.get());
24
24
  }
25
25
  else {
26
- new target_1.Target().runSyntax(linesTarget, input);
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
- new inline_data_1.InlineData().runSyntax(inline, input, new basic_1.CharacterType(1));
33
+ inline_data_1.InlineData.runSyntax(inline, input, new basic_1.CharacterType(1));
34
34
  }
35
35
  else {
36
- new target_1.Target().runSyntax(typeTarget, input);
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
- new inline_data_1.InlineData().runSyntax(inline, input, basic_1.IntegerType.get());
43
+ inline_data_1.InlineData.runSyntax(inline, input, basic_1.IntegerType.get());
44
44
  }
45
45
  else {
46
- new target_1.Target().runSyntax(lengthTarget, input);
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
- new inline_data_1.InlineData().runSyntax(inline, input, basic_1.IntegerType.get());
53
+ inline_data_1.InlineData.runSyntax(inline, input, basic_1.IntegerType.get());
54
54
  }
55
55
  else {
56
- new target_1.Target().runSyntax(componentsTarget, input);
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
- new source_1.Source().runSyntax(s, input);
10
+ 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, input);
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 = new source_1.Source().runSyntax(s, input);
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
- new target_1.Target().runSyntax(t, input);
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
- new source_1.Source().runSyntax(s, input);
9
+ source_1.Source.runSyntax(s, input);
10
10
  }
11
11
  for (const t of node.findDirectExpressions(Expressions.SimpleSource3)) {
12
- new source_1.Source().runSyntax(t, input);
12
+ source_1.Source.runSyntax(t, input);
13
13
  }
14
14
  }
15
15
  }
@@ -6,7 +6,7 @@ const cond_1 = require("../expressions/cond");
6
6
  class ElseIf {
7
7
  runSyntax(node, input) {
8
8
  for (const s of node.findDirectExpressions(Expressions.Cond)) {
9
- new cond_1.Cond().runSyntax(s, input);
9
+ cond_1.Cond.runSyntax(s, input);
10
10
  }
11
11
  }
12
12
  }
@@ -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
- new source_1.Source().runSyntax(s, input);
11
+ 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, input);
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
- new source_1.Source().runSyntax(s, input);
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
- new inline_data_1.InlineData().runSyntax(inline, input, basic_1.StringType.get());
61
+ inline_data_1.InlineData.runSyntax(inline, input, basic_1.StringType.get());
62
62
  }
63
63
  else {
64
- new target_1.Target().runSyntax(t, input);
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
- new inline_data_1.InlineData().runSyntax(inline, input, type);
73
+ inline_data_1.InlineData.runSyntax(inline, input, type);
74
74
  }
75
75
  else {
76
- new target_1.Target().runSyntax(node, input);
76
+ target_1.Target.runSyntax(node, input);
77
77
  }
78
78
  }
79
79
  }
@@ -6,7 +6,7 @@ const source_1 = require("../expressions/source");
6
6
  class Format {
7
7
  runSyntax(node, input) {
8
8
  for (const s of node.findAllExpressions(Expressions.Source)) {
9
- new source_1.Source().runSyntax(s, input);
9
+ source_1.Source.runSyntax(s, input);
10
10
  }
11
11
  }
12
12
  }
@@ -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
- new source_1.Source().runSyntax(s, input);
11
+ 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, input);
14
+ target_1.Target.runSyntax(t, input);
15
15
  }
16
16
  for (const d of node.findDirectExpressions(Expressions.Dynamic)) {
17
- new dynamic_1.Dynamic().runSyntax(d, input);
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 = new source_1.Source().runSyntax(s, input);
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
- new inline_data_1.InlineData().runSyntax(t, input, basic_1.IntegerType.get());
25
+ inline_data_1.InlineData.runSyntax(t, input, basic_1.IntegerType.get());
26
26
  }
27
27
  else {
28
- new target_1.Target().runSyntax(t, input);
28
+ target_1.Target.runSyntax(t, input);
29
29
  }
30
30
  }
31
31
  }
@@ -6,7 +6,7 @@ const target_1 = require("../expressions/target");
6
6
  class GetCursor {
7
7
  runSyntax(node, input) {
8
8
  for (const t of node.findAllExpressions(Expressions.Target)) {
9
- new target_1.Target().runSyntax(t, input);
9
+ target_1.Target.runSyntax(t, input);
10
10
  }
11
11
  }
12
12
  }
@@ -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
- new source_1.Source().runSyntax(s, input);
10
+ 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, input);
13
+ target_1.Target.runSyntax(t, input);
14
14
  }
15
15
  }
16
16
  }