@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
@@ -9,25 +9,25 @@ const fstarget_1 = require("./fstarget");
9
9
  const target_1 = require("./target");
10
10
  const source_1 = require("./source");
11
11
  class LoopGroupBy {
12
- runSyntax(node, input) {
12
+ static runSyntax(node, input) {
13
13
  for (const t of node.findAllExpressions(Expressions.Target)) {
14
14
  const inline = t.findDirectExpression(Expressions.InlineData);
15
15
  if (inline) {
16
- new inline_data_1.InlineData().runSyntax(inline, input, new basic_1.VoidType("todoGroupBy"));
16
+ inline_data_1.InlineData.runSyntax(inline, input, basic_1.VoidType.get("todoGroupBy"));
17
17
  }
18
18
  else {
19
- new target_1.Target().runSyntax(t, input);
19
+ target_1.Target.runSyntax(t, input);
20
20
  }
21
21
  }
22
22
  for (const t of node.findAllExpressions(Expressions.FSTarget)) {
23
- new fstarget_1.FSTarget().runSyntax(t, input, new basic_1.VoidType("todoGroupBy"));
23
+ fstarget_1.FSTarget.runSyntax(t, input, basic_1.VoidType.get("todoGroupBy"));
24
24
  }
25
25
  for (const t of node.findDirectExpressions(Expressions.Source)) {
26
- new source_1.Source().runSyntax(t, input, new basic_1.VoidType("todoGroupBy"));
26
+ source_1.Source.runSyntax(t, input, basic_1.VoidType.get("todoGroupBy"));
27
27
  }
28
28
  for (const c of node.findDirectExpressions(Expressions.LoopGroupByComponent)) {
29
29
  for (const t of c.findDirectExpressions(Expressions.ComponentCompareSingle)) {
30
- new component_compare_1.ComponentCompare().runSyntax(t, input);
30
+ component_compare_1.ComponentCompare.runSyntax(t, input);
31
31
  }
32
32
  }
33
33
  }
@@ -4,10 +4,10 @@ exports.MessageSource = void 0;
4
4
  const Expressions = require("../../2_statements/expressions");
5
5
  const source_1 = require("./source");
6
6
  class MessageSource {
7
- runSyntax(node, input) {
7
+ static runSyntax(node, input) {
8
8
  var _a, _b, _c, _d, _e;
9
9
  for (const f of node.findDirectExpressions(Expressions.Source)) {
10
- new source_1.Source().runSyntax(f, input);
10
+ source_1.Source.runSyntax(f, input);
11
11
  }
12
12
  if (node.getFirstToken().getStr().toUpperCase() === "ID") {
13
13
  const id = (_a = node.findExpressionAfterToken("ID")) === null || _a === void 0 ? void 0 : _a.concatTokens();
@@ -6,18 +6,18 @@ const method_parameters_1 = require("./method_parameters");
6
6
  const source_1 = require("./source");
7
7
  const method_call_param_1 = require("./method_call_param");
8
8
  class MethodCallBody {
9
- runSyntax(node, input, method) {
9
+ static runSyntax(node, input, method) {
10
10
  const parameters = node.findDirectExpression(Expressions.MethodParameters);
11
11
  if (parameters) {
12
12
  new method_parameters_1.MethodParameters().runSyntax(parameters, input, method);
13
13
  }
14
14
  const param = node.findDirectExpression(Expressions.MethodCallParam);
15
15
  if (param) {
16
- new method_call_param_1.MethodCallParam().runSyntax(param, input, method);
16
+ method_call_param_1.MethodCallParam.runSyntax(param, input, method);
17
17
  }
18
18
  // for PARAMETER-TABLE and EXCEPTION-TABLE
19
19
  for (const s of node.findDirectExpressions(Expressions.Source)) {
20
- new source_1.Source().runSyntax(s, input);
20
+ source_1.Source.runSyntax(s, input);
21
21
  }
22
22
  }
23
23
  }
@@ -15,26 +15,28 @@ const component_name_1 = require("./component_name");
15
15
  const attribute_name_1 = require("./attribute_name");
16
16
  const _syntax_input_1 = require("../_syntax_input");
17
17
  class MethodCallChain {
18
- runSyntax(node, input, targetType) {
18
+ static runSyntax(node, input, targetType) {
19
19
  var _a, _b;
20
20
  const helper = new _object_oriented_1.ObjectOriented(input.scope);
21
- const children = node.getChildren().slice();
22
- const first = children.shift();
21
+ const children = node.getChildren();
22
+ const first = children[0];
23
23
  if (first === undefined) {
24
24
  const message = "MethodCallChain, first child expected";
25
25
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
26
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
26
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
27
27
  }
28
+ let currentIndex = 1;
28
29
  let context = this.findTop(first, input, targetType);
29
30
  if (first.get() instanceof Expressions.MethodCall) {
30
- children.unshift(first);
31
+ currentIndex--;
31
32
  }
32
33
  let previous = undefined;
33
- while (children.length > 0) {
34
- const current = children.shift();
34
+ while (currentIndex <= children.length) {
35
+ const current = children[currentIndex];
35
36
  if (current === undefined) {
36
37
  break;
37
38
  }
39
+ currentIndex++;
38
40
  if (current instanceof nodes_1.ExpressionNode && current.get() instanceof Expressions.MethodCall) {
39
41
  // for built-in methods set className to undefined
40
42
  const className = context instanceof basic_1.ObjectReferenceType ? context.getIdentifierName() : undefined;
@@ -53,7 +55,7 @@ class MethodCallChain {
53
55
  if (previous && previous.getFirstToken().getStr() === "=>" && (method === null || method === void 0 ? void 0 : method.isStatic()) === false) {
54
56
  const message = "Method \"" + methodName + "\" not static";
55
57
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, methodToken, message));
56
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
58
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
57
59
  }
58
60
  const voidedName = context instanceof basic_1.VoidType ? context.getVoided() : undefined;
59
61
  const extra = helper.methodReferenceExtras(foundDef, className || voidedName);
@@ -72,7 +74,7 @@ class MethodCallChain {
72
74
  else if (method === undefined && !(context instanceof basic_1.VoidType)) {
73
75
  const message = "Method \"" + methodName + "\" not found, methodCallChain";
74
76
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, methodToken, message));
75
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
77
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
76
78
  }
77
79
  else if (method) {
78
80
  const ret = (_b = method.getParameters().getReturning()) === null || _b === void 0 ? void 0 : _b.getType();
@@ -80,24 +82,24 @@ class MethodCallChain {
80
82
  }
81
83
  const param = current.findDirectExpression(Expressions.MethodCallParam);
82
84
  if (param && method) {
83
- new method_call_param_1.MethodCallParam().runSyntax(param, input, method);
85
+ method_call_param_1.MethodCallParam.runSyntax(param, input, method);
84
86
  }
85
87
  else if (param && context instanceof basic_1.VoidType) {
86
- new method_call_param_1.MethodCallParam().runSyntax(param, input, context);
88
+ method_call_param_1.MethodCallParam.runSyntax(param, input, context);
87
89
  }
88
90
  }
89
91
  else if (current instanceof nodes_1.ExpressionNode && current.get() instanceof Expressions.ComponentName) {
90
- context = new component_name_1.ComponentName().runSyntax(context, current, input);
92
+ context = component_name_1.ComponentName.runSyntax(context, current, input);
91
93
  }
92
94
  else if (current instanceof nodes_1.ExpressionNode && current.get() instanceof Expressions.AttributeName) {
93
- context = new attribute_name_1.AttributeName().runSyntax(context, current, input);
95
+ context = attribute_name_1.AttributeName.runSyntax(context, current, input);
94
96
  }
95
97
  previous = current;
96
98
  }
97
99
  return context;
98
100
  }
99
101
  //////////////////////////////////////
100
- findTop(first, input, targetType) {
102
+ static findTop(first, input, targetType) {
101
103
  var _a;
102
104
  if (first.get() instanceof Expressions.ClassName) {
103
105
  const token = first.getFirstToken();
@@ -106,24 +108,24 @@ class MethodCallChain {
106
108
  if (classDefinition === undefined && input.scope.getDDIC().inErrorNamespace(className) === false) {
107
109
  const extra = { ooName: className, ooType: "Void" };
108
110
  input.scope.addReference(token, undefined, _reference_1.ReferenceType.ObjectOrientedVoidReference, input.filename, extra);
109
- return new basic_1.VoidType(className);
111
+ return basic_1.VoidType.get(className);
110
112
  }
111
113
  else if (classDefinition === undefined) {
112
114
  const message = "Class " + className + " not found";
113
115
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, first.getFirstToken(), message));
114
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
116
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
115
117
  }
116
118
  input.scope.addReference(first.getFirstToken(), classDefinition, _reference_1.ReferenceType.ObjectOrientedReference, input.filename);
117
119
  return new basic_1.ObjectReferenceType(classDefinition);
118
120
  }
119
121
  else if (first instanceof nodes_1.ExpressionNode && first.get() instanceof Expressions.FieldChain) {
120
- return new field_chain_1.FieldChain().runSyntax(first, input, _reference_1.ReferenceType.DataReadReference);
122
+ return field_chain_1.FieldChain.runSyntax(first, input, _reference_1.ReferenceType.DataReadReference);
121
123
  }
122
124
  else if (first instanceof nodes_1.ExpressionNode && first.get() instanceof Expressions.NewObject) {
123
- return new new_object_1.NewObject().runSyntax(first, input, targetType);
125
+ return new_object_1.NewObject.runSyntax(first, input, targetType);
124
126
  }
125
127
  else if (first instanceof nodes_1.ExpressionNode && first.get() instanceof Expressions.Cast) {
126
- return new cast_1.Cast().runSyntax(first, input, targetType);
128
+ return cast_1.Cast.runSyntax(first, input, targetType);
127
129
  }
128
130
  else {
129
131
  const meType = (_a = input.scope.findVariable("me")) === null || _a === void 0 ? void 0 : _a.getType();
@@ -10,7 +10,7 @@ const source_1 = require("./source");
10
10
  const _type_utils_1 = require("../_type_utils");
11
11
  const _syntax_input_1 = require("../_syntax_input");
12
12
  class MethodCallParam {
13
- runSyntax(node, input, method) {
13
+ static runSyntax(node, input, method) {
14
14
  if (!(node.get() instanceof Expressions.MethodCallParam)) {
15
15
  const message = "MethodCallParam, unexpected input";
16
16
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
@@ -68,7 +68,7 @@ class MethodCallParam {
68
68
  }
69
69
  let sourceType = basic_1.StringType.get();
70
70
  if (child.get() instanceof Expressions.Source) {
71
- sourceType = new source_1.Source().runSyntax(child, input, targetType);
71
+ sourceType = source_1.Source.runSyntax(child, input, targetType);
72
72
  }
73
73
  if (sourceType === undefined) {
74
74
  const message = "No source type determined, method source";
@@ -7,7 +7,7 @@ const basic_1 = require("../../types/basic");
7
7
  const basic_types_1 = require("../basic_types");
8
8
  const assert_error_1 = require("../assert_error");
9
9
  class MethodDefReturning {
10
- runSyntax(node, input, meta) {
10
+ static runSyntax(node, input, meta) {
11
11
  const name = node.findDirectExpression(Expressions.MethodParamName);
12
12
  if (name === undefined) {
13
13
  throw new assert_error_1.AssertError("method_parameter.ts, todo, handle pass by value and reference");
@@ -9,7 +9,7 @@ const default_1 = require("./default");
9
9
  const cgeneric_type_1 = require("../../types/basic/cgeneric_type");
10
10
  const assert_error_1 = require("../assert_error");
11
11
  class MethodParam {
12
- runSyntax(node, input, meta) {
12
+ static runSyntax(node, input, meta) {
13
13
  const name = node.findDirectExpression(Expressions.MethodParamName);
14
14
  if (name === undefined) {
15
15
  throw new assert_error_1.AssertError("MethodParam, todo, handle pass by value and reference");
@@ -21,7 +21,7 @@ class MethodParam {
21
21
  const def = type.findDirectExpression(Expressions.Default);
22
22
  if (def) {
23
23
  try {
24
- new default_1.Default().runSyntax(def, input);
24
+ default_1.Default.runSyntax(def, input);
25
25
  }
26
26
  catch (e) {
27
27
  return new _typed_identifier_1.TypedIdentifier(name.getFirstToken(), input.filename, new basic_1.UnknownType(e.toString()), meta);
@@ -29,10 +29,10 @@ class MethodParam {
29
29
  }
30
30
  const concat = type.concatTokens().toUpperCase();
31
31
  if (concat === "TYPE C" || concat.startsWith("TYPE C ")) {
32
- return new _typed_identifier_1.TypedIdentifier(name.getFirstToken(), input.filename, new cgeneric_type_1.CGenericType(), meta);
32
+ return new _typed_identifier_1.TypedIdentifier(name.getFirstToken(), input.filename, cgeneric_type_1.CGenericType.get(), meta);
33
33
  }
34
34
  else if (concat === "TYPE X" || concat.startsWith("TYPE X ")) {
35
- return new _typed_identifier_1.TypedIdentifier(name.getFirstToken(), input.filename, new basic_1.XGenericType(), meta);
35
+ return new _typed_identifier_1.TypedIdentifier(name.getFirstToken(), input.filename, basic_1.XGenericType.get(), meta);
36
36
  }
37
37
  const found = new basic_types_1.BasicTypes(input).parseType(type);
38
38
  if (found) {
@@ -49,7 +49,7 @@ class MethodParameters {
49
49
  const node = children.shift();
50
50
  const exceptions = node.findFirstExpression(Expressions.ParameterException);
51
51
  for (const s of (exceptions === null || exceptions === void 0 ? void 0 : exceptions.findAllExpressions(Expressions.SimpleFieldChain)) || []) {
52
- new field_chain_1.FieldChain().runSyntax(s, input, _reference_1.ReferenceType.DataReadReference);
52
+ field_chain_1.FieldChain.runSyntax(s, input, _reference_1.ReferenceType.DataReadReference);
53
53
  }
54
54
  }
55
55
  break;
@@ -76,10 +76,10 @@ class MethodParameters {
76
76
  const target = node.findDirectExpression(Expressions.Target);
77
77
  const inline = target === null || target === void 0 ? void 0 : target.findDirectExpression(Expressions.InlineData);
78
78
  if (inline) {
79
- new inline_data_1.InlineData().runSyntax(inline, input, type);
79
+ inline_data_1.InlineData.runSyntax(inline, input, type);
80
80
  }
81
81
  else if (target) {
82
- const targetType = new target_1.Target().runSyntax(target, input);
82
+ const targetType = target_1.Target.runSyntax(target, input);
83
83
  if (targetType && new _type_utils_1.TypeUtils(input.scope).isAssignable(type, targetType) === false) {
84
84
  const message = "Method returning value not type compatible";
85
85
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
@@ -104,7 +104,7 @@ class MethodParameters {
104
104
  }
105
105
  const inline = item.target.findDirectExpression(Expressions.InlineData);
106
106
  if (inline) {
107
- new inline_data_1.InlineData().runSyntax(inline, input, parameterType);
107
+ inline_data_1.InlineData.runSyntax(inline, input, parameterType);
108
108
  }
109
109
  else if (item.targetType === undefined) {
110
110
  const message = "Could not determine target type";
@@ -210,7 +210,7 @@ class MethodParameters {
210
210
  }
211
211
  }
212
212
  }
213
- let sourceType = new source_1.Source().runSyntax(source, input, targetType);
213
+ let sourceType = source_1.Source.runSyntax(source, input, targetType);
214
214
  if (sourceType === undefined) {
215
215
  if (method instanceof basic_1.VoidType) {
216
216
  sourceType = method;
@@ -218,7 +218,7 @@ class MethodParameters {
218
218
  else {
219
219
  const message = "No source type determined for parameter " + name + " input";
220
220
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
221
- sourceType = new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
221
+ sourceType = basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
222
222
  }
223
223
  }
224
224
  ret.push({ name, source, sourceType });
@@ -246,7 +246,7 @@ class MethodParameters {
246
246
  if (target === undefined) {
247
247
  throw new assert_error_1.AssertError("parameterListT, no target found");
248
248
  }
249
- const targetType = new target_1.Target().runSyntax(target, input);
249
+ const targetType = target_1.Target.runSyntax(target, input);
250
250
  ret.push({ name, target, targetType });
251
251
  }
252
252
  return ret;
@@ -17,7 +17,7 @@ const version_1 = require("../../../version");
17
17
  const _syntax_input_1 = require("../_syntax_input");
18
18
  const assert_error_1 = require("../assert_error");
19
19
  class MethodSource {
20
- runSyntax(node, input) {
20
+ static runSyntax(node, input) {
21
21
  var _a, _b, _c;
22
22
  const helper = new _object_oriented_1.ObjectOriented(input.scope);
23
23
  const children = node.getChildren().slice();
@@ -38,14 +38,14 @@ class MethodSource {
38
38
  if (name !== undefined && input.scope.findClassDefinition(name) === undefined) {
39
39
  const message = `Class "${name}" not found/released`;
40
40
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
41
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
41
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
42
42
  }
43
43
  }
44
44
  if (context instanceof basic_1.VoidType) {
45
45
  while (children.length > 0) {
46
46
  const current = children.shift();
47
47
  if (current instanceof nodes_1.ExpressionNode && current.get() instanceof Expressions.Dynamic) {
48
- new dynamic_1.Dynamic().runSyntax(current, input);
48
+ dynamic_1.Dynamic.runSyntax(current, input);
49
49
  }
50
50
  }
51
51
  return context;
@@ -59,12 +59,12 @@ class MethodSource {
59
59
  if (context instanceof basic_1.UnknownType) {
60
60
  const message = "Not a structure, type unknown, MethodSource";
61
61
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
62
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
62
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
63
63
  }
64
64
  else if (!(context instanceof basic_1.StructureType)) {
65
65
  const message = "Not a structure, MethodSource";
66
66
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
67
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
67
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
68
68
  }
69
69
  }
70
70
  else if (current.get() instanceof tokens_1.InstanceArrow
@@ -74,7 +74,7 @@ class MethodSource {
74
74
  else if (current.get() instanceof Expressions.AttributeName
75
75
  || current.get() instanceof Expressions.SourceField) {
76
76
  if (context instanceof _abstract_type_1.AbstractType) {
77
- const attr = new attribute_name_1.AttributeName().runSyntax(context, current, input, _reference_1.ReferenceType.DataReadReference, false);
77
+ const attr = attribute_name_1.AttributeName.runSyntax(context, current, input, _reference_1.ReferenceType.DataReadReference, false);
78
78
  const isSyntaxError = attr instanceof basic_1.VoidType && attr.getVoided() === _syntax_input_1.CheckSyntaxKey;
79
79
  if (isSyntaxError === false) {
80
80
  context = attr;
@@ -89,12 +89,12 @@ class MethodSource {
89
89
  // eslint-disable-next-line prefer-const
90
90
  let { method, def: foundDef } = helper.searchMethodName(def, methodName);
91
91
  if (method === undefined && (methodName === null || methodName === void 0 ? void 0 : methodName.toUpperCase()) === "CONSTRUCTOR") {
92
- context = new basic_1.VoidType("CONSTRUCTOR"); // todo, this is a workaround, constructors always exists
92
+ context = basic_1.VoidType.get("CONSTRUCTOR"); // todo, this is a workaround, constructors always exists
93
93
  }
94
94
  else if (method === undefined && !(context instanceof basic_1.VoidType)) {
95
95
  const message = "Method or attribute \"" + methodName + "\" not found, MethodSource";
96
96
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
97
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
97
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
98
98
  }
99
99
  else if (method) {
100
100
  const extra = helper.methodReferenceExtras(foundDef, className);
@@ -106,27 +106,27 @@ class MethodSource {
106
106
  if (context instanceof basic_1.TableType && context.isWithHeader()) {
107
107
  context = context.getRowType();
108
108
  }
109
- context = new component_name_1.ComponentName().runSyntax(context, current, input);
109
+ context = component_name_1.ComponentName.runSyntax(context, current, input);
110
110
  }
111
111
  else if (current instanceof nodes_1.ExpressionNode && current.get() instanceof Expressions.Dynamic) {
112
- new dynamic_1.Dynamic().runSyntax(current, input);
113
- context = new basic_1.VoidType("Dynamic");
112
+ dynamic_1.Dynamic.runSyntax(current, input);
113
+ context = basic_1.VoidType.get("Dynamic");
114
114
  }
115
115
  }
116
116
  if (context instanceof _abstract_type_1.AbstractType && !(context instanceof basic_1.VoidType)) {
117
117
  const message = "Not a method, MethodSource";
118
118
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
119
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
119
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
120
120
  }
121
121
  else if (context === undefined) {
122
122
  const message = "Not found, MethodSource";
123
123
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
124
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
124
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
125
125
  }
126
126
  return context;
127
127
  }
128
128
  //////////////////////////////////////
129
- findTop(first, input, children) {
129
+ static findTop(first, input, children) {
130
130
  if (first.get() instanceof Expressions.ClassName) {
131
131
  // todo, refactor this part to new expression handler,
132
132
  const token = first.getFirstToken();
@@ -135,25 +135,25 @@ class MethodSource {
135
135
  if (classDefinition === undefined && input.scope.getDDIC().inErrorNamespace(className) === false) {
136
136
  const extra = { ooName: className, ooType: "Void" };
137
137
  input.scope.addReference(token, undefined, _reference_1.ReferenceType.ObjectOrientedVoidReference, input.filename, extra);
138
- return new basic_1.VoidType(className);
138
+ return basic_1.VoidType.get(className);
139
139
  }
140
140
  else if (classDefinition === undefined) {
141
141
  const message = "Class " + className + " not found";
142
142
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, first.getFirstToken(), message));
143
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
143
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
144
144
  }
145
145
  input.scope.addReference(first.getFirstToken(), classDefinition, _reference_1.ReferenceType.ObjectOrientedReference, input.filename);
146
146
  return new basic_1.ObjectReferenceType(classDefinition);
147
147
  }
148
148
  else if (first instanceof nodes_1.ExpressionNode && first.get() instanceof Expressions.SourceField && children.length > 0) {
149
- return new source_field_1.SourceField().runSyntax(first, input, _reference_1.ReferenceType.DataReadReference);
149
+ return source_field_1.SourceField.runSyntax(first, input, _reference_1.ReferenceType.DataReadReference);
150
150
  }
151
151
  else if (first instanceof nodes_1.ExpressionNode && first.get() instanceof Expressions.SourceFieldSymbol) {
152
- return new source_field_symbol_1.SourceFieldSymbol().runSyntax(first, input);
152
+ return source_field_symbol_1.SourceFieldSymbol.runSyntax(first, input);
153
153
  }
154
154
  else if (first instanceof nodes_1.ExpressionNode && first.get() instanceof Expressions.Dynamic) {
155
- new dynamic_1.Dynamic().runSyntax(first, input);
156
- return new basic_1.VoidType("Dynamic");
155
+ dynamic_1.Dynamic.runSyntax(first, input);
156
+ return basic_1.VoidType.get("Dynamic");
157
157
  }
158
158
  return undefined;
159
159
  }
@@ -12,7 +12,7 @@ const _type_utils_1 = require("../_type_utils");
12
12
  const _syntax_input_1 = require("../_syntax_input");
13
13
  const assert_error_1 = require("../assert_error");
14
14
  class NewObject {
15
- runSyntax(node, input, targetType) {
15
+ static runSyntax(node, input, targetType) {
16
16
  let ret = undefined;
17
17
  const typeExpr = node.findDirectExpression(Expressions.TypeNameOrInfer);
18
18
  const typeToken = typeExpr === null || typeExpr === void 0 ? void 0 : typeExpr.getFirstToken();
@@ -31,14 +31,14 @@ class NewObject {
31
31
  if (intf) {
32
32
  const message = intf.getName() + " is an interface, cannot be instantiated";
33
33
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
34
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
34
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
35
35
  }
36
36
  }
37
37
  ret = targetType;
38
38
  if ((clas === null || clas === void 0 ? void 0 : clas.isAbstract()) === true) {
39
39
  const message = clas.getName() + " is abstract, cannot be instantiated";
40
40
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
41
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
41
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
42
42
  }
43
43
  }
44
44
  else if (typeName === "#" && targetType) {
@@ -57,7 +57,7 @@ class NewObject {
57
57
  if ((clas === null || clas === void 0 ? void 0 : clas.isAbstract()) === true) {
58
58
  const message = clas.getName() + " is abstract, cannot be instantiated";
59
59
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
60
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
60
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
61
61
  }
62
62
  ret = objref;
63
63
  }
@@ -77,7 +77,7 @@ class NewObject {
77
77
  else {
78
78
  const message = "Type \"" + typeName + "\" not found in scope, NewObject";
79
79
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
80
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
80
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
81
81
  }
82
82
  }
83
83
  if (ret instanceof basic_1.ObjectReferenceType) {
@@ -85,17 +85,17 @@ class NewObject {
85
85
  }
86
86
  else {
87
87
  for (const s of node.findAllExpressions(Expressions.Source)) {
88
- new source_1.Source().runSyntax(s, input, ret);
88
+ source_1.Source.runSyntax(s, input, ret);
89
89
  }
90
90
  }
91
91
  if (ret instanceof basic_1.UnknownType && input.scope.getDDIC().inErrorNamespace(typeName) === true) {
92
92
  const message = "Class or type \"" + typeName + "\" not found";
93
93
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
94
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
94
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
95
95
  }
96
96
  return ret;
97
97
  }
98
- parameters(node, obj, input) {
98
+ static parameters(node, obj, input) {
99
99
  const name = obj.getIdentifier().getName();
100
100
  const def = input.scope.findObjectDefinition(name);
101
101
  const helper = new _object_oriented_1.ObjectOriented(input.scope);
@@ -112,7 +112,7 @@ class NewObject {
112
112
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
113
113
  return;
114
114
  }
115
- const sourceType = new source_1.Source().runSyntax(source, input, type);
115
+ const sourceType = source_1.Source.runSyntax(source, input, type);
116
116
  if (new _type_utils_1.TypeUtils(input.scope).isAssignableStrict(sourceType, type) === false) {
117
117
  const message = `NEW parameter type not compatible`;
118
118
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
@@ -134,7 +134,7 @@ class NewObject {
134
134
  return;
135
135
  }
136
136
  }
137
- defaultImportingType(method) {
137
+ static defaultImportingType(method) {
138
138
  let targetType = undefined;
139
139
  if (method === undefined) {
140
140
  return undefined;
@@ -4,9 +4,9 @@ exports.RaiseWith = void 0;
4
4
  const Expressions = require("../../2_statements/expressions");
5
5
  const source_1 = require("./source");
6
6
  class RaiseWith {
7
- runSyntax(node, input) {
7
+ static runSyntax(node, input) {
8
8
  for (const f of node.findAllExpressionsMulti([Expressions.SimpleSource1, Expressions.Source])) {
9
- new source_1.Source().runSyntax(f, input);
9
+ source_1.Source.runSyntax(f, input);
10
10
  }
11
11
  }
12
12
  }
@@ -10,14 +10,14 @@ const reduce_next_1 = require("./reduce_next");
10
10
  const let_1 = require("./let");
11
11
  const _scope_type_1 = require("../_scope_type");
12
12
  class ReduceBody {
13
- runSyntax(node, input, targetType) {
13
+ static runSyntax(node, input, targetType) {
14
14
  if (node === undefined) {
15
15
  return;
16
16
  }
17
17
  let scoped = false;
18
18
  const letNode = node.findDirectExpression(Expressions.Let);
19
19
  if (letNode) {
20
- scoped = new let_1.Let().runSyntax(letNode, input);
20
+ scoped = let_1.Let.runSyntax(letNode, input);
21
21
  }
22
22
  let first = undefined;
23
23
  for (const i of node.findDirectExpressions(Expressions.InlineFieldDefinition)) {
@@ -28,25 +28,25 @@ class ReduceBody {
28
28
  let foundType = targetType;
29
29
  const source = i.findDirectExpression(Expressions.Source);
30
30
  if (source) {
31
- foundType = new source_1.Source().runSyntax(source, input, targetType);
31
+ foundType = source_1.Source.runSyntax(source, input, targetType);
32
32
  }
33
- const found = new inline_field_definition_1.InlineFieldDefinition().runSyntax(i, input, foundType);
33
+ const found = inline_field_definition_1.InlineFieldDefinition.runSyntax(i, input, foundType);
34
34
  if (found && first === undefined) {
35
35
  first = found;
36
36
  }
37
37
  }
38
38
  let forScopes = 0;
39
39
  for (const forNode of node.findDirectExpressions(Expressions.For) || []) {
40
- const scoped = new for_1.For().runSyntax(forNode, input);
40
+ const scoped = for_1.For.runSyntax(forNode, input);
41
41
  if (scoped === true) {
42
42
  forScopes++;
43
43
  }
44
44
  }
45
45
  for (const s of node.findDirectExpressions(Expressions.Source)) {
46
- new source_1.Source().runSyntax(s, input);
46
+ source_1.Source.runSyntax(s, input);
47
47
  }
48
48
  for (const s of node.findDirectExpressions(Expressions.ReduceNext)) {
49
- new reduce_next_1.ReduceNext().runSyntax(s, input);
49
+ reduce_next_1.ReduceNext.runSyntax(s, input);
50
50
  }
51
51
  if (scoped === true) {
52
52
  input.scope.pop(node.getLastToken().getEnd());
@@ -5,15 +5,15 @@ const Expressions = require("../../2_statements/expressions");
5
5
  const source_1 = require("./source");
6
6
  const target_1 = require("./target");
7
7
  class ReduceNext {
8
- runSyntax(node, input) {
8
+ static runSyntax(node, input) {
9
9
  if (node === undefined) {
10
10
  return;
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
  for (const s of node.findDirectExpressions(Expressions.SimpleTarget)) {
16
- new target_1.Target().runSyntax(s, input);
16
+ target_1.Target.runSyntax(s, input);
17
17
  }
18
18
  }
19
19
  }