@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
@@ -4,15 +4,15 @@ exports.ComponentCond = void 0;
4
4
  const Expressions = require("../../2_statements/expressions");
5
5
  const component_compare_1 = require("./component_compare");
6
6
  class ComponentCond {
7
- runSyntax(node, input, type) {
7
+ static runSyntax(node, input, type) {
8
8
  for (const t of node.findDirectExpressions(Expressions.ComponentCondSub)) {
9
9
  const c = t.findDirectExpression(Expressions.ComponentCond);
10
10
  if (c) {
11
- new ComponentCond().runSyntax(c, input, type);
11
+ ComponentCond.runSyntax(c, input, type);
12
12
  }
13
13
  }
14
14
  for (const t of node.findDirectExpressions(Expressions.ComponentCompare)) {
15
- new component_compare_1.ComponentCompare().runSyntax(t, input, type);
15
+ component_compare_1.ComponentCompare.runSyntax(t, input, type);
16
16
  }
17
17
  }
18
18
  }
@@ -4,7 +4,7 @@ exports.ComponentName = void 0;
4
4
  const Basic = require("../../types/basic");
5
5
  const _syntax_input_1 = require("../_syntax_input");
6
6
  class ComponentName {
7
- runSyntax(context, node, input) {
7
+ static runSyntax(context, node, input) {
8
8
  if (context instanceof Basic.VoidType) {
9
9
  return context;
10
10
  }
@@ -14,7 +14,7 @@ class ComponentName {
14
14
  const ret = context.getComponentByName(name);
15
15
  if (ret === undefined) {
16
16
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, nameToken, "Component \"" + name + "\" not found in structure"));
17
- return new Basic.VoidType(_syntax_input_1.CheckSyntaxKey);
17
+ return Basic.VoidType.get(_syntax_input_1.CheckSyntaxKey);
18
18
  }
19
19
  return ret;
20
20
  }
@@ -30,13 +30,13 @@ class ComponentName {
30
30
  const ret = rowType.getComponentByName(name);
31
31
  if (ret === undefined) {
32
32
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, nameToken, "Component \"" + name + "\" not found in structure"));
33
- return new Basic.VoidType(_syntax_input_1.CheckSyntaxKey);
33
+ return Basic.VoidType.get(_syntax_input_1.CheckSyntaxKey);
34
34
  }
35
35
  return ret;
36
36
  }
37
37
  }
38
38
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, nameToken, "Not a structure, ComponentName, \"" + name + "\""));
39
- return new Basic.VoidType(_syntax_input_1.CheckSyntaxKey);
39
+ return Basic.VoidType.get(_syntax_input_1.CheckSyntaxKey);
40
40
  }
41
41
  }
42
42
  exports.ComponentName = ComponentName;
@@ -4,15 +4,15 @@ exports.Cond = void 0;
4
4
  const Expressions = require("../../2_statements/expressions");
5
5
  const compare_1 = require("./compare");
6
6
  class Cond {
7
- runSyntax(node, input) {
7
+ static runSyntax(node, input) {
8
8
  for (const t of node.findDirectExpressions(Expressions.CondSub)) {
9
9
  const c = t.findDirectExpression(Expressions.Cond);
10
10
  if (c) {
11
- new Cond().runSyntax(c, input);
11
+ Cond.runSyntax(c, input);
12
12
  }
13
13
  }
14
14
  for (const t of node.findDirectExpressions(Expressions.Compare)) {
15
- new compare_1.Compare().runSyntax(t, input);
15
+ compare_1.Compare.runSyntax(t, input);
16
16
  }
17
17
  }
18
18
  }
@@ -6,25 +6,25 @@ const source_1 = require("./source");
6
6
  const let_1 = require("./let");
7
7
  const cond_1 = require("./cond");
8
8
  class CondBody {
9
- runSyntax(node, input, targetType) {
9
+ static runSyntax(node, input, targetType) {
10
10
  if (node === undefined) {
11
11
  return undefined;
12
12
  }
13
13
  let scoped = false;
14
14
  const l = node.findDirectExpression(Expressions.Let);
15
15
  if (l) {
16
- scoped = new let_1.Let().runSyntax(l, input);
16
+ scoped = let_1.Let.runSyntax(l, input);
17
17
  }
18
18
  for (const s of node.findDirectExpressions(Expressions.Cond)) {
19
- new cond_1.Cond().runSyntax(s, input);
19
+ cond_1.Cond.runSyntax(s, input);
20
20
  }
21
21
  let type = undefined;
22
22
  for (const s of node.findDirectExpressions(Expressions.Source)) {
23
23
  if (type === undefined) {
24
- type = new source_1.Source().runSyntax(s, input, targetType);
24
+ type = source_1.Source.runSyntax(s, input, targetType);
25
25
  }
26
26
  else {
27
- new source_1.Source().runSyntax(s, input, targetType);
27
+ source_1.Source.runSyntax(s, input, targetType);
28
28
  }
29
29
  }
30
30
  if (scoped === true) {
@@ -4,7 +4,7 @@ exports.Constant = void 0;
4
4
  const basic_1 = require("../../types/basic");
5
5
  const expressions_1 = require("../../2_statements/expressions");
6
6
  class Constant {
7
- runSyntax(node) {
7
+ static runSyntax(node) {
8
8
  // todo: ConcatenatedConstant is not used?
9
9
  if (node.findDirectExpression(expressions_1.Integer)) {
10
10
  return basic_1.IntegerType.get({ derivedFromConstant: true });
@@ -7,19 +7,19 @@ const let_1 = require("./let");
7
7
  const _syntax_input_1 = require("../_syntax_input");
8
8
  const basic_1 = require("../../types/basic");
9
9
  class ConvBody {
10
- runSyntax(node, input) {
10
+ static runSyntax(node, input) {
11
11
  let scoped = false;
12
12
  const l = node.findDirectExpression(Expressions.Let);
13
13
  if (l) {
14
- scoped = new let_1.Let().runSyntax(l, input);
14
+ scoped = let_1.Let.runSyntax(l, input);
15
15
  }
16
16
  const s = node.findDirectExpression(Expressions.Source);
17
17
  if (s === undefined) {
18
18
  const message = "ConvBody, no source found";
19
19
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
20
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
20
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
21
21
  }
22
- const sourceType = new source_1.Source().runSyntax(s, input);
22
+ const sourceType = source_1.Source.runSyntax(s, input);
23
23
  if (scoped === true) {
24
24
  input.scope.pop(node.getLastToken().getEnd());
25
25
  }
@@ -4,17 +4,17 @@ exports.CorrespondingBody = void 0;
4
4
  const Expressions = require("../../2_statements/expressions");
5
5
  const source_1 = require("./source");
6
6
  class CorrespondingBody {
7
- runSyntax(node, input, targetType) {
7
+ static runSyntax(node, input, targetType) {
8
8
  if (node === undefined) {
9
9
  return targetType;
10
10
  }
11
11
  let type = undefined;
12
12
  for (const s of node.findDirectExpressions(Expressions.Source)) {
13
13
  if (type === undefined) {
14
- type = new source_1.Source().runSyntax(s, input);
14
+ type = source_1.Source.runSyntax(s, input);
15
15
  }
16
16
  else {
17
- new source_1.Source().runSyntax(s, input);
17
+ source_1.Source.runSyntax(s, input);
18
18
  }
19
19
  }
20
20
  return targetType ? targetType : type;
@@ -7,10 +7,10 @@ const basic_1 = require("../../types/basic");
7
7
  const basic_types_1 = require("../basic_types");
8
8
  const type_table_1 = require("./type_table");
9
9
  class DataDefinition {
10
- runSyntax(node, input) {
10
+ static runSyntax(node, input) {
11
11
  const tt = node.findFirstExpression(Expressions.TypeTable);
12
12
  if (tt) {
13
- return new type_table_1.TypeTable().runSyntax(node, input);
13
+ return type_table_1.TypeTable.runSyntax(node, input);
14
14
  }
15
15
  const valueNode = node.findFirstExpression(Expressions.Value);
16
16
  let value = undefined;
@@ -20,7 +20,7 @@ class DataDefinition {
20
20
  const name = node.findFirstExpression(Expressions.DefinitionName);
21
21
  const typeStructure = node.findFirstExpression(Expressions.TypeStructure);
22
22
  if (typeStructure && name) {
23
- return new _typed_identifier_1.TypedIdentifier(name.getFirstToken(), input.filename, new basic_1.VoidType("DataDefinition, TypeStructure"));
23
+ return new _typed_identifier_1.TypedIdentifier(name.getFirstToken(), input.filename, basic_1.VoidType.get("DataDefinition, TypeStructure"));
24
24
  }
25
25
  const bfound = new basic_types_1.BasicTypes(input).simpleType(node);
26
26
  if (bfound) {
@@ -32,7 +32,6 @@ class DataDefinition {
32
32
  }
33
33
  }
34
34
  if (name) {
35
- console.dir("undef");
36
35
  return new _typed_identifier_1.TypedIdentifier(name.getFirstToken(), input.filename, new basic_1.UnknownType("DataDefinition, fallback"));
37
36
  }
38
37
  return undefined;
@@ -4,7 +4,7 @@ exports.DatabaseTable = void 0;
4
4
  const _reference_1 = require("../_reference");
5
5
  const _syntax_input_1 = require("../_syntax_input");
6
6
  class DatabaseTable {
7
- runSyntax(node, input) {
7
+ static runSyntax(node, input) {
8
8
  const token = node.getFirstToken();
9
9
  const name = token.getStr();
10
10
  if (name === "(") {
@@ -6,14 +6,14 @@ const field_chain_1 = require("./field_chain");
6
6
  const _reference_1 = require("../_reference");
7
7
  const constant_1 = require("./constant");
8
8
  class Default {
9
- runSyntax(node, input) {
9
+ static runSyntax(node, input) {
10
10
  const chain = node.findDirectExpression(Expressions.FieldChain);
11
11
  if (chain) {
12
- return new field_chain_1.FieldChain().runSyntax(chain, input, _reference_1.ReferenceType.DataReadReference);
12
+ return field_chain_1.FieldChain.runSyntax(chain, input, _reference_1.ReferenceType.DataReadReference);
13
13
  }
14
14
  const constant = node.findDirectExpression(Expressions.Constant);
15
15
  if (constant) {
16
- return new constant_1.Constant().runSyntax(constant);
16
+ return constant_1.Constant.runSyntax(constant);
17
17
  }
18
18
  return undefined;
19
19
  }
@@ -4,7 +4,7 @@ exports.Dereference = void 0;
4
4
  const basic_1 = require("../../types/basic");
5
5
  const _syntax_input_1 = require("../_syntax_input");
6
6
  class Dereference {
7
- runSyntax(node, type, input) {
7
+ static runSyntax(node, type, input) {
8
8
  if (type instanceof basic_1.VoidType
9
9
  || type instanceof basic_1.AnyType
10
10
  || type instanceof basic_1.DataType
@@ -15,7 +15,7 @@ class Dereference {
15
15
  if (!(type instanceof basic_1.DataReference)) {
16
16
  const message = "Not a data reference, cannot be dereferenced";
17
17
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
18
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
18
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
19
19
  }
20
20
  return type.getType();
21
21
  }
@@ -5,10 +5,10 @@ const Expressions = require("../../2_statements/expressions");
5
5
  const field_chain_1 = require("./field_chain");
6
6
  const _reference_1 = require("../_reference");
7
7
  class Dynamic {
8
- runSyntax(node, input) {
8
+ static runSyntax(node, input) {
9
9
  const chain = node.findDirectExpression(Expressions.FieldChain);
10
10
  if (chain) {
11
- new field_chain_1.FieldChain().runSyntax(chain, input, _reference_1.ReferenceType.DataReadReference);
11
+ field_chain_1.FieldChain.runSyntax(chain, input, _reference_1.ReferenceType.DataReadReference);
12
12
  }
13
13
  }
14
14
  }
@@ -6,7 +6,7 @@ const basic_1 = require("../../types/basic");
6
6
  const _syntax_input_1 = require("../_syntax_input");
7
7
  const source_1 = require("./source");
8
8
  class FieldAssignment {
9
- runSyntax(node, input, targetType) {
9
+ static runSyntax(node, input, targetType) {
10
10
  const fieldSub = node.findDirectExpression(Expressions.FieldSub);
11
11
  if (fieldSub === undefined) {
12
12
  const message = "FieldAssignment, FieldSub node not found";
@@ -38,7 +38,7 @@ class FieldAssignment {
38
38
  else if (targetType instanceof basic_1.VoidType) {
39
39
  type = targetType;
40
40
  }
41
- new source_1.Source().runSyntax(s, input, type);
41
+ source_1.Source.runSyntax(s, input, type);
42
42
  }
43
43
  }
44
44
  exports.FieldAssignment = FieldAssignment;
@@ -17,7 +17,7 @@ const source_field_symbol_1 = require("./source_field_symbol");
17
17
  const source_field_1 = require("./source_field");
18
18
  const _syntax_input_1 = require("../_syntax_input");
19
19
  class FieldChain {
20
- runSyntax(node, input, refType) {
20
+ static runSyntax(node, input, refType) {
21
21
  var _a, _b, _c;
22
22
  if (((_a = node.getFirstChild()) === null || _a === void 0 ? void 0 : _a.get()) instanceof Expressions.SourceField
23
23
  && node.findDirectExpression(Expressions.ComponentName)) {
@@ -45,13 +45,13 @@ class FieldChain {
45
45
  if (current.get() instanceof tokens_1.DashW) {
46
46
  const message = "Ending with dash";
47
47
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, current.getFirstToken(), message));
48
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
48
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
49
49
  }
50
50
  else if (current.get() instanceof tokens_1.Dash) {
51
51
  if (context instanceof basic_1.UnknownType) {
52
52
  const message = "Not a structure, type unknown, FieldChain";
53
53
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, current.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
  else if (!(context instanceof basic_1.StructureType)
57
57
  && !(context instanceof basic_1.TableType && context.isWithHeader())
@@ -71,13 +71,13 @@ class FieldChain {
71
71
  else {
72
72
  const message = "Table without header, cannot access fields, " + contextName;
73
73
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, current.getFirstToken(), message));
74
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
74
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
75
75
  }
76
76
  }
77
77
  else {
78
78
  const message = "Not a structure, FieldChain";
79
79
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, current.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
  }
@@ -87,35 +87,35 @@ class FieldChain {
87
87
  && !(context instanceof basic_1.VoidType)) {
88
88
  const message = "Not an object reference, field chain";
89
89
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, current.getFirstToken(), message));
90
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
90
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
91
91
  }
92
92
  }
93
93
  else if (current.get() instanceof expressions_1.Dereference) {
94
- context = new dereference_1.Dereference().runSyntax(current, context, input);
94
+ context = dereference_1.Dereference.runSyntax(current, context, input);
95
95
  }
96
96
  else if (current.get() instanceof Expressions.ComponentName) {
97
97
  if (context instanceof basic_1.TableType && context.isWithHeader()) {
98
98
  context = context.getRowType();
99
99
  }
100
- context = new component_name_1.ComponentName().runSyntax(context, current, input);
100
+ context = component_name_1.ComponentName.runSyntax(context, current, input);
101
101
  }
102
102
  else if (current instanceof nodes_1.ExpressionNode
103
103
  && current.get() instanceof Expressions.TableExpression) {
104
104
  if (!(context instanceof basic_1.TableType) && !(context instanceof basic_1.VoidType)) {
105
105
  const message = "Table expression, expected table";
106
106
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, current.getFirstToken(), message));
107
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
107
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
108
108
  }
109
- new table_expression_1.TableExpression().runSyntax(current, input);
109
+ table_expression_1.TableExpression.runSyntax(current, input);
110
110
  if (!(context instanceof basic_1.VoidType)) {
111
111
  context = context.getRowType();
112
112
  }
113
113
  }
114
114
  else if (current.get() instanceof Expressions.AttributeName) {
115
- context = new attribute_name_1.AttributeName().runSyntax(context, current, input, refType);
115
+ context = attribute_name_1.AttributeName.runSyntax(context, current, input, refType);
116
116
  }
117
117
  else if (current.get() instanceof Expressions.FieldOffset && current instanceof nodes_1.ExpressionNode) {
118
- const offset = new field_offset_1.FieldOffset().runSyntax(current, input);
118
+ const offset = field_offset_1.FieldOffset.runSyntax(current, input);
119
119
  if (offset) {
120
120
  if (context instanceof basic_1.CharacterType) {
121
121
  context = new basic_1.CharacterType(context.getLength() - offset);
@@ -126,7 +126,7 @@ class FieldChain {
126
126
  }
127
127
  }
128
128
  else if (current.get() instanceof Expressions.FieldLength && current instanceof nodes_1.ExpressionNode) {
129
- const length = new field_length_1.FieldLength().runSyntax(current, input);
129
+ const length = field_length_1.FieldLength.runSyntax(current, input);
130
130
  if (length) {
131
131
  if (context instanceof basic_1.CharacterType) {
132
132
  context = new basic_1.CharacterType(length);
@@ -140,21 +140,21 @@ class FieldChain {
140
140
  return context;
141
141
  }
142
142
  ////////////////
143
- findTop(node, input, type) {
143
+ static findTop(node, input, type) {
144
144
  if (node === undefined) {
145
145
  return undefined;
146
146
  }
147
147
  if (node instanceof nodes_1.ExpressionNode
148
148
  && node.get() instanceof Expressions.SourceFieldSymbol) {
149
- return new source_field_symbol_1.SourceFieldSymbol().runSyntax(node, input);
149
+ return source_field_symbol_1.SourceFieldSymbol.runSyntax(node, input);
150
150
  }
151
151
  else if (node instanceof nodes_1.ExpressionNode
152
152
  && node.get() instanceof Expressions.SourceField) {
153
- return new source_field_1.SourceField().runSyntax(node, input, type);
153
+ return source_field_1.SourceField.runSyntax(node, input, type);
154
154
  }
155
155
  else if (node instanceof nodes_1.ExpressionNode
156
156
  && node.get() instanceof Expressions.Field) {
157
- return new source_field_1.SourceField().runSyntax(node, input, type);
157
+ return source_field_1.SourceField.runSyntax(node, input, type);
158
158
  }
159
159
  else if (node.get() instanceof Expressions.ClassName) {
160
160
  const classTok = node.getFirstToken();
@@ -169,12 +169,12 @@ class FieldChain {
169
169
  }
170
170
  else if (input.scope.getDDIC().inErrorNamespace(classNam) === false) {
171
171
  input.scope.addReference(classTok, undefined, _reference_1.ReferenceType.ObjectOrientedVoidReference, input.filename, { ooName: classNam.toUpperCase() });
172
- return new basic_1.VoidType(classNam);
172
+ return basic_1.VoidType.get(classNam);
173
173
  }
174
174
  else {
175
175
  const message = "Unknown class " + classNam;
176
176
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
177
- return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
177
+ return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
178
178
  }
179
179
  }
180
180
  return undefined;
@@ -5,10 +5,10 @@ const Expressions = require("../../2_statements/expressions");
5
5
  const _reference_1 = require("../_reference");
6
6
  const field_chain_1 = require("./field_chain");
7
7
  class FieldLength {
8
- runSyntax(node, input) {
8
+ static runSyntax(node, input) {
9
9
  const field = node.findDirectExpression(Expressions.SimpleFieldChain2);
10
10
  if (field) {
11
- new field_chain_1.FieldChain().runSyntax(field, input, _reference_1.ReferenceType.DataReadReference);
11
+ field_chain_1.FieldChain.runSyntax(field, input, _reference_1.ReferenceType.DataReadReference);
12
12
  return undefined;
13
13
  }
14
14
  else {
@@ -5,10 +5,10 @@ const Expressions = require("../../2_statements/expressions");
5
5
  const _reference_1 = require("../_reference");
6
6
  const field_chain_1 = require("./field_chain");
7
7
  class FieldOffset {
8
- runSyntax(node, input) {
8
+ static runSyntax(node, input) {
9
9
  const field = node.findDirectExpression(Expressions.SimpleFieldChain2);
10
10
  if (field) {
11
- new field_chain_1.FieldChain().runSyntax(field, input, _reference_1.ReferenceType.DataReadReference);
11
+ field_chain_1.FieldChain.runSyntax(field, input, _reference_1.ReferenceType.DataReadReference);
12
12
  return undefined;
13
13
  }
14
14
  else {
@@ -4,17 +4,17 @@ exports.FilterBody = void 0;
4
4
  const Expressions = require("../../2_statements/expressions");
5
5
  const source_1 = require("./source");
6
6
  class FilterBody {
7
- runSyntax(node, input, targetType) {
7
+ static runSyntax(node, input, targetType) {
8
8
  if (node === undefined) {
9
9
  return targetType;
10
10
  }
11
11
  let type = undefined;
12
12
  for (const s of node.findDirectExpressions(Expressions.Source)) {
13
13
  if (type === undefined) {
14
- type = new source_1.Source().runSyntax(s, input);
14
+ type = source_1.Source.runSyntax(s, input);
15
15
  }
16
16
  else {
17
- new source_1.Source().runSyntax(s, input);
17
+ source_1.Source.runSyntax(s, input);
18
18
  }
19
19
  }
20
20
  return type ? type : targetType;
@@ -13,7 +13,7 @@ const _typed_identifier_1 = require("../../types/_typed_identifier");
13
13
  const _reference_1 = require("../_reference");
14
14
  const let_1 = require("./let");
15
15
  class For {
16
- runSyntax(node, input) {
16
+ static runSyntax(node, input) {
17
17
  var _a;
18
18
  let scoped = false;
19
19
  const inlineLoop = node.findDirectExpressions(Expressions.InlineLoopDefinition);
@@ -30,28 +30,28 @@ class For {
30
30
  scoped = true;
31
31
  }
32
32
  for (const s of inlineLoop) {
33
- new inline_loop_definition_1.InlineLoopDefinition().runSyntax(s, input);
33
+ inline_loop_definition_1.InlineLoopDefinition.runSyntax(s, input);
34
34
  }
35
35
  for (const f of inlineField) {
36
- new inline_field_definition_1.InlineFieldDefinition().runSyntax(f, input);
36
+ inline_field_definition_1.InlineFieldDefinition.runSyntax(f, input);
37
37
  }
38
38
  if (groupsToken !== undefined) {
39
- const type = new basic_1.VoidType("todoGroupBy");
39
+ const type = basic_1.VoidType.get("todoGroupBy");
40
40
  const identifier = new _typed_identifier_1.TypedIdentifier(groupsToken, input.filename, type, ["inline" /* IdentifierMeta.InlineDefinition */]);
41
41
  input.scope.addIdentifier(identifier);
42
42
  input.scope.addReference(groupsToken, identifier, _reference_1.ReferenceType.DataWriteReference, input.filename);
43
43
  }
44
44
  for (const s of node.findDirectExpressions(Expressions.Source)) {
45
- new source_1.Source().runSyntax(s, input);
45
+ source_1.Source.runSyntax(s, input);
46
46
  }
47
47
  for (const s of node.findDirectExpressions(Expressions.ComponentCond)) {
48
- new component_cond_1.ComponentCond().runSyntax(s, input);
48
+ component_cond_1.ComponentCond.runSyntax(s, input);
49
49
  }
50
50
  for (const s of node.findDirectExpressions(Expressions.Cond)) {
51
- new cond_1.Cond().runSyntax(s, input);
51
+ cond_1.Cond.runSyntax(s, input);
52
52
  }
53
53
  if (lett) {
54
- new let_1.Let().runSyntax(lett, input, true);
54
+ let_1.Let.runSyntax(lett, input, true);
55
55
  }
56
56
  return scoped;
57
57
  }
@@ -7,7 +7,7 @@ const expressions_1 = require("../../2_statements/expressions");
7
7
  const basic_types_1 = require("../basic_types");
8
8
  const assert_error_1 = require("../assert_error");
9
9
  class FormParam {
10
- runSyntax(node, input) {
10
+ static runSyntax(node, input) {
11
11
  var _a, _b, _c;
12
12
  const nameToken = (_a = node.findFirstExpression(expressions_1.FormParamName)) === null || _a === void 0 ? void 0 : _a.getFirstToken();
13
13
  if (node.findDirectTokenByText("STRUCTURE") && nameToken) {
@@ -27,7 +27,7 @@ class FormParam {
27
27
  }
28
28
  if (node.getChildren().length === 1 && nameToken) {
29
29
  // untyped FORM parameter
30
- return new _typed_identifier_1.TypedIdentifier(nameToken, input.filename, new basic_1.AnyType(), ["form_parameter" /* IdentifierMeta.FormParameter */]);
30
+ return new _typed_identifier_1.TypedIdentifier(nameToken, input.filename, basic_1.AnyType.get(), ["form_parameter" /* IdentifierMeta.FormParameter */]);
31
31
  }
32
32
  const bfound = new basic_types_1.BasicTypes(input).parseType(node);
33
33
  if (nameToken && bfound) {
@@ -6,10 +6,10 @@ const inline_fs_1 = require("./inline_fs");
6
6
  const _reference_1 = require("../_reference");
7
7
  const _syntax_input_1 = require("../_syntax_input");
8
8
  class FSTarget {
9
- runSyntax(node, input, type) {
9
+ static runSyntax(node, input, type) {
10
10
  const inlinefs = node === null || node === void 0 ? void 0 : node.findDirectExpression(Expressions.InlineFS);
11
11
  if (inlinefs) {
12
- new inline_fs_1.InlineFS().runSyntax(inlinefs, input, type);
12
+ inline_fs_1.InlineFS.runSyntax(inlinefs, input, type);
13
13
  }
14
14
  const target = node === null || node === void 0 ? void 0 : node.findDirectExpression(Expressions.TargetFieldSymbol);
15
15
  if (target) {
@@ -7,7 +7,7 @@ const basic_1 = require("../../types/basic");
7
7
  const _reference_1 = require("../_reference");
8
8
  const _syntax_input_1 = require("../_syntax_input");
9
9
  class InlineData {
10
- runSyntax(node, input, type) {
10
+ static runSyntax(node, input, type) {
11
11
  var _a;
12
12
  const token = (_a = node.findFirstExpression(Expressions.TargetField)) === null || _a === void 0 ? void 0 : _a.getFirstToken();
13
13
  if (token && type) {
@@ -10,7 +10,7 @@ const _reference_1 = require("../_reference");
10
10
  const _syntax_input_1 = require("../_syntax_input");
11
11
  const basic_1 = require("../../types/basic");
12
12
  class InlineFieldDefinition {
13
- runSyntax(node, input, targetType) {
13
+ static runSyntax(node, input, targetType) {
14
14
  var _a;
15
15
  let type = undefined;
16
16
  const field = (_a = node.findDirectExpression(Expressions.Field)) === null || _a === void 0 ? void 0 : _a.getFirstToken();
@@ -19,7 +19,7 @@ class InlineFieldDefinition {
19
19
  }
20
20
  const source = node.findDirectExpression(Expressions.Source);
21
21
  if (source) {
22
- type = new source_1.Source().runSyntax(source, input);
22
+ type = source_1.Source.runSyntax(source, input);
23
23
  }
24
24
  const typeName = node.findDirectExpression(Expressions.TypeName);
25
25
  if (typeName) {
@@ -35,7 +35,7 @@ class InlineFieldDefinition {
35
35
  if (input.scope.findVariable(name) !== undefined) {
36
36
  const message = `Variable ${name} already defined`;
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
40
  const identifier = new _typed_identifier_1.TypedIdentifier(field, input.filename, type, ["inline" /* IdentifierMeta.InlineDefinition */]);
41
41
  input.scope.addReference(field, identifier, _reference_1.ReferenceType.DataWriteReference, input.filename);
@@ -6,7 +6,7 @@ const _typed_identifier_1 = require("../../types/_typed_identifier");
6
6
  const basic_1 = require("../../types/basic");
7
7
  const _reference_1 = require("../_reference");
8
8
  class InlineFS {
9
- runSyntax(node, input, type) {
9
+ static runSyntax(node, input, type) {
10
10
  var _a;
11
11
  const token = (_a = node.findFirstExpression(Expressions.TargetFieldSymbol)) === null || _a === void 0 ? void 0 : _a.getFirstToken();
12
12
  if (token && type) {
@@ -8,7 +8,7 @@ const _typed_identifier_1 = require("../../types/_typed_identifier");
8
8
  const _reference_1 = require("../_reference");
9
9
  const _syntax_input_1 = require("../_syntax_input");
10
10
  class InlineLoopDefinition {
11
- runSyntax(node, input) {
11
+ static runSyntax(node, input) {
12
12
  if (node === undefined) {
13
13
  return;
14
14
  }
@@ -18,7 +18,7 @@ class InlineLoopDefinition {
18
18
  }
19
19
  const source = node.findDirectExpression(Expressions.Source);
20
20
  if (source && target) {
21
- const sourceType = new source_1.Source().runSyntax(source, input);
21
+ const sourceType = source_1.Source.runSyntax(source, input);
22
22
  let rowType = undefined;
23
23
  if (sourceType instanceof basic_1.TableType) {
24
24
  rowType = sourceType.getRowType();
@@ -5,7 +5,7 @@ const Expressions = require("../../2_statements/expressions");
5
5
  const inline_field_definition_1 = require("./inline_field_definition");
6
6
  const _scope_type_1 = require("../_scope_type");
7
7
  class Let {
8
- runSyntax(node, input, skipScope = false) {
8
+ static runSyntax(node, input, skipScope = false) {
9
9
  if (node === undefined) {
10
10
  return false;
11
11
  }
@@ -13,7 +13,7 @@ class Let {
13
13
  input.scope.push(_scope_type_1.ScopeType.Let, "LET", node.getFirstToken().getStart(), input.filename);
14
14
  }
15
15
  for (const f of node.findDirectExpressions(Expressions.InlineFieldDefinition)) {
16
- new inline_field_definition_1.InlineFieldDefinition().runSyntax(f, input);
16
+ inline_field_definition_1.InlineFieldDefinition.runSyntax(f, input);
17
17
  }
18
18
  return true;
19
19
  }