@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.
Files changed (205) hide show
  1. package/build/abaplint.d.ts +18 -3
  2. package/build/src/abap/5_syntax/_builtin.js +10 -10
  3. package/build/src/abap/5_syntax/_current_scope.js +13 -0
  4. package/build/src/abap/5_syntax/_procedural.js +2 -2
  5. package/build/src/abap/5_syntax/_type_utils.js +13 -7
  6. package/build/src/abap/5_syntax/basic_types.js +11 -11
  7. package/build/src/abap/5_syntax/expressions/attribute_chain.js +5 -5
  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 -4
  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 +14 -14
  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 +30 -30
  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 +19 -19
  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/xml_consistency.js +1 -1
  205. 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
- 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.SimpleTarget)) {
13
- new target_1.Target().runSyntax(t, input);
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
- new source_1.Source().runSyntax(s, input);
12
+ source_1.Source.runSyntax(s, input);
13
13
  }
14
14
  for (const t of node.findAllExpressions(Expressions.Target)) {
15
- new target_1.Target().runSyntax(t, input);
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
- 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
  }
@@ -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
- 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
  }
@@ -6,7 +6,7 @@ const source_1 = require("../expressions/source");
6
6
  class Search {
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
  }
@@ -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
- new select_1.Select().runSyntax(s, input, last === false);
13
+ select_1.Select.runSyntax(s, input, last === false);
14
14
  }
15
15
  }
16
16
  }
@@ -7,7 +7,7 @@ class SelectLoop {
7
7
  runSyntax(node, input) {
8
8
  const s = node.findDirectExpression(Expressions.SelectLoop);
9
9
  if (s) {
10
- new select_loop_1.SelectLoop().runSyntax(s, input);
10
+ select_loop_1.SelectLoop.runSyntax(s, input);
11
11
  }
12
12
  }
13
13
  }
@@ -21,8 +21,8 @@ class SelectOption {
21
21
  return;
22
22
  }
23
23
  for (const d of node.findDirectExpressions(Expressions.Dynamic)) {
24
- new dynamic_1.Dynamic().runSyntax(d, input);
25
- input.scope.addIdentifier(new _typed_identifier_1.TypedIdentifier(nameToken, input.filename, new basic_1.VoidType("DYNAMIC_SELECT_OPTION")));
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 = new basic_1.VoidType("Selectoption, fallback");
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, new basic_1.VoidType("SELECT-OPTION magic")));
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
- 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
- const typ = new target_1.Target().runSyntax(t, input);
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
- new source_1.Source().runSyntax(s, input);
10
+ source_1.Source.runSyntax(s, input);
11
11
  }
12
12
  for (const s of node.findDirectExpressions(Expressions.MethodSource)) {
13
- new method_source_1.MethodSource().runSyntax(s, input);
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
- 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
  }
@@ -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
- 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 SetPFStatus {
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 SetTitlebar {
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,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
- new source_1.Source().runSyntax(s, input);
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 = new target_1.Target().runSyntax(target, input);
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
- new dynamic_1.Dynamic().runSyntax(s, input);
13
+ dynamic_1.Dynamic.runSyntax(s, input);
14
14
  }
15
15
  const tnode = node.findDirectExpression(Expressions.Target);
16
16
  if (tnode) {
17
- const ttype = new target_1.Target().runSyntax(tnode, input);
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
- new inline_data_1.InlineData().runSyntax(inline, input, type);
18
+ inline_data_1.InlineData.runSyntax(inline, input, type);
19
19
  }
20
20
  else {
21
- let targetType = new target_1.Target().runSyntax(target, input);
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
- new source_1.Source().runSyntax(s, input);
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 = new type_table_1.TypeTable().runSyntax(node, input);
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
- 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 t of node.findDirectExpressions(Expressions.Dynamic)) {
17
- new dynamic_1.Dynamic().runSyntax(t, input);
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
- 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
  }
@@ -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
- 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
  }
@@ -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
- 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
  }
@@ -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
- new source_1.Source().runSyntax(s, input);
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
- new source_1.Source().runSyntax(source, input);
10
+ source_1.Source.runSyntax(source, input);
11
11
  }
12
12
  const target = node.findDirectExpression(Expressions.Target);
13
13
  if (target) {
14
- new target_1.Target().runSyntax(target, input);
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
- 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
  }
@@ -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
- new source_1.Source().runSyntax(s, input);
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 new type_table_1.TypeTable().runSyntax(node, input, qualifiedNamePrefix);
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, 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
  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, new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey));
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
- 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
  }
@@ -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
- new database_table_1.DatabaseTable().runSyntax(dbtab, input);
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
- new source_1.Source().runSyntax(s, input);
33
+ source_1.Source.runSyntax(s, input);
34
34
  }
35
35
  for (const s of node.findAllExpressions(Expressions.SimpleSource3)) {
36
- new source_1.Source().runSyntax(s, input);
36
+ source_1.Source.runSyntax(s, input);
37
37
  }
38
38
  for (const d of node.findAllExpressions(Expressions.Dynamic)) {
39
- new dynamic_1.Dynamic().runSyntax(d, input);
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
- 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.Cond)) {
13
- new cond_1.Cond().runSyntax(t, input);
13
+ cond_1.Cond.runSyntax(t, input);
14
14
  }
15
15
  }
16
16
  }
@@ -6,7 +6,7 @@ const source_1 = require("../expressions/source");
6
6
  class When {
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
  }
@@ -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 = new basic_1.VoidType(className);
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
- new inline_data_1.InlineData().runSyntax(inline, input, type);
33
+ inline_data_1.InlineData.runSyntax(inline, input, type);
34
34
  }
35
35
  else if (target) {
36
- new target_1.Target().runSyntax(target, input);
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
- new cond_1.Cond().runSyntax(s, input);
11
+ cond_1.Cond.runSyntax(s, input);
12
12
  }
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.Target)) {
17
- new target_1.Target().runSyntax(s, input);
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
- new select_1.Select().runSyntax(s, input);
10
+ select_1.Select.runSyntax(s, input);
11
11
  }
12
12
  for (const s of node.findAllExpressions(Expressions.SelectLoop)) {
13
- new select_loop_1.SelectLoop().runSyntax(s, input);
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
- new select_1.Select().runSyntax(s, input);
10
+ select_1.Select.runSyntax(s, input);
11
11
  }
12
12
  for (const s of node.findAllExpressions(Expressions.SelectLoop)) {
13
- new select_loop_1.SelectLoop().runSyntax(s, input);
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 = new source_1.Source().runSyntax(s, input);
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
- new field_chain_1.FieldChain().runSyntax(s, input, _reference_1.ReferenceType.DataReadReference);
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
- new dynamic_1.Dynamic().runSyntax(s, input);
34
+ dynamic_1.Dynamic.runSyntax(s, input);
35
35
  }
36
36
  const target = node.findDirectExpression(Expressions.Target);
37
37
  if (target) {
38
- new target_1.Target().runSyntax(target, input);
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, new Basic.VoidType(_syntax_input_1.CheckSyntaxKey));
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, new Basic.VoidType(_syntax_input_1.CheckSyntaxKey));
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