@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
@@ -7,27 +7,27 @@ const source_1 = require("./source");
7
7
  const _type_utils_1 = require("../_type_utils");
8
8
  const _syntax_input_1 = require("../_syntax_input");
9
9
  class StringTemplate {
10
- runSyntax(node, input) {
10
+ static runSyntax(node, input) {
11
11
  const typeUtils = new _type_utils_1.TypeUtils(input.scope);
12
12
  const ret = basic_1.StringType.get();
13
13
  for (const templateSource of node.findAllExpressions(Expressions.StringTemplateSource)) {
14
14
  const s = templateSource.findDirectExpression(Expressions.Source);
15
- const type = new source_1.Source().runSyntax(s, input, ret);
15
+ const type = source_1.Source.runSyntax(s, input, ret);
16
16
  if (type === undefined) {
17
17
  const message = "No target type determined";
18
18
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
19
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
19
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
20
20
  }
21
21
  else if ((typeUtils.isCharLike(type) === false && typeUtils.isHexLike(type) === false)
22
22
  || type instanceof basic_1.StructureType) {
23
23
  const message = "String template, not character like, " + type.constructor.name;
24
24
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
25
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
25
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
26
26
  }
27
27
  const format = templateSource.findDirectExpression(Expressions.StringTemplateFormatting);
28
28
  const formatConcat = format === null || format === void 0 ? void 0 : format.concatTokens();
29
29
  for (const formatSource of (format === null || format === void 0 ? void 0 : format.findAllExpressions(Expressions.Source)) || []) {
30
- new source_1.Source().runSyntax(formatSource, input);
30
+ source_1.Source.runSyntax(formatSource, input);
31
31
  }
32
32
  if (format
33
33
  && (formatConcat === null || formatConcat === void 0 ? void 0 : formatConcat.includes("ALPHA = "))
@@ -41,7 +41,7 @@ class StringTemplate {
41
41
  && !(type instanceof basic_1.AnyType)) {
42
42
  const message = `Cannot apply ALPHA to this type (${type.constructor.name})`;
43
43
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, format.getFirstToken(), message));
44
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
44
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
45
45
  }
46
46
  }
47
47
  return ret;
@@ -6,7 +6,7 @@ const source_1 = require("./source");
6
6
  const _syntax_input_1 = require("../_syntax_input");
7
7
  const basic_1 = require("../../types/basic");
8
8
  class SwitchBody {
9
- runSyntax(node, input) {
9
+ static runSyntax(node, input) {
10
10
  if (node === undefined) {
11
11
  return;
12
12
  }
@@ -14,14 +14,14 @@ class SwitchBody {
14
14
  if (!((thenSource === null || thenSource === void 0 ? void 0 : thenSource.get()) instanceof Expressions.Source)) {
15
15
  const message = "SwitchBody, unexpected";
16
16
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
17
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
17
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
18
18
  }
19
- const type = new source_1.Source().runSyntax(thenSource, input);
19
+ const type = source_1.Source.runSyntax(thenSource, input);
20
20
  for (const s of node.findDirectExpressions(Expressions.Source)) {
21
21
  if (s === thenSource) {
22
22
  continue;
23
23
  }
24
- new source_1.Source().runSyntax(s, input);
24
+ source_1.Source.runSyntax(s, input);
25
25
  }
26
26
  return type;
27
27
  }
@@ -4,12 +4,12 @@ exports.TableExpression = void 0;
4
4
  const Expressions = require("../../2_statements/expressions");
5
5
  const source_1 = require("./source");
6
6
  class TableExpression {
7
- runSyntax(node, input) {
7
+ static runSyntax(node, input) {
8
8
  if (node === undefined) {
9
9
  return;
10
10
  }
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
  }
15
15
  }
@@ -16,7 +16,7 @@ const field_length_1 = require("./field_length");
16
16
  const cast_1 = require("./cast");
17
17
  const _syntax_input_1 = require("../_syntax_input");
18
18
  class Target {
19
- runSyntax(node, input) {
19
+ static runSyntax(node, input) {
20
20
  const concat = node.concatTokens();
21
21
  if (concat.includes("-")) {
22
22
  // workaround for names with dashes
@@ -26,8 +26,8 @@ class Target {
26
26
  return found.getType();
27
27
  }
28
28
  }
29
- const children = node.getChildren().slice();
30
- const first = children.shift();
29
+ const children = node.getChildren();
30
+ const first = children[0];
31
31
  if (first === undefined || !(first instanceof nodes_1.ExpressionNode)) {
32
32
  return undefined;
33
33
  }
@@ -35,18 +35,20 @@ class Target {
35
35
  if (context === undefined) {
36
36
  const message = `"${first.getFirstToken().getStr()}" not found, Target`;
37
37
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
38
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
38
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
39
39
  }
40
- while (children.length > 0) {
41
- const current = children.shift();
40
+ let currentIndex = 1;
41
+ while (currentIndex <= children.length) {
42
+ const current = children[currentIndex];
42
43
  if (current === undefined) {
43
44
  break;
44
45
  }
46
+ currentIndex++;
45
47
  if (current.get() instanceof tokens_1.Dash) {
46
48
  if (context instanceof unknown_type_1.UnknownType) {
47
49
  const message = "Not a structure, type unknown, target";
48
50
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
49
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
51
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
50
52
  }
51
53
  else if (!(context instanceof basic_1.StructureType)
52
54
  && !(context instanceof basic_1.TableType && context.isWithHeader() && context.getRowType() instanceof basic_1.StructureType)
@@ -54,7 +56,7 @@ class Target {
54
56
  && !(context instanceof basic_1.VoidType)) {
55
57
  const message = "Not a structure, target";
56
58
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
57
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
59
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
58
60
  }
59
61
  }
60
62
  else if (current.get() instanceof tokens_1.InstanceArrow) {
@@ -63,21 +65,21 @@ class Target {
63
65
  && !(context instanceof basic_1.VoidType)) {
64
66
  const message = "Not an object reference, target";
65
67
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
66
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
68
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
67
69
  }
68
70
  }
69
71
  else if (current.get() instanceof expressions_1.Dereference) {
70
72
  if (!(context instanceof basic_1.DataReference) && !(context instanceof basic_1.VoidType)) {
71
73
  const message = "Not an object reference, target";
72
74
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
73
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
75
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
74
76
  }
75
77
  if (!(context instanceof basic_1.VoidType)) {
76
78
  context = context.getType();
77
79
  }
78
80
  }
79
81
  else if (current.get() instanceof Expressions.ComponentName) {
80
- context = new component_name_1.ComponentName().runSyntax(context, current, input);
82
+ context = component_name_1.ComponentName.runSyntax(context, current, input);
81
83
  }
82
84
  else if (current.get() instanceof Expressions.TableBody) {
83
85
  if (!(context instanceof basic_1.TableType)
@@ -86,7 +88,7 @@ class Target {
86
88
  && !(context instanceof unknown_type_1.UnknownType)) {
87
89
  const message = "Not a internal table, \"[]\"";
88
90
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
89
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
91
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
90
92
  }
91
93
  if (context instanceof basic_1.TableType && context.isWithHeader()) {
92
94
  context = new basic_1.TableType(context.getRowType(), Object.assign(Object.assign({}, context.getOptions()), { withHeader: false }));
@@ -97,16 +99,16 @@ class Target {
97
99
  if (!(context instanceof basic_1.TableType) && !(context instanceof basic_1.VoidType)) {
98
100
  const message = "Table expression, expected table";
99
101
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
100
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
102
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
101
103
  }
102
- new table_expression_1.TableExpression().runSyntax(current, input);
104
+ table_expression_1.TableExpression.runSyntax(current, input);
103
105
  if (!(context instanceof basic_1.VoidType)) {
104
106
  context = context.getRowType();
105
107
  }
106
108
  }
107
109
  else if (current.get() instanceof Expressions.AttributeName) {
108
110
  const type = children.length === 0 ? _reference_1.ReferenceType.DataWriteReference : _reference_1.ReferenceType.DataReadReference;
109
- context = new attribute_name_1.AttributeName().runSyntax(context, current, input, type);
111
+ context = attribute_name_1.AttributeName.runSyntax(context, current, input, type);
110
112
  }
111
113
  }
112
114
  const offset = node.findDirectExpression(Expressions.FieldOffset);
@@ -114,23 +116,23 @@ class Target {
114
116
  if (context instanceof basic_1.XStringType || context instanceof basic_1.StringType) {
115
117
  const message = "xstring/string offset/length in writer position not possible";
116
118
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
117
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
119
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
118
120
  }
119
- new field_offset_1.FieldOffset().runSyntax(offset, input);
121
+ field_offset_1.FieldOffset.runSyntax(offset, input);
120
122
  }
121
123
  const length = node.findDirectExpression(Expressions.FieldLength);
122
124
  if (length) {
123
125
  if (context instanceof basic_1.XStringType || context instanceof basic_1.StringType) {
124
126
  const message = "xstring/string offset/length in writer position not possible";
125
127
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
126
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
128
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
127
129
  }
128
- new field_length_1.FieldLength().runSyntax(length, input);
130
+ field_length_1.FieldLength.runSyntax(length, input);
129
131
  }
130
132
  return context;
131
133
  }
132
134
  /////////////////////////////////
133
- findTop(node, input) {
135
+ static findTop(node, input) {
134
136
  if (node === undefined) {
135
137
  return undefined;
136
138
  }
@@ -158,18 +160,18 @@ class Target {
158
160
  }
159
161
  else if (input.scope.getDDIC().inErrorNamespace(name) === false) {
160
162
  input.scope.addReference(token, undefined, _reference_1.ReferenceType.ObjectOrientedVoidReference, input.filename, { ooName: name, ooType: "CLAS" });
161
- return new basic_1.VoidType(name);
163
+ return basic_1.VoidType.get(name);
162
164
  }
163
165
  else {
164
166
  return new unknown_type_1.UnknownType(name + " unknown, Target");
165
167
  }
166
168
  }
167
169
  else if (node.get() instanceof Expressions.Cast && node instanceof nodes_1.ExpressionNode) {
168
- const ret = new cast_1.Cast().runSyntax(node, input, undefined);
170
+ const ret = cast_1.Cast.runSyntax(node, input, undefined);
169
171
  if (ret instanceof unknown_type_1.UnknownType) {
170
172
  const message = "CAST, uknown type";
171
173
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
172
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
174
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
173
175
  }
174
176
  return ret;
175
177
  }
@@ -8,7 +8,7 @@ const basic_1 = require("../../types/basic");
8
8
  const _scope_type_1 = require("../_scope_type");
9
9
  const type_table_key_1 = require("./type_table_key");
10
10
  class TypeTable {
11
- runSyntax(node, input, qualifiedNamePrefix) {
11
+ static runSyntax(node, input, qualifiedNamePrefix) {
12
12
  // todo, input is currently the statement, but should be the expression?
13
13
  let nameExpr = node.findFirstExpression(Expressions.DefinitionName);
14
14
  if (nameExpr === undefined) {
@@ -31,7 +31,7 @@ class TypeTable {
31
31
  return new _typed_identifier_1.TypedIdentifier(name, input.filename, new basic_1.UnknownType("TableType, fallback"));
32
32
  }
33
33
  for (const tt of node.findAllExpressions(Expressions.TypeTableKey)) {
34
- const error = new type_table_key_1.TypeTableKey().runSyntax(tt, type);
34
+ const error = type_table_key_1.TypeTableKey.runSyntax(tt, type);
35
35
  if (error) {
36
36
  type = error;
37
37
  }
@@ -4,7 +4,7 @@ exports.TypeTableKey = void 0;
4
4
  const Expressions = require("../../2_statements/expressions");
5
5
  const basic_1 = require("../../types/basic");
6
6
  class TypeTableKey {
7
- runSyntax(node, type) {
7
+ static runSyntax(node, type) {
8
8
  if (type instanceof basic_1.TableType) {
9
9
  const rowType = type.getRowType();
10
10
  if (rowType instanceof basic_1.StructureType) {
@@ -9,7 +9,7 @@ const field_assignment_1 = require("./field_assignment");
9
9
  const basic_1 = require("../../types/basic");
10
10
  const _syntax_input_1 = require("../_syntax_input");
11
11
  class ValueBody {
12
- runSyntax(node, input, targetType) {
12
+ static runSyntax(node, input, targetType) {
13
13
  var _a;
14
14
  if (node === undefined) {
15
15
  return targetType;
@@ -17,31 +17,31 @@ class ValueBody {
17
17
  let letScoped = false;
18
18
  const letNode = node.findDirectExpression(Expressions.Let);
19
19
  if (letNode) {
20
- letScoped = new let_1.Let().runSyntax(letNode, input);
20
+ letScoped = let_1.Let.runSyntax(letNode, input);
21
21
  }
22
22
  let forScopes = 0;
23
23
  for (const forNode of node.findDirectExpressions(Expressions.For) || []) {
24
- const scoped = new for_1.For().runSyntax(forNode, input);
24
+ const scoped = for_1.For.runSyntax(forNode, input);
25
25
  if (scoped === true) {
26
26
  forScopes++;
27
27
  }
28
28
  }
29
29
  const fields = new Set();
30
30
  for (const s of node.findDirectExpressions(Expressions.FieldAssignment)) {
31
- new field_assignment_1.FieldAssignment().runSyntax(s, input, targetType);
31
+ field_assignment_1.FieldAssignment.runSyntax(s, input, targetType);
32
32
  const fieldname = (_a = s.findDirectExpression(Expressions.FieldSub)) === null || _a === void 0 ? void 0 : _a.concatTokens().toUpperCase();
33
33
  if (fieldname) {
34
34
  if (fields.has(fieldname)) {
35
35
  const message = "Duplicate field assignment";
36
36
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, s.getFirstToken(), message));
37
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
37
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
38
38
  }
39
39
  fields.add(fieldname);
40
40
  }
41
41
  }
42
42
  let type = undefined; // todo, this is only correct if there is a single source in the body
43
43
  for (const s of node.findDirectExpressions(Expressions.Source)) {
44
- type = new source_1.Source().runSyntax(s, input, type);
44
+ type = source_1.Source.runSyntax(s, input, type);
45
45
  }
46
46
  for (const foo of node.findDirectExpressions(Expressions.ValueBodyLine)) {
47
47
  if (!(targetType instanceof basic_1.TableType)
@@ -51,7 +51,7 @@ class ValueBody {
51
51
  && !(targetType instanceof basic_1.VoidType)) {
52
52
  const message = "Value, not a table type";
53
53
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, foo.getFirstToken(), message));
54
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
54
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
55
55
  }
56
56
  let rowType = targetType;
57
57
  if (targetType instanceof basic_1.TableType) {
@@ -60,14 +60,14 @@ class ValueBody {
60
60
  for (const l of foo.findDirectExpressions(Expressions.ValueBodyLines)) {
61
61
  for (const s of l.findDirectExpressions(Expressions.Source)) {
62
62
  // LINES OF ?? todo, pass type,
63
- new source_1.Source().runSyntax(s, input);
63
+ source_1.Source.runSyntax(s, input);
64
64
  }
65
65
  }
66
66
  for (const s of foo.findDirectExpressions(Expressions.FieldAssignment)) {
67
- new field_assignment_1.FieldAssignment().runSyntax(s, input, rowType);
67
+ field_assignment_1.FieldAssignment.runSyntax(s, input, rowType);
68
68
  }
69
69
  for (const s of foo.findDirectExpressions(Expressions.Source)) {
70
- new source_1.Source().runSyntax(s, input, rowType);
70
+ source_1.Source.runSyntax(s, input, rowType);
71
71
  }
72
72
  }
73
73
  if (letScoped === true) {
@@ -7,10 +7,10 @@ const target_1 = require("../expressions/target");
7
7
  class Add {
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 AddCorresponding {
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
  }
@@ -15,7 +15,7 @@ class Append {
15
15
  let targetType = undefined;
16
16
  const target = node.findDirectExpression(Expressions.Target);
17
17
  if (target) {
18
- targetType = new target_1.Target().runSyntax(target, input);
18
+ targetType = target_1.Target.runSyntax(target, input);
19
19
  }
20
20
  const fsTarget = node.findExpressionAfterToken("ASSIGNING");
21
21
  if (fsTarget && fsTarget.get() instanceof Expressions.FSTarget) {
@@ -25,7 +25,7 @@ class Append {
25
25
  return;
26
26
  }
27
27
  const rowType = targetType instanceof basic_1.TableType ? targetType.getRowType() : targetType;
28
- new fstarget_1.FSTarget().runSyntax(fsTarget, input, rowType);
28
+ fstarget_1.FSTarget.runSyntax(fsTarget, input, rowType);
29
29
  }
30
30
  const dataTarget = node.findExpressionAfterToken("INTO");
31
31
  if (dataTarget && node.concatTokens().toUpperCase().includes(" REFERENCE INTO DATA(")) {
@@ -35,7 +35,7 @@ class Append {
35
35
  return;
36
36
  }
37
37
  const rowType = targetType instanceof basic_1.TableType ? targetType.getRowType() : targetType;
38
- new inline_data_1.InlineData().runSyntax(dataTarget, input, new basic_1.DataReference(rowType));
38
+ inline_data_1.InlineData.runSyntax(dataTarget, input, new basic_1.DataReference(rowType));
39
39
  }
40
40
  let source = node.findDirectExpression(Expressions.SimpleSource4);
41
41
  if (source === undefined) {
@@ -57,7 +57,7 @@ class Append {
57
57
  else if (targetType instanceof basic_1.VoidType) {
58
58
  rowType = targetType;
59
59
  }
60
- let sourceType = new source_1.Source().runSyntax(source, input, rowType);
60
+ let sourceType = source_1.Source.runSyntax(source, input, rowType);
61
61
  if (node.findDirectTokenByText("LINES")) {
62
62
  // hmm, checking only the row types are compatible will not check the table type, e.g. sorted or hashed
63
63
  if (sourceType instanceof basic_1.TableType) {
@@ -82,11 +82,11 @@ class Append {
82
82
  }
83
83
  const from = node.findExpressionAfterToken("FROM");
84
84
  if (from && from.get() instanceof Expressions.Source) {
85
- new source_1.Source().runSyntax(from, input);
85
+ source_1.Source.runSyntax(from, input);
86
86
  }
87
87
  const to = node.findExpressionAfterToken("TO");
88
88
  if (to && to.get() instanceof Expressions.Source) {
89
- new source_1.Source().runSyntax(to, input);
89
+ source_1.Source.runSyntax(to, input);
90
90
  }
91
91
  }
92
92
  }
@@ -6,7 +6,7 @@ const cond_1 = require("../expressions/cond");
6
6
  class Assert {
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
  }
@@ -26,15 +26,15 @@ class Assign {
26
26
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
27
27
  return;
28
28
  }
29
- sourceType = new basic_1.VoidType("Dynamic");
29
+ sourceType = basic_1.VoidType.get("Dynamic");
30
30
  }
31
31
  else {
32
- sourceType = new source_1.Source().runSyntax(theSource, input);
32
+ sourceType = source_1.Source.runSyntax(theSource, input);
33
33
  }
34
34
  if ((assignSource === null || assignSource === void 0 ? void 0 : assignSource.getChildren().length) === 5
35
35
  && ((_a = assignSource === null || assignSource === void 0 ? void 0 : assignSource.getFirstChild()) === null || _a === void 0 ? void 0 : _a.concatTokens().toUpperCase()) === "COMPONENT") {
36
36
  const componentSource = sources[sources.length - 2];
37
- const componentType = new source_1.Source().runSyntax(componentSource, input);
37
+ const componentType = source_1.Source.runSyntax(componentSource, input);
38
38
  if (new _type_utils_1.TypeUtils(input.scope).isAssignable(componentType, new basic_1.CharacterType(30)) === false) {
39
39
  const message = "component name must be charlike";
40
40
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
@@ -42,25 +42,25 @@ class Assign {
42
42
  }
43
43
  }
44
44
  if (sourceType === undefined || (assignSource === null || assignSource === void 0 ? void 0 : assignSource.findDirectExpression(Expressions.Dynamic))) {
45
- sourceType = new basic_1.AnyType();
45
+ sourceType = basic_1.AnyType.get();
46
46
  }
47
47
  for (const d of (assignSource === null || assignSource === void 0 ? void 0 : assignSource.findAllExpressions(Expressions.Dynamic)) || []) {
48
- new dynamic_1.Dynamic().runSyntax(d, input);
48
+ dynamic_1.Dynamic.runSyntax(d, input);
49
49
  }
50
50
  const target = node.findDirectExpression(Expressions.FSTarget);
51
51
  if (target) {
52
52
  if (((_b = assignSource === null || assignSource === void 0 ? void 0 : assignSource.getFirstChild()) === null || _b === void 0 ? void 0 : _b.concatTokens().toUpperCase()) === "COMPONENT") {
53
- new fstarget_1.FSTarget().runSyntax(target, input, new basic_1.AnyType());
53
+ fstarget_1.FSTarget.runSyntax(target, input, basic_1.AnyType.get());
54
54
  }
55
55
  else {
56
- new fstarget_1.FSTarget().runSyntax(target, input, sourceType);
56
+ fstarget_1.FSTarget.runSyntax(target, input, sourceType);
57
57
  }
58
58
  }
59
59
  for (const s of node.findAllExpressions(Expressions.Source)) {
60
60
  if (s === theSource) {
61
61
  continue;
62
62
  }
63
- new source_1.Source().runSyntax(s, input);
63
+ source_1.Source.runSyntax(s, input);
64
64
  }
65
65
  }
66
66
  }
@@ -6,7 +6,7 @@ const source_1 = require("../expressions/source");
6
6
  class AuthorityCheck {
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
  }
@@ -12,7 +12,7 @@ class Call {
12
12
  const children = node.getChildren();
13
13
  if (children.length === 2) {
14
14
  const first = children[0];
15
- new method_call_chain_1.MethodCallChain().runSyntax(first, input);
15
+ method_call_chain_1.MethodCallChain.runSyntax(first, input);
16
16
  return;
17
17
  }
18
18
  const methodSource = children[2];
@@ -21,11 +21,11 @@ class Call {
21
21
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
22
22
  return;
23
23
  }
24
- const methodDef = new method_source_1.MethodSource().runSyntax(methodSource, input);
24
+ const methodDef = method_source_1.MethodSource.runSyntax(methodSource, input);
25
25
  const body = children[3];
26
26
  if (body instanceof nodes_1.ExpressionNode) {
27
27
  // todo, resolve the method definition above and pass, if possible, in case of dynamic pass void
28
- new method_call_body_1.MethodCallBody().runSyntax(body, input, methodDef || new void_type_1.VoidType("CallTODO"));
28
+ method_call_body_1.MethodCallBody.runSyntax(body, input, methodDef || void_type_1.VoidType.get("CallTODO"));
29
29
  }
30
30
  }
31
31
  }
@@ -8,13 +8,13 @@ const dynamic_1 = require("../expressions/dynamic");
8
8
  class CallBadi {
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.findAllExpressions(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.findAllExpressions(Expressions.Dynamic)) {
17
- new dynamic_1.Dynamic().runSyntax(d, input);
17
+ dynamic_1.Dynamic.runSyntax(d, input);
18
18
  }
19
19
  }
20
20
  }
@@ -14,7 +14,7 @@ class CallFunction {
14
14
  const name = node.findFirstExpression(Expressions.FunctionName);
15
15
  const chain = name === null || name === void 0 ? void 0 : name.findFirstExpression(Expressions.FieldChain);
16
16
  if (chain) {
17
- new field_chain_1.FieldChain().runSyntax(chain, input, _reference_1.ReferenceType.DataReadReference);
17
+ field_chain_1.FieldChain.runSyntax(chain, input, _reference_1.ReferenceType.DataReadReference);
18
18
  }
19
19
  else if (input.scope.getVersion() === version_1.Version.Cloud
20
20
  && node.findDirectExpression(Expressions.Destination) === undefined) {
@@ -27,20 +27,20 @@ class CallFunction {
27
27
  }
28
28
  // just recurse
29
29
  for (const s of node.findAllExpressions(Expressions.Source)) {
30
- new source_1.Source().runSyntax(s, input);
30
+ source_1.Source.runSyntax(s, input);
31
31
  }
32
32
  for (const s of node.findAllExpressions(Expressions.SimpleSource3)) {
33
- new source_1.Source().runSyntax(s, input);
33
+ source_1.Source.runSyntax(s, input);
34
34
  }
35
35
  for (const t of node.findAllExpressions(Expressions.Target)) {
36
- new target_1.Target().runSyntax(t, input);
36
+ target_1.Target.runSyntax(t, input);
37
37
  }
38
38
  for (const s of node.findDirectExpressions(Expressions.SimpleSource2)) {
39
- new source_1.Source().runSyntax(s, input);
39
+ source_1.Source.runSyntax(s, input);
40
40
  }
41
41
  const exceptions = node.findFirstExpression(Expressions.ParameterException);
42
42
  for (const s of (exceptions === null || exceptions === void 0 ? void 0 : exceptions.findAllExpressions(Expressions.SimpleFieldChain)) || []) {
43
- new field_chain_1.FieldChain().runSyntax(s, input, _reference_1.ReferenceType.DataReadReference);
43
+ field_chain_1.FieldChain.runSyntax(s, input, _reference_1.ReferenceType.DataReadReference);
44
44
  }
45
45
  }
46
46
  }
@@ -6,7 +6,7 @@ const source_1 = require("../expressions/source");
6
6
  class CallKernel {
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
  }
@@ -7,10 +7,10 @@ const source_1 = require("../expressions/source");
7
7
  class CallTransaction {
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
  }
@@ -10,18 +10,18 @@ const dynamic_1 = require("../expressions/dynamic");
10
10
  class CallTransformation {
11
11
  runSyntax(node, input) {
12
12
  for (const s of node.findAllExpressions(Expressions.SimpleSource3)) {
13
- new source_1.Source().runSyntax(s, input);
13
+ source_1.Source.runSyntax(s, input);
14
14
  }
15
15
  for (const d of node.findAllExpressions(Expressions.Dynamic)) {
16
- new dynamic_1.Dynamic().runSyntax(d, input);
16
+ dynamic_1.Dynamic.runSyntax(d, input);
17
17
  }
18
18
  for (const t of node.findAllExpressions(Expressions.Target)) {
19
19
  const inline = t === null || t === void 0 ? void 0 : t.findDirectExpression(Expressions.InlineData);
20
20
  if (inline) {
21
- new inline_data_1.InlineData().runSyntax(inline, input, new basic_1.XStringType());
21
+ inline_data_1.InlineData.runSyntax(inline, input, basic_1.XStringType.get());
22
22
  }
23
23
  else {
24
- new target_1.Target().runSyntax(t, input);
24
+ target_1.Target.runSyntax(t, input);
25
25
  }
26
26
  }
27
27
  }
@@ -7,7 +7,7 @@ class Case {
7
7
  runSyntax(node, input) {
8
8
  // just recurse
9
9
  for (const s of node.findDirectExpressions(Expressions.Source)) {
10
- new source_1.Source().runSyntax(s, input);
10
+ source_1.Source.runSyntax(s, input);
11
11
  }
12
12
  }
13
13
  }
@@ -7,7 +7,7 @@ class CaseType {
7
7
  runSyntax(node, input) {
8
8
  // just recurse
9
9
  for (const s of node.findDirectExpressions(Expressions.Source)) {
10
- new source_1.Source().runSyntax(s, input);
10
+ source_1.Source.runSyntax(s, input);
11
11
  }
12
12
  }
13
13
  }