@abaplint/core 2.119.42 → 2.119.44

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 (332) hide show
  1. package/build/abaplint.d.ts +152 -8
  2. package/build/src/abap/2_statements/combi.js +100 -39
  3. package/build/src/abap/2_statements/expand_macros.js +6 -4
  4. package/build/src/abap/2_statements/expressions/_dynamic_access.js +2 -2
  5. package/build/src/abap/2_statements/expressions/_select_core.js +5 -5
  6. package/build/src/abap/2_statements/expressions/assign_source.js +1 -1
  7. package/build/src/abap/2_statements/expressions/cast.js +1 -1
  8. package/build/src/abap/2_statements/expressions/compare.js +2 -2
  9. package/build/src/abap/2_statements/expressions/component_compare.js +1 -1
  10. package/build/src/abap/2_statements/expressions/component_compare_simple.js +1 -1
  11. package/build/src/abap/2_statements/expressions/cond.js +1 -1
  12. package/build/src/abap/2_statements/expressions/corresponding_body.js +1 -1
  13. package/build/src/abap/2_statements/expressions/data_definition.js +1 -1
  14. package/build/src/abap/2_statements/expressions/find_type.js +1 -1
  15. package/build/src/abap/2_statements/expressions/for.js +2 -2
  16. package/build/src/abap/2_statements/expressions/function_exporting_parameter.js +1 -1
  17. package/build/src/abap/2_statements/expressions/index.js +9 -0
  18. package/build/src/abap/2_statements/expressions/inlinedata.js +1 -1
  19. package/build/src/abap/2_statements/expressions/inlinefs.js +1 -1
  20. package/build/src/abap/2_statements/expressions/loop_source.js +1 -1
  21. package/build/src/abap/2_statements/expressions/message_source_source.js +1 -1
  22. package/build/src/abap/2_statements/expressions/new_object.js +1 -1
  23. package/build/src/abap/2_statements/expressions/reduce_next.js +1 -1
  24. package/build/src/abap/2_statements/expressions/select.js +1 -1
  25. package/build/src/abap/2_statements/expressions/select_cte.js +5 -5
  26. package/build/src/abap/2_statements/expressions/source.js +11 -11
  27. package/build/src/abap/2_statements/expressions/sql_aggregation.js +9 -9
  28. package/build/src/abap/2_statements/expressions/sql_association_entry.js +1 -1
  29. package/build/src/abap/2_statements/expressions/sql_associations_list.js +1 -1
  30. package/build/src/abap/2_statements/expressions/sql_case.js +1 -1
  31. package/build/src/abap/2_statements/expressions/sql_client.js +2 -2
  32. package/build/src/abap/2_statements/expressions/sql_compare.js +7 -6
  33. package/build/src/abap/2_statements/expressions/sql_cte_associations.js +1 -1
  34. package/build/src/abap/2_statements/expressions/sql_cte_hierarchy.js +1 -1
  35. package/build/src/abap/2_statements/expressions/sql_field.js +4 -4
  36. package/build/src/abap/2_statements/expressions/sql_field_list.js +1 -1
  37. package/build/src/abap/2_statements/expressions/sql_field_list_loop.js +2 -2
  38. package/build/src/abap/2_statements/expressions/sql_field_list_loop_greedy.js +2 -2
  39. package/build/src/abap/2_statements/expressions/sql_from_source.js +2 -2
  40. package/build/src/abap/2_statements/expressions/sql_function.js +363 -31
  41. package/build/src/abap/2_statements/expressions/sql_function_input.js +1 -1
  42. package/build/src/abap/2_statements/expressions/sql_group_by.js +2 -2
  43. package/build/src/abap/2_statements/expressions/sql_hierarchy_accessor.js +1 -1
  44. package/build/src/abap/2_statements/expressions/sql_hierarchy_aggregate.js +1 -1
  45. package/build/src/abap/2_statements/expressions/sql_hierarchy_source.js +1 -1
  46. package/build/src/abap/2_statements/expressions/sql_in.js +2 -2
  47. package/build/src/abap/2_statements/expressions/sql_into_list.js +1 -1
  48. package/build/src/abap/2_statements/expressions/sql_join.js +1 -1
  49. package/build/src/abap/2_statements/expressions/sql_like_regexpr.js +19 -0
  50. package/build/src/abap/2_statements/expressions/sql_locate_regexpr.js +18 -0
  51. package/build/src/abap/2_statements/expressions/sql_occurrences_regexpr.js +15 -0
  52. package/build/src/abap/2_statements/expressions/sql_options.js +2 -2
  53. package/build/src/abap/2_statements/expressions/sql_over.js +2 -2
  54. package/build/src/abap/2_statements/expressions/sql_path_for_column.js +1 -1
  55. package/build/src/abap/2_statements/expressions/sql_path_for_entity.js +1 -1
  56. package/build/src/abap/2_statements/expressions/sql_path_segment.js +3 -3
  57. package/build/src/abap/2_statements/expressions/sql_privileged_access.js +1 -1
  58. package/build/src/abap/2_statements/expressions/sql_regexpr_from.js +17 -0
  59. package/build/src/abap/2_statements/expressions/sql_regexpr_group.js +17 -0
  60. package/build/src/abap/2_statements/expressions/sql_regexpr_occurrence.js +17 -0
  61. package/build/src/abap/2_statements/expressions/sql_regexpr_pattern.js +18 -0
  62. package/build/src/abap/2_statements/expressions/sql_replace_regexpr.js +22 -0
  63. package/build/src/abap/2_statements/expressions/sql_set_op.js +1 -1
  64. package/build/src/abap/2_statements/expressions/sql_set_op_group.js +2 -2
  65. package/build/src/abap/2_statements/expressions/sql_source.js +1 -1
  66. package/build/src/abap/2_statements/expressions/sql_source_no_space.js +1 -1
  67. package/build/src/abap/2_statements/expressions/sql_source_simple.js +1 -1
  68. package/build/src/abap/2_statements/expressions/sql_substring_regexpr.js +18 -0
  69. package/build/src/abap/2_statements/expressions/sql_target.js +2 -2
  70. package/build/src/abap/2_statements/expressions/string_template.js +1 -1
  71. package/build/src/abap/2_statements/expressions/string_template_formatting.js +2 -2
  72. package/build/src/abap/2_statements/expressions/table_expression.js +1 -1
  73. package/build/src/abap/2_statements/expressions/type.js +1 -1
  74. package/build/src/abap/2_statements/expressions/type_table.js +1 -1
  75. package/build/src/abap/2_statements/expressions/type_table_key.js +1 -1
  76. package/build/src/abap/2_statements/expressions/value_body.js +1 -1
  77. package/build/src/abap/2_statements/result.js +6 -0
  78. package/build/src/abap/2_statements/statement_parser.js +8 -5
  79. package/build/src/abap/2_statements/statements/add_corresponding.js +1 -1
  80. package/build/src/abap/2_statements/statements/append.js +1 -1
  81. package/build/src/abap/2_statements/statements/assign.js +1 -1
  82. package/build/src/abap/2_statements/statements/assign_local_copy.js +1 -1
  83. package/build/src/abap/2_statements/statements/at_line_selection.js +1 -1
  84. package/build/src/abap/2_statements/statements/at_pf.js +1 -1
  85. package/build/src/abap/2_statements/statements/at_selection_screen.js +1 -1
  86. package/build/src/abap/2_statements/statements/at_user_command.js +1 -1
  87. package/build/src/abap/2_statements/statements/back.js +1 -1
  88. package/build/src/abap/2_statements/statements/break.js +1 -1
  89. package/build/src/abap/2_statements/statements/break_id.js +1 -1
  90. package/build/src/abap/2_statements/statements/call_badi.js +1 -1
  91. package/build/src/abap/2_statements/statements/call_database.js +1 -1
  92. package/build/src/abap/2_statements/statements/call_dialog.js +1 -1
  93. package/build/src/abap/2_statements/statements/call_function.js +4 -4
  94. package/build/src/abap/2_statements/statements/call_kernel.js +1 -1
  95. package/build/src/abap/2_statements/statements/call_ole.js +1 -1
  96. package/build/src/abap/2_statements/statements/call_screen.js +1 -1
  97. package/build/src/abap/2_statements/statements/call_selection_screen.js +1 -1
  98. package/build/src/abap/2_statements/statements/call_subscreen.js +1 -1
  99. package/build/src/abap/2_statements/statements/call_transaction.js +1 -1
  100. package/build/src/abap/2_statements/statements/case_type.js +1 -1
  101. package/build/src/abap/2_statements/statements/catch_system_exceptions.js +1 -1
  102. package/build/src/abap/2_statements/statements/chain.js +1 -1
  103. package/build/src/abap/2_statements/statements/check_select_options.js +1 -1
  104. package/build/src/abap/2_statements/statements/class_definition.js +1 -1
  105. package/build/src/abap/2_statements/statements/close_cursor.js +1 -1
  106. package/build/src/abap/2_statements/statements/close_dataset.js +1 -1
  107. package/build/src/abap/2_statements/statements/commit_entities.js +1 -1
  108. package/build/src/abap/2_statements/statements/communication.js +1 -1
  109. package/build/src/abap/2_statements/statements/compute.js +1 -1
  110. package/build/src/abap/2_statements/statements/contexts.js +1 -1
  111. package/build/src/abap/2_statements/statements/controls.js +1 -1
  112. package/build/src/abap/2_statements/statements/convert.js +2 -2
  113. package/build/src/abap/2_statements/statements/create_data.js +1 -1
  114. package/build/src/abap/2_statements/statements/create_object.js +1 -1
  115. package/build/src/abap/2_statements/statements/create_ole.js +1 -1
  116. package/build/src/abap/2_statements/statements/define.js +1 -1
  117. package/build/src/abap/2_statements/statements/delete_cluster.js +1 -1
  118. package/build/src/abap/2_statements/statements/delete_dataset.js +1 -1
  119. package/build/src/abap/2_statements/statements/delete_dynpro.js +1 -1
  120. package/build/src/abap/2_statements/statements/delete_memory.js +1 -1
  121. package/build/src/abap/2_statements/statements/delete_report.js +1 -1
  122. package/build/src/abap/2_statements/statements/delete_textpool.js +1 -1
  123. package/build/src/abap/2_statements/statements/demand.js +1 -1
  124. package/build/src/abap/2_statements/statements/describe.js +1 -1
  125. package/build/src/abap/2_statements/statements/detail.js +1 -1
  126. package/build/src/abap/2_statements/statements/editor_call.js +1 -1
  127. package/build/src/abap/2_statements/statements/end_chain.js +1 -1
  128. package/build/src/abap/2_statements/statements/end_enhancement.js +1 -1
  129. package/build/src/abap/2_statements/statements/end_enhancement_section.js +1 -1
  130. package/build/src/abap/2_statements/statements/end_of_page.js +1 -1
  131. package/build/src/abap/2_statements/statements/end_of_selection.js +1 -1
  132. package/build/src/abap/2_statements/statements/end_test_seam.js +1 -1
  133. package/build/src/abap/2_statements/statements/endcatch.js +1 -1
  134. package/build/src/abap/2_statements/statements/enddefine.js +1 -1
  135. package/build/src/abap/2_statements/statements/endexec.js +1 -1
  136. package/build/src/abap/2_statements/statements/endmodule.js +1 -1
  137. package/build/src/abap/2_statements/statements/endon.js +1 -1
  138. package/build/src/abap/2_statements/statements/endprovide.js +1 -1
  139. package/build/src/abap/2_statements/statements/endwith.js +1 -1
  140. package/build/src/abap/2_statements/statements/enhancement.js +1 -1
  141. package/build/src/abap/2_statements/statements/enhancement_point.js +1 -1
  142. package/build/src/abap/2_statements/statements/enhancement_section.js +1 -1
  143. package/build/src/abap/2_statements/statements/exec_sql.js +1 -1
  144. package/build/src/abap/2_statements/statements/export_dynpro.js +1 -1
  145. package/build/src/abap/2_statements/statements/extract.js +1 -1
  146. package/build/src/abap/2_statements/statements/fetch_next_cursor.js +1 -1
  147. package/build/src/abap/2_statements/statements/field.js +1 -1
  148. package/build/src/abap/2_statements/statements/field_group.js +1 -1
  149. package/build/src/abap/2_statements/statements/fields.js +1 -1
  150. package/build/src/abap/2_statements/statements/format.js +1 -1
  151. package/build/src/abap/2_statements/statements/free_memory.js +1 -1
  152. package/build/src/abap/2_statements/statements/free_object.js +1 -1
  153. package/build/src/abap/2_statements/statements/generate_dynpro.js +1 -1
  154. package/build/src/abap/2_statements/statements/generate_report.js +1 -1
  155. package/build/src/abap/2_statements/statements/generate_subroutine.js +1 -1
  156. package/build/src/abap/2_statements/statements/get.js +1 -1
  157. package/build/src/abap/2_statements/statements/get_badi.js +1 -1
  158. package/build/src/abap/2_statements/statements/get_cursor.js +1 -1
  159. package/build/src/abap/2_statements/statements/get_dataset.js +1 -1
  160. package/build/src/abap/2_statements/statements/get_locale.js +1 -1
  161. package/build/src/abap/2_statements/statements/get_parameter.js +1 -1
  162. package/build/src/abap/2_statements/statements/get_permissions.js +1 -1
  163. package/build/src/abap/2_statements/statements/get_pf_status.js +1 -1
  164. package/build/src/abap/2_statements/statements/get_property.js +1 -1
  165. package/build/src/abap/2_statements/statements/get_run_time.js +1 -1
  166. package/build/src/abap/2_statements/statements/hide.js +1 -1
  167. package/build/src/abap/2_statements/statements/import_dynpro.js +1 -1
  168. package/build/src/abap/2_statements/statements/import_nametab.js +1 -1
  169. package/build/src/abap/2_statements/statements/infotypes.js +1 -1
  170. package/build/src/abap/2_statements/statements/initialization.js +1 -1
  171. package/build/src/abap/2_statements/statements/input.js +1 -1
  172. package/build/src/abap/2_statements/statements/insert_field_group.js +1 -1
  173. package/build/src/abap/2_statements/statements/insert_internal.js +1 -1
  174. package/build/src/abap/2_statements/statements/insert_report.js +2 -2
  175. package/build/src/abap/2_statements/statements/insert_textpool.js +1 -1
  176. package/build/src/abap/2_statements/statements/interface_def.js +1 -1
  177. package/build/src/abap/2_statements/statements/leave.js +1 -1
  178. package/build/src/abap/2_statements/statements/load_of_program.js +1 -1
  179. package/build/src/abap/2_statements/statements/load_report.js +1 -1
  180. package/build/src/abap/2_statements/statements/local.js +1 -1
  181. package/build/src/abap/2_statements/statements/log_point.js +1 -1
  182. package/build/src/abap/2_statements/statements/loop.js +3 -3
  183. package/build/src/abap/2_statements/statements/loop_at_screen.js +1 -1
  184. package/build/src/abap/2_statements/statements/message.js +1 -1
  185. package/build/src/abap/2_statements/statements/method_def.js +1 -1
  186. package/build/src/abap/2_statements/statements/modify_entities.js +1 -1
  187. package/build/src/abap/2_statements/statements/modify_line.js +1 -1
  188. package/build/src/abap/2_statements/statements/modify_screen.js +1 -1
  189. package/build/src/abap/2_statements/statements/module.js +1 -1
  190. package/build/src/abap/2_statements/statements/move.js +2 -2
  191. package/build/src/abap/2_statements/statements/move_corresponding.js +2 -2
  192. package/build/src/abap/2_statements/statements/new_line.js +1 -1
  193. package/build/src/abap/2_statements/statements/new_page.js +1 -1
  194. package/build/src/abap/2_statements/statements/nodes.js +1 -1
  195. package/build/src/abap/2_statements/statements/on_change.js +1 -1
  196. package/build/src/abap/2_statements/statements/open_cursor.js +2 -2
  197. package/build/src/abap/2_statements/statements/open_dataset.js +1 -1
  198. package/build/src/abap/2_statements/statements/pack.js +1 -1
  199. package/build/src/abap/2_statements/statements/parameter.js +1 -1
  200. package/build/src/abap/2_statements/statements/perform.js +2 -2
  201. package/build/src/abap/2_statements/statements/position.js +1 -1
  202. package/build/src/abap/2_statements/statements/print_control.js +1 -1
  203. package/build/src/abap/2_statements/statements/process_after_input.js +1 -1
  204. package/build/src/abap/2_statements/statements/process_before_output.js +1 -1
  205. package/build/src/abap/2_statements/statements/process_on_help_request.js +1 -1
  206. package/build/src/abap/2_statements/statements/process_on_value_request.js +1 -1
  207. package/build/src/abap/2_statements/statements/program.js +1 -1
  208. package/build/src/abap/2_statements/statements/provide.js +1 -1
  209. package/build/src/abap/2_statements/statements/put.js +1 -1
  210. package/build/src/abap/2_statements/statements/raise.js +2 -2
  211. package/build/src/abap/2_statements/statements/ranges.js +1 -1
  212. package/build/src/abap/2_statements/statements/read_dataset.js +1 -1
  213. package/build/src/abap/2_statements/statements/read_entities.js +1 -1
  214. package/build/src/abap/2_statements/statements/read_line.js +1 -1
  215. package/build/src/abap/2_statements/statements/read_report.js +1 -1
  216. package/build/src/abap/2_statements/statements/read_table.js +1 -1
  217. package/build/src/abap/2_statements/statements/read_textpool.js +1 -1
  218. package/build/src/abap/2_statements/statements/receive.js +1 -1
  219. package/build/src/abap/2_statements/statements/refresh.js +1 -1
  220. package/build/src/abap/2_statements/statements/refresh_control.js +1 -1
  221. package/build/src/abap/2_statements/statements/reject.js +1 -1
  222. package/build/src/abap/2_statements/statements/report.js +1 -1
  223. package/build/src/abap/2_statements/statements/reserve.js +1 -1
  224. package/build/src/abap/2_statements/statements/retry.js +1 -1
  225. package/build/src/abap/2_statements/statements/return.js +1 -1
  226. package/build/src/abap/2_statements/statements/rollback_entities.js +1 -1
  227. package/build/src/abap/2_statements/statements/scan.js +1 -1
  228. package/build/src/abap/2_statements/statements/scroll_list.js +1 -1
  229. package/build/src/abap/2_statements/statements/search.js +1 -1
  230. package/build/src/abap/2_statements/statements/selectionscreen.js +1 -1
  231. package/build/src/abap/2_statements/statements/selectoption.js +1 -1
  232. package/build/src/abap/2_statements/statements/set_blank.js +1 -1
  233. package/build/src/abap/2_statements/statements/set_country.js +1 -1
  234. package/build/src/abap/2_statements/statements/set_cursor.js +1 -1
  235. package/build/src/abap/2_statements/statements/set_dataset.js +1 -1
  236. package/build/src/abap/2_statements/statements/set_extended_check.js +1 -1
  237. package/build/src/abap/2_statements/statements/set_language.js +1 -1
  238. package/build/src/abap/2_statements/statements/set_left.js +1 -1
  239. package/build/src/abap/2_statements/statements/set_locale.js +1 -1
  240. package/build/src/abap/2_statements/statements/set_locks.js +1 -1
  241. package/build/src/abap/2_statements/statements/set_margin.js +1 -1
  242. package/build/src/abap/2_statements/statements/set_parameter.js +1 -1
  243. package/build/src/abap/2_statements/statements/set_pf_status.js +1 -1
  244. package/build/src/abap/2_statements/statements/set_property.js +1 -1
  245. package/build/src/abap/2_statements/statements/set_run_time.js +1 -1
  246. package/build/src/abap/2_statements/statements/set_screen.js +1 -1
  247. package/build/src/abap/2_statements/statements/set_titlebar.js +1 -1
  248. package/build/src/abap/2_statements/statements/set_update_task.js +1 -1
  249. package/build/src/abap/2_statements/statements/set_user_command.js +1 -1
  250. package/build/src/abap/2_statements/statements/skip.js +1 -1
  251. package/build/src/abap/2_statements/statements/sort_dataset.js +1 -1
  252. package/build/src/abap/2_statements/statements/start_of_selection.js +1 -1
  253. package/build/src/abap/2_statements/statements/stop.js +1 -1
  254. package/build/src/abap/2_statements/statements/submit.js +1 -1
  255. package/build/src/abap/2_statements/statements/subtract_corresponding.js +1 -1
  256. package/build/src/abap/2_statements/statements/sum.js +1 -1
  257. package/build/src/abap/2_statements/statements/summary.js +1 -1
  258. package/build/src/abap/2_statements/statements/supply.js +1 -1
  259. package/build/src/abap/2_statements/statements/suppress_dialog.js +1 -1
  260. package/build/src/abap/2_statements/statements/syntax_check.js +1 -1
  261. package/build/src/abap/2_statements/statements/system_call.js +1 -1
  262. package/build/src/abap/2_statements/statements/tables.js +1 -1
  263. package/build/src/abap/2_statements/statements/test_seam.js +1 -1
  264. package/build/src/abap/2_statements/statements/top_of_page.js +1 -1
  265. package/build/src/abap/2_statements/statements/transfer.js +1 -1
  266. package/build/src/abap/2_statements/statements/truncate_dataset.js +1 -1
  267. package/build/src/abap/2_statements/statements/type.js +1 -1
  268. package/build/src/abap/2_statements/statements/type_begin.js +1 -1
  269. package/build/src/abap/2_statements/statements/type_enum.js +1 -1
  270. package/build/src/abap/2_statements/statements/type_enum_begin.js +1 -1
  271. package/build/src/abap/2_statements/statements/type_enum_end.js +1 -1
  272. package/build/src/abap/2_statements/statements/type_mesh.js +1 -1
  273. package/build/src/abap/2_statements/statements/type_mesh_begin.js +1 -1
  274. package/build/src/abap/2_statements/statements/type_mesh_end.js +1 -1
  275. package/build/src/abap/2_statements/statements/type_pool.js +1 -1
  276. package/build/src/abap/2_statements/statements/type_pools.js +1 -1
  277. package/build/src/abap/2_statements/statements/uline.js +1 -1
  278. package/build/src/abap/2_statements/statements/unpack.js +1 -1
  279. package/build/src/abap/2_statements/statements/update_database.js +1 -1
  280. package/build/src/abap/2_statements/statements/verification_message.js +1 -1
  281. package/build/src/abap/2_statements/statements/wait.js +1 -1
  282. package/build/src/abap/2_statements/statements/when_type.js +1 -1
  283. package/build/src/abap/2_statements/statements/window.js +1 -1
  284. package/build/src/abap/2_statements/statements/with.js +1 -1
  285. package/build/src/abap/2_statements/statements/write.js +1 -1
  286. package/build/src/abap/5_syntax/_builtin.js +50 -50
  287. package/build/src/abap/5_syntax/_current_scope.js +10 -0
  288. package/build/src/abap/5_syntax/expressions/field_chain.js +3 -2
  289. package/build/src/abap/5_syntax/expressions/method_source.js +1 -1
  290. package/build/src/abap/5_syntax/expressions/select.js +17 -3
  291. package/build/src/abap/5_syntax/statements/call_function.js +1 -1
  292. package/build/src/abap/5_syntax/statements/loop.js +1 -1
  293. package/build/src/abap/5_syntax/statements/move_corresponding.js +3 -3
  294. package/build/src/abap/abap_parser.js +21 -5
  295. package/build/src/abap/nodes/expression_node.js +3 -0
  296. package/build/src/cds/expressions/cds_define_projection.js +1 -1
  297. package/build/src/cds/expressions/cds_define_view.js +1 -1
  298. package/build/src/config.js +22 -1
  299. package/build/src/index.js +6 -2
  300. package/build/src/objects/_abap_object.js +3 -2
  301. package/build/src/objects/_abstract_object.js +1 -1
  302. package/build/src/objects/proxy_object.js +1 -1
  303. package/build/src/objects/table.js +1 -1
  304. package/build/src/registry.js +3 -3
  305. package/build/src/rules/ambiguous_statement.js +1 -1
  306. package/build/src/rules/avoid_use.js +2 -2
  307. package/build/src/rules/call_transaction_authority_check.js +3 -3
  308. package/build/src/rules/cds_legacy_view.js +2 -2
  309. package/build/src/rules/cloud_types.js +1 -1
  310. package/build/src/rules/downport.js +11 -11
  311. package/build/src/rules/function_module_recommendations.js +23 -2
  312. package/build/src/rules/inline_data_old_versions.js +3 -3
  313. package/build/src/rules/local_testclass_consistency.js +1 -1
  314. package/build/src/rules/main_file_contents.js +1 -1
  315. package/build/src/rules/no_inline_in_optional_branches.js +4 -4
  316. package/build/src/rules/obsolete_statement.js +6 -6
  317. package/build/src/rules/parser_702_chaining.js +2 -2
  318. package/build/src/rules/parser_error.js +2 -2
  319. package/build/src/rules/prefer_corresponding.js +1 -1
  320. package/build/src/rules/prefer_inline.js +2 -1
  321. package/build/src/rules/prefer_raise_exception_new.js +1 -1
  322. package/build/src/rules/prefer_xsdbool.js +2 -1
  323. package/build/src/rules/sql_escape_host_variables.js +3 -3
  324. package/build/src/rules/strict_sql.js +2 -2
  325. package/build/src/rules/superfluous_value.js +2 -2
  326. package/build/src/rules/use_bool_expression.js +6 -5
  327. package/build/src/rules/use_line_exists.js +4 -3
  328. package/build/src/rules/use_new.js +2 -1
  329. package/build/src/version.js +210 -2
  330. package/package.json +1 -1
  331. package/build/src/abap/2_statements/expressions/association_name.js +0 -11
  332. package/build/src/abap/2_statements/expressions/sql_path.js +0 -17
@@ -7,7 +7,7 @@ const version_1 = require("../../../version");
7
7
  class TypeEnumEnd {
8
8
  getMatcher() {
9
9
  const structure = (0, combi_1.seq)("STRUCTURE", expressions_1.NamespaceSimpleName);
10
- const ret = (0, combi_1.ver)(version_1.Version.v751, (0, combi_1.seq)("TYPES", "END OF", "ENUM", expressions_1.NamespaceSimpleName, (0, combi_1.opt)(structure)), version_1.Version.OpenABAP);
10
+ const ret = (0, combi_1.ver)(version_1.Release.v751, (0, combi_1.seq)("TYPES", "END OF", "ENUM", expressions_1.NamespaceSimpleName, (0, combi_1.opt)(structure)), { also: combi_1.AlsoIn.OpenABAP });
11
11
  return ret;
12
12
  }
13
13
  }
@@ -9,7 +9,7 @@ class TypeMesh {
9
9
  const on = (0, combi_1.seq)("ON", expressions_1.NamespaceSimpleName, "=", expressions_1.NamespaceSimpleName, (0, combi_1.star)((0, combi_1.seq)("AND", expressions_1.NamespaceSimpleName, "=", expressions_1.NamespaceSimpleName)));
10
10
  const using = (0, combi_1.seq)("USING KEY", expressions_1.NamespaceSimpleName);
11
11
  const association = (0, combi_1.seq)("ASSOCIATION", expressions_1.NamespaceSimpleName, "TO", expressions_1.NamespaceSimpleName, (0, combi_1.plus)(on));
12
- const ret = (0, combi_1.ver)(version_1.Version.v751, (0, combi_1.seq)("TYPES", expressions_1.NamespaceSimpleName, "TYPE", (0, combi_1.opt)("REF TO"), expressions_1.TypeName, (0, combi_1.plus)(association), (0, combi_1.opt)(using)));
12
+ const ret = (0, combi_1.ver)(version_1.Release.v751, (0, combi_1.seq)("TYPES", expressions_1.NamespaceSimpleName, "TYPE", (0, combi_1.opt)("REF TO"), expressions_1.TypeName, (0, combi_1.plus)(association), (0, combi_1.opt)(using)));
13
13
  return ret;
14
14
  }
15
15
  }
@@ -6,7 +6,7 @@ const expressions_1 = require("../expressions");
6
6
  const version_1 = require("../../../version");
7
7
  class TypeMeshBegin {
8
8
  getMatcher() {
9
- const ret = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)("TYPES", "BEGIN OF MESH", expressions_1.NamespaceSimpleName));
9
+ const ret = (0, combi_1.ver)(version_1.Release.v740sp05, (0, combi_1.seq)("TYPES", "BEGIN OF MESH", expressions_1.NamespaceSimpleName));
10
10
  return ret;
11
11
  }
12
12
  }
@@ -6,7 +6,7 @@ const expressions_1 = require("../expressions");
6
6
  const version_1 = require("../../../version");
7
7
  class TypeMeshEnd {
8
8
  getMatcher() {
9
- const ret = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)("TYPES", "END OF MESH", expressions_1.NamespaceSimpleName));
9
+ const ret = (0, combi_1.ver)(version_1.Release.v740sp05, (0, combi_1.seq)("TYPES", "END OF MESH", expressions_1.NamespaceSimpleName));
10
10
  return ret;
11
11
  }
12
12
  }
@@ -8,7 +8,7 @@ class TypePool {
8
8
  getMatcher() {
9
9
  const fieldName = (0, combi_1.regex)(/^\w+$/);
10
10
  const ret = (0, combi_1.seq)("TYPE-POOL", fieldName);
11
- return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
11
+ return (0, combi_1.verNotLang)(version_1.LanguageVersion.Cloud, ret);
12
12
  }
13
13
  }
14
14
  exports.TypePool = TypePool;
@@ -8,7 +8,7 @@ class TypePools {
8
8
  getMatcher() {
9
9
  const fieldName = (0, combi_1.regex)(/^\w+$/);
10
10
  const ret = (0, combi_1.seq)("TYPE-POOLS", fieldName);
11
- return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
11
+ return (0, combi_1.verNotLang)(version_1.LanguageVersion.Cloud, ret);
12
12
  }
13
13
  }
14
14
  exports.TypePools = TypePools;
@@ -7,7 +7,7 @@ const version_1 = require("../../../version");
7
7
  class Uline {
8
8
  getMatcher() {
9
9
  const ret = (0, combi_1.seq)("ULINE", (0, combi_1.optPrio)(expressions_1.WriteOffsetLength), (0, combi_1.optPrio)("NO-GAP"));
10
- return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
10
+ return (0, combi_1.verNotLang)(version_1.LanguageVersion.Cloud, ret);
11
11
  }
12
12
  }
13
13
  exports.Uline = Uline;
@@ -7,7 +7,7 @@ const version_1 = require("../../../version");
7
7
  class Unpack {
8
8
  getMatcher() {
9
9
  const ret = (0, combi_1.seq)("UNPACK", expressions_1.Source, "TO", expressions_1.Target);
10
- return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
10
+ return (0, combi_1.verNotLang)(version_1.LanguageVersion.Cloud, ret);
11
11
  }
12
12
  }
13
13
  exports.Unpack = Unpack;
@@ -9,7 +9,7 @@ class UpdateDatabase {
9
9
  const parameters = (0, combi_1.seq)(expressions_1.SQLFieldAndValue, (0, combi_1.star)((0, combi_1.seq)((0, combi_1.opt)(","), expressions_1.SQLFieldAndValue)));
10
10
  const set = (0, combi_1.seq)("SET", (0, combi_1.alt)(parameters, expressions_1.Dynamic), (0, combi_1.opt)((0, combi_1.seq)("WHERE", expressions_1.SQLCond)));
11
11
  const indicators = (0, combi_1.seq)("INDICATORS SET STRUCTURE", expressions_1.ComponentName);
12
- const fromTable = (0, combi_1.seq)("FROM", (0, combi_1.opt)("TABLE"), expressions_1.SQLSource, (0, combi_1.opt)((0, combi_1.ver)(version_1.Version.v755, indicators)));
12
+ const fromTable = (0, combi_1.seq)("FROM", (0, combi_1.opt)("TABLE"), expressions_1.SQLSource, (0, combi_1.opt)((0, combi_1.ver)(version_1.Release.v755, indicators)));
13
13
  const ret = (0, combi_1.seq)("UPDATE", expressions_1.DatabaseTable, (0, combi_1.opt)(expressions_1.SQLClient), (0, combi_1.opt)(expressions_1.DatabaseConnection), (0, combi_1.opt)((0, combi_1.alt)(fromTable, set)));
14
14
  return ret;
15
15
  }
@@ -8,7 +8,7 @@ class VerificationMessage {
8
8
  getMatcher() {
9
9
  const priority = (0, combi_1.seq)("PRIORITY", expressions_1.Source);
10
10
  const ret = (0, combi_1.seq)("VERIFICATION-MESSAGE", expressions_1.Source, expressions_1.Source, (0, combi_1.opt)(priority));
11
- return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
11
+ return (0, combi_1.verNotLang)(version_1.LanguageVersion.Cloud, ret);
12
12
  }
13
13
  }
14
14
  exports.VerificationMessage = VerificationMessage;
@@ -8,7 +8,7 @@ class Wait {
8
8
  getMatcher() {
9
9
  const up = (0, combi_1.seq)("UP TO", expressions_1.Source, "SECONDS");
10
10
  const channels = "MESSAGING CHANNELS";
11
- const push = (0, combi_1.ver)(version_1.Version.v750, "PUSH CHANNELS", version_1.Version.OpenABAP);
11
+ const push = (0, combi_1.ver)(version_1.Release.v750, "PUSH CHANNELS", { also: combi_1.AlsoIn.OpenABAP });
12
12
  const tasks = "ASYNCHRONOUS TASKS";
13
13
  const type = (0, combi_1.seq)("FOR", (0, combi_1.per)(channels, push, tasks));
14
14
  const until = (0, combi_1.seq)((0, combi_1.opt)(type), "UNTIL", expressions_1.Cond, (0, combi_1.opt)(up));
@@ -8,7 +8,7 @@ class WhenType {
8
8
  getMatcher() {
9
9
  const into = (0, combi_1.seq)("INTO", expressions_1.Target);
10
10
  const type = (0, combi_1.seq)(expressions_1.ClassName, (0, combi_1.optPrio)(into));
11
- return (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)("WHEN TYPE", type), version_1.Version.OpenABAP);
11
+ return (0, combi_1.ver)(version_1.Release.v750, (0, combi_1.seq)("WHEN TYPE", type), { also: combi_1.AlsoIn.OpenABAP });
12
12
  }
13
13
  }
14
14
  exports.WhenType = WhenType;
@@ -8,7 +8,7 @@ class Window {
8
8
  getMatcher() {
9
9
  const ending = (0, combi_1.seq)("ENDING AT", expressions_1.Source, expressions_1.Source);
10
10
  const ret = (0, combi_1.seq)("WINDOW STARTING AT", expressions_1.Source, expressions_1.Source, (0, combi_1.opt)(ending));
11
- return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
11
+ return (0, combi_1.verNotLang)(version_1.LanguageVersion.Cloud, ret);
12
12
  }
13
13
  }
14
14
  exports.Window = Window;
@@ -9,7 +9,7 @@ class With {
9
9
  getMatcher() {
10
10
  const exposing = (0, combi_1.optPrio)((0, combi_1.seq)("WITH", (0, combi_1.altPrio)(new expressions_1.SQLCTEHierarchy(), expressions_1.SQLCTEAssociations)));
11
11
  const cte = (0, combi_1.seq)(expressions_1.WithName, "AS", (0, combi_1.tok)(tokens_1.WParenLeftW), expressions_1.SelectCTE, (0, combi_1.tok)(tokens_1.WParenRightW), exposing);
12
- return (0, combi_1.ver)(version_1.Version.v751, (0, combi_1.seq)("WITH", cte, (0, combi_1.star)((0, combi_1.seq)(",", cte)), expressions_1.Select));
12
+ return (0, combi_1.ver)(version_1.Release.v751, (0, combi_1.seq)("WITH", cte, (0, combi_1.star)((0, combi_1.seq)(",", cte)), expressions_1.Select));
13
13
  }
14
14
  }
15
15
  exports.With = With;
@@ -14,7 +14,7 @@ class Write {
14
14
  const options = (0, combi_1.per)(mask, to, (0, combi_1.seq)("EXPONENT", expressions_1.Source), "NO-GROUPING", "NO-ZERO", "CENTERED", (0, combi_1.seq)("INPUT", (0, combi_1.opt)(onOff)), "NO-GAP", "LEFT-JUSTIFIED", as, (0, combi_1.seq)("FRAMES", onOff), (0, combi_1.seq)("HOTSPOT", (0, combi_1.opt)(onOff)), "RIGHT-JUSTIFIED", (0, combi_1.seq)("TIME ZONE", expressions_1.Source), (0, combi_1.seq)("UNDER", expressions_1.Source), (0, combi_1.seq)("STYLE", expressions_1.Source), (0, combi_1.seq)("ROUND", expressions_1.Source), (0, combi_1.seq)("QUICKINFO", expressions_1.Source), "ENVIRONMENT TIME FORMAT", dateFormat, (0, combi_1.seq)("UNIT", expressions_1.Source), (0, combi_1.seq)("INTENSIFIED", (0, combi_1.opt)(onOff)), (0, combi_1.seq)("INDEX", expressions_1.Source), (0, combi_1.seq)("DECIMALS", expressions_1.Source), (0, combi_1.seq)("INVERSE", (0, combi_1.opt)(onOff)), expressions_1.Color, (0, combi_1.seq)("CURRENCY", expressions_1.Source), "RESET", "NO-SIGN");
15
15
  // Need to refactor all this sometime,
16
16
  const ret = (0, combi_1.seq)("WRITE", (0, combi_1.alt)((0, combi_1.seq)("AT /", (0, combi_1.opt)(expressions_1.Source), (0, combi_1.opt)("NO-GAP")), (0, combi_1.seq)((0, combi_1.opt)(expressions_1.WriteOffsetLength), (0, combi_1.alt)(expressions_1.Source, expressions_1.Dynamic, "/"), (0, combi_1.opt)(options))));
17
- return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
17
+ return (0, combi_1.verNotLang)(version_1.LanguageVersion.Cloud, ret);
18
18
  }
19
19
  }
20
20
  exports.Write = Write;
@@ -420,7 +420,7 @@ BuiltIn.methods = {
420
420
  "val": basic_1.IntegerType.get(),
421
421
  },
422
422
  return: basic_1.XStringType.get(),
423
- version: version_1.Version.v702,
423
+ release: version_1.Release.v702,
424
424
  },
425
425
  "BOOLC": {
426
426
  counter: BuiltIn.counter++,
@@ -428,7 +428,7 @@ BuiltIn.methods = {
428
428
  "val": basic_1.CLikeType.get(),
429
429
  },
430
430
  return: basic_1.StringType.get(),
431
- version: version_1.Version.v702,
431
+ release: version_1.Release.v702,
432
432
  },
433
433
  "BOOLX": {
434
434
  counter: BuiltIn.counter++,
@@ -439,7 +439,7 @@ BuiltIn.methods = {
439
439
  "bit": basic_1.IntegerType.get(),
440
440
  },
441
441
  return: basic_1.XStringType.get(),
442
- version: version_1.Version.v702,
442
+ release: version_1.Release.v702,
443
443
  },
444
444
  "CEIL": {
445
445
  counter: BuiltIn.counter++,
@@ -458,7 +458,7 @@ BuiltIn.methods = {
458
458
  "off": basic_1.IntegerType.get(),
459
459
  },
460
460
  return: basic_1.IntegerType.get(),
461
- version: version_1.Version.v702,
461
+ release: version_1.Release.v702,
462
462
  },
463
463
  "CHARLEN": {
464
464
  counter: BuiltIn.counter++,
@@ -482,7 +482,7 @@ BuiltIn.methods = {
482
482
  "val9": basic_1.CLikeType.get(),
483
483
  },
484
484
  return: basic_1.StringType.get(),
485
- version: version_1.Version.v702,
485
+ release: version_1.Release.v702,
486
486
  },
487
487
  "CMIN": {
488
488
  counter: BuiltIn.counter++,
@@ -499,7 +499,7 @@ BuiltIn.methods = {
499
499
  "val9": basic_1.CLikeType.get(),
500
500
  },
501
501
  return: basic_1.StringType.get(),
502
- version: version_1.Version.v702,
502
+ release: version_1.Release.v702,
503
503
  },
504
504
  "CONCAT_LINES_OF": {
505
505
  counter: BuiltIn.counter++,
@@ -510,7 +510,7 @@ BuiltIn.methods = {
510
510
  "sep": basic_1.CLikeType.get(),
511
511
  },
512
512
  return: basic_1.StringType.get(),
513
- version: version_1.Version.v702,
513
+ release: version_1.Release.v702,
514
514
  },
515
515
  "CONDENSE": {
516
516
  counter: BuiltIn.counter++,
@@ -523,7 +523,7 @@ BuiltIn.methods = {
523
523
  "to": basic_1.CLikeType.get(),
524
524
  },
525
525
  return: basic_1.StringType.get(),
526
- version: version_1.Version.v702,
526
+ release: version_1.Release.v702,
527
527
  },
528
528
  "CONTAINS": {
529
529
  counter: BuiltIn.counter++,
@@ -543,7 +543,7 @@ BuiltIn.methods = {
543
543
  },
544
544
  return: new basic_1.CharacterType(1),
545
545
  predicate: true,
546
- version: version_1.Version.v702,
546
+ release: version_1.Release.v702,
547
547
  },
548
548
  "CONTAINS_ANY_NOT_OF": {
549
549
  counter: BuiltIn.counter++,
@@ -559,7 +559,7 @@ BuiltIn.methods = {
559
559
  "occ": basic_1.IntegerType.get(),
560
560
  },
561
561
  predicate: true,
562
- return: new basic_1.CharacterType(1), version: version_1.Version.v702,
562
+ return: new basic_1.CharacterType(1), release: version_1.Release.v702,
563
563
  },
564
564
  "CONTAINS_ANY_OF": {
565
565
  counter: BuiltIn.counter++,
@@ -576,7 +576,7 @@ BuiltIn.methods = {
576
576
  },
577
577
  return: new basic_1.CharacterType(1),
578
578
  predicate: true,
579
- version: version_1.Version.v702,
579
+ release: version_1.Release.v702,
580
580
  },
581
581
  "COS": {
582
582
  counter: BuiltIn.counter++,
@@ -606,7 +606,7 @@ BuiltIn.methods = {
606
606
  "len": basic_1.IntegerType.get(),
607
607
  },
608
608
  return: basic_1.IntegerType.get(),
609
- version: version_1.Version.v702,
609
+ release: version_1.Release.v702,
610
610
  },
611
611
  "COUNT_ANY_NOT_OF": {
612
612
  counter: BuiltIn.counter++,
@@ -622,7 +622,7 @@ BuiltIn.methods = {
622
622
  "len": basic_1.IntegerType.get(),
623
623
  },
624
624
  return: basic_1.IntegerType.get(),
625
- version: version_1.Version.v702,
625
+ release: version_1.Release.v702,
626
626
  },
627
627
  "COUNT_ANY_OF": {
628
628
  counter: BuiltIn.counter++,
@@ -638,7 +638,7 @@ BuiltIn.methods = {
638
638
  "len": basic_1.IntegerType.get(),
639
639
  },
640
640
  return: basic_1.IntegerType.get(),
641
- version: version_1.Version.v702,
641
+ release: version_1.Release.v702,
642
642
  },
643
643
  "DBMAXLEN": {
644
644
  counter: BuiltIn.counter++,
@@ -654,7 +654,7 @@ BuiltIn.methods = {
654
654
  "val2": basic_1.CLikeType.get(),
655
655
  },
656
656
  return: basic_1.IntegerType.get(),
657
- version: version_1.Version.v702,
657
+ release: version_1.Release.v702,
658
658
  },
659
659
  "ESCAPE": {
660
660
  counter: BuiltIn.counter++,
@@ -663,7 +663,7 @@ BuiltIn.methods = {
663
663
  "format": basic_1.CLikeType.get(),
664
664
  },
665
665
  return: basic_1.StringType.get(),
666
- version: version_1.Version.v702,
666
+ release: version_1.Release.v702,
667
667
  },
668
668
  "EXP": {
669
669
  counter: BuiltIn.counter++,
@@ -687,7 +687,7 @@ BuiltIn.methods = {
687
687
  "occ": basic_1.IntegerType.get(),
688
688
  },
689
689
  return: basic_1.IntegerType.get(),
690
- version: version_1.Version.v702,
690
+ release: version_1.Release.v702,
691
691
  },
692
692
  "FIND_ANY_NOT_OF": {
693
693
  counter: BuiltIn.counter++,
@@ -701,7 +701,7 @@ BuiltIn.methods = {
701
701
  "occ": basic_1.IntegerType.get(),
702
702
  },
703
703
  return: basic_1.IntegerType.get(),
704
- version: version_1.Version.v702,
704
+ release: version_1.Release.v702,
705
705
  },
706
706
  "FIND_ANY_OF": {
707
707
  counter: BuiltIn.counter++,
@@ -715,7 +715,7 @@ BuiltIn.methods = {
715
715
  "occ": basic_1.IntegerType.get(),
716
716
  },
717
717
  return: basic_1.IntegerType.get(),
718
- version: version_1.Version.v702,
718
+ release: version_1.Release.v702,
719
719
  },
720
720
  "FIND_END": {
721
721
  counter: BuiltIn.counter++,
@@ -732,7 +732,7 @@ BuiltIn.methods = {
732
732
  "occ": basic_1.IntegerType.get(),
733
733
  },
734
734
  return: basic_1.IntegerType.get(),
735
- version: version_1.Version.v702,
735
+ release: version_1.Release.v702,
736
736
  },
737
737
  "FLOOR": {
738
738
  counter: BuiltIn.counter++,
@@ -759,7 +759,7 @@ BuiltIn.methods = {
759
759
  "min": basic_1.IntegerType.get(),
760
760
  },
761
761
  return: basic_1.StringType.get(),
762
- version: version_1.Version.v702,
762
+ release: version_1.Release.v702,
763
763
  },
764
764
  "INSERT": {
765
765
  counter: BuiltIn.counter++,
@@ -771,7 +771,7 @@ BuiltIn.methods = {
771
771
  "off": basic_1.IntegerType.get(),
772
772
  },
773
773
  return: basic_1.StringType.get(),
774
- version: version_1.Version.v702,
774
+ release: version_1.Release.v702,
775
775
  },
776
776
  "IPOW": {
777
777
  counter: BuiltIn.counter++,
@@ -780,7 +780,7 @@ BuiltIn.methods = {
780
780
  "exp": new basic_1.FloatType(),
781
781
  },
782
782
  return: basic_1.IntegerType.get(),
783
- version: version_1.Version.v740sp02,
783
+ release: version_1.Release.v740sp02,
784
784
  },
785
785
  "LINE_EXISTS": {
786
786
  counter: BuiltIn.counter++,
@@ -789,7 +789,7 @@ BuiltIn.methods = {
789
789
  },
790
790
  return: new basic_1.CharacterType(1),
791
791
  predicate: true,
792
- version: version_1.Version.v740sp02,
792
+ release: version_1.Release.v740sp02,
793
793
  },
794
794
  "LINE_INDEX": {
795
795
  counter: BuiltIn.counter++,
@@ -797,7 +797,7 @@ BuiltIn.methods = {
797
797
  "val": basic_1.AnyType.get(),
798
798
  },
799
799
  return: basic_1.IntegerType.get(),
800
- version: version_1.Version.v740sp02,
800
+ release: version_1.Release.v740sp02,
801
801
  },
802
802
  "LINES": {
803
803
  counter: BuiltIn.counter++,
@@ -831,7 +831,7 @@ BuiltIn.methods = {
831
831
  "occ": basic_1.IntegerType.get(),
832
832
  },
833
833
  return: basic_1.StringType.get(),
834
- version: version_1.Version.v702,
834
+ release: version_1.Release.v702,
835
835
  },
836
836
  "MATCHES": {
837
837
  counter: BuiltIn.counter++,
@@ -847,7 +847,7 @@ BuiltIn.methods = {
847
847
  },
848
848
  return: new basic_1.CharacterType(1),
849
849
  predicate: true,
850
- version: version_1.Version.v702,
850
+ release: version_1.Release.v702,
851
851
  },
852
852
  "NMAX": {
853
853
  counter: BuiltIn.counter++,
@@ -865,7 +865,7 @@ BuiltIn.methods = {
865
865
  "val9": basic_1.CLikeType.get(),
866
866
  },
867
867
  return: basic_1.IntegerType.get(),
868
- version: version_1.Version.v702,
868
+ release: version_1.Release.v702,
869
869
  },
870
870
  "NMIN": {
871
871
  counter: BuiltIn.counter++,
@@ -883,7 +883,7 @@ BuiltIn.methods = {
883
883
  "val9": basic_1.CLikeType.get(),
884
884
  },
885
885
  return: basic_1.IntegerType.get(),
886
- version: version_1.Version.v702,
886
+ release: version_1.Release.v702,
887
887
  },
888
888
  "NUMOFCHAR": {
889
889
  counter: BuiltIn.counter++,
@@ -899,7 +899,7 @@ BuiltIn.methods = {
899
899
  "occ": basic_1.CLikeType.get(),
900
900
  },
901
901
  return: basic_1.StringType.get(),
902
- version: version_1.Version.v702,
902
+ release: version_1.Release.v702,
903
903
  },
904
904
  "REPLACE": {
905
905
  counter: BuiltIn.counter++,
@@ -917,7 +917,7 @@ BuiltIn.methods = {
917
917
  "occ": basic_1.IntegerType.get(),
918
918
  },
919
919
  return: basic_1.StringType.get(),
920
- version: version_1.Version.v702,
920
+ release: version_1.Release.v702,
921
921
  },
922
922
  "RESCALE": {
923
923
  counter: BuiltIn.counter++,
@@ -930,7 +930,7 @@ BuiltIn.methods = {
930
930
  "mode": basic_1.IntegerType.get(),
931
931
  },
932
932
  return: new basic_1.FloatType(),
933
- version: version_1.Version.v702,
933
+ release: version_1.Release.v702,
934
934
  },
935
935
  "REVERSE": {
936
936
  counter: BuiltIn.counter++,
@@ -938,7 +938,7 @@ BuiltIn.methods = {
938
938
  "val": basic_1.CLikeType.get(),
939
939
  },
940
940
  return: basic_1.StringType.get(),
941
- version: version_1.Version.v702,
941
+ release: version_1.Release.v702,
942
942
  },
943
943
  "ROUND": {
944
944
  counter: BuiltIn.counter++,
@@ -951,7 +951,7 @@ BuiltIn.methods = {
951
951
  "mode": basic_1.IntegerType.get(),
952
952
  },
953
953
  return: basic_1.IntegerType.get(),
954
- version: version_1.Version.v702,
954
+ release: version_1.Release.v702,
955
955
  },
956
956
  "SEGMENT": {
957
957
  counter: BuiltIn.counter++,
@@ -964,7 +964,7 @@ BuiltIn.methods = {
964
964
  "space": basic_1.CLikeType.get(),
965
965
  },
966
966
  return: basic_1.StringType.get(),
967
- version: version_1.Version.v702,
967
+ release: version_1.Release.v702,
968
968
  },
969
969
  "SHIFT_LEFT": {
970
970
  counter: BuiltIn.counter++,
@@ -977,7 +977,7 @@ BuiltIn.methods = {
977
977
  "circular": basic_1.IntegerType.get(),
978
978
  },
979
979
  return: basic_1.StringType.get(),
980
- version: version_1.Version.v702,
980
+ release: version_1.Release.v702,
981
981
  },
982
982
  "SHIFT_RIGHT": {
983
983
  counter: BuiltIn.counter++,
@@ -990,7 +990,7 @@ BuiltIn.methods = {
990
990
  "circular": basic_1.IntegerType.get(),
991
991
  },
992
992
  return: basic_1.StringType.get(),
993
- version: version_1.Version.v702,
993
+ release: version_1.Release.v702,
994
994
  },
995
995
  "SIGN": {
996
996
  counter: BuiltIn.counter++,
@@ -1037,7 +1037,7 @@ BuiltIn.methods = {
1037
1037
  "len": basic_1.IntegerType.get(),
1038
1038
  },
1039
1039
  return: basic_1.StringType.get(),
1040
- version: version_1.Version.v702,
1040
+ release: version_1.Release.v702,
1041
1041
  },
1042
1042
  "SUBSTRING_AFTER": {
1043
1043
  counter: BuiltIn.counter++,
@@ -1053,7 +1053,7 @@ BuiltIn.methods = {
1053
1053
  "occ": basic_1.IntegerType.get(),
1054
1054
  },
1055
1055
  return: basic_1.StringType.get(),
1056
- version: version_1.Version.v702,
1056
+ release: version_1.Release.v702,
1057
1057
  },
1058
1058
  "SUBSTRING_BEFORE": {
1059
1059
  counter: BuiltIn.counter++,
@@ -1069,7 +1069,7 @@ BuiltIn.methods = {
1069
1069
  "occ": basic_1.IntegerType.get(),
1070
1070
  },
1071
1071
  return: basic_1.StringType.get(),
1072
- version: version_1.Version.v702,
1072
+ release: version_1.Release.v702,
1073
1073
  },
1074
1074
  "SUBSTRING_FROM": {
1075
1075
  counter: BuiltIn.counter++,
@@ -1085,7 +1085,7 @@ BuiltIn.methods = {
1085
1085
  "occ": basic_1.IntegerType.get(),
1086
1086
  },
1087
1087
  return: basic_1.StringType.get(),
1088
- version: version_1.Version.v702,
1088
+ release: version_1.Release.v702,
1089
1089
  },
1090
1090
  "SUBSTRING_TO": {
1091
1091
  counter: BuiltIn.counter++,
@@ -1101,7 +1101,7 @@ BuiltIn.methods = {
1101
1101
  "occ": basic_1.IntegerType.get(),
1102
1102
  },
1103
1103
  return: basic_1.StringType.get(),
1104
- version: version_1.Version.v702,
1104
+ release: version_1.Release.v702,
1105
1105
  },
1106
1106
  "TAN": {
1107
1107
  counter: BuiltIn.counter++,
@@ -1123,7 +1123,7 @@ BuiltIn.methods = {
1123
1123
  "val": basic_1.CLikeType.get(),
1124
1124
  },
1125
1125
  return: basic_1.StringType.get(),
1126
- version: version_1.Version.v702,
1126
+ release: version_1.Release.v702,
1127
1127
  },
1128
1128
  "TO_MIXED": {
1129
1129
  counter: BuiltIn.counter++,
@@ -1136,13 +1136,13 @@ BuiltIn.methods = {
1136
1136
  "min": basic_1.IntegerType.get(),
1137
1137
  },
1138
1138
  return: basic_1.StringType.get(),
1139
- version: version_1.Version.v702,
1139
+ release: version_1.Release.v702,
1140
1140
  },
1141
1141
  "TO_UPPER": {
1142
1142
  counter: BuiltIn.counter++,
1143
1143
  mandatory: { "val": basic_1.CLikeType.get() },
1144
1144
  return: basic_1.StringType.get(),
1145
- version: version_1.Version.v702,
1145
+ release: version_1.Release.v702,
1146
1146
  },
1147
1147
  "TRANSLATE": {
1148
1148
  counter: BuiltIn.counter++,
@@ -1152,7 +1152,7 @@ BuiltIn.methods = {
1152
1152
  "to": basic_1.CLikeType.get(),
1153
1153
  },
1154
1154
  return: basic_1.StringType.get(),
1155
- version: version_1.Version.v702,
1155
+ release: version_1.Release.v702,
1156
1156
  },
1157
1157
  "TRUNC": {
1158
1158
  counter: BuiltIn.counter++,
@@ -1173,12 +1173,12 @@ BuiltIn.methods = {
1173
1173
  "seconds": new basic_1.FloatType(),
1174
1174
  },
1175
1175
  return: new basic_1.UTCLongType(),
1176
- version: version_1.Version.v754,
1176
+ release: version_1.Release.v754,
1177
1177
  },
1178
1178
  "UTCLONG_CURRENT": {
1179
1179
  counter: BuiltIn.counter++,
1180
1180
  return: new basic_1.UTCLongType(),
1181
- version: version_1.Version.v754,
1181
+ release: version_1.Release.v754,
1182
1182
  },
1183
1183
  "UTCLONG_DIFF": {
1184
1184
  counter: BuiltIn.counter++,
@@ -1187,7 +1187,7 @@ BuiltIn.methods = {
1187
1187
  "low": new basic_1.UTCLongType(),
1188
1188
  },
1189
1189
  return: new basic_1.FloatType(),
1190
- version: version_1.Version.v754,
1190
+ release: version_1.Release.v754,
1191
1191
  },
1192
1192
  "XSDBOOL": {
1193
1193
  counter: BuiltIn.counter++,
@@ -1195,7 +1195,7 @@ BuiltIn.methods = {
1195
1195
  "val": basic_1.CLikeType.get(),
1196
1196
  },
1197
1197
  return: new basic_1.CharacterType(1),
1198
- version: version_1.Version.v740sp08,
1198
+ release: version_1.Release.v740sp08,
1199
1199
  },
1200
1200
  "XSTRLEN": {
1201
1201
  counter: BuiltIn.counter++,
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CurrentScope = void 0;
4
+ const version_1 = require("../../version");
4
5
  const _builtin_1 = require("./_builtin");
5
6
  const ddic_1 = require("../../ddic");
6
7
  const position_1 = require("../../position");
@@ -35,9 +36,18 @@ class CurrentScope {
35
36
  this.reg = reg;
36
37
  }
37
38
  ///////////////////////////
39
+ getRelease() {
40
+ return (0, version_1.versionToABAPRelease)(this.reg.getConfig().getVersion());
41
+ }
38
42
  getVersion() {
39
43
  return this.reg.getConfig().getVersion();
40
44
  }
45
+ getLanguageVersion() {
46
+ return this.reg.getConfig().getLanguageVersion();
47
+ }
48
+ getOpenABAP() {
49
+ return this.reg.getConfig().getOpenABAP();
50
+ }
41
51
  getRegistry() {
42
52
  return this.reg;
43
53
  }
@@ -131,8 +131,9 @@ class FieldChain {
131
131
  context = dereference_1.Dereference.runSyntax(current, context, input);
132
132
  if (allowGenericDeference === false
133
133
  && (context === null || context === void 0 ? void 0 : context.isGeneric()) === true
134
- && input.scope.getVersion() < version_1.Version.v756
135
- && input.scope.getVersion() !== version_1.Version.Cloud) {
134
+ && !(0, version_1.releaseAtLeast)(input.scope.getRelease(), version_1.Release.v756)
135
+ && input.scope.getLanguageVersion() !== version_1.LanguageVersion.Cloud
136
+ && !input.scope.getOpenABAP()) {
136
137
  throw new Error("A generic reference cannot be dereferenced");
137
138
  }
138
139
  }
@@ -63,7 +63,7 @@ class MethodSource {
63
63
  context = (_a = input.scope.findVariable("me")) === null || _a === void 0 ? void 0 : _a.getType();
64
64
  children.unshift(first);
65
65
  }
66
- if (input.scope.getVersion() === version_1.Version.Cloud
66
+ if (input.scope.getLanguageVersion() === version_1.LanguageVersion.Cloud
67
67
  && first.get() instanceof Expressions.Dynamic
68
68
  && first instanceof nodes_1.ExpressionNode
69
69
  && ((_b = children[0]) === null || _b === void 0 ? void 0 : _b.concatTokens()) === "=>") {