@abaplint/core 2.119.43 → 2.119.45

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 (374) hide show
  1. package/build/abaplint.d.ts +506 -7
  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 +14 -12
  6. package/build/src/abap/2_statements/expressions/assign_source.js +10 -4
  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/database_table.js +8 -0
  15. package/build/src/abap/2_statements/expressions/find_type.js +1 -1
  16. package/build/src/abap/2_statements/expressions/for.js +2 -2
  17. package/build/src/abap/2_statements/expressions/function_exporting_parameter.js +1 -1
  18. package/build/src/abap/2_statements/expressions/index.js +9 -0
  19. package/build/src/abap/2_statements/expressions/inlinedata.js +1 -1
  20. package/build/src/abap/2_statements/expressions/inlinefs.js +1 -1
  21. package/build/src/abap/2_statements/expressions/loop_source.js +1 -1
  22. package/build/src/abap/2_statements/expressions/message_source_source.js +1 -1
  23. package/build/src/abap/2_statements/expressions/new_object.js +1 -1
  24. package/build/src/abap/2_statements/expressions/reduce_next.js +1 -1
  25. package/build/src/abap/2_statements/expressions/select.js +2 -2
  26. package/build/src/abap/2_statements/expressions/select_cte.js +7 -6
  27. package/build/src/abap/2_statements/expressions/source.js +11 -11
  28. package/build/src/abap/2_statements/expressions/sql_aggregation.js +9 -9
  29. package/build/src/abap/2_statements/expressions/sql_association_entry.js +1 -1
  30. package/build/src/abap/2_statements/expressions/sql_associations_list.js +1 -1
  31. package/build/src/abap/2_statements/expressions/sql_case.js +1 -1
  32. package/build/src/abap/2_statements/expressions/sql_client.js +2 -2
  33. package/build/src/abap/2_statements/expressions/sql_compare.js +7 -6
  34. package/build/src/abap/2_statements/expressions/sql_cte_associations.js +1 -1
  35. package/build/src/abap/2_statements/expressions/sql_cte_hierarchy.js +1 -1
  36. package/build/src/abap/2_statements/expressions/sql_field.js +4 -4
  37. package/build/src/abap/2_statements/expressions/sql_field_list.js +1 -1
  38. package/build/src/abap/2_statements/expressions/sql_field_list_loop.js +2 -2
  39. package/build/src/abap/2_statements/expressions/sql_field_list_loop_greedy.js +2 -2
  40. package/build/src/abap/2_statements/expressions/sql_from.js +9 -8
  41. package/build/src/abap/2_statements/expressions/sql_from_source.js +4 -3
  42. package/build/src/abap/2_statements/expressions/sql_function.js +363 -31
  43. package/build/src/abap/2_statements/expressions/sql_function_input.js +1 -1
  44. package/build/src/abap/2_statements/expressions/sql_group_by.js +2 -2
  45. package/build/src/abap/2_statements/expressions/sql_hierarchy_accessor.js +1 -1
  46. package/build/src/abap/2_statements/expressions/sql_hierarchy_aggregate.js +1 -1
  47. package/build/src/abap/2_statements/expressions/sql_hierarchy_source.js +1 -1
  48. package/build/src/abap/2_statements/expressions/sql_in.js +2 -2
  49. package/build/src/abap/2_statements/expressions/sql_into_list.js +1 -1
  50. package/build/src/abap/2_statements/expressions/sql_join.js +1 -1
  51. package/build/src/abap/2_statements/expressions/sql_like_regexpr.js +19 -0
  52. package/build/src/abap/2_statements/expressions/sql_locate_regexpr.js +18 -0
  53. package/build/src/abap/2_statements/expressions/sql_occurrences_regexpr.js +15 -0
  54. package/build/src/abap/2_statements/expressions/sql_options.js +2 -2
  55. package/build/src/abap/2_statements/expressions/sql_over.js +2 -2
  56. package/build/src/abap/2_statements/expressions/sql_path_for_column.js +1 -1
  57. package/build/src/abap/2_statements/expressions/sql_path_for_entity.js +1 -1
  58. package/build/src/abap/2_statements/expressions/sql_path_segment.js +3 -3
  59. package/build/src/abap/2_statements/expressions/sql_privileged_access.js +1 -1
  60. package/build/src/abap/2_statements/expressions/sql_regexpr_from.js +17 -0
  61. package/build/src/abap/2_statements/expressions/sql_regexpr_group.js +17 -0
  62. package/build/src/abap/2_statements/expressions/sql_regexpr_occurrence.js +17 -0
  63. package/build/src/abap/2_statements/expressions/sql_regexpr_pattern.js +18 -0
  64. package/build/src/abap/2_statements/expressions/sql_replace_regexpr.js +22 -0
  65. package/build/src/abap/2_statements/expressions/sql_set_op.js +1 -1
  66. package/build/src/abap/2_statements/expressions/sql_set_op_group.js +2 -2
  67. package/build/src/abap/2_statements/expressions/sql_source.js +1 -1
  68. package/build/src/abap/2_statements/expressions/sql_source_no_space.js +1 -1
  69. package/build/src/abap/2_statements/expressions/sql_source_simple.js +1 -1
  70. package/build/src/abap/2_statements/expressions/sql_substring_regexpr.js +18 -0
  71. package/build/src/abap/2_statements/expressions/sql_target.js +2 -2
  72. package/build/src/abap/2_statements/expressions/string_template.js +1 -1
  73. package/build/src/abap/2_statements/expressions/string_template_formatting.js +2 -2
  74. package/build/src/abap/2_statements/expressions/table_expression.js +1 -1
  75. package/build/src/abap/2_statements/expressions/type.js +1 -1
  76. package/build/src/abap/2_statements/expressions/type_table.js +1 -1
  77. package/build/src/abap/2_statements/expressions/type_table_key.js +1 -1
  78. package/build/src/abap/2_statements/expressions/value_body.js +1 -1
  79. package/build/src/abap/2_statements/result.js +6 -0
  80. package/build/src/abap/2_statements/statement_parser.js +8 -5
  81. package/build/src/abap/2_statements/statements/add.js +2 -1
  82. package/build/src/abap/2_statements/statements/add_corresponding.js +1 -1
  83. package/build/src/abap/2_statements/statements/append.js +1 -1
  84. package/build/src/abap/2_statements/statements/assert.js +2 -1
  85. package/build/src/abap/2_statements/statements/assign.js +8 -3
  86. package/build/src/abap/2_statements/statements/assign_local_copy.js +1 -1
  87. package/build/src/abap/2_statements/statements/at.js +2 -1
  88. package/build/src/abap/2_statements/statements/at_line_selection.js +1 -1
  89. package/build/src/abap/2_statements/statements/at_pf.js +1 -1
  90. package/build/src/abap/2_statements/statements/at_selection_screen.js +1 -1
  91. package/build/src/abap/2_statements/statements/at_user_command.js +1 -1
  92. package/build/src/abap/2_statements/statements/authority_check.js +2 -1
  93. package/build/src/abap/2_statements/statements/back.js +1 -1
  94. package/build/src/abap/2_statements/statements/break.js +1 -1
  95. package/build/src/abap/2_statements/statements/break_id.js +1 -1
  96. package/build/src/abap/2_statements/statements/call.js +2 -1
  97. package/build/src/abap/2_statements/statements/call_badi.js +1 -1
  98. package/build/src/abap/2_statements/statements/call_database.js +1 -1
  99. package/build/src/abap/2_statements/statements/call_dialog.js +1 -1
  100. package/build/src/abap/2_statements/statements/call_function.js +5 -5
  101. package/build/src/abap/2_statements/statements/call_kernel.js +1 -1
  102. package/build/src/abap/2_statements/statements/call_ole.js +1 -1
  103. package/build/src/abap/2_statements/statements/call_screen.js +1 -1
  104. package/build/src/abap/2_statements/statements/call_selection_screen.js +1 -1
  105. package/build/src/abap/2_statements/statements/call_subscreen.js +1 -1
  106. package/build/src/abap/2_statements/statements/call_transaction.js +1 -1
  107. package/build/src/abap/2_statements/statements/call_transformation.js +2 -1
  108. package/build/src/abap/2_statements/statements/case_type.js +1 -1
  109. package/build/src/abap/2_statements/statements/catch_system_exceptions.js +1 -1
  110. package/build/src/abap/2_statements/statements/chain.js +1 -1
  111. package/build/src/abap/2_statements/statements/check_select_options.js +1 -1
  112. package/build/src/abap/2_statements/statements/class_deferred.js +2 -1
  113. package/build/src/abap/2_statements/statements/class_definition.js +1 -1
  114. package/build/src/abap/2_statements/statements/class_definition_load.js +2 -1
  115. package/build/src/abap/2_statements/statements/close_cursor.js +1 -1
  116. package/build/src/abap/2_statements/statements/close_dataset.js +1 -1
  117. package/build/src/abap/2_statements/statements/commit.js +2 -1
  118. package/build/src/abap/2_statements/statements/commit_entities.js +1 -1
  119. package/build/src/abap/2_statements/statements/communication.js +1 -1
  120. package/build/src/abap/2_statements/statements/compute.js +1 -1
  121. package/build/src/abap/2_statements/statements/contexts.js +1 -1
  122. package/build/src/abap/2_statements/statements/controls.js +1 -1
  123. package/build/src/abap/2_statements/statements/convert.js +2 -2
  124. package/build/src/abap/2_statements/statements/create_data.js +2 -2
  125. package/build/src/abap/2_statements/statements/create_object.js +2 -2
  126. package/build/src/abap/2_statements/statements/create_ole.js +1 -1
  127. package/build/src/abap/2_statements/statements/define.js +1 -1
  128. package/build/src/abap/2_statements/statements/delete_cluster.js +1 -1
  129. package/build/src/abap/2_statements/statements/delete_database.js +2 -1
  130. package/build/src/abap/2_statements/statements/delete_dataset.js +1 -1
  131. package/build/src/abap/2_statements/statements/delete_dynpro.js +1 -1
  132. package/build/src/abap/2_statements/statements/delete_internal.js +3 -1
  133. package/build/src/abap/2_statements/statements/delete_memory.js +1 -1
  134. package/build/src/abap/2_statements/statements/delete_report.js +1 -1
  135. package/build/src/abap/2_statements/statements/delete_textpool.js +1 -1
  136. package/build/src/abap/2_statements/statements/demand.js +1 -1
  137. package/build/src/abap/2_statements/statements/describe.js +1 -1
  138. package/build/src/abap/2_statements/statements/detail.js +1 -1
  139. package/build/src/abap/2_statements/statements/divide.js +2 -1
  140. package/build/src/abap/2_statements/statements/editor_call.js +1 -1
  141. package/build/src/abap/2_statements/statements/end_chain.js +1 -1
  142. package/build/src/abap/2_statements/statements/end_enhancement.js +1 -1
  143. package/build/src/abap/2_statements/statements/end_enhancement_section.js +1 -1
  144. package/build/src/abap/2_statements/statements/end_of_page.js +1 -1
  145. package/build/src/abap/2_statements/statements/end_of_selection.js +1 -1
  146. package/build/src/abap/2_statements/statements/end_test_seam.js +1 -1
  147. package/build/src/abap/2_statements/statements/endcatch.js +1 -1
  148. package/build/src/abap/2_statements/statements/enddefine.js +1 -1
  149. package/build/src/abap/2_statements/statements/endexec.js +1 -1
  150. package/build/src/abap/2_statements/statements/endform.js +2 -2
  151. package/build/src/abap/2_statements/statements/endfunction.js +2 -1
  152. package/build/src/abap/2_statements/statements/endmodule.js +1 -1
  153. package/build/src/abap/2_statements/statements/endon.js +1 -1
  154. package/build/src/abap/2_statements/statements/endprovide.js +1 -1
  155. package/build/src/abap/2_statements/statements/endwith.js +1 -1
  156. package/build/src/abap/2_statements/statements/enhancement.js +1 -1
  157. package/build/src/abap/2_statements/statements/enhancement_point.js +1 -1
  158. package/build/src/abap/2_statements/statements/enhancement_section.js +1 -1
  159. package/build/src/abap/2_statements/statements/exec_sql.js +1 -1
  160. package/build/src/abap/2_statements/statements/export.js +4 -3
  161. package/build/src/abap/2_statements/statements/export_dynpro.js +1 -1
  162. package/build/src/abap/2_statements/statements/extract.js +1 -1
  163. package/build/src/abap/2_statements/statements/fetch_next_cursor.js +1 -1
  164. package/build/src/abap/2_statements/statements/field.js +1 -1
  165. package/build/src/abap/2_statements/statements/field_group.js +1 -1
  166. package/build/src/abap/2_statements/statements/fields.js +1 -1
  167. package/build/src/abap/2_statements/statements/form.js +2 -1
  168. package/build/src/abap/2_statements/statements/format.js +1 -1
  169. package/build/src/abap/2_statements/statements/free.js +2 -1
  170. package/build/src/abap/2_statements/statements/free_memory.js +1 -1
  171. package/build/src/abap/2_statements/statements/free_object.js +1 -1
  172. package/build/src/abap/2_statements/statements/function_module.js +2 -1
  173. package/build/src/abap/2_statements/statements/function_pool.js +2 -1
  174. package/build/src/abap/2_statements/statements/generate_dynpro.js +1 -1
  175. package/build/src/abap/2_statements/statements/generate_report.js +1 -1
  176. package/build/src/abap/2_statements/statements/generate_subroutine.js +1 -1
  177. package/build/src/abap/2_statements/statements/get.js +1 -1
  178. package/build/src/abap/2_statements/statements/get_badi.js +1 -1
  179. package/build/src/abap/2_statements/statements/get_cursor.js +1 -1
  180. package/build/src/abap/2_statements/statements/get_dataset.js +1 -1
  181. package/build/src/abap/2_statements/statements/get_locale.js +1 -1
  182. package/build/src/abap/2_statements/statements/get_parameter.js +1 -1
  183. package/build/src/abap/2_statements/statements/get_permissions.js +1 -1
  184. package/build/src/abap/2_statements/statements/get_pf_status.js +1 -1
  185. package/build/src/abap/2_statements/statements/get_property.js +1 -1
  186. package/build/src/abap/2_statements/statements/get_reference.js +2 -1
  187. package/build/src/abap/2_statements/statements/get_run_time.js +1 -1
  188. package/build/src/abap/2_statements/statements/get_time.js +2 -1
  189. package/build/src/abap/2_statements/statements/hide.js +1 -1
  190. package/build/src/abap/2_statements/statements/import.js +5 -4
  191. package/build/src/abap/2_statements/statements/import_dynpro.js +1 -1
  192. package/build/src/abap/2_statements/statements/import_nametab.js +1 -1
  193. package/build/src/abap/2_statements/statements/infotypes.js +1 -1
  194. package/build/src/abap/2_statements/statements/initialization.js +1 -1
  195. package/build/src/abap/2_statements/statements/input.js +1 -1
  196. package/build/src/abap/2_statements/statements/insert_database.js +2 -1
  197. package/build/src/abap/2_statements/statements/insert_field_group.js +1 -1
  198. package/build/src/abap/2_statements/statements/insert_internal.js +1 -1
  199. package/build/src/abap/2_statements/statements/insert_report.js +2 -2
  200. package/build/src/abap/2_statements/statements/insert_textpool.js +1 -1
  201. package/build/src/abap/2_statements/statements/interface_def.js +1 -1
  202. package/build/src/abap/2_statements/statements/interface_deferred.js +2 -1
  203. package/build/src/abap/2_statements/statements/interface_load.js +2 -1
  204. package/build/src/abap/2_statements/statements/leave.js +1 -1
  205. package/build/src/abap/2_statements/statements/load_of_program.js +1 -1
  206. package/build/src/abap/2_statements/statements/load_report.js +1 -1
  207. package/build/src/abap/2_statements/statements/local.js +1 -1
  208. package/build/src/abap/2_statements/statements/log_point.js +1 -1
  209. package/build/src/abap/2_statements/statements/loop.js +4 -4
  210. package/build/src/abap/2_statements/statements/loop_at_screen.js +1 -1
  211. package/build/src/abap/2_statements/statements/loop_extract.js +2 -1
  212. package/build/src/abap/2_statements/statements/message.js +3 -2
  213. package/build/src/abap/2_statements/statements/method_def.js +9 -5
  214. package/build/src/abap/2_statements/statements/method_implementation.js +3 -1
  215. package/build/src/abap/2_statements/statements/modify_database.js +2 -1
  216. package/build/src/abap/2_statements/statements/modify_entities.js +1 -1
  217. package/build/src/abap/2_statements/statements/modify_line.js +1 -1
  218. package/build/src/abap/2_statements/statements/modify_screen.js +1 -1
  219. package/build/src/abap/2_statements/statements/module.js +1 -1
  220. package/build/src/abap/2_statements/statements/move.js +2 -2
  221. package/build/src/abap/2_statements/statements/move_corresponding.js +2 -2
  222. package/build/src/abap/2_statements/statements/multiply.js +2 -1
  223. package/build/src/abap/2_statements/statements/new_line.js +1 -1
  224. package/build/src/abap/2_statements/statements/new_page.js +1 -1
  225. package/build/src/abap/2_statements/statements/nodes.js +1 -1
  226. package/build/src/abap/2_statements/statements/on_change.js +1 -1
  227. package/build/src/abap/2_statements/statements/open_cursor.js +2 -2
  228. package/build/src/abap/2_statements/statements/open_dataset.js +1 -1
  229. package/build/src/abap/2_statements/statements/pack.js +1 -1
  230. package/build/src/abap/2_statements/statements/parameter.js +1 -1
  231. package/build/src/abap/2_statements/statements/perform.js +3 -3
  232. package/build/src/abap/2_statements/statements/position.js +1 -1
  233. package/build/src/abap/2_statements/statements/print_control.js +1 -1
  234. package/build/src/abap/2_statements/statements/process_after_input.js +1 -1
  235. package/build/src/abap/2_statements/statements/process_before_output.js +1 -1
  236. package/build/src/abap/2_statements/statements/process_on_help_request.js +1 -1
  237. package/build/src/abap/2_statements/statements/process_on_value_request.js +1 -1
  238. package/build/src/abap/2_statements/statements/program.js +1 -1
  239. package/build/src/abap/2_statements/statements/provide.js +1 -1
  240. package/build/src/abap/2_statements/statements/put.js +1 -1
  241. package/build/src/abap/2_statements/statements/raise.js +4 -3
  242. package/build/src/abap/2_statements/statements/raise_entity_event.js +2 -1
  243. package/build/src/abap/2_statements/statements/raise_event.js +2 -1
  244. package/build/src/abap/2_statements/statements/ranges.js +1 -1
  245. package/build/src/abap/2_statements/statements/read_dataset.js +1 -1
  246. package/build/src/abap/2_statements/statements/read_entities.js +1 -1
  247. package/build/src/abap/2_statements/statements/read_line.js +1 -1
  248. package/build/src/abap/2_statements/statements/read_report.js +1 -1
  249. package/build/src/abap/2_statements/statements/read_table.js +4 -3
  250. package/build/src/abap/2_statements/statements/read_textpool.js +1 -1
  251. package/build/src/abap/2_statements/statements/receive.js +1 -1
  252. package/build/src/abap/2_statements/statements/refresh.js +1 -1
  253. package/build/src/abap/2_statements/statements/refresh_control.js +1 -1
  254. package/build/src/abap/2_statements/statements/reject.js +1 -1
  255. package/build/src/abap/2_statements/statements/report.js +1 -1
  256. package/build/src/abap/2_statements/statements/reserve.js +1 -1
  257. package/build/src/abap/2_statements/statements/retry.js +1 -1
  258. package/build/src/abap/2_statements/statements/return.js +1 -1
  259. package/build/src/abap/2_statements/statements/rollback.js +2 -1
  260. package/build/src/abap/2_statements/statements/rollback_entities.js +1 -1
  261. package/build/src/abap/2_statements/statements/scan.js +1 -1
  262. package/build/src/abap/2_statements/statements/scroll_list.js +1 -1
  263. package/build/src/abap/2_statements/statements/search.js +1 -1
  264. package/build/src/abap/2_statements/statements/selectionscreen.js +1 -1
  265. package/build/src/abap/2_statements/statements/selectoption.js +1 -1
  266. package/build/src/abap/2_statements/statements/set_blank.js +1 -1
  267. package/build/src/abap/2_statements/statements/set_country.js +1 -1
  268. package/build/src/abap/2_statements/statements/set_cursor.js +1 -1
  269. package/build/src/abap/2_statements/statements/set_dataset.js +1 -1
  270. package/build/src/abap/2_statements/statements/set_extended_check.js +1 -1
  271. package/build/src/abap/2_statements/statements/set_handler.js +2 -1
  272. package/build/src/abap/2_statements/statements/set_language.js +1 -1
  273. package/build/src/abap/2_statements/statements/set_left.js +1 -1
  274. package/build/src/abap/2_statements/statements/set_locale.js +1 -1
  275. package/build/src/abap/2_statements/statements/set_locks.js +1 -1
  276. package/build/src/abap/2_statements/statements/set_margin.js +1 -1
  277. package/build/src/abap/2_statements/statements/set_parameter.js +1 -1
  278. package/build/src/abap/2_statements/statements/set_pf_status.js +1 -1
  279. package/build/src/abap/2_statements/statements/set_property.js +1 -1
  280. package/build/src/abap/2_statements/statements/set_run_time.js +1 -1
  281. package/build/src/abap/2_statements/statements/set_screen.js +1 -1
  282. package/build/src/abap/2_statements/statements/set_titlebar.js +1 -1
  283. package/build/src/abap/2_statements/statements/set_update_task.js +1 -1
  284. package/build/src/abap/2_statements/statements/set_user_command.js +1 -1
  285. package/build/src/abap/2_statements/statements/skip.js +1 -1
  286. package/build/src/abap/2_statements/statements/sort_dataset.js +1 -1
  287. package/build/src/abap/2_statements/statements/start_of_selection.js +1 -1
  288. package/build/src/abap/2_statements/statements/static.js +3 -2
  289. package/build/src/abap/2_statements/statements/stop.js +1 -1
  290. package/build/src/abap/2_statements/statements/submit.js +1 -1
  291. package/build/src/abap/2_statements/statements/subtract.js +2 -1
  292. package/build/src/abap/2_statements/statements/subtract_corresponding.js +1 -1
  293. package/build/src/abap/2_statements/statements/sum.js +1 -1
  294. package/build/src/abap/2_statements/statements/summary.js +1 -1
  295. package/build/src/abap/2_statements/statements/supply.js +1 -1
  296. package/build/src/abap/2_statements/statements/suppress_dialog.js +1 -1
  297. package/build/src/abap/2_statements/statements/syntax_check.js +1 -1
  298. package/build/src/abap/2_statements/statements/system_call.js +1 -1
  299. package/build/src/abap/2_statements/statements/tables.js +1 -1
  300. package/build/src/abap/2_statements/statements/test_injection.js +2 -1
  301. package/build/src/abap/2_statements/statements/test_seam.js +1 -1
  302. package/build/src/abap/2_statements/statements/top_of_page.js +1 -1
  303. package/build/src/abap/2_statements/statements/transfer.js +1 -1
  304. package/build/src/abap/2_statements/statements/truncate_dataset.js +1 -1
  305. package/build/src/abap/2_statements/statements/type.js +1 -1
  306. package/build/src/abap/2_statements/statements/type_begin.js +1 -1
  307. package/build/src/abap/2_statements/statements/type_enum.js +1 -1
  308. package/build/src/abap/2_statements/statements/type_enum_begin.js +1 -1
  309. package/build/src/abap/2_statements/statements/type_enum_end.js +1 -1
  310. package/build/src/abap/2_statements/statements/type_mesh.js +1 -1
  311. package/build/src/abap/2_statements/statements/type_mesh_begin.js +1 -1
  312. package/build/src/abap/2_statements/statements/type_mesh_end.js +1 -1
  313. package/build/src/abap/2_statements/statements/type_pool.js +1 -1
  314. package/build/src/abap/2_statements/statements/type_pools.js +1 -1
  315. package/build/src/abap/2_statements/statements/uline.js +1 -1
  316. package/build/src/abap/2_statements/statements/unpack.js +1 -1
  317. package/build/src/abap/2_statements/statements/update_database.js +4 -3
  318. package/build/src/abap/2_statements/statements/verification_message.js +1 -1
  319. package/build/src/abap/2_statements/statements/wait.js +4 -3
  320. package/build/src/abap/2_statements/statements/when_type.js +1 -1
  321. package/build/src/abap/2_statements/statements/window.js +1 -1
  322. package/build/src/abap/2_statements/statements/with.js +1 -1
  323. package/build/src/abap/2_statements/statements/write.js +1 -1
  324. package/build/src/abap/5_syntax/_builtin.js +50 -50
  325. package/build/src/abap/5_syntax/_current_scope.js +9 -0
  326. package/build/src/abap/5_syntax/expressions/field_chain.js +3 -3
  327. package/build/src/abap/5_syntax/expressions/method_source.js +1 -1
  328. package/build/src/abap/5_syntax/expressions/select.js +13 -3
  329. package/build/src/abap/5_syntax/statements/call_function.js +1 -1
  330. package/build/src/abap/5_syntax/statements/loop.js +1 -1
  331. package/build/src/abap/5_syntax/statements/move_corresponding.js +3 -3
  332. package/build/src/abap/abap_parser.js +21 -5
  333. package/build/src/abap/nodes/expression_node.js +3 -0
  334. package/build/src/cds/cds_parser.js +8 -8
  335. package/build/src/cds/expressions/cds_define_projection.js +1 -1
  336. package/build/src/cds/expressions/cds_define_view.js +1 -1
  337. package/build/src/config.js +42 -12
  338. package/build/src/ddl/ddl_parser.js +2 -2
  339. package/build/src/index.js +6 -2
  340. package/build/src/objects/_abap_object.js +3 -2
  341. package/build/src/objects/_abstract_object.js +1 -1
  342. package/build/src/objects/proxy_object.js +1 -1
  343. package/build/src/objects/table.js +1 -1
  344. package/build/src/registry.js +3 -3
  345. package/build/src/rules/ambiguous_statement.js +1 -1
  346. package/build/src/rules/avoid_use.js +2 -2
  347. package/build/src/rules/call_transaction_authority_check.js +3 -3
  348. package/build/src/rules/cds_legacy_view.js +2 -2
  349. package/build/src/rules/cloud_types.js +1 -1
  350. package/build/src/rules/downport.js +11 -11
  351. package/build/src/rules/function_module_recommendations.js +23 -2
  352. package/build/src/rules/index.js +1 -0
  353. package/build/src/rules/inline_data_old_versions.js +3 -3
  354. package/build/src/rules/local_testclass_consistency.js +1 -1
  355. package/build/src/rules/main_file_contents.js +1 -1
  356. package/build/src/rules/no_inline_in_optional_branches.js +4 -4
  357. package/build/src/rules/obsolete_statement.js +6 -6
  358. package/build/src/rules/parser_702_chaining.js +2 -2
  359. package/build/src/rules/parser_error.js +2 -2
  360. package/build/src/rules/prefer_corresponding.js +1 -1
  361. package/build/src/rules/prefer_inline.js +2 -1
  362. package/build/src/rules/prefer_raise_exception_new.js +1 -1
  363. package/build/src/rules/prefer_xsdbool.js +2 -1
  364. package/build/src/rules/sql_escape_host_variables.js +3 -3
  365. package/build/src/rules/strict_sql.js +2 -2
  366. package/build/src/rules/superfluous_value.js +2 -2
  367. package/build/src/rules/sy_read_restriction.js +152 -0
  368. package/build/src/rules/use_bool_expression.js +6 -5
  369. package/build/src/rules/use_line_exists.js +4 -3
  370. package/build/src/rules/use_new.js +2 -1
  371. package/build/src/version.js +148 -3
  372. package/package.json +1 -1
  373. package/build/src/abap/2_statements/expressions/association_name.js +0 -11
  374. package/build/src/abap/2_statements/expressions/sql_path.js +0 -17
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.Combi = exports.Expression = void 0;
36
+ exports.Combi = exports.Expression = exports.AlsoIn = void 0;
37
37
  exports.str = str;
38
38
  exports.regex = regex;
39
39
  exports.tok = tok;
@@ -48,7 +48,8 @@ exports.starPrio = starPrio;
48
48
  exports.plus = plus;
49
49
  exports.plusPrio = plusPrio;
50
50
  exports.ver = ver;
51
- exports.verNot = verNot;
51
+ exports.verLang = verLang;
52
+ exports.verNotLang = verNotLang;
52
53
  exports.failCombinator = failCombinator;
53
54
  exports.failStar = failStar;
54
55
  exports.stopBefore = stopBefore;
@@ -158,43 +159,36 @@ class Token {
158
159
  return [""];
159
160
  }
160
161
  }
162
+ var AlsoIn;
163
+ (function (AlsoIn) {
164
+ AlsoIn["OpenABAP"] = "OpenABAP";
165
+ })(AlsoIn || (exports.AlsoIn = AlsoIn = {}));
161
166
  class Vers {
162
- constructor(version, runnable, or) {
163
- this.version = version;
167
+ constructor(release, runnable, also) {
168
+ this.release = release;
164
169
  this.runnable = runnable;
165
- this.or = or;
170
+ this.also = also;
166
171
  }
167
172
  listKeywords() {
168
173
  return this.runnable.listKeywords();
169
174
  }
170
175
  run(r) {
171
- const targetVersion = Combi.getVersion();
172
- if (this.or && targetVersion === this.or) {
173
- return this.runnable.run(r);
174
- }
175
- else if (targetVersion === version_1.Version.OpenABAP) {
176
- if (this.version > version_1.Version.v702) {
177
- return [];
178
- }
179
- else {
176
+ if (Combi.isOpenABAP() === true) {
177
+ if (this.also === AlsoIn.OpenABAP) {
180
178
  return this.runnable.run(r);
181
179
  }
180
+ return (0, version_1.releaseAtLeast)(version_1.Release.v702, this.release) ? this.runnable.run(r) : [];
182
181
  }
183
- else if ((targetVersion !== version_1.Version.Cloud && this.version !== version_1.Version.Cloud && targetVersion >= this.version)
184
- || targetVersion === version_1.Version.Cloud) {
185
- return this.runnable.run(r);
186
- }
187
- else {
188
- return [];
189
- }
182
+ return (0, version_1.releaseAtLeast)(Combi.getRelease(), this.release) ? this.runnable.run(r) : [];
190
183
  }
191
184
  getUsing() {
192
185
  return this.runnable.getUsing();
193
186
  }
194
187
  railroad() {
195
- let text = this.version;
196
- if (this.or) {
197
- text += " or " + this.or;
188
+ var _a;
189
+ let text = (_a = this.release.abap) !== null && _a !== void 0 ? _a : "Newest";
190
+ if (this.also) {
191
+ text += " or " + this.also;
198
192
  }
199
193
  return "Railroad.Sequence(Railroad.Comment(\"" +
200
194
  text +
@@ -209,9 +203,50 @@ class Vers {
209
203
  return this.runnable.first();
210
204
  }
211
205
  }
212
- class VersNot {
213
- constructor(version, runnable) {
214
- this.version = version;
206
+ function langVersionOrdinal(v) {
207
+ switch (v) {
208
+ case version_1.LanguageVersion.KeyUser: return 0;
209
+ case version_1.LanguageVersion.Cloud: return 1;
210
+ case version_1.LanguageVersion.Normal: return 2;
211
+ default: return 2;
212
+ }
213
+ }
214
+ class LangVers {
215
+ constructor(langVersion, runnable) {
216
+ this.langVersion = langVersion;
217
+ this.runnable = runnable;
218
+ }
219
+ listKeywords() {
220
+ return this.runnable.listKeywords();
221
+ }
222
+ getUsing() {
223
+ return this.runnable.getUsing();
224
+ }
225
+ run(r) {
226
+ if (langVersionOrdinal(Combi.getLanguageVersion()) <= langVersionOrdinal(this.langVersion)) {
227
+ return this.runnable.run(r);
228
+ }
229
+ else {
230
+ return [];
231
+ }
232
+ }
233
+ railroad() {
234
+ return "Railroad.Sequence(Railroad.Comment(\"langver=" +
235
+ this.langVersion +
236
+ "\", {}), " +
237
+ this.runnable.railroad() +
238
+ ")";
239
+ }
240
+ toStr() {
241
+ return "LangVersion(" + this.runnable.toStr() + ")";
242
+ }
243
+ first() {
244
+ return this.runnable.first();
245
+ }
246
+ }
247
+ class LangVersNot {
248
+ constructor(langVersion, runnable) {
249
+ this.langVersion = langVersion;
215
250
  this.runnable = runnable;
216
251
  }
217
252
  listKeywords() {
@@ -221,7 +256,7 @@ class VersNot {
221
256
  return this.runnable.getUsing();
222
257
  }
223
258
  run(r) {
224
- if (Combi.getVersion() !== this.version) {
259
+ if (langVersionOrdinal(Combi.getLanguageVersion()) > langVersionOrdinal(this.langVersion)) {
225
260
  return this.runnable.run(r);
226
261
  }
227
262
  else {
@@ -229,14 +264,14 @@ class VersNot {
229
264
  }
230
265
  }
231
266
  railroad() {
232
- return "Railroad.Sequence(Railroad.Comment(\"not " +
233
- this.version +
267
+ return "Railroad.Sequence(Railroad.Comment(\"not langver=" +
268
+ this.langVersion +
234
269
  "\", {}), " +
235
270
  this.runnable.railroad() +
236
271
  ")";
237
272
  }
238
273
  toStr() {
239
- return "VersionNot(" + this.runnable.toStr() + ")";
274
+ return "LanguageVersionNot(" + this.runnable.toStr() + ")";
240
275
  }
241
276
  first() {
242
277
  return this.runnable.first();
@@ -825,8 +860,15 @@ class Combi {
825
860
  return res;
826
861
  }
827
862
  // assumption: no pragmas supplied in tokens input
828
- static run(runnable, tokens, version) {
829
- this.ver = version;
863
+ static run(runnable, tokens, versionOrRelease, languageVersion = version_1.LanguageVersion.Normal, openABAP = false) {
864
+ this.openABAP = openABAP || versionOrRelease === version_1.Version.OpenABAP;
865
+ this.langVer = languageVersion;
866
+ if (typeof versionOrRelease === "string") {
867
+ this.release = this.openABAP ? version_1.Release.v702 : (0, version_1.versionToABAPRelease)(versionOrRelease);
868
+ }
869
+ else {
870
+ this.release = this.openABAP ? version_1.Release.v702 : versionOrRelease;
871
+ }
830
872
  const input = new result_1.Result(tokens, 0);
831
873
  try {
832
874
  const result = runnable.run([input]);
@@ -851,11 +893,21 @@ class Combi {
851
893
  }
852
894
  return undefined;
853
895
  }
854
- static getVersion() {
855
- return this.ver;
896
+ static getRelease() {
897
+ return this.release;
898
+ }
899
+ static getLanguageVersion() {
900
+ return this.langVer;
901
+ }
902
+ static isOpenABAP() {
903
+ return this.openABAP;
856
904
  }
857
905
  }
858
906
  exports.Combi = Combi;
907
+ // todo, change this class to be instantiated, constructor(runnable) ?
908
+ Combi.release = version_1.Release.v758;
909
+ Combi.langVer = version_1.LanguageVersion.Normal;
910
+ Combi.openABAP = false;
859
911
  // -----------------------------------------------------------------------------
860
912
  function str(s) {
861
913
  if (s.indexOf(" ") > 0 || s.indexOf("-") > 0) {
@@ -932,11 +984,20 @@ function plus(first) {
932
984
  function plusPrio(first) {
933
985
  return new PlusPriority(mapInput(first));
934
986
  }
935
- function ver(version, first, or) {
936
- return new Vers(version, mapInput(first), or);
987
+ function inputToRelease(versionOrRelease) {
988
+ if (typeof versionOrRelease === "string") {
989
+ return (0, version_1.versionToABAPRelease)(versionOrRelease);
990
+ }
991
+ return versionOrRelease;
992
+ }
993
+ function ver(versionOrRelease, first, opts = {}) {
994
+ return new Vers(inputToRelease(versionOrRelease), mapInput(first), opts.also);
995
+ }
996
+ function verLang(langVersion, first) {
997
+ return new LangVers(langVersion, mapInput(first));
937
998
  }
938
- function verNot(version, first) {
939
- return new VersNot(version, mapInput(first));
999
+ function verNotLang(langVersion, first) {
1000
+ return new LangVersNot(langVersion, mapInput(first));
940
1001
  }
941
1002
  function failCombinator() {
942
1003
  return new FailCombinator();
@@ -40,6 +40,7 @@ const Tokens = __importStar(require("../1_lexer/tokens"));
40
40
  const _statement_1 = require("./statements/_statement");
41
41
  const statement_node_1 = require("../nodes/statement_node");
42
42
  const token_node_1 = require("../nodes/token_node");
43
+ const version_1 = require("../../version");
43
44
  const statement_parser_1 = require("./statement_parser");
44
45
  const memory_file_1 = require("../../files/memory_file");
45
46
  const lexer_1 = require("../1_lexer/lexer");
@@ -81,9 +82,10 @@ class Macros {
81
82
  }
82
83
  class ExpandMacros {
83
84
  // "reg" must be supplied if there are cross object macros via INCLUDE
84
- constructor(globalMacros, version, reg) {
85
+ constructor(globalMacros, release, reg, languageVersion = version_1.LanguageVersion.Normal) {
85
86
  this.macros = new Macros(globalMacros);
86
- this.version = version;
87
+ this.release = release;
88
+ this.languageVersion = languageVersion;
87
89
  this.globalMacros = globalMacros;
88
90
  this.reg = reg;
89
91
  }
@@ -111,7 +113,7 @@ class ExpandMacros {
111
113
  // todo, workaround for cyclic includes?
112
114
  const prog = (_c = this.reg) === null || _c === void 0 ? void 0 : _c.getObject("PROG", includeName);
113
115
  if (prog) {
114
- prog.parse(this.version, this.globalMacros, this.reg);
116
+ prog.parse(this.release, this.globalMacros, this.reg, this.languageVersion);
115
117
  const includeMainFile = prog.getMainABAPFile();
116
118
  if (includeMainFile) {
117
119
  // slow, this copies everything,
@@ -193,7 +195,7 @@ class ExpandMacros {
193
195
  }
194
196
  const file = new memory_file_1.MemoryFile("expand_macros.abap.prog", str);
195
197
  const lexerResult = new lexer_1.Lexer().run(file, statement.getFirstToken().getStart());
196
- const result = new statement_parser_1.StatementParser(this.version, this.reg).run([lexerResult], this.macros.listMacroNames());
198
+ const result = new statement_parser_1.StatementParser(this.release, this.reg, this.languageVersion).run([lexerResult], this.macros.listMacroNames());
197
199
  return result[0].statements;
198
200
  }
199
201
  buildInput(statement) {
@@ -11,9 +11,9 @@ const dynIdent = (0, combi_1.tok)(tokens_1.ParenLeft);
11
11
  const dynClose = (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.ParenRight), (0, combi_1.tok)(tokens_1.ParenRightW));
12
12
  const dynInside = (0, combi_1.altPrio)(new field_chain_1.FieldChain(), constant_1.Constant);
13
13
  function dynComp(...inside) {
14
- return (0, combi_1.ver)(version_1.Version.v757, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.Dash), dynIdent, dynInside, ...inside, dynClose));
14
+ return (0, combi_1.ver)(version_1.Release.v757, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.Dash), dynIdent, dynInside, ...inside, dynClose));
15
15
  }
16
16
  function dynAttr() {
17
- return (0, combi_1.ver)(version_1.Version.v757, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.InstanceArrow), dynIdent, dynInside, dynClose));
17
+ return (0, combi_1.ver)(version_1.Release.v757, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.InstanceArrow), dynIdent, dynInside, dynClose));
18
18
  }
19
19
  //# sourceMappingURL=_dynamic_access.js.map
@@ -10,50 +10,52 @@ const sql_into_structure_1 = require("./sql_into_structure");
10
10
  const sql_up_to_1 = require("./sql_up_to");
11
11
  function buildSelectSingleCore(allowInto = false) {
12
12
  const where = (0, combi_1.seq)("WHERE", _1.SQLCond);
13
- const sqlFields = (0, combi_1.ver)(version_1.Version.v750, _1.SQLFields, version_1.Version.OpenABAP);
14
- const privileged = (0, combi_1.ver)(version_1.Version.v758, _1.SQLPrivilegedAccess);
13
+ const sqlFields = (0, combi_1.ver)(version_1.Release.v750, _1.SQLFields, { also: combi_1.AlsoIn.OpenABAP });
14
+ const privileged = (0, combi_1.ver)(version_1.Release.v758, _1.SQLPrivilegedAccess);
15
15
  const fieldList = (0, combi_1.optPrio)(_1.SQLFieldList);
16
16
  const client = (0, combi_1.optPrio)(_1.SQLClient);
17
17
  const byp = (0, combi_1.optPrio)(_1.SQLBypassingBuffer);
18
+ const conn = (0, combi_1.optPrio)((0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, _1.DatabaseConnection));
18
19
  const whereClause = (0, combi_1.optPrio)(where);
19
20
  const groupHaving = (0, combi_1.seq)((0, combi_1.optPrio)(sql_group_by_1.SQLGroupBy), (0, combi_1.optPrio)(_1.SQLHaving));
20
- const trailingOpts = (0, combi_1.seq)((0, combi_1.optPrio)(_1.DatabaseConnection), (0, combi_1.optPrio)(_1.SQLHints), (0, combi_1.optPrio)(privileged), (0, combi_1.optPrio)(_1.SQLOptions));
21
+ const trailingOpts = (0, combi_1.seq)(conn, (0, combi_1.optPrio)(_1.SQLHints), (0, combi_1.optPrio)(privileged), (0, combi_1.optPrio)(_1.SQLOptions));
21
22
  const intoSingle = (0, combi_1.altPrio)(sql_into_structure_1.SQLIntoStructure, _1.SQLIntoList);
22
23
  if (!allowInto) {
23
24
  const singleBody = (0, combi_1.seq)(_1.SQLFrom, client, byp, whereClause, groupHaving, trailingOpts);
24
25
  return (0, combi_1.seq)(fieldList, singleBody);
25
26
  }
26
- const singleAfterFrom = (0, combi_1.seq)(_1.SQLFrom, client, byp, (0, combi_1.optPrio)(_1.DatabaseConnection), (0, combi_1.altPrio)((0, combi_1.seq)(intoSingle, byp, whereClause, groupHaving, trailingOpts), (0, combi_1.seq)((0, combi_1.optPrio)(sqlFields), whereClause, groupHaving, trailingOpts, (0, combi_1.optPrio)(intoSingle), (0, combi_1.optPrio)(_1.DatabaseConnection))));
27
- const singleIntoBeforeFrom = (0, combi_1.seq)(intoSingle, _1.SQLFrom, client, byp, (0, combi_1.optPrio)(_1.DatabaseConnection), whereClause, groupHaving, trailingOpts);
27
+ const singleAfterFrom = (0, combi_1.seq)(_1.SQLFrom, client, byp, conn, (0, combi_1.altPrio)((0, combi_1.seq)(intoSingle, byp, whereClause, groupHaving, trailingOpts), (0, combi_1.seq)((0, combi_1.optPrio)(sqlFields), whereClause, groupHaving, trailingOpts, (0, combi_1.optPrio)(intoSingle), conn)));
28
+ const singleIntoBeforeFrom = (0, combi_1.seq)(intoSingle, _1.SQLFrom, client, byp, conn, whereClause, groupHaving, trailingOpts);
28
29
  return (0, combi_1.seq)(fieldList, byp, (0, combi_1.altPrio)(singleIntoBeforeFrom, singleAfterFrom));
29
30
  }
30
31
  function buildSelectCore(allowInto = false, allowOrderBy = true) {
31
32
  const where = (0, combi_1.seq)("WHERE", _1.SQLCond);
32
- const offset = (0, combi_1.ver)(version_1.Version.v751, (0, combi_1.seq)("OFFSET", _1.SQLSource));
33
- const sqlFields = (0, combi_1.ver)(version_1.Version.v750, _1.SQLFields, version_1.Version.OpenABAP);
34
- const privileged = (0, combi_1.ver)(version_1.Version.v758, _1.SQLPrivilegedAccess);
33
+ const offset = (0, combi_1.ver)(version_1.Release.v751, (0, combi_1.seq)("OFFSET", _1.SQLSource));
34
+ const sqlFields = (0, combi_1.ver)(version_1.Release.v750, _1.SQLFields, { also: combi_1.AlsoIn.OpenABAP });
35
+ const privileged = (0, combi_1.ver)(version_1.Release.v758, _1.SQLPrivilegedAccess);
35
36
  const fieldList = (0, combi_1.optPrio)(_1.SQLFieldList);
36
37
  const client = (0, combi_1.optPrio)(_1.SQLClient);
37
38
  const byp = (0, combi_1.optPrio)(_1.SQLBypassingBuffer);
39
+ const conn = (0, combi_1.optPrio)((0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, _1.DatabaseConnection));
38
40
  const fae = (0, combi_1.optPrio)(_1.SQLForAllEntries);
39
41
  const whereClause = (0, combi_1.optPrio)(where);
40
42
  const groupHaving = (0, combi_1.seq)((0, combi_1.optPrio)(sql_group_by_1.SQLGroupBy), (0, combi_1.optPrio)(_1.SQLHaving));
41
43
  const orderUpOff = allowOrderBy
42
44
  ? [(0, combi_1.optPrio)((0, combi_1.seq)(_1.SQLOrderBy, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), (0, combi_1.optPrio)(offset)))]
43
45
  : [];
44
- const trailingOpts = (0, combi_1.seq)((0, combi_1.optPrio)(_1.DatabaseConnection), (0, combi_1.optPrio)(_1.SQLHints), (0, combi_1.optPrio)(privileged), (0, combi_1.optPrio)(_1.SQLOptions));
46
+ const trailingOpts = (0, combi_1.seq)(conn, (0, combi_1.optPrio)(_1.SQLHints), (0, combi_1.optPrio)(privileged), (0, combi_1.optPrio)(_1.SQLOptions));
45
47
  const intoSingle = (0, combi_1.altPrio)(sql_into_structure_1.SQLIntoStructure, _1.SQLIntoList);
46
48
  const intoForPackSize = _1.SQLIntoTable;
47
49
  if (!allowInto) {
48
50
  const afterFromNoInto = (0, combi_1.seq)(_1.SQLFrom, client, byp, (0, combi_1.seq)((0, combi_1.optPrio)(sqlFields), fae, whereClause, groupHaving, ...orderUpOff, trailingOpts));
49
51
  return (0, combi_1.altPrio)((0, combi_1.seq)("SINGLE", buildSelectSingleCore(false)), (0, combi_1.seq)((0, combi_1.optPrio)("DISTINCT"), fieldList, byp, afterFromNoInto));
50
52
  }
51
- const fromPackSize = (0, combi_1.seq)((0, combi_1.optPrio)(_1.SQLPackageSize), (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp, (0, combi_1.optPrio)(_1.DatabaseConnection), (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo));
53
+ const fromPackSize = (0, combi_1.seq)((0, combi_1.optPrio)(_1.SQLPackageSize), (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp, conn, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo));
52
54
  const trailingInto = (0, combi_1.seq)((0, combi_1.optPrio)((0, combi_1.altPrio)((0, combi_1.seq)(intoForPackSize, (0, combi_1.optPrio)(_1.SQLPackageSize), byp, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp, (0, combi_1.optPrio)(offset), (0, combi_1.optPrio)(_1.SQLOrderBy)), (0, combi_1.seq)(intoSingle, byp, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp, (0, combi_1.optPrio)(offset)))), (0, combi_1.optPrio)(_1.SQLOptions));
53
- const afterFromWithInto = (0, combi_1.seq)((0, combi_1.optPrio)(_1.SQLFrom), client, byp, fromPackSize, (0, combi_1.altPrio)((0, combi_1.seq)(intoForPackSize, (0, combi_1.optPrio)(_1.SQLPackageSize), byp, (0, combi_1.optPrio)(_1.DatabaseConnection), (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp, (0, combi_1.optPrio)(offset), fae, whereClause, groupHaving, ...orderUpOff, trailingOpts), (0, combi_1.seq)(intoSingle, byp, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp, fae, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp, (0, combi_1.optPrio)(offset), whereClause, groupHaving, ...orderUpOff, trailingOpts), (0, combi_1.seq)((0, combi_1.optPrio)(sqlFields), fae, whereClause, groupHaving, ...orderUpOff, trailingOpts, trailingInto)));
55
+ const afterFromWithInto = (0, combi_1.seq)((0, combi_1.optPrio)(_1.SQLFrom), client, byp, fromPackSize, (0, combi_1.altPrio)((0, combi_1.seq)(intoForPackSize, (0, combi_1.optPrio)(_1.SQLPackageSize), byp, conn, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp, (0, combi_1.optPrio)(offset), fae, whereClause, groupHaving, ...orderUpOff, trailingOpts), (0, combi_1.seq)(intoSingle, byp, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp, fae, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp, (0, combi_1.optPrio)(offset), whereClause, groupHaving, ...orderUpOff, trailingOpts), (0, combi_1.seq)((0, combi_1.optPrio)(sqlFields), fae, whereClause, groupHaving, ...orderUpOff, trailingOpts, trailingInto)));
54
56
  const selectTableIntoThenFrom = (0, combi_1.seq)(intoForPackSize, (0, combi_1.optPrio)(_1.SQLPackageSize));
55
57
  const selectOtherIntoThenFrom = intoSingle;
56
- const nonSingleBody = (0, combi_1.seq)((0, combi_1.optPrio)("DISTINCT"), fieldList, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp, (0, combi_1.optPrio)((0, combi_1.altPrio)(selectTableIntoThenFrom, selectOtherIntoThenFrom)), (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp, (0, combi_1.optPrio)(_1.DatabaseConnection), afterFromWithInto);
58
+ const nonSingleBody = (0, combi_1.seq)((0, combi_1.optPrio)("DISTINCT"), fieldList, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp, (0, combi_1.optPrio)((0, combi_1.altPrio)(selectTableIntoThenFrom, selectOtherIntoThenFrom)), (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), byp, conn, afterFromWithInto);
57
59
  return (0, combi_1.altPrio)((0, combi_1.seq)("SINGLE", buildSelectSingleCore(true)), nonSingleBody);
58
60
  }
59
61
  //# sourceMappingURL=_select_core.js.map
@@ -10,10 +10,16 @@ const simple_source3_1 = require("./simple_source3");
10
10
  const version_1 = require("../../../version");
11
11
  class AssignSource extends combi_1.Expression {
12
12
  getRunnable() {
13
- const component = (0, combi_1.seq)("COMPONENT", (0, combi_1.alt)(simple_source3_1.SimpleSource3, (0, combi_1.ver)(version_1.Version.v740sp02, source_1.Source, version_1.Version.OpenABAP)), "OF STRUCTURE", source_1.Source);
14
- const tableField = (0, combi_1.seq)("TABLE FIELD", (0, combi_1.alt)(source_1.Source, dynamic_1.Dynamic));
15
- const arrow = (0, combi_1.alt)((0, combi_1.tok)(tokens_1.InstanceArrow), (0, combi_1.tok)(tokens_1.StaticArrow));
16
- const source = (0, combi_1.alt)((0, combi_1.seq)(source_1.Source, (0, combi_1.opt)((0, combi_1.seq)(arrow, dynamic_1.Dynamic))), component, tableField, (0, combi_1.seq)(dynamic_1.Dynamic, (0, combi_1.opt)((0, combi_1.seq)(arrow, (0, combi_1.alt)(field_1.Field, dynamic_1.Dynamic)))));
13
+ const component = (0, combi_1.seq)("COMPONENT", (0, combi_1.alt)(simple_source3_1.SimpleSource3, (0, combi_1.ver)(version_1.Release.v740sp02, source_1.Source, { also: combi_1.AlsoIn.OpenABAP })), "OF STRUCTURE", source_1.Source);
14
+ // TABLE FIELD form: blocked in KeyUser
15
+ const tableField = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("TABLE FIELD", (0, combi_1.alt)(source_1.Source, dynamic_1.Dynamic)));
16
+ // class=>(dyn_attr) via static arrow is blocked in KeyUser
17
+ // ref->(dyn_comp) via instance arrow is allowed — leave unguarded
18
+ const arrowDynamic = (0, combi_1.alt)((0, combi_1.tok)(tokens_1.InstanceArrow), (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.tok)(tokens_1.StaticArrow)));
19
+ const anyArrow = (0, combi_1.alt)((0, combi_1.tok)(tokens_1.InstanceArrow), (0, combi_1.tok)(tokens_1.StaticArrow));
20
+ const source = (0, combi_1.alt)((0, combi_1.seq)(source_1.Source, (0, combi_1.opt)((0, combi_1.seq)(arrowDynamic, dynamic_1.Dynamic))), component, tableField,
21
+ // standalone dynamic symbol (dyn_sym) blocked in KeyUser
22
+ (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)(dynamic_1.Dynamic, (0, combi_1.opt)((0, combi_1.seq)(anyArrow, (0, combi_1.alt)(field_1.Field, dynamic_1.Dynamic))))));
17
23
  return source;
18
24
  }
19
25
  }
@@ -10,7 +10,7 @@ class Cast extends combi_1.Expression {
10
10
  getRunnable() {
11
11
  const rparen = (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.WParenRightW), (0, combi_1.tok)(tokens_1.WParenRight));
12
12
  const cast = (0, combi_1.seq)("CAST", _1.TypeNameOrInfer, (0, combi_1.tok)(tokens_1.ParenLeftW), (0, combi_1.optPrio)(let_1.Let), _1.Source, rparen, (0, combi_1.opt)(_1.Dereference));
13
- return (0, combi_1.ver)(version_1.Version.v740sp02, cast, version_1.Version.OpenABAP);
13
+ return (0, combi_1.ver)(version_1.Release.v740sp02, cast, { also: combi_1.AlsoIn.OpenABAP });
14
14
  }
15
15
  }
16
16
  exports.Cast = Cast;
@@ -10,11 +10,11 @@ class Compare extends combi_1.Expression {
10
10
  const val = (0, combi_1.altPrio)(_1.FieldSub, _1.Constant);
11
11
  const list = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeft), val, (0, combi_1.plus)((0, combi_1.seq)(",", val)), (0, combi_1.tok)(tokens_1.ParenRightW));
12
12
  const inn = (0, combi_1.seq)((0, combi_1.optPrio)("NOT"), "IN", (0, combi_1.altPrio)(_1.Source, list));
13
- const sopt = (0, combi_1.seq)("IS", (0, combi_1.optPrio)("NOT"), (0, combi_1.altPrio)("SUPPLIED", "BOUND", (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)("INSTANCE OF", _1.ClassName), version_1.Version.OpenABAP), "REQUESTED", "INITIAL"));
13
+ const sopt = (0, combi_1.seq)("IS", (0, combi_1.optPrio)("NOT"), (0, combi_1.altPrio)("SUPPLIED", "BOUND", (0, combi_1.ver)(version_1.Release.v750, (0, combi_1.seq)("INSTANCE OF", _1.ClassName), { also: combi_1.AlsoIn.OpenABAP }), "REQUESTED", "INITIAL"));
14
14
  const between = (0, combi_1.seq)((0, combi_1.optPrio)("NOT"), "BETWEEN", _1.Source, "AND", _1.Source);
15
15
  // https://help.sap.com/doc/abapdocu_752_index_htm/7.52/en-us/abennews-740_sp08-expressions.htm
16
16
  // but also seems to work in v740sp05, blah
17
- const predicate = (0, combi_1.ver)(version_1.Version.v740sp08, _1.MethodCallChain, version_1.Version.OpenABAP);
17
+ const predicate = (0, combi_1.ver)(version_1.Release.v740sp08, _1.MethodCallChain, { also: combi_1.AlsoIn.OpenABAP });
18
18
  const rett = (0, combi_1.seq)(_1.Source, (0, combi_1.altPrio)((0, combi_1.seq)(_1.CompareOperator, _1.Source), inn, between, sopt));
19
19
  const fsassign = (0, combi_1.seq)(_1.SourceFieldSymbolChain, "IS", (0, combi_1.optPrio)("NOT"), "ASSIGNED");
20
20
  const ret = (0, combi_1.seq)((0, combi_1.opt)("NOT"), (0, combi_1.altPrio)(rett, predicate, fsassign));
@@ -10,7 +10,7 @@ class ComponentCompare extends combi_1.Expression {
10
10
  const val = (0, combi_1.alt)(_1.FieldSub, _1.Constant);
11
11
  const list = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeft), val, (0, combi_1.plus)((0, combi_1.seq)(",", val)), (0, combi_1.tok)(tokens_1.ParenRightW));
12
12
  const inn = (0, combi_1.seq)((0, combi_1.opt)("NOT"), "IN", (0, combi_1.altPrio)(_1.Source, list));
13
- const sopt = (0, combi_1.seq)("IS", (0, combi_1.opt)("NOT"), (0, combi_1.altPrio)("SUPPLIED", "BOUND", (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)("INSTANCE OF", _1.Source)), "REQUESTED", "ASSIGNED", "INITIAL"));
13
+ const sopt = (0, combi_1.seq)("IS", (0, combi_1.opt)("NOT"), (0, combi_1.altPrio)("SUPPLIED", "BOUND", (0, combi_1.ver)(version_1.Release.v750, (0, combi_1.seq)("INSTANCE OF", _1.Source)), "REQUESTED", "ASSIGNED", "INITIAL"));
14
14
  const between = (0, combi_1.seq)((0, combi_1.opt)("NOT"), "BETWEEN", _1.Source, "AND", _1.Source);
15
15
  const rett = (0, combi_1.seq)(_1.ComponentChainSimple, (0, combi_1.altPrio)((0, combi_1.seq)(_1.CompareOperator, _1.Source), inn, between, sopt));
16
16
  const ret = (0, combi_1.seq)((0, combi_1.opt)("NOT"), rett);
@@ -7,7 +7,7 @@ const component_chain_simple_1 = require("./component_chain_simple");
7
7
  const version_1 = require("../../../version");
8
8
  class ComponentCompareSimple extends combi_1.Expression {
9
9
  getRunnable() {
10
- const source = (0, combi_1.altPrio)((0, combi_1.ver)(version_1.Version.v740sp02, _1.Source, version_1.Version.OpenABAP), _1.SimpleSource4);
10
+ const source = (0, combi_1.altPrio)((0, combi_1.ver)(version_1.Release.v740sp02, _1.Source, { also: combi_1.AlsoIn.OpenABAP }), _1.SimpleSource4);
11
11
  const ret = (0, combi_1.seq)((0, combi_1.altPrio)(component_chain_simple_1.ComponentChainSimple, _1.Dynamic), "=", source);
12
12
  return (0, combi_1.plus)(ret);
13
13
  }
@@ -7,7 +7,7 @@ const cond_sub_1 = require("./cond_sub");
7
7
  const version_1 = require("../../../version");
8
8
  class Cond extends combi_1.Expression {
9
9
  getRunnable() {
10
- const operator = (0, combi_1.altPrio)("AND", "OR", (0, combi_1.ver)(version_1.Version.v702, "EQUIV"));
10
+ const operator = (0, combi_1.altPrio)("AND", "OR", (0, combi_1.ver)(version_1.Release.v702, "EQUIV"));
11
11
  const cnd = (0, combi_1.altPrio)(_1.Compare, cond_sub_1.CondSub);
12
12
  const ret = (0, combi_1.seq)(cnd, (0, combi_1.starPrio)((0, combi_1.seq)(operator, cnd)));
13
13
  return ret;
@@ -6,7 +6,7 @@ const _1 = require(".");
6
6
  const version_1 = require("../../../version");
7
7
  class CorrespondingBody extends combi_1.Expression {
8
8
  getRunnable() {
9
- const discarding = (0, combi_1.ver)(version_1.Version.v751, "DISCARDING DUPLICATES");
9
+ const discarding = (0, combi_1.ver)(version_1.Release.v751, "DISCARDING DUPLICATES");
10
10
  return (0, combi_1.seq)((0, combi_1.optPrio)("DEEP"), (0, combi_1.optPrio)(_1.CorrespondingBodyBase), _1.Source, (0, combi_1.optPrio)(discarding), (0, combi_1.optPrio)(_1.CorrespondingBodyMapping), (0, combi_1.optPrio)("CHANGING CONTROL"), (0, combi_1.optPrio)((0, combi_1.seq)("MAPPING FROM ENTITY", (0, combi_1.optPrio)("USING CONTROL"))), // todo, version something?
11
11
  (0, combi_1.optPrio)((0, combi_1.seq)("EXCEPT", (0, combi_1.alt)((0, combi_1.plus)(_1.Field), "*"))));
12
12
  }
@@ -41,7 +41,7 @@ class DataDefinition extends combi_1.Expression {
41
41
  getRunnable() {
42
42
  const simple = (0, combi_1.opt)((0, combi_1.per)("READ-ONLY", Expressions.Type, Expressions.Length, Expressions.Decimals, Expressions.Value));
43
43
  const table = (0, combi_1.seq)(Expressions.TypeTable, (0, combi_1.optPrio)("READ-ONLY"));
44
- const boxed = (0, combi_1.ver)(version_1.Version.v702, "BOXED");
44
+ const boxed = (0, combi_1.ver)(version_1.Release.v702, "BOXED");
45
45
  return (0, combi_1.seq)(Expressions.DefinitionName, (0, combi_1.optPrio)(Expressions.ConstantFieldLength), (0, combi_1.alt)(simple, table, Expressions.TypeStructure), (0, combi_1.optPrio)(boxed));
46
46
  }
47
47
  }
@@ -3,8 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DatabaseTable = void 0;
4
4
  const combi_1 = require("../combi");
5
5
  const dynamic_1 = require("./dynamic");
6
+ const version_1 = require("../../../version");
6
7
  class DatabaseTable extends combi_1.Expression {
8
+ constructor(noDynamic = false) {
9
+ super();
10
+ this.noDynamic = noDynamic;
11
+ }
7
12
  getRunnable() {
13
+ if (this.noDynamic) {
14
+ return (0, combi_1.altPrio)((0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, dynamic_1.Dynamic), (0, combi_1.regex)(/^\*?(\/\w+\/)?\w+$/));
15
+ }
8
16
  return (0, combi_1.altPrio)(dynamic_1.Dynamic, (0, combi_1.regex)(/^\*?(\/\w+\/)?\w+$/));
9
17
  }
10
18
  }
@@ -5,7 +5,7 @@ const version_1 = require("../../../version");
5
5
  const combi_1 = require("../combi");
6
6
  class FindType extends combi_1.Expression {
7
7
  getRunnable() {
8
- return (0, combi_1.opt)((0, combi_1.alt)("REGEX", "SUBSTRING", (0, combi_1.ver)(version_1.Version.v755, "PCRE", version_1.Version.OpenABAP)));
8
+ return (0, combi_1.opt)((0, combi_1.alt)("REGEX", "SUBSTRING", (0, combi_1.ver)(version_1.Release.v755, "PCRE", { also: combi_1.AlsoIn.OpenABAP })));
9
9
  }
10
10
  }
11
11
  exports.FindType = FindType;
@@ -16,9 +16,9 @@ class For extends combi_1.Expression {
16
16
  const itera = (0, combi_1.seq)(_1.InlineFieldDefinition, (0, combi_1.opt)(then), whil);
17
17
  const groupBy = (0, combi_1.seq)("GROUP BY", (0, combi_1.alt)(field_chain_1.FieldChain, (0, combi_1.seq)("(", (0, combi_1.plus)(_1.LoopGroupByComponent), ")")), (0, combi_1.opt)((0, combi_1.seq)((0, combi_1.alt)("ASCENDING", "DESCENDING"), (0, combi_1.opt)("AS TEXT"))), (0, combi_1.opt)("WITHOUT MEMBERS"));
18
18
  const t = (0, combi_1.alt)(_1.TargetField, _1.TargetFieldSymbol);
19
- const groups = (0, combi_1.ver)(version_1.Version.v740sp08, (0, combi_1.seq)("GROUPS", t, "OF", t, "IN", _1.Source, (0, combi_1.optPrio)(groupBy)));
19
+ const groups = (0, combi_1.ver)(version_1.Release.v740sp08, (0, combi_1.seq)("GROUPS", t, "OF", t, "IN", _1.Source, (0, combi_1.optPrio)(groupBy)));
20
20
  const f = (0, combi_1.seq)("FOR", (0, combi_1.alt)(itera, inn, groups), (0, combi_1.optPrio)(_1.Let));
21
- return (0, combi_1.ver)(version_1.Version.v740sp05, f, version_1.Version.OpenABAP);
21
+ return (0, combi_1.ver)(version_1.Release.v740sp05, f, { also: combi_1.AlsoIn.OpenABAP });
22
22
  }
23
23
  }
24
24
  exports.For = For;
@@ -8,7 +8,7 @@ const version_1 = require("../../../version");
8
8
  const simple_source3_1 = require("./simple_source3");
9
9
  class FunctionExportingParameter extends combi_1.Expression {
10
10
  getRunnable() {
11
- const s = (0, combi_1.altPrio)((0, combi_1.ver)(version_1.Version.v740sp02, source_1.Source, version_1.Version.OpenABAP), simple_source3_1.SimpleSource3);
11
+ const s = (0, combi_1.altPrio)((0, combi_1.ver)(version_1.Release.v740sp02, source_1.Source, { also: combi_1.AlsoIn.OpenABAP }), simple_source3_1.SimpleSource3);
12
12
  const exp = (0, combi_1.seq)(parameter_name_1.ParameterName, "=", s);
13
13
  return exp;
14
14
  }
@@ -205,6 +205,15 @@ __exportStar(require("./sql_from_source"), exports);
205
205
  __exportStar(require("./sql_from"), exports);
206
206
  __exportStar(require("./sql_function_input"), exports);
207
207
  __exportStar(require("./sql_function"), exports);
208
+ __exportStar(require("./sql_regexpr_pattern"), exports);
209
+ __exportStar(require("./sql_regexpr_from"), exports);
210
+ __exportStar(require("./sql_regexpr_occurrence"), exports);
211
+ __exportStar(require("./sql_regexpr_group"), exports);
212
+ __exportStar(require("./sql_replace_regexpr"), exports);
213
+ __exportStar(require("./sql_occurrences_regexpr"), exports);
214
+ __exportStar(require("./sql_substring_regexpr"), exports);
215
+ __exportStar(require("./sql_locate_regexpr"), exports);
216
+ __exportStar(require("./sql_like_regexpr"), exports);
208
217
  __exportStar(require("./sql_group_by"), exports);
209
218
  __exportStar(require("./sql_having"), exports);
210
219
  __exportStar(require("./sql_hints"), exports);
@@ -11,7 +11,7 @@ class InlineData extends combi_1.Expression {
11
11
  const left = (0, combi_1.tok)(tokens_1.ParenLeft);
12
12
  const data = (0, combi_1.seq)("DATA", left, _1.TargetField, right);
13
13
  const final = (0, combi_1.seq)("FINAL", left, _1.TargetField, right);
14
- return (0, combi_1.altPrio)((0, combi_1.ver)(version_1.Version.v740sp02, data, version_1.Version.OpenABAP), (0, combi_1.ver)(version_1.Version.v757, final, version_1.Version.OpenABAP));
14
+ return (0, combi_1.altPrio)((0, combi_1.ver)(version_1.Release.v740sp02, data, { also: combi_1.AlsoIn.OpenABAP }), (0, combi_1.ver)(version_1.Release.v757, final, { also: combi_1.AlsoIn.OpenABAP }));
15
15
  }
16
16
  }
17
17
  exports.InlineData = InlineData;
@@ -10,7 +10,7 @@ class InlineFS extends combi_1.Expression {
10
10
  const right = (0, combi_1.tok)(tokens_1.ParenRightW);
11
11
  const left = (0, combi_1.tok)(tokens_1.ParenLeft);
12
12
  const fs = (0, combi_1.seq)("FIELD-SYMBOL", left, _1.TargetFieldSymbol, right);
13
- return (0, combi_1.ver)(version_1.Version.v740sp02, fs, version_1.Version.OpenABAP);
13
+ return (0, combi_1.ver)(version_1.Release.v740sp02, fs, { also: combi_1.AlsoIn.OpenABAP });
14
14
  }
15
15
  }
16
16
  exports.InlineFS = InlineFS;
@@ -6,7 +6,7 @@ const _1 = require(".");
6
6
  const version_1 = require("../../../version");
7
7
  class LoopSource extends combi_1.Expression {
8
8
  getRunnable() {
9
- return (0, combi_1.alt)(_1.SimpleSource2, (0, combi_1.ver)(version_1.Version.v740sp02, _1.Source, version_1.Version.OpenABAP));
9
+ return (0, combi_1.alt)(_1.SimpleSource2, (0, combi_1.ver)(version_1.Release.v740sp02, _1.Source, { also: combi_1.AlsoIn.OpenABAP }));
10
10
  }
11
11
  }
12
12
  exports.LoopSource = LoopSource;
@@ -6,7 +6,7 @@ const _1 = require(".");
6
6
  const version_1 = require("../../../version");
7
7
  class MessageSourceSource extends combi_1.Expression {
8
8
  getRunnable() {
9
- return (0, combi_1.alt)((0, combi_1.ver)(version_1.Version.v740sp02, _1.Source, version_1.Version.OpenABAP), _1.SimpleSource3);
9
+ return (0, combi_1.alt)((0, combi_1.ver)(version_1.Release.v740sp02, _1.Source, { also: combi_1.AlsoIn.OpenABAP }), _1.SimpleSource3);
10
10
  }
11
11
  }
12
12
  exports.MessageSourceSource = MessageSourceSource;
@@ -12,7 +12,7 @@ class NewObject extends combi_1.Expression {
12
12
  const lines = (0, combi_1.plus)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), _1.Source, (0, combi_1.tok)(tokens_1.WParenRightW)));
13
13
  const linesFields = (0, combi_1.plus)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.plus)(field_assignment_1.FieldAssignment), (0, combi_1.tok)(tokens_1.WParenRightW)));
14
14
  const neww = (0, combi_1.seq)("NEW", _1.TypeNameOrInfer, (0, combi_1.tok)(tokens_1.ParenLeftW), (0, combi_1.optPrio)((0, combi_1.alt)(_1.Source, _1.ParameterListS, lines, linesFields)), ")");
15
- return (0, combi_1.ver)(version_1.Version.v740sp02, neww, version_1.Version.OpenABAP);
15
+ return (0, combi_1.ver)(version_1.Release.v740sp02, neww, { also: combi_1.AlsoIn.OpenABAP });
16
16
  }
17
17
  }
18
18
  exports.NewObject = NewObject;
@@ -7,7 +7,7 @@ const tokens_1 = require("../../1_lexer/tokens");
7
7
  const version_1 = require("../../../version");
8
8
  class ReduceNext extends combi_1.Expression {
9
9
  getRunnable() {
10
- const calcAssign = (0, combi_1.ver)(version_1.Version.v754, (0, combi_1.alt)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.WPlus), "="), (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WDash), "="), "/=", "*=", "&&="));
10
+ const calcAssign = (0, combi_1.ver)(version_1.Release.v754, (0, combi_1.alt)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.WPlus), "="), (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WDash), "="), "/=", "*=", "&&="));
11
11
  const fields = (0, combi_1.seq)(_1.SimpleTarget, (0, combi_1.altPrio)("=", calcAssign), _1.Source);
12
12
  return (0, combi_1.seq)("NEXT", (0, combi_1.plus)(fields));
13
13
  }
@@ -9,8 +9,8 @@ const _select_core_1 = require("./_select_core");
9
9
  class Select extends combi_1.Expression {
10
10
  getRunnable() {
11
11
  const into = (0, combi_1.altPrio)(_1.SQLIntoTable, sql_into_structure_1.SQLIntoStructure, _1.SQLIntoList);
12
- const standalone = (0, combi_1.altPrio)((0, combi_1.seq)("SINGLE", (0, combi_1.optPrio)("FOR UPDATE"), (0, _select_core_1.buildSelectSingleCore)(true)), (0, _select_core_1.buildSelectCore)(true));
13
- const unionTail = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.plusPrio)(_1.SQLSetOp), version_1.Version.OpenABAP);
12
+ const standalone = (0, combi_1.altPrio)((0, combi_1.seq)("SINGLE", (0, combi_1.optPrio)((0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, "FOR UPDATE")), (0, _select_core_1.buildSelectSingleCore)(true)), (0, _select_core_1.buildSelectCore)(true));
13
+ const unionTail = (0, combi_1.ver)(version_1.Release.v750, (0, combi_1.plusPrio)(_1.SQLSetOp), { also: combi_1.AlsoIn.OpenABAP });
14
14
  const chained = (0, combi_1.seq)((0, _select_core_1.buildSelectCore)(false, false), unionTail, (0, combi_1.optPrio)(_1.SQLOrderBy), (0, combi_1.optPrio)(into));
15
15
  return (0, combi_1.seq)("SELECT", (0, combi_1.altPrio)(chained, standalone));
16
16
  }