@abaplint/core 2.111.1 → 2.112.0

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 (214) hide show
  1. package/build/abaplint.d.ts +17 -8
  2. package/build/src/abap/5_syntax/_builtin.js +2 -2
  3. package/build/src/abap/5_syntax/_current_scope.js +2 -0
  4. package/build/src/abap/5_syntax/_procedural.js +6 -2
  5. package/build/src/abap/5_syntax/_syntax_input.js +11 -0
  6. package/build/src/abap/5_syntax/assert_error.js +7 -0
  7. package/build/src/abap/5_syntax/basic_types.js +78 -79
  8. package/build/src/abap/5_syntax/expressions/attribute_chain.js +15 -8
  9. package/build/src/abap/5_syntax/expressions/attribute_name.js +24 -11
  10. package/build/src/abap/5_syntax/expressions/cast.js +24 -13
  11. package/build/src/abap/5_syntax/expressions/compare.js +4 -4
  12. package/build/src/abap/5_syntax/expressions/component_chain.js +26 -11
  13. package/build/src/abap/5_syntax/expressions/component_compare.js +7 -4
  14. package/build/src/abap/5_syntax/expressions/component_compare_simple.js +11 -6
  15. package/build/src/abap/5_syntax/expressions/component_cond.js +3 -3
  16. package/build/src/abap/5_syntax/expressions/component_name.js +10 -5
  17. package/build/src/abap/5_syntax/expressions/cond.js +3 -6
  18. package/build/src/abap/5_syntax/expressions/cond_body.js +6 -6
  19. package/build/src/abap/5_syntax/expressions/conv_body.js +9 -8
  20. package/build/src/abap/5_syntax/expressions/corresponding_body.js +3 -3
  21. package/build/src/abap/5_syntax/expressions/data_definition.js +7 -7
  22. package/build/src/abap/5_syntax/expressions/database_table.js +9 -7
  23. package/build/src/abap/5_syntax/expressions/default.js +2 -2
  24. package/build/src/abap/5_syntax/expressions/dereference.js +5 -2
  25. package/build/src/abap/5_syntax/expressions/dynamic.js +2 -2
  26. package/build/src/abap/5_syntax/expressions/field_assignment.js +12 -5
  27. package/build/src/abap/5_syntax/expressions/field_chain.js +40 -25
  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 +11 -11
  32. package/build/src/abap/5_syntax/expressions/form_param.js +10 -9
  33. package/build/src/abap/5_syntax/expressions/fstarget.js +8 -5
  34. package/build/src/abap/5_syntax/expressions/inline_data.js +11 -8
  35. package/build/src/abap/5_syntax/expressions/inline_field_definition.js +12 -8
  36. package/build/src/abap/5_syntax/expressions/inline_fs.js +7 -7
  37. package/build/src/abap/5_syntax/expressions/inline_loop_definition.js +16 -11
  38. package/build/src/abap/5_syntax/expressions/let.js +3 -3
  39. package/build/src/abap/5_syntax/expressions/loop_group_by.js +5 -15
  40. package/build/src/abap/5_syntax/expressions/message_source.js +4 -4
  41. package/build/src/abap/5_syntax/expressions/method_call_body.js +4 -4
  42. package/build/src/abap/5_syntax/expressions/method_call_chain.js +34 -25
  43. package/build/src/abap/5_syntax/expressions/method_call_param.js +33 -14
  44. package/build/src/abap/5_syntax/expressions/method_def_returning.js +7 -6
  45. package/build/src/abap/5_syntax/expressions/method_param.js +11 -10
  46. package/build/src/abap/5_syntax/expressions/method_parameters.js +76 -49
  47. package/build/src/abap/5_syntax/expressions/method_source.js +47 -38
  48. package/build/src/abap/5_syntax/expressions/new_object.js +48 -28
  49. package/build/src/abap/5_syntax/expressions/raise_with.js +2 -2
  50. package/build/src/abap/5_syntax/expressions/reduce_body.js +10 -10
  51. package/build/src/abap/5_syntax/expressions/reduce_next.js +3 -3
  52. package/build/src/abap/5_syntax/expressions/select.js +48 -33
  53. package/build/src/abap/5_syntax/expressions/select_loop.js +2 -2
  54. package/build/src/abap/5_syntax/expressions/source.js +74 -64
  55. package/build/src/abap/5_syntax/expressions/source_field.js +12 -6
  56. package/build/src/abap/5_syntax/expressions/source_field_symbol.js +8 -4
  57. package/build/src/abap/5_syntax/expressions/sql_compare.js +11 -19
  58. package/build/src/abap/5_syntax/expressions/sql_for_all_entries.js +7 -4
  59. package/build/src/abap/5_syntax/expressions/sql_from.js +3 -3
  60. package/build/src/abap/5_syntax/expressions/sql_in.js +34 -0
  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 +16 -8
  64. package/build/src/abap/5_syntax/expressions/switch_body.js +8 -4
  65. package/build/src/abap/5_syntax/expressions/table_expression.js +2 -2
  66. package/build/src/abap/5_syntax/expressions/target.js +50 -29
  67. package/build/src/abap/5_syntax/expressions/type_table.js +7 -7
  68. package/build/src/abap/5_syntax/expressions/value_body.js +17 -12
  69. package/build/src/abap/5_syntax/global_definitions/find_global_definitions.js +19 -6
  70. package/build/src/abap/5_syntax/spaghetti_scope.js +2 -1
  71. package/build/src/abap/5_syntax/statements/add.js +3 -3
  72. package/build/src/abap/5_syntax/statements/add_corresponding.js +3 -3
  73. package/build/src/abap/5_syntax/statements/append.js +25 -14
  74. package/build/src/abap/5_syntax/statements/assert.js +2 -2
  75. package/build/src/abap/5_syntax/statements/assign.js +17 -12
  76. package/build/src/abap/5_syntax/statements/authority_check.js +2 -2
  77. package/build/src/abap/5_syntax/statements/call.js +8 -5
  78. package/build/src/abap/5_syntax/statements/call_badi.js +4 -4
  79. package/build/src/abap/5_syntax/statements/call_function.js +12 -9
  80. package/build/src/abap/5_syntax/statements/call_kernel.js +2 -2
  81. package/build/src/abap/5_syntax/statements/call_transaction.js +3 -3
  82. package/build/src/abap/5_syntax/statements/call_transformation.js +5 -5
  83. package/build/src/abap/5_syntax/statements/case.js +2 -2
  84. package/build/src/abap/5_syntax/statements/case_type.js +2 -2
  85. package/build/src/abap/5_syntax/statements/catch.js +24 -19
  86. package/build/src/abap/5_syntax/statements/check.js +2 -2
  87. package/build/src/abap/5_syntax/statements/class_data.js +9 -5
  88. package/build/src/abap/5_syntax/statements/class_deferred.js +2 -2
  89. package/build/src/abap/5_syntax/statements/class_implementation.js +16 -13
  90. package/build/src/abap/5_syntax/statements/class_local_friends.js +16 -9
  91. package/build/src/abap/5_syntax/statements/clear.js +3 -3
  92. package/build/src/abap/5_syntax/statements/close_dataset.js +2 -2
  93. package/build/src/abap/5_syntax/statements/collect.js +4 -4
  94. package/build/src/abap/5_syntax/statements/commit_entities.js +4 -4
  95. package/build/src/abap/5_syntax/statements/concatenate.js +18 -11
  96. package/build/src/abap/5_syntax/statements/condense.js +2 -2
  97. package/build/src/abap/5_syntax/statements/constant.js +6 -5
  98. package/build/src/abap/5_syntax/statements/controls.js +5 -5
  99. package/build/src/abap/5_syntax/statements/convert.js +8 -8
  100. package/build/src/abap/5_syntax/statements/create_data.js +11 -11
  101. package/build/src/abap/5_syntax/statements/create_object.js +49 -26
  102. package/build/src/abap/5_syntax/statements/data.js +8 -4
  103. package/build/src/abap/5_syntax/statements/delete_cluster.js +4 -4
  104. package/build/src/abap/5_syntax/statements/delete_database.js +5 -5
  105. package/build/src/abap/5_syntax/statements/delete_internal.js +7 -7
  106. package/build/src/abap/5_syntax/statements/delete_report.js +2 -2
  107. package/build/src/abap/5_syntax/statements/describe.js +13 -13
  108. package/build/src/abap/5_syntax/statements/divide.js +3 -3
  109. package/build/src/abap/5_syntax/statements/do.js +8 -5
  110. package/build/src/abap/5_syntax/statements/editor_call.js +3 -3
  111. package/build/src/abap/5_syntax/statements/else_if.js +2 -2
  112. package/build/src/abap/5_syntax/statements/export.js +5 -5
  113. package/build/src/abap/5_syntax/statements/fieldsymbol.js +4 -4
  114. package/build/src/abap/5_syntax/statements/find.js +13 -13
  115. package/build/src/abap/5_syntax/statements/form.js +10 -7
  116. package/build/src/abap/5_syntax/statements/format.js +2 -2
  117. package/build/src/abap/5_syntax/statements/get_badi.js +4 -4
  118. package/build/src/abap/5_syntax/statements/get_bit.js +9 -6
  119. package/build/src/abap/5_syntax/statements/get_cursor.js +2 -2
  120. package/build/src/abap/5_syntax/statements/get_locale.js +3 -3
  121. package/build/src/abap/5_syntax/statements/get_parameter.js +4 -4
  122. package/build/src/abap/5_syntax/statements/get_reference.js +8 -5
  123. package/build/src/abap/5_syntax/statements/get_run_time.js +3 -3
  124. package/build/src/abap/5_syntax/statements/get_time.js +3 -3
  125. package/build/src/abap/5_syntax/statements/if.js +2 -2
  126. package/build/src/abap/5_syntax/statements/import.js +5 -5
  127. package/build/src/abap/5_syntax/statements/import_dynpro.js +3 -3
  128. package/build/src/abap/5_syntax/statements/include_type.js +9 -5
  129. package/build/src/abap/5_syntax/statements/insert_database.js +5 -5
  130. package/build/src/abap/5_syntax/statements/insert_field_group.js +4 -4
  131. package/build/src/abap/5_syntax/statements/insert_internal.js +22 -13
  132. package/build/src/abap/5_syntax/statements/insert_report.js +2 -2
  133. package/build/src/abap/5_syntax/statements/insert_textpool.js +2 -2
  134. package/build/src/abap/5_syntax/statements/interface_deferred.js +2 -2
  135. package/build/src/abap/5_syntax/statements/log_point.js +2 -2
  136. package/build/src/abap/5_syntax/statements/loop.js +29 -16
  137. package/build/src/abap/5_syntax/statements/loop_at_screen.js +3 -3
  138. package/build/src/abap/5_syntax/statements/message.js +6 -6
  139. package/build/src/abap/5_syntax/statements/method_implementation.js +18 -13
  140. package/build/src/abap/5_syntax/statements/modify_database.js +8 -8
  141. package/build/src/abap/5_syntax/statements/modify_entities.js +4 -4
  142. package/build/src/abap/5_syntax/statements/modify_internal.js +15 -8
  143. package/build/src/abap/5_syntax/statements/modify_screen.js +2 -2
  144. package/build/src/abap/5_syntax/statements/move.js +17 -10
  145. package/build/src/abap/5_syntax/statements/move_corresponding.js +14 -7
  146. package/build/src/abap/5_syntax/statements/multiply.js +3 -3
  147. package/build/src/abap/5_syntax/statements/open_dataset.js +3 -3
  148. package/build/src/abap/5_syntax/statements/pack.js +3 -3
  149. package/build/src/abap/5_syntax/statements/parameter.js +11 -6
  150. package/build/src/abap/5_syntax/statements/perform.js +12 -8
  151. package/build/src/abap/5_syntax/statements/raise.js +23 -18
  152. package/build/src/abap/5_syntax/statements/raise_event.js +4 -4
  153. package/build/src/abap/5_syntax/statements/ranges.js +6 -5
  154. package/build/src/abap/5_syntax/statements/read_entities.js +4 -4
  155. package/build/src/abap/5_syntax/statements/read_report.js +3 -3
  156. package/build/src/abap/5_syntax/statements/read_table.js +40 -21
  157. package/build/src/abap/5_syntax/statements/read_textpool.js +3 -3
  158. package/build/src/abap/5_syntax/statements/receive.js +3 -3
  159. package/build/src/abap/5_syntax/statements/replace.js +3 -3
  160. package/build/src/abap/5_syntax/statements/scan.js +3 -3
  161. package/build/src/abap/5_syntax/statements/search.js +2 -2
  162. package/build/src/abap/5_syntax/statements/select.js +2 -2
  163. package/build/src/abap/5_syntax/statements/select_loop.js +2 -2
  164. package/build/src/abap/5_syntax/statements/selection_screen.js +4 -4
  165. package/build/src/abap/5_syntax/statements/selectoption.js +9 -6
  166. package/build/src/abap/5_syntax/statements/set_bit.js +8 -5
  167. package/build/src/abap/5_syntax/statements/set_handler.js +3 -3
  168. package/build/src/abap/5_syntax/statements/set_locale.js +3 -3
  169. package/build/src/abap/5_syntax/statements/set_parameter.js +2 -2
  170. package/build/src/abap/5_syntax/statements/set_pf_status.js +2 -2
  171. package/build/src/abap/5_syntax/statements/set_titlebar.js +2 -2
  172. package/build/src/abap/5_syntax/statements/shift.js +15 -8
  173. package/build/src/abap/5_syntax/statements/sort.js +16 -7
  174. package/build/src/abap/5_syntax/statements/split.js +12 -7
  175. package/build/src/abap/5_syntax/statements/static.js +4 -4
  176. package/build/src/abap/5_syntax/statements/submit.js +4 -4
  177. package/build/src/abap/5_syntax/statements/subtract.js +3 -3
  178. package/build/src/abap/5_syntax/statements/subtract_corresponding.js +3 -3
  179. package/build/src/abap/5_syntax/statements/syntax_check.js +3 -3
  180. package/build/src/abap/5_syntax/statements/system_call.js +2 -2
  181. package/build/src/abap/5_syntax/statements/tables.js +7 -7
  182. package/build/src/abap/5_syntax/statements/transfer.js +3 -3
  183. package/build/src/abap/5_syntax/statements/translate.js +3 -3
  184. package/build/src/abap/5_syntax/statements/truncate_dataset.js +2 -2
  185. package/build/src/abap/5_syntax/statements/type.js +12 -7
  186. package/build/src/abap/5_syntax/statements/unassign.js +7 -4
  187. package/build/src/abap/5_syntax/statements/unpack.js +3 -3
  188. package/build/src/abap/5_syntax/statements/update_database.js +11 -11
  189. package/build/src/abap/5_syntax/statements/wait.js +3 -3
  190. package/build/src/abap/5_syntax/statements/when.js +2 -2
  191. package/build/src/abap/5_syntax/statements/when_type.js +9 -6
  192. package/build/src/abap/5_syntax/statements/while.js +4 -4
  193. package/build/src/abap/5_syntax/statements/with.js +3 -3
  194. package/build/src/abap/5_syntax/statements/with_loop.js +3 -3
  195. package/build/src/abap/5_syntax/statements/write.js +14 -10
  196. package/build/src/abap/5_syntax/structures/class_data.js +3 -3
  197. package/build/src/abap/5_syntax/structures/constants.js +6 -5
  198. package/build/src/abap/5_syntax/structures/data.js +17 -13
  199. package/build/src/abap/5_syntax/structures/statics.js +16 -11
  200. package/build/src/abap/5_syntax/structures/type_enum.js +15 -13
  201. package/build/src/abap/5_syntax/structures/types.js +9 -9
  202. package/build/src/abap/5_syntax/syntax.js +32 -16
  203. package/build/src/abap/types/class_attributes.js +30 -30
  204. package/build/src/abap/types/class_definition.js +29 -29
  205. package/build/src/abap/types/event_definition.js +5 -5
  206. package/build/src/abap/types/form_definition.js +13 -13
  207. package/build/src/abap/types/interface_definition.js +19 -19
  208. package/build/src/abap/types/method_definition.js +10 -10
  209. package/build/src/abap/types/method_definitions.js +9 -10
  210. package/build/src/abap/types/method_parameters.js +29 -29
  211. package/build/src/issue.js +12 -0
  212. package/build/src/registry.js +1 -1
  213. package/build/src/rules/check_syntax.js +2 -1
  214. package/package.json +3 -3
@@ -5,37 +5,42 @@ const Expressions = require("../../2_statements/expressions");
5
5
  const _object_oriented_1 = require("../_object_oriented");
6
6
  const _scope_type_1 = require("../_scope_type");
7
7
  const _reference_1 = require("../_reference");
8
+ const _syntax_input_1 = require("../_syntax_input");
8
9
  class MethodImplementation {
9
- runSyntax(node, scope, filename) {
10
- const helper = new _object_oriented_1.ObjectOriented(scope);
11
- const className = scope.getName();
10
+ runSyntax(node, input) {
11
+ const helper = new _object_oriented_1.ObjectOriented(input.scope);
12
+ const className = input.scope.getName();
12
13
  const methodToken = node.findFirstExpression(Expressions.MethodName).getFirstToken();
13
14
  const methodName = methodToken === null || methodToken === void 0 ? void 0 : methodToken.getStr();
14
- const classDefinition = scope.findClassDefinition(className);
15
+ const classDefinition = input.scope.findClassDefinition(className);
15
16
  if (classDefinition === undefined) {
16
- throw new Error("Class definition for \"" + className + "\" not found");
17
+ const message = "Class definition for \"" + className + "\" not found";
18
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
19
+ return;
17
20
  }
18
21
  const { method: methodDefinition } = helper.searchMethodName(classDefinition, methodName);
19
22
  if (methodDefinition === undefined) {
20
- throw new Error("Method definition \"" + methodName + "\" not found");
23
+ const message = "Method definition \"" + methodName + "\" not found";
24
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
25
+ return;
21
26
  }
22
27
  const start = node.getFirstToken().getStart();
23
28
  if (methodDefinition.isStatic() === false) {
24
- scope.push(_scope_type_1.ScopeType.MethodInstance, methodName, start, filename);
25
- scope.addList(classDefinition.getAttributes().getInstance());
29
+ input.scope.push(_scope_type_1.ScopeType.MethodInstance, methodName, start, input.filename);
30
+ input.scope.addList(classDefinition.getAttributes().getInstance());
26
31
  }
27
- scope.push(_scope_type_1.ScopeType.Method, methodName, start, filename);
28
- scope.addReference(methodToken, methodDefinition, _reference_1.ReferenceType.MethodImplementationReference, filename);
29
- scope.addList(methodDefinition.getParameters().getAll());
32
+ input.scope.push(_scope_type_1.ScopeType.Method, methodName, start, input.filename);
33
+ input.scope.addReference(methodToken, methodDefinition, _reference_1.ReferenceType.MethodImplementationReference, input.filename);
34
+ input.scope.addList(methodDefinition.getParameters().getAll());
30
35
  for (const i of helper.findInterfaces(classDefinition)) {
31
36
  if (methodName.toUpperCase().startsWith(i.name.toUpperCase() + "~") === false) {
32
37
  continue;
33
38
  }
34
- const idef = scope.findInterfaceDefinition(i.name);
39
+ const idef = input.scope.findInterfaceDefinition(i.name);
35
40
  if (idef === undefined) {
36
41
  continue;
37
42
  }
38
- scope.addReference(methodToken, idef, _reference_1.ReferenceType.ObjectOrientedReference, filename);
43
+ input.scope.addReference(methodToken, idef, _reference_1.ReferenceType.ObjectOrientedReference, input.filename);
39
44
  }
40
45
  }
41
46
  }
@@ -7,30 +7,30 @@ const database_table_1 = require("../expressions/database_table");
7
7
  const source_1 = require("../expressions/source");
8
8
  const _reference_1 = require("../_reference");
9
9
  class ModifyDatabase {
10
- runSyntax(node, scope, filename) {
10
+ runSyntax(node, input) {
11
11
  for (const d of node.findAllExpressions(Expressions.Dynamic)) {
12
- new dynamic_1.Dynamic().runSyntax(d, scope, filename);
12
+ new dynamic_1.Dynamic().runSyntax(d, input);
13
13
  }
14
14
  const dbtab = node.findFirstExpression(Expressions.DatabaseTable);
15
15
  if (dbtab !== undefined) {
16
16
  if (node.getChildren().length === 5) {
17
- const found = scope.findVariable(dbtab.concatTokens());
17
+ const found = input.scope.findVariable(dbtab.concatTokens());
18
18
  if (found) {
19
- scope.addReference(dbtab.getFirstToken(), found, _reference_1.ReferenceType.DataWriteReference, filename);
19
+ input.scope.addReference(dbtab.getFirstToken(), found, _reference_1.ReferenceType.DataWriteReference, input.filename);
20
20
  }
21
21
  else {
22
- new database_table_1.DatabaseTable().runSyntax(dbtab, scope, filename);
22
+ new database_table_1.DatabaseTable().runSyntax(dbtab, input);
23
23
  }
24
24
  }
25
25
  else {
26
- new database_table_1.DatabaseTable().runSyntax(dbtab, scope, filename);
26
+ new database_table_1.DatabaseTable().runSyntax(dbtab, input);
27
27
  }
28
28
  }
29
29
  for (const s of node.findAllExpressions(Expressions.Source)) {
30
- new source_1.Source().runSyntax(s, scope, filename);
30
+ new 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, scope, filename);
33
+ new source_1.Source().runSyntax(s, input);
34
34
  }
35
35
  }
36
36
  }
@@ -7,17 +7,17 @@ const target_1 = require("../expressions/target");
7
7
  const inline_data_1 = require("../expressions/inline_data");
8
8
  const basic_1 = require("../../types/basic");
9
9
  class ModifyEntities {
10
- runSyntax(node, scope, filename) {
10
+ runSyntax(node, input) {
11
11
  for (const s of node.findDirectExpressions(Expressions.Source)) {
12
- new source_1.Source().runSyntax(s, scope, filename);
12
+ new source_1.Source().runSyntax(s, input);
13
13
  }
14
14
  for (const t of node.findDirectExpressions(Expressions.Target)) {
15
15
  const inline = t === null || t === void 0 ? void 0 : t.findDirectExpression(Expressions.InlineData);
16
16
  if (inline) {
17
- new inline_data_1.InlineData().runSyntax(inline, scope, filename, new basic_1.VoidType("ModifyEntities"));
17
+ new inline_data_1.InlineData().runSyntax(inline, input, new basic_1.VoidType("ModifyEntities"));
18
18
  }
19
19
  else {
20
- new target_1.Target().runSyntax(t, scope, filename);
20
+ new target_1.Target().runSyntax(t, input);
21
21
  }
22
22
  }
23
23
  }
@@ -7,17 +7,18 @@ const target_1 = require("../expressions/target");
7
7
  const fstarget_1 = require("../expressions/fstarget");
8
8
  const component_cond_1 = require("../expressions/component_cond");
9
9
  const basic_1 = require("../../types/basic");
10
+ const _syntax_input_1 = require("../_syntax_input");
10
11
  class ModifyInternal {
11
- runSyntax(node, scope, filename) {
12
+ runSyntax(node, input) {
12
13
  for (const s of node.findDirectExpressions(Expressions.Source)) {
13
- new source_1.Source().runSyntax(s, scope, filename);
14
+ new source_1.Source().runSyntax(s, input);
14
15
  }
15
16
  // there is only one
16
17
  const target = node.findFirstExpression(Expressions.Target);
17
18
  const targetExpression = target;
18
19
  if (targetExpression) {
19
20
  // it might be a dynamic target
20
- const targetType = new target_1.Target().runSyntax(targetExpression, scope, filename);
21
+ const targetType = new target_1.Target().runSyntax(targetExpression, input);
21
22
  if (targetType instanceof basic_1.VoidType
22
23
  || targetType instanceof basic_1.AnyType
23
24
  || targetType instanceof basic_1.UnknownType) {
@@ -28,25 +29,31 @@ class ModifyInternal {
28
29
  && node.findDirectTokenByText("INDEX")
29
30
  && targetType.isWithHeader() === false) {
30
31
  // MODIFY TABLE INDEX
31
- throw new Error("Table does not have header line");
32
+ const message = "Table does not have header line";
33
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
34
+ return;
32
35
  }
33
36
  }
34
37
  else if (targetType instanceof basic_1.StructureType) {
35
38
  // it might originate from a TABLES statement
36
39
  if (target.concatTokens().toUpperCase() !== targetType.getDDICName()) {
37
- throw new Error("Not an internal table");
40
+ const message = "Not an internal table";
41
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
42
+ return;
38
43
  }
39
44
  }
40
45
  else {
41
- throw new Error("Not an internal table");
46
+ const message = "Not an internal table";
47
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
48
+ return;
42
49
  }
43
50
  }
44
51
  const fstarget = node.findDirectExpression(Expressions.FSTarget);
45
52
  if (fstarget) {
46
- new fstarget_1.FSTarget().runSyntax(fstarget, scope, filename, undefined);
53
+ new fstarget_1.FSTarget().runSyntax(fstarget, input, undefined);
47
54
  }
48
55
  for (const t of node.findDirectExpressions(Expressions.ComponentCond)) {
49
- new component_cond_1.ComponentCond().runSyntax(t, scope, filename);
56
+ new component_cond_1.ComponentCond().runSyntax(t, input);
50
57
  }
51
58
  }
52
59
  }
@@ -4,9 +4,9 @@ exports.ModifyScreen = void 0;
4
4
  const Expressions = require("../../2_statements/expressions");
5
5
  const source_1 = require("../expressions/source");
6
6
  class ModifyScreen {
7
- runSyntax(node, scope, filename) {
7
+ runSyntax(node, input) {
8
8
  for (const s of node.findAllExpressions(Expressions.Source)) {
9
- new source_1.Source().runSyntax(s, scope, filename);
9
+ new source_1.Source().runSyntax(s, input);
10
10
  }
11
11
  }
12
12
  }
@@ -6,37 +6,44 @@ const source_1 = require("../expressions/source");
6
6
  const target_1 = require("../expressions/target");
7
7
  const inline_data_1 = require("../expressions/inline_data");
8
8
  const _type_utils_1 = require("../_type_utils");
9
+ const _syntax_input_1 = require("../_syntax_input");
9
10
  class Move {
10
- runSyntax(node, scope, filename) {
11
+ runSyntax(node, input) {
11
12
  const targets = node.findDirectExpressions(Expressions.Target);
12
13
  const firstTarget = targets[0];
13
14
  const inline = firstTarget === null || firstTarget === void 0 ? void 0 : firstTarget.findDirectExpression(Expressions.InlineData);
14
15
  let targetType = undefined;
15
16
  if (inline === undefined) {
16
- targetType = firstTarget ? new target_1.Target().runSyntax(firstTarget, scope, filename) : undefined;
17
+ targetType = firstTarget ? new target_1.Target().runSyntax(firstTarget, input) : undefined;
17
18
  for (const t of targets) {
18
19
  if (t === firstTarget) {
19
20
  continue;
20
21
  }
21
- new target_1.Target().runSyntax(t, scope, filename);
22
+ new target_1.Target().runSyntax(t, input);
22
23
  }
23
24
  }
24
25
  const source = node.findDirectExpression(Expressions.Source);
25
- const sourceType = source ? new source_1.Source().runSyntax(source, scope, filename, targetType) : undefined;
26
+ const sourceType = source ? new source_1.Source().runSyntax(source, input, targetType) : undefined;
26
27
  if (sourceType === undefined) {
27
- throw new Error("No source type determined");
28
+ const message = "No source type determined";
29
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
30
+ return;
28
31
  }
29
32
  if (inline) {
30
- new inline_data_1.InlineData().runSyntax(inline, scope, filename, sourceType);
33
+ new inline_data_1.InlineData().runSyntax(inline, input, sourceType);
31
34
  targetType = sourceType;
32
35
  }
33
36
  if (node.findDirectTokenByText("?=")) {
34
- if (new _type_utils_1.TypeUtils(scope).isCastable(sourceType, targetType) === false) {
35
- throw new Error("Incompatible types");
37
+ if (new _type_utils_1.TypeUtils(input.scope).isCastable(sourceType, targetType) === false) {
38
+ const message = "Incompatible types";
39
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
40
+ return;
36
41
  }
37
42
  }
38
- else if (new _type_utils_1.TypeUtils(scope).isAssignable(sourceType, targetType) === false) {
39
- throw new Error("Incompatible types");
43
+ else if (new _type_utils_1.TypeUtils(input.scope).isAssignable(sourceType, targetType) === false) {
44
+ const message = "Incompatible types";
45
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
46
+ return;
40
47
  }
41
48
  }
42
49
  }
@@ -6,21 +6,28 @@ const source_1 = require("../expressions/source");
6
6
  const target_1 = require("../expressions/target");
7
7
  const version_1 = require("../../../version");
8
8
  const basic_1 = require("../../types/basic");
9
+ const _syntax_input_1 = require("../_syntax_input");
9
10
  class MoveCorresponding {
10
- runSyntax(node, scope, filename) {
11
+ runSyntax(node, input) {
11
12
  const s = node.findDirectExpression(Expressions.Source);
12
13
  const t = node.findDirectExpression(Expressions.SimpleTarget);
13
14
  if (s === undefined || t === undefined) {
14
- throw new Error("MoveCorresponding, source or target not found");
15
+ const message = "MoveCorresponding, source or target not found";
16
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
17
+ return;
15
18
  }
16
- const sourceType = new source_1.Source().runSyntax(s, scope, filename);
17
- const targetType = new target_1.Target().runSyntax(t, scope, filename);
18
- if (scope.getVersion() < version_1.Version.v740sp05 && scope.getVersion() !== version_1.Version.Cloud) {
19
+ const sourceType = new source_1.Source().runSyntax(s, input);
20
+ const targetType = new target_1.Target().runSyntax(t, input);
21
+ if (input.scope.getVersion() < version_1.Version.v740sp05 && input.scope.getVersion() !== version_1.Version.Cloud) {
19
22
  if (sourceType instanceof basic_1.TableType && sourceType.isWithHeader() === false) {
20
- throw new Error("MOVE-CORRESPONDING with tables possible from v740sp05");
23
+ const message = "MOVE-CORRESPONDING with tables possible from v740sp05";
24
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
25
+ return;
21
26
  }
22
27
  else if (targetType instanceof basic_1.TableType && targetType.isWithHeader() === false) {
23
- throw new Error("MOVE-CORRESPONDING with tables possible from v740sp05");
28
+ const message = "MOVE-CORRESPONDING with tables possible from v740sp05";
29
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
30
+ return;
24
31
  }
25
32
  }
26
33
  }
@@ -5,12 +5,12 @@ const Expressions = require("../../2_statements/expressions");
5
5
  const source_1 = require("../expressions/source");
6
6
  const target_1 = require("../expressions/target");
7
7
  class Multiply {
8
- runSyntax(node, scope, filename) {
8
+ runSyntax(node, input) {
9
9
  for (const s of node.findDirectExpressions(Expressions.Source)) {
10
- new source_1.Source().runSyntax(s, scope, filename);
10
+ new 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, scope, filename);
13
+ new target_1.Target().runSyntax(t, input);
14
14
  }
15
15
  }
16
16
  }
@@ -5,12 +5,12 @@ const Expressions = require("../../2_statements/expressions");
5
5
  const source_1 = require("../expressions/source");
6
6
  const target_1 = require("../expressions/target");
7
7
  class OpenDataset {
8
- runSyntax(node, scope, filename) {
8
+ runSyntax(node, input) {
9
9
  for (const s of node.findDirectExpressions(Expressions.Source)) {
10
- new source_1.Source().runSyntax(s, scope, filename);
10
+ new 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, scope, filename);
13
+ new target_1.Target().runSyntax(t, input);
14
14
  }
15
15
  }
16
16
  }
@@ -5,12 +5,12 @@ const Expressions = require("../../2_statements/expressions");
5
5
  const source_1 = require("../expressions/source");
6
6
  const target_1 = require("../expressions/target");
7
7
  class Pack {
8
- runSyntax(node, scope, filename) {
8
+ runSyntax(node, input) {
9
9
  for (const s of node.findDirectExpressions(Expressions.Source)) {
10
- new source_1.Source().runSyntax(s, scope, filename);
10
+ new 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, scope, filename);
13
+ new target_1.Target().runSyntax(t, input);
14
14
  }
15
15
  }
16
16
  }
@@ -5,23 +5,28 @@ const Expressions = require("../../2_statements/expressions");
5
5
  const _typed_identifier_1 = require("../../types/_typed_identifier");
6
6
  const basic_1 = require("../../types/basic");
7
7
  const basic_types_1 = require("../basic_types");
8
+ const _syntax_input_1 = require("../_syntax_input");
8
9
  class Parameter {
9
- runSyntax(node, scope, filename) {
10
+ runSyntax(node, input) {
10
11
  var _a;
11
12
  const nameToken = (_a = node.findFirstExpression(Expressions.FieldSub)) === null || _a === void 0 ? void 0 : _a.getFirstToken();
12
13
  if (nameToken && nameToken.getStr().length > 8) {
13
- throw new Error("Parameter name too long, " + nameToken.getStr());
14
+ const message = "Parameter name too long, " + nameToken.getStr();
15
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
16
+ return;
14
17
  }
15
18
  if (node.findDirectTokenByText("RADIOBUTTON") && node.findDirectTokenByText("LENGTH")) {
16
- throw new Error("RADIOBUTTON and LENGTH not possible together");
19
+ const message = "RADIOBUTTON and LENGTH not possible together";
20
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
21
+ return;
17
22
  }
18
- const bfound = new basic_types_1.BasicTypes(filename, scope).parseType(node);
23
+ const bfound = new basic_types_1.BasicTypes(input).parseType(node);
19
24
  if (nameToken && bfound) {
20
- scope.addIdentifier(new _typed_identifier_1.TypedIdentifier(nameToken, filename, bfound));
25
+ input.scope.addIdentifier(new _typed_identifier_1.TypedIdentifier(nameToken, input.filename, bfound));
21
26
  return;
22
27
  }
23
28
  if (nameToken) {
24
- scope.addIdentifier(new _typed_identifier_1.TypedIdentifier(nameToken, filename, new basic_1.UnknownType("Parameter, fallback")));
29
+ input.scope.addIdentifier(new _typed_identifier_1.TypedIdentifier(nameToken, input.filename, new basic_1.UnknownType("Parameter, fallback")));
25
30
  }
26
31
  }
27
32
  }
@@ -6,26 +6,28 @@ const Statements = require("../../2_statements/statements");
6
6
  const _reference_1 = require("../_reference");
7
7
  const source_1 = require("../expressions/source");
8
8
  const target_1 = require("../expressions/target");
9
+ const _syntax_input_1 = require("../_syntax_input");
10
+ const assert_error_1 = require("../assert_error");
9
11
  class Perform {
10
- runSyntax(node, scope, filename) {
12
+ runSyntax(node, input) {
11
13
  if (!(node.get() instanceof Statements.Perform)) {
12
- throw new Error("checkPerform unexpected node type");
14
+ throw new assert_error_1.AssertError("checkPerform unexpected node type");
13
15
  }
14
16
  ////////////////////////////
15
17
  // check parameters are defined
16
18
  for (const c of node.findDirectExpressions(Expressions.PerformChanging)) {
17
19
  for (const s of c.findDirectExpressions(Expressions.Target)) {
18
- new target_1.Target().runSyntax(s, scope, filename);
20
+ new target_1.Target().runSyntax(s, input);
19
21
  }
20
22
  }
21
23
  for (const t of node.findDirectExpressions(Expressions.PerformTables)) {
22
24
  for (const s of t.findDirectExpressions(Expressions.Source)) {
23
- new source_1.Source().runSyntax(s, scope, filename);
25
+ new source_1.Source().runSyntax(s, input);
24
26
  }
25
27
  }
26
28
  for (const u of node.findDirectExpressions(Expressions.PerformUsing)) {
27
29
  for (const s of u.findDirectExpressions(Expressions.Source)) {
28
- new source_1.Source().runSyntax(s, scope, filename);
30
+ new source_1.Source().runSyntax(s, input);
29
31
  }
30
32
  }
31
33
  ////////////////////////////
@@ -41,11 +43,13 @@ class Perform {
41
43
  return; // it might be a dynamic call
42
44
  }
43
45
  const name = expr.concatTokens();
44
- const found = scope.findFormDefinition(name);
46
+ const found = input.scope.findFormDefinition(name);
45
47
  if (found === undefined) {
46
- throw new Error("FORM definition \"" + name + "\" not found");
48
+ const message = "FORM definition \"" + name + "\" not found";
49
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, expr.getFirstToken(), message));
50
+ return;
47
51
  }
48
- scope.addReference(expr.getFirstToken(), found, _reference_1.ReferenceType.FormReference, filename);
52
+ input.scope.addReference(expr.getFirstToken(), found, _reference_1.ReferenceType.FormReference, input.filename);
49
53
  // todo, also check parameters match
50
54
  }
51
55
  }
@@ -10,28 +10,31 @@ const message_source_1 = require("../expressions/message_source");
10
10
  const raise_with_1 = require("../expressions/raise_with");
11
11
  const _object_oriented_1 = require("../_object_oriented");
12
12
  const method_parameters_1 = require("../expressions/method_parameters");
13
+ const _syntax_input_1 = require("../_syntax_input");
13
14
  class Raise {
14
- runSyntax(node, scope, filename) {
15
+ runSyntax(node, input) {
15
16
  // todo
16
17
  var _a, _b, _c, _d, _e, _f;
17
- const helper = new _object_oriented_1.ObjectOriented(scope);
18
+ const helper = new _object_oriented_1.ObjectOriented(input.scope);
18
19
  let method;
19
20
  const classTok = (_a = node.findDirectExpression(Expressions.ClassName)) === null || _a === void 0 ? void 0 : _a.getFirstToken();
20
21
  const className = classTok === null || classTok === void 0 ? void 0 : classTok.getStr();
21
- if (className) {
22
- const found = scope.existsObject(className);
22
+ if (classTok && className) {
23
+ const found = input.scope.existsObject(className);
23
24
  if (found === null || found === void 0 ? void 0 : found.id) {
24
- scope.addReference(classTok, found.id, _reference_1.ReferenceType.ObjectOrientedReference, filename);
25
- const def = scope.findObjectDefinition(className);
25
+ input.scope.addReference(classTok, found.id, _reference_1.ReferenceType.ObjectOrientedReference, input.filename);
26
+ const def = input.scope.findObjectDefinition(className);
26
27
  method = (_b = helper.searchMethodName(def, "CONSTRUCTOR")) === null || _b === void 0 ? void 0 : _b.method;
27
28
  }
28
- else if (scope.getDDIC().inErrorNamespace(className) === false) {
29
+ else if (input.scope.getDDIC().inErrorNamespace(className) === false) {
29
30
  const extra = { ooName: className, ooType: "Void" };
30
- scope.addReference(classTok, undefined, _reference_1.ReferenceType.ObjectOrientedVoidReference, filename, extra);
31
+ input.scope.addReference(classTok, undefined, _reference_1.ReferenceType.ObjectOrientedVoidReference, input.filename, extra);
31
32
  method = new basic_1.VoidType(className);
32
33
  }
33
34
  else {
34
- throw new Error("RAISE, unknown class " + className);
35
+ const message = "RAISE, unknown class " + className;
36
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, classTok, message));
37
+ return;
35
38
  }
36
39
  if (method === undefined) {
37
40
  method = new basic_1.VoidType(className);
@@ -39,16 +42,18 @@ class Raise {
39
42
  }
40
43
  const c = node.findExpressionAfterToken("EXCEPTION");
41
44
  if (c instanceof nodes_1.ExpressionNode && (c.get() instanceof Expressions.SimpleSource2 || c.get() instanceof Expressions.Source)) {
42
- const type = new source_1.Source().runSyntax(c, scope, filename);
45
+ const type = new source_1.Source().runSyntax(c, input);
43
46
  if (type instanceof basic_1.VoidType) {
44
47
  method = type;
45
48
  }
46
49
  else if (type instanceof basic_1.ObjectReferenceType) {
47
- const def = scope.findObjectDefinition(type.getIdentifierName());
50
+ const def = input.scope.findObjectDefinition(type.getIdentifierName());
48
51
  method = (_c = helper.searchMethodName(def, "CONSTRUCTOR")) === null || _c === void 0 ? void 0 : _c.method;
49
52
  }
50
53
  else if (type !== undefined) {
51
- throw new Error("RAISE EXCEPTION, must be object reference, got " + type.constructor.name);
54
+ const message = "RAISE EXCEPTION, must be object reference, got " + type.constructor.name;
55
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, c.getFirstToken(), message));
56
+ return;
52
57
  }
53
58
  }
54
59
  if (method === undefined) {
@@ -57,19 +62,19 @@ class Raise {
57
62
  // check parameters vs constructor
58
63
  const param = node.findDirectExpression(Expressions.ParameterListS);
59
64
  if (param) {
60
- new method_parameters_1.MethodParameters().checkExporting(param, scope, method, filename, true);
65
+ new method_parameters_1.MethodParameters().checkExporting(param, input, method, true);
61
66
  }
62
67
  for (const s of node.findDirectExpressions(Expressions.RaiseWith)) {
63
- new raise_with_1.RaiseWith().runSyntax(s, scope, filename);
68
+ new raise_with_1.RaiseWith().runSyntax(s, input);
64
69
  }
65
70
  for (const s of node.findDirectExpressions(Expressions.Source)) {
66
- new source_1.Source().runSyntax(s, scope, filename);
71
+ new source_1.Source().runSyntax(s, input);
67
72
  }
68
73
  for (const s of node.findDirectExpressions(Expressions.SimpleSource2)) {
69
- new source_1.Source().runSyntax(s, scope, filename);
74
+ new source_1.Source().runSyntax(s, input);
70
75
  }
71
76
  for (const s of node.findDirectExpressions(Expressions.MessageSource)) {
72
- new message_source_1.MessageSource().runSyntax(s, scope, filename);
77
+ new message_source_1.MessageSource().runSyntax(s, input);
73
78
  }
74
79
  const id = (_d = node.findExpressionAfterToken("ID")) === null || _d === void 0 ? void 0 : _d.concatTokens();
75
80
  let number = (_e = node.findDirectExpression(Expressions.MessageNumber)) === null || _e === void 0 ? void 0 : _e.concatTokens();
@@ -81,7 +86,7 @@ class Raise {
81
86
  }
82
87
  if ((id === null || id === void 0 ? void 0 : id.startsWith("'")) && number) {
83
88
  const messageClass = id.substring(1, id.length - 1).toUpperCase();
84
- scope.getMSAGReferences().addUsing(filename, node.getFirstToken(), messageClass, number);
89
+ input.scope.getMSAGReferences().addUsing(input.filename, node.getFirstToken(), messageClass, number);
85
90
  }
86
91
  }
87
92
  }
@@ -5,18 +5,18 @@ const Expressions = require("../../2_statements/expressions");
5
5
  const source_1 = require("../expressions/source");
6
6
  const _reference_1 = require("../_reference");
7
7
  class RaiseEvent {
8
- runSyntax(node, scope, filename) {
8
+ runSyntax(node, input) {
9
9
  // todo: only possible in classes
10
10
  const f = node.findDirectExpression(Expressions.EventName);
11
11
  if (f === null || f === void 0 ? void 0 : f.concatTokens().includes("~")) {
12
12
  const name = f.concatTokens().split("~")[0];
13
- const idef = scope.findInterfaceDefinition(name);
13
+ const idef = input.scope.findInterfaceDefinition(name);
14
14
  if (idef) {
15
- scope.addReference(f.getFirstToken(), idef, _reference_1.ReferenceType.ObjectOrientedReference, filename);
15
+ input.scope.addReference(f.getFirstToken(), idef, _reference_1.ReferenceType.ObjectOrientedReference, input.filename);
16
16
  }
17
17
  }
18
18
  for (const s of node.findAllExpressions(Expressions.Source)) {
19
- new source_1.Source().runSyntax(s, scope, filename);
19
+ new source_1.Source().runSyntax(s, input);
20
20
  }
21
21
  }
22
22
  }
@@ -5,15 +5,16 @@ const Expressions = require("../../2_statements/expressions");
5
5
  const _typed_identifier_1 = require("../../types/_typed_identifier");
6
6
  const basic_1 = require("../../types/basic");
7
7
  const basic_types_1 = require("../basic_types");
8
+ const assert_error_1 = require("../assert_error");
8
9
  class Ranges {
9
- runSyntax(node, scope, filename) {
10
+ runSyntax(node, input) {
10
11
  var _a;
11
12
  const nameToken = (_a = node.findFirstExpression(Expressions.SimpleName)) === null || _a === void 0 ? void 0 : _a.getFirstToken();
12
13
  const typeExpression = node.findFirstExpression(Expressions.FieldSub);
13
14
  if (typeExpression === undefined) {
14
- throw new Error("Ranges, unexpected node");
15
+ throw new assert_error_1.AssertError("Ranges, unexpected node");
15
16
  }
16
- const found = new basic_types_1.BasicTypes(filename, scope).parseType(typeExpression);
17
+ const found = new basic_types_1.BasicTypes(input).parseType(typeExpression);
17
18
  if (found && nameToken) {
18
19
  const structure = new basic_1.StructureType([
19
20
  { name: "sign", type: new basic_1.CharacterType(1) },
@@ -22,8 +23,8 @@ class Ranges {
22
23
  { name: "high", type: found },
23
24
  ]);
24
25
  const type = new basic_1.TableType(structure, { withHeader: true, keyType: basic_1.TableKeyType.default });
25
- const id = new _typed_identifier_1.TypedIdentifier(nameToken, filename, type);
26
- scope.addIdentifier(id);
26
+ const id = new _typed_identifier_1.TypedIdentifier(nameToken, input.filename, type);
27
+ input.scope.addIdentifier(id);
27
28
  }
28
29
  }
29
30
  }
@@ -7,17 +7,17 @@ const target_1 = require("../expressions/target");
7
7
  const inline_data_1 = require("../expressions/inline_data");
8
8
  const basic_1 = require("../../types/basic");
9
9
  class ReadEntities {
10
- runSyntax(node, scope, filename) {
10
+ runSyntax(node, input) {
11
11
  for (const s of node.findDirectExpressions(Expressions.Source)) {
12
- new source_1.Source().runSyntax(s, scope, filename);
12
+ new source_1.Source().runSyntax(s, input);
13
13
  }
14
14
  for (const t of node.findDirectExpressions(Expressions.Target)) {
15
15
  const inline = t === null || t === void 0 ? void 0 : t.findDirectExpression(Expressions.InlineData);
16
16
  if (inline) {
17
- new inline_data_1.InlineData().runSyntax(inline, scope, filename, new basic_1.VoidType("ReadEntities"));
17
+ new inline_data_1.InlineData().runSyntax(inline, input, new basic_1.VoidType("ReadEntities"));
18
18
  }
19
19
  else {
20
- new target_1.Target().runSyntax(t, scope, filename);
20
+ new target_1.Target().runSyntax(t, input);
21
21
  }
22
22
  }
23
23
  }
@@ -5,12 +5,12 @@ const Expressions = require("../../2_statements/expressions");
5
5
  const target_1 = require("../expressions/target");
6
6
  const source_1 = require("../expressions/source");
7
7
  class ReadReport {
8
- runSyntax(node, scope, filename) {
8
+ runSyntax(node, input) {
9
9
  for (const s of node.findDirectExpressions(Expressions.Source)) {
10
- new source_1.Source().runSyntax(s, scope, filename);
10
+ new 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, scope, filename);
13
+ new target_1.Target().runSyntax(t, input);
14
14
  }
15
15
  }
16
16
  }