@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
@@ -1,47 +1,379 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SQLFunction = void 0;
3
+ exports.SQLFunction = exports.sqlSpatialAggregateDefs = exports.sqlSpatialFunctionDefs = exports.sqlNamedFunctionDefs = exports.sqlFunctionDefs = void 0;
4
4
  const version_1 = require("../../../version");
5
5
  const tokens_1 = require("../../1_lexer/tokens");
6
6
  const combi_1 = require("../combi");
7
7
  const integer_1 = require("./integer");
8
8
  const sql_function_input_1 = require("./sql_function_input");
9
9
  const sql_case_1 = require("./sql_case");
10
+ const simple_source3_1 = require("./simple_source3");
11
+ const constant_1 = require("./constant");
12
+ const sql_replace_regexpr_1 = require("./sql_replace_regexpr");
13
+ const sql_occurrences_regexpr_1 = require("./sql_occurrences_regexpr");
14
+ const sql_substring_regexpr_1 = require("./sql_substring_regexpr");
15
+ const sql_locate_regexpr_1 = require("./sql_locate_regexpr");
16
+ const VARIADIC = -1;
17
+ exports.sqlFunctionDefs = [
18
+ ["abs", 1, version_1.Release.v740sp05],
19
+ ["ceil", 1, version_1.Release.v740sp05],
20
+ ["floor", 1, version_1.Release.v740sp05],
21
+ ["div", 2, version_1.Release.v740sp05],
22
+ ["mod", 2, version_1.Release.v740sp05],
23
+ ["coalesce", VARIADIC, version_1.Release.v740sp05],
24
+ ["concat", 2, version_1.Release.v750],
25
+ ["length", 1, version_1.Release.v750],
26
+ ["ltrim", 2, version_1.Release.v750],
27
+ ["rtrim", 2, version_1.Release.v750],
28
+ ["right", 2, version_1.Release.v750],
29
+ ["replace", 3, version_1.Release.v750],
30
+ ["round", 2, version_1.Release.v750],
31
+ ["substring", 3, version_1.Release.v750],
32
+ ["lpad", 3, version_1.Release.v750],
33
+ ["instr", 2, version_1.Release.v750],
34
+ ["concat_with_space", 3, version_1.Release.v751],
35
+ ["rpad", 3, version_1.Release.v751],
36
+ ["left", 2, version_1.Release.v751],
37
+ ["lower", 1, version_1.Release.v751],
38
+ ["upper", 1, version_1.Release.v751],
39
+ ["division", 3, version_1.Release.v751],
40
+ ["bintohex", 1, version_1.Release.v752],
41
+ ["hextobin", 1, version_1.Release.v752],
42
+ ["dats_is_valid", 1, version_1.Release.v754],
43
+ ["dats_days_between", 2, version_1.Release.v754],
44
+ ["dats_add_days", 2, version_1.Release.v754],
45
+ ["dats_add_months", 2, version_1.Release.v754],
46
+ ["uuid", 0, version_1.Release.v754],
47
+ ["utcl_current", 0, version_1.Release.v754],
48
+ ["tstmp_current_utctimestamp", 0, version_1.Release.v757],
49
+ ["tstmp_is_valid", 1, version_1.Release.v757],
50
+ ["tims_is_valid", 1, version_1.Release.v757],
51
+ ["utcl_add_seconds", 2, version_1.Release.v757],
52
+ ["utcl_seconds_between", 2, version_1.Release.v757],
53
+ ["datn_days_between", 2, version_1.Release.v757],
54
+ ["datn_add_days", 2, version_1.Release.v757],
55
+ ["datn_add_months", 2, version_1.Release.v757],
56
+ ["as_geo_json", 1, version_1.Release.v757],
57
+ ["allow_precision_loss", 1, version_1.Release.v757],
58
+ ["to_clob", 1, version_1.Release.v757],
59
+ ["to_blob", 1, version_1.Release.v757],
60
+ ["grouping", 1, version_1.Release.v757],
61
+ ["extract_year", 1, version_1.Release.v758],
62
+ ["extract_month", 1, version_1.Release.v758],
63
+ ["extract_day", 1, version_1.Release.v758],
64
+ ["extract_hour", 1, version_1.Release.v758],
65
+ ["extract_minute", 1, version_1.Release.v758],
66
+ ["extract_second", 1, version_1.Release.v758],
67
+ ["days_between", 2, version_1.Release.v758],
68
+ ["add_days", 2, version_1.Release.v758],
69
+ ["add_months", 2, version_1.Release.v758],
70
+ ["monthname", 1, version_1.Release.v758],
71
+ ["dayname", 1, version_1.Release.v758],
72
+ ["initcap", 1, version_1.Release.v758],
73
+ ["is_valid", 1, version_1.Release.v758],
74
+ ["weekday", 1, version_1.Release.v758],
75
+ ["locate", VARIADIC, version_1.Release.v758],
76
+ ["greatest", VARIADIC, version_1.Release.v758],
77
+ ["least", VARIADIC, version_1.Release.v758],
78
+ ["hierarchy_composite_id", VARIADIC, version_1.Release.v758],
79
+ ["sin", 1, version_1.Release.v758],
80
+ ["cos", 1, version_1.Release.v758],
81
+ ["tan", 1, version_1.Release.v758],
82
+ ["asin", 1, version_1.Release.v758],
83
+ ["acos", 1, version_1.Release.v758],
84
+ ["atan", 1, version_1.Release.v758],
85
+ ["sinh", 1, version_1.Release.v758],
86
+ ["cosh", 1, version_1.Release.v758],
87
+ ["tanh", 1, version_1.Release.v758],
88
+ ["sqrt", 1, version_1.Release.v758],
89
+ ["power", 2, version_1.Release.v758],
90
+ ["exp", 1, version_1.Release.v758],
91
+ ["ln", 1, version_1.Release.v758],
92
+ ["log10", 1, version_1.Release.v758],
93
+ ["log", 2, version_1.Release.v758],
94
+ ["utctolocal", 2, version_1.Release.v758],
95
+ ["localtoutc", 2, version_1.Release.v758],
96
+ ["is_masked", 1, version_1.Release.v758],
97
+ ];
98
+ exports.sqlNamedFunctionDefs = [
99
+ ["abap_user_timezone", version_1.Release.v757, [
100
+ { name: "user", value: "any", optional: true },
101
+ { name: "client", value: "any", optional: true },
102
+ { name: "on_error", value: "abap_only", optional: true },
103
+ ]],
104
+ ["abap_system_timezone", version_1.Release.v757, [
105
+ { name: "client", value: "any", optional: true },
106
+ { name: "on_error", value: "abap_only", optional: true },
107
+ ]],
108
+ ["dats_tims_to_tstmp", version_1.Release.v757, [
109
+ { name: "date", value: "any" },
110
+ { name: "time", value: "any" },
111
+ { name: "tzone", value: "any" },
112
+ { name: "client", value: "any", optional: true },
113
+ { name: "on_error", value: "abap_only", optional: true },
114
+ ]],
115
+ ["tstmp_add_seconds", version_1.Release.v757, [
116
+ { name: "tstmp", value: "any" },
117
+ { name: "seconds", value: "any" },
118
+ { name: "on_error", value: "abap_only", optional: true },
119
+ ]],
120
+ ["tstmp_seconds_between", version_1.Release.v757, [
121
+ { name: "tstmp1", value: "any" },
122
+ { name: "tstmp2", value: "any" },
123
+ { name: "on_error", value: "abap_only", optional: true },
124
+ ]],
125
+ ["tstmp_to_dats", version_1.Release.v757, [
126
+ { name: "tstmp", value: "any" },
127
+ { name: "tzone", value: "any", optional: true },
128
+ { name: "client", value: "any", optional: true },
129
+ { name: "on_error", value: "abap_only", optional: true },
130
+ ]],
131
+ ["tstmp_to_tims", version_1.Release.v757, [
132
+ { name: "tstmp", value: "any" },
133
+ { name: "tzone", value: "any", optional: true },
134
+ { name: "client", value: "any", optional: true },
135
+ { name: "on_error", value: "abap_only", optional: true },
136
+ ]],
137
+ ["tstmp_to_dst", version_1.Release.v757, [
138
+ { name: "tstmp", value: "any" },
139
+ { name: "tzone", value: "any", optional: true },
140
+ { name: "client", value: "any", optional: true },
141
+ { name: "on_error", value: "abap_only", optional: true },
142
+ ]],
143
+ ["tstmpl_to_utcl", version_1.Release.v757, [
144
+ { name: "tstmpl", value: "any" },
145
+ { name: "on_error", value: "abap_only", optional: true },
146
+ { name: "on_initial", value: "abap_only", optional: true },
147
+ ]],
148
+ ["tstmpl_from_utcl", version_1.Release.v757, [
149
+ { name: "utcl", value: "any" },
150
+ { name: "on_null", value: "abap_only", optional: true },
151
+ ]],
152
+ ["dats_to_datn", version_1.Release.v757, [
153
+ { name: "dats", value: "any" },
154
+ { name: "on_error", value: "abap_only", optional: true },
155
+ { name: "on_initial", value: "abap_only", optional: true },
156
+ ]],
157
+ ["dats_from_datn", version_1.Release.v757, [
158
+ { name: "datn", value: "any" },
159
+ { name: "on_null", value: "abap_only", optional: true },
160
+ ]],
161
+ ["tims_to_timn", version_1.Release.v757, [
162
+ { name: "tims", value: "any" },
163
+ { name: "on_error", value: "abap_only", optional: true },
164
+ ]],
165
+ ["tims_from_timn", version_1.Release.v757, [
166
+ { name: "timn", value: "any" },
167
+ { name: "on_null", value: "abap_only", optional: true },
168
+ ]],
169
+ ["currency_conversion", version_1.Release.v757, [
170
+ { name: "amount", value: "any" },
171
+ { name: "source_currency", value: "any" },
172
+ { name: "target_currency", value: "any" },
173
+ { name: "exchange_rate_date", value: "any" },
174
+ { name: "exchange_rate_type", value: "any", optional: true },
175
+ { name: "client", value: "any", optional: true },
176
+ { name: "round", value: "abap_only", optional: true },
177
+ { name: "decimal_shift", value: "abap_only", optional: true },
178
+ { name: "decimal_shift_back", value: "abap_only", optional: true },
179
+ { name: "on_error", value: "abap_only", optional: true },
180
+ ]],
181
+ ["unit_conversion", version_1.Release.v758, [
182
+ { name: "quantity", value: "any" },
183
+ { name: "source_unit", value: "any" },
184
+ { name: "target_unit", value: "any" },
185
+ { name: "client", value: "any", optional: true },
186
+ { name: "on_error", value: "abap_only", optional: true },
187
+ ]],
188
+ ["curr_to_decfloat_amount", version_1.Release.v758, [
189
+ { name: "curr", value: "any" },
190
+ { name: "cuky", value: "any" },
191
+ ]],
192
+ ["lang_to_char", version_1.Release.v758, [
193
+ { name: "lang", value: "any" },
194
+ ]],
195
+ ["ipow", version_1.Release.v758, [
196
+ { name: "base", value: "any" },
197
+ { name: "exp", value: "any" },
198
+ ]],
199
+ ];
200
+ exports.sqlSpatialFunctionDefs = [
201
+ ["st_new_point", VARIADIC, version_1.Release.v915],
202
+ ["st_new_pointz", VARIADIC, version_1.Release.v915],
203
+ ["st_new_pointm", VARIADIC, version_1.Release.v915],
204
+ ["st_new_pointzm", VARIADIC, version_1.Release.v915],
205
+ ["st_new_linestring", VARIADIC, version_1.Release.v915],
206
+ ["st_new_multilinestring", VARIADIC, version_1.Release.v915],
207
+ ["st_new_polygon", VARIADIC, version_1.Release.v915],
208
+ ["st_new_multipolygon", VARIADIC, version_1.Release.v915],
209
+ ["st_new_multipoint", VARIADIC, version_1.Release.v915],
210
+ ["st_new_circularstring", VARIADIC, version_1.Release.v915],
211
+ ["st_new_geometrycollection", VARIADIC, version_1.Release.v915],
212
+ ["st_srid", VARIADIC, version_1.Release.v915],
213
+ ["st_relate", VARIADIC, version_1.Release.v915],
214
+ ["st_geomfromtext", VARIADIC, version_1.Release.v915],
215
+ ["st_geomfromwkt", VARIADIC, version_1.Release.v915],
216
+ ["st_geomfromewkt", VARIADIC, version_1.Release.v915],
217
+ ["st_geomfromwkb", VARIADIC, version_1.Release.v915],
218
+ ["st_geomfromewkb", VARIADIC, version_1.Release.v915],
219
+ ["st_geomfromgeojson", VARIADIC, version_1.Release.v915],
220
+ ["st_geomfromesrijson", VARIADIC, version_1.Release.v915],
221
+ ["st_geomfromgeohash", VARIADIC, version_1.Release.v915],
222
+ ["st_pointfromtext", VARIADIC, version_1.Release.v915],
223
+ ["st_pointfromgeohash", VARIADIC, version_1.Release.v915],
224
+ ["st_makeline", VARIADIC, version_1.Release.v915],
225
+ ["st_makepolygon", VARIADIC, version_1.Release.v915],
226
+ ["st_x", VARIADIC, version_1.Release.v915],
227
+ ["st_y", VARIADIC, version_1.Release.v915],
228
+ ["st_z", VARIADIC, version_1.Release.v915],
229
+ ["st_m", VARIADIC, version_1.Release.v915],
230
+ ["st_xmax", VARIADIC, version_1.Release.v915],
231
+ ["st_xmin", VARIADIC, version_1.Release.v915],
232
+ ["st_ymax", VARIADIC, version_1.Release.v915],
233
+ ["st_ymin", VARIADIC, version_1.Release.v915],
234
+ ["st_zmax", VARIADIC, version_1.Release.v915],
235
+ ["st_zmin", VARIADIC, version_1.Release.v915],
236
+ ["st_mmax", VARIADIC, version_1.Release.v915],
237
+ ["st_mmin", VARIADIC, version_1.Release.v915],
238
+ ["st_area", VARIADIC, version_1.Release.v915],
239
+ ["st_length", VARIADIC, version_1.Release.v915],
240
+ ["st_perimeter", VARIADIC, version_1.Release.v915],
241
+ ["st_dimension", VARIADIC, version_1.Release.v915],
242
+ ["st_coorddim", VARIADIC, version_1.Release.v915],
243
+ ["st_geometrytype", VARIADIC, version_1.Release.v915],
244
+ ["st_isempty", VARIADIC, version_1.Release.v915],
245
+ ["st_issimple", VARIADIC, version_1.Release.v915],
246
+ ["st_isclosed", VARIADIC, version_1.Release.v915],
247
+ ["st_isring", VARIADIC, version_1.Release.v915],
248
+ ["st_isvalid", VARIADIC, version_1.Release.v915],
249
+ ["st_isvalidtrajectory", VARIADIC, version_1.Release.v915],
250
+ ["st_is3d", VARIADIC, version_1.Release.v915],
251
+ ["st_ismeasured", VARIADIC, version_1.Release.v915],
252
+ ["st_invalidreason", VARIADIC, version_1.Release.v915],
253
+ ["st_numpoints", VARIADIC, version_1.Release.v915],
254
+ ["st_numgeometries", VARIADIC, version_1.Release.v915],
255
+ ["st_numinteriorring", VARIADIC, version_1.Release.v915],
256
+ ["st_numinteriorrings", VARIADIC, version_1.Release.v915],
257
+ ["st_envelope", VARIADIC, version_1.Release.v915],
258
+ ["st_boundary", VARIADIC, version_1.Release.v915],
259
+ ["st_exteriorring", VARIADIC, version_1.Release.v915],
260
+ ["st_startpoint", VARIADIC, version_1.Release.v915],
261
+ ["st_endpoint", VARIADIC, version_1.Release.v915],
262
+ ["st_centroid", VARIADIC, version_1.Release.v915],
263
+ ["st_pointonsurface", VARIADIC, version_1.Release.v915],
264
+ ["st_convexhull", VARIADIC, version_1.Release.v915],
265
+ ["st_concavehull", VARIADIC, version_1.Release.v915],
266
+ ["st_reverse", VARIADIC, version_1.Release.v915],
267
+ ["st_force2d", VARIADIC, version_1.Release.v915],
268
+ ["st_force3dz", VARIADIC, version_1.Release.v915],
269
+ ["st_force3dm", VARIADIC, version_1.Release.v915],
270
+ ["st_force4d", VARIADIC, version_1.Release.v915],
271
+ ["st_makevalid", VARIADIC, version_1.Release.v915],
272
+ ["st_geohash", VARIADIC, version_1.Release.v915],
273
+ ["st_aswkt", VARIADIC, version_1.Release.v915],
274
+ ["st_aswkb", VARIADIC, version_1.Release.v915],
275
+ ["st_asewkt", VARIADIC, version_1.Release.v915],
276
+ ["st_asewkb", VARIADIC, version_1.Release.v915],
277
+ ["st_asbinary", VARIADIC, version_1.Release.v915],
278
+ ["st_astext", VARIADIC, version_1.Release.v915],
279
+ ["st_asgeojson", VARIADIC, version_1.Release.v915],
280
+ ["st_asesrijson", VARIADIC, version_1.Release.v915],
281
+ ["st_assvg", VARIADIC, version_1.Release.v915],
282
+ ["st_distance", VARIADIC, version_1.Release.v915],
283
+ ["st_withindistance", VARIADIC, version_1.Release.v915],
284
+ ["st_contains", VARIADIC, version_1.Release.v915],
285
+ ["st_covers", VARIADIC, version_1.Release.v915],
286
+ ["st_coveredby", VARIADIC, version_1.Release.v915],
287
+ ["st_crosses", VARIADIC, version_1.Release.v915],
288
+ ["st_disjoint", VARIADIC, version_1.Release.v915],
289
+ ["st_equals", VARIADIC, version_1.Release.v915],
290
+ ["st_orderingequals", VARIADIC, version_1.Release.v915],
291
+ ["st_intersects", VARIADIC, version_1.Release.v915],
292
+ ["st_intersectsfilter", VARIADIC, version_1.Release.v915],
293
+ ["st_intersectsrect", VARIADIC, version_1.Release.v915],
294
+ ["st_intersectsrectplanar", VARIADIC, version_1.Release.v915],
295
+ ["st_overlaps", VARIADIC, version_1.Release.v915],
296
+ ["st_touches", VARIADIC, version_1.Release.v915],
297
+ ["st_within", VARIADIC, version_1.Release.v915],
298
+ ["st_intersection", VARIADIC, version_1.Release.v915],
299
+ ["st_union", VARIADIC, version_1.Release.v915],
300
+ ["st_difference", VARIADIC, version_1.Release.v915],
301
+ ["st_symdifference", VARIADIC, version_1.Release.v915],
302
+ ["st_collect", VARIADIC, version_1.Release.v915],
303
+ ["st_buffer", VARIADIC, version_1.Release.v915],
304
+ ["st_transform", VARIADIC, version_1.Release.v915],
305
+ ["st_rotate", VARIADIC, version_1.Release.v915],
306
+ ["st_scale", VARIADIC, version_1.Release.v915],
307
+ ["st_translate", VARIADIC, version_1.Release.v915],
308
+ ["st_translate3d", VARIADIC, version_1.Release.v915],
309
+ ["st_simplify", VARIADIC, version_1.Release.v915],
310
+ ["st_snaptogrid", VARIADIC, version_1.Release.v915],
311
+ ["st_addmeasure", VARIADIC, version_1.Release.v915],
312
+ ["st_addpoint", VARIADIC, version_1.Release.v915],
313
+ ["st_removepoint", VARIADIC, version_1.Release.v915],
314
+ ["st_pointn", VARIADIC, version_1.Release.v915],
315
+ ["st_geometryn", VARIADIC, version_1.Release.v915],
316
+ ["st_interiorringn", VARIADIC, version_1.Release.v915],
317
+ ["st_lineinterpolatepoint", VARIADIC, version_1.Release.v915],
318
+ ["st_linelocatepoint", VARIADIC, version_1.Release.v915],
319
+ ["st_linesubstring", VARIADIC, version_1.Release.v915],
320
+ ["st_locatealong", VARIADIC, version_1.Release.v915],
321
+ ["st_locatebetween", VARIADIC, version_1.Release.v915],
322
+ ["st_alphashape", VARIADIC, version_1.Release.v915],
323
+ ["st_alphashapearea", VARIADIC, version_1.Release.v915],
324
+ ["st_alphashapeedge", VARIADIC, version_1.Release.v915],
325
+ ["st_closestpointofapproach", VARIADIC, version_1.Release.v915],
326
+ ["st_frechetdistance", VARIADIC, version_1.Release.v915],
327
+ ["st_hausdorffdistance", VARIADIC, version_1.Release.v915],
328
+ ["st_3dlength", VARIADIC, version_1.Release.v915],
329
+ ["st_asmvtgeom", VARIADIC, version_1.Release.v915],
330
+ ];
331
+ exports.sqlSpatialAggregateDefs = [
332
+ ["st_assvgaggr", VARIADIC, version_1.Release.v915],
333
+ ["st_collectaggr", VARIADIC, version_1.Release.v915],
334
+ ["st_concavehullaggr", VARIADIC, version_1.Release.v915],
335
+ ["st_convexhullaggr", VARIADIC, version_1.Release.v915],
336
+ ["st_envelopeaggr", VARIADIC, version_1.Release.v915],
337
+ ["st_intersectionaggr", VARIADIC, version_1.Release.v915],
338
+ ["st_unionaggr", VARIADIC, version_1.Release.v915],
339
+ ["st_alphashapeaggr", VARIADIC, version_1.Release.v915],
340
+ ["st_alphashapeareaaggr", VARIADIC, version_1.Release.v915],
341
+ ["st_alphashapeedgeaggr", VARIADIC, version_1.Release.v915],
342
+ ];
10
343
  class SQLFunction extends combi_1.Expression {
11
344
  getRunnable() {
12
345
  const castTypes = (0, combi_1.altPrio)((0, combi_1.seq)("CHAR", (0, combi_1.optPrio)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.ParenLeftW), integer_1.Integer, (0, combi_1.tok)(tokens_1.WParenRightW)))), (0, combi_1.seq)("DEC", (0, combi_1.tok)(tokens_1.ParenLeftW), integer_1.Integer, ",", integer_1.Integer, (0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.seq)("NUMC", (0, combi_1.optPrio)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.ParenLeftW), integer_1.Integer, (0, combi_1.tok)(tokens_1.WParenRightW)))), "DATS", "FLTP", "INT1", "INT2", "INT4", "INT8");
13
346
  const commaParam = (0, combi_1.seq)(",", sql_function_input_1.SQLFunctionInput);
14
- // note: the function names are not keywords, they are usually in lower case
15
- const abs = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.regex)(/^abs$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, (0, combi_1.tok)(tokens_1.WParenRightW)));
16
- // yea, 750 is correct, but it also works technically in version v740sp05
347
+ const fn = (name, params, v) => {
348
+ const nameReg = (0, combi_1.regex)(new RegExp("^" + name + "$", "i"));
349
+ if (params === 0) {
350
+ return (0, combi_1.ver)(v, (0, combi_1.seq)(nameReg, (0, combi_1.tok)(tokens_1.ParenLeftW), (0, combi_1.tok)(tokens_1.WParenRightW)));
351
+ }
352
+ else if (params === VARIADIC) {
353
+ return (0, combi_1.ver)(v, (0, combi_1.seq)(nameReg, (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, (0, combi_1.starPrio)(commaParam), (0, combi_1.tok)(tokens_1.WParenRightW)));
354
+ }
355
+ else {
356
+ const extra = [];
357
+ for (let i = 1; i < params; i++) {
358
+ extra.push(commaParam);
359
+ }
360
+ return (0, combi_1.ver)(v, (0, combi_1.seq)(nameReg, (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, ...extra, (0, combi_1.tok)(tokens_1.WParenRightW)));
361
+ }
362
+ };
17
363
  const castInput = (0, combi_1.altPrio)(sql_case_1.SQLCase, sql_function_input_1.SQLFunctionInput);
18
- const cast = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)((0, combi_1.regex)(/^cast$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), castInput, "AS", castTypes, (0, combi_1.tok)(tokens_1.WParenRightW)));
19
- const ceil = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.regex)(/^ceil$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, (0, combi_1.tok)(tokens_1.WParenRightW)));
20
- const coalesce = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.regex)(/^coalesce$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, (0, combi_1.starPrio)(commaParam), (0, combi_1.tok)(tokens_1.WParenRightW)));
21
- const concat = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)((0, combi_1.regex)(/^concat$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, commaParam, (0, combi_1.tok)(tokens_1.WParenRightW)));
22
- const div = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.regex)(/^div$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, commaParam, (0, combi_1.tok)(tokens_1.WParenRightW)));
23
- const floor = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.regex)(/^floor$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, (0, combi_1.tok)(tokens_1.WParenRightW)));
24
- const length = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)((0, combi_1.regex)(/^length$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, (0, combi_1.tok)(tokens_1.WParenRightW)));
25
- const lower = (0, combi_1.ver)(version_1.Version.v751, (0, combi_1.seq)((0, combi_1.regex)(/^lower$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, (0, combi_1.tok)(tokens_1.WParenRightW)));
26
- const mod = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.regex)(/^mod$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, commaParam, (0, combi_1.tok)(tokens_1.WParenRightW)));
27
- const replace = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)((0, combi_1.regex)(/^replace$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, commaParam, commaParam, (0, combi_1.tok)(tokens_1.WParenRightW)));
28
- const round = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)((0, combi_1.regex)(/^round$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, commaParam, (0, combi_1.tok)(tokens_1.WParenRightW)));
29
- const upper = (0, combi_1.ver)(version_1.Version.v751, (0, combi_1.seq)((0, combi_1.regex)(/^upper$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, (0, combi_1.tok)(tokens_1.WParenRightW)));
30
- const uuid = (0, combi_1.ver)(version_1.Version.v754, (0, combi_1.seq)((0, combi_1.regex)(/^uuid$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), (0, combi_1.tok)(tokens_1.WParenRightW)));
31
- const concat_with_space = (0, combi_1.ver)(version_1.Version.v751, (0, combi_1.seq)((0, combi_1.regex)(/^concat_with_space$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, commaParam, commaParam, (0, combi_1.tok)(tokens_1.WParenRightW)));
32
- // dunno if the version for substring is correct
33
- const substring = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)((0, combi_1.regex)(/^substring$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, commaParam, commaParam, (0, combi_1.tok)(tokens_1.WParenRightW)));
34
- // dunno if the version for substring is correct
35
- const dats_is_valid = (0, combi_1.ver)(version_1.Version.v754, (0, combi_1.seq)((0, combi_1.regex)(/^dats_is_valid$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, (0, combi_1.tok)(tokens_1.WParenRightW)));
36
- const dats_days_between = (0, combi_1.ver)(version_1.Version.v754, (0, combi_1.seq)((0, combi_1.regex)(/^dats_days_between$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, commaParam, (0, combi_1.tok)(tokens_1.WParenRightW)));
37
- const dats_add_days = (0, combi_1.ver)(version_1.Version.v754, (0, combi_1.seq)((0, combi_1.regex)(/^dats_add_days$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, commaParam, (0, combi_1.tok)(tokens_1.WParenRightW)));
38
- const dats_add_months = (0, combi_1.ver)(version_1.Version.v754, (0, combi_1.seq)((0, combi_1.regex)(/^dats_add_months$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, commaParam, (0, combi_1.tok)(tokens_1.WParenRightW)));
39
- const ltrim = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)((0, combi_1.regex)(/^ltrim$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, commaParam, (0, combi_1.tok)(tokens_1.WParenRightW)));
40
- const rtrim = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)((0, combi_1.regex)(/^rtrim$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, commaParam, (0, combi_1.tok)(tokens_1.WParenRightW)));
41
- const right = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)((0, combi_1.regex)(/^right$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, commaParam, (0, combi_1.tok)(tokens_1.WParenRightW)));
42
- const left = (0, combi_1.ver)(version_1.Version.v751, (0, combi_1.seq)((0, combi_1.regex)(/^left$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, commaParam, (0, combi_1.tok)(tokens_1.WParenRightW)));
43
- const division = (0, combi_1.ver)(version_1.Version.v751, (0, combi_1.seq)((0, combi_1.regex)(/^division$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, commaParam, commaParam, (0, combi_1.tok)(tokens_1.WParenRightW)));
44
- return (0, combi_1.altPrio)(uuid, abs, ceil, floor, cast, div, mod, coalesce, concat, replace, length, lower, upper, round, concat_with_space, ltrim, rtrim, right, left, substring, dats_is_valid, dats_days_between, dats_add_days, dats_add_months, division);
364
+ const cast = (0, combi_1.ver)(version_1.Release.v750, (0, combi_1.seq)((0, combi_1.regex)(/^cast$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), castInput, "AS", castTypes, (0, combi_1.tok)(tokens_1.WParenRightW)));
365
+ const hostParen = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, (0, combi_1.tok)(tokens_1.WParenRightW));
366
+ const hostVar = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WAt), (0, combi_1.altPrio)(simple_source3_1.SimpleSource3, hostParen));
367
+ const abapOnly = (0, combi_1.altPrio)(constant_1.Constant, hostVar);
368
+ const namedFn = (name, v, params) => {
369
+ const nameReg = (0, combi_1.regex)(new RegExp("^" + name + "$", "i"));
370
+ const valueFor = (p) => p.value === "abap_only" ? abapOnly : sql_function_input_1.SQLFunctionInput;
371
+ const kvs = params.map(p => (0, combi_1.seq)((0, combi_1.regex)(new RegExp("^" + p.name + "$", "i")), "=", valueFor(p)));
372
+ const anyKv = kvs.length === 1 ? kvs[0] : (0, combi_1.altPrio)(kvs[0], kvs[1], ...kvs.slice(2));
373
+ const body = (0, combi_1.optPrio)((0, combi_1.seq)(anyKv, (0, combi_1.starPrio)((0, combi_1.seq)(",", anyKv))));
374
+ return (0, combi_1.ver)(v, (0, combi_1.seq)(nameReg, (0, combi_1.tok)(tokens_1.ParenLeftW), body, (0, combi_1.tok)(tokens_1.WParenRightW)));
375
+ };
376
+ return (0, combi_1.altPrio)(cast, sql_replace_regexpr_1.SQLReplaceRegexpr, sql_occurrences_regexpr_1.SQLOccurrencesRegexpr, sql_substring_regexpr_1.SQLSubstringRegexpr, sql_locate_regexpr_1.SQLLocateRegexpr, ...exports.sqlFunctionDefs.map(([name, params, v]) => fn(name, params, v)), ...exports.sqlNamedFunctionDefs.map(([name, v, params]) => namedFn(name, v, params)), ...exports.sqlSpatialFunctionDefs.map(([name, params, v]) => fn(name, params, v)), ...exports.sqlSpatialAggregateDefs.map(([name, params, v]) => fn(name, params, v)));
45
377
  }
46
378
  }
47
379
  exports.SQLFunction = SQLFunction;
@@ -15,7 +15,7 @@ const sql_case_1 = require("./sql_case");
15
15
  class SQLFunctionInput extends combi_1.Expression {
16
16
  getRunnable() {
17
17
  const hostParen = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.ParenLeftW), source_1.Source, (0, combi_1.tok)(tokens_1.WParenRightW));
18
- const at = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WAt), (0, combi_1.altPrio)(simple_source3_1.SimpleSource3, hostParen)));
18
+ const at = (0, combi_1.ver)(version_1.Release.v740sp05, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WAt), (0, combi_1.altPrio)(simple_source3_1.SimpleSource3, hostParen)));
19
19
  const parenInput = (0, combi_1.seq)("(", SQLFunctionInput, ")");
20
20
  const param = (0, combi_1.altPrio)(parenInput, sql_case_1.SQLCase, sql_function_1.SQLFunction, sql_aggregation_1.SQLAggregation, sql_field_name_1.SQLFieldName, sql_alias_field_1.SQLAliasField, constant_1.Constant, at);
21
21
  const operator = (0, combi_1.altPrio)("+", "-", "*", "/", "&&");
@@ -9,8 +9,8 @@ const sql_field_1 = require("./sql_field");
9
9
  class SQLGroupBy extends combi_1.Expression {
10
10
  getRunnable() {
11
11
  const fieldName = (0, combi_1.alt)(sql_field_name_1.SQLFieldName, dynamic_1.Dynamic);
12
- const expr = (0, combi_1.ver)(version_1.Version.v740sp02, sql_field_1.SQLField, version_1.Version.OpenABAP);
13
- const newGroup = (0, combi_1.ver)(version_1.Version.v740sp02, (0, combi_1.seq)("GROUP BY", expr, (0, combi_1.altPrio)((0, combi_1.plus)((0, combi_1.seq)(",", expr)), (0, combi_1.optPrio)((0, combi_1.plus)(fieldName)))), version_1.Version.OpenABAP);
12
+ const expr = (0, combi_1.ver)(version_1.Release.v740sp02, sql_field_1.SQLField, { also: combi_1.AlsoIn.OpenABAP });
13
+ const newGroup = (0, combi_1.ver)(version_1.Release.v740sp02, (0, combi_1.seq)("GROUP BY", expr, (0, combi_1.altPrio)((0, combi_1.plus)((0, combi_1.seq)(",", expr)), (0, combi_1.optPrio)((0, combi_1.plus)(fieldName)))), { also: combi_1.AlsoIn.OpenABAP });
14
14
  const old = (0, combi_1.seq)((0, combi_1.plus)((0, combi_1.seq)(fieldName, ",")), fieldName);
15
15
  const oldGroup = (0, combi_1.seq)("GROUP BY", (0, combi_1.altPrio)(old, (0, combi_1.plus)(fieldName)));
16
16
  return (0, combi_1.altPrio)(newGroup, oldGroup);
@@ -12,7 +12,7 @@ class SQLHierarchyAccessor extends combi_1.Expression {
12
12
  const distance = (0, combi_1.seq)("DISTANCE", (0, combi_1.altPrio)(distanceFrom, distanceTo));
13
13
  const accessor = (0, combi_1.seq)("SOURCE", _1.DatabaseTable, "START", "WHERE", _1.SQLCond, (0, combi_1.optPrio)(distance));
14
14
  const name = (0, combi_1.altPrio)("HIERARCHY_DESCENDANTS", "HIERARCHY_ANCESTORS", "HIERARCHY_SIBLINGS");
15
- return (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)(name, (0, combi_1.tok)(tokens_1.ParenLeftW), accessor, (0, combi_1.tok)(tokens_1.WParenRightW)));
15
+ return (0, combi_1.ver)(version_1.Release.v750, (0, combi_1.seq)(name, (0, combi_1.tok)(tokens_1.ParenLeftW), accessor, (0, combi_1.tok)(tokens_1.WParenRightW)));
16
16
  }
17
17
  }
18
18
  exports.SQLHierarchyAccessor = SQLHierarchyAccessor;
@@ -15,7 +15,7 @@ class SQLHierarchyAggregate extends combi_1.Expression {
15
15
  const withEntry = (0, combi_1.altPrio)("SUBTOTAL", "BALANCE", (0, combi_1.seq)("NOT", "MATCHED"), "TOTAL");
16
16
  const aggregate = (0, combi_1.seq)("SOURCE", _1.DatabaseTable, (0, combi_1.optPrio)(startWhere), (0, combi_1.optPrio)(join), measures, (0, combi_1.optPrio)(where), (0, combi_1.optPrio)((0, combi_1.seq)("WITH", withEntry, (0, combi_1.star)((0, combi_1.seq)("WITH", withEntry)))));
17
17
  const name = (0, combi_1.altPrio)("HIERARCHY_DESCENDANTS_AGGREGATE", "HIERARCHY_ANCESTORS_AGGREGATE");
18
- return (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)(name, (0, combi_1.tok)(tokens_1.ParenLeftW), aggregate, (0, combi_1.tok)(tokens_1.WParenRightW)));
18
+ return (0, combi_1.ver)(version_1.Release.v750, (0, combi_1.seq)(name, (0, combi_1.tok)(tokens_1.ParenLeftW), aggregate, (0, combi_1.tok)(tokens_1.WParenRightW)));
19
19
  }
20
20
  }
21
21
  exports.SQLHierarchyAggregate = SQLHierarchyAggregate;
@@ -28,7 +28,7 @@ class SQLHierarchySource extends combi_1.Expression {
28
28
  const levels = (0, combi_1.seq)("LEVELS", (0, combi_1.tok)(tokens_1.WParenLeftW), levelColumn, (0, combi_1.star)((0, combi_1.seq)(",", levelColumn)), (0, combi_1.tok)(tokens_1.WParenRightW));
29
29
  const leveledGenerator = (0, combi_1.seq)(levels, (0, combi_1.optPrio)(siblingsOrderBy), (0, combi_1.optPrio)(cache), (0, combi_1.optPrio)(retainNulls));
30
30
  const generator = (0, combi_1.seq)(association, (0, combi_1.optPrio)((0, combi_1.seq)(period, valid)), startWhere, (0, combi_1.optPrio)(siblingsOrderBy), (0, combi_1.optPrio)(depth), (0, combi_1.optPrio)(multipleParents), (0, combi_1.optPrio)(orphan), (0, combi_1.optPrio)(cache), (0, combi_1.optPrio)(cycle), (0, combi_1.optPrio)(load), (0, combi_1.optPrio)(generateSpantree));
31
- return (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)("HIERARCHY", (0, combi_1.tok)(tokens_1.ParenLeftW), "SOURCE", sourceTable, (0, combi_1.altPrio)(leveledGenerator, generator), (0, combi_1.tok)(tokens_1.WParenRightW)));
31
+ return (0, combi_1.ver)(version_1.Release.v750, (0, combi_1.seq)("HIERARCHY", (0, combi_1.tok)(tokens_1.ParenLeftW), "SOURCE", sourceTable, (0, combi_1.altPrio)(leveledGenerator, generator), (0, combi_1.tok)(tokens_1.WParenRightW)));
32
32
  }
33
33
  }
34
34
  exports.SQLHierarchySource = SQLHierarchySource;
@@ -11,10 +11,10 @@ class SQLIn extends combi_1.Expression {
11
11
  getRunnable() {
12
12
  const val = new _1.SQLSource();
13
13
  const short = new _1.SQLSourceNoSpace();
14
- const listOld = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeft), (0, combi_1.alt)((0, combi_1.ver)(version_1.Version.v740sp05, short, version_1.Version.OpenABAP), val), (0, combi_1.starPrio)((0, combi_1.seq)(",", val)), (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.ParenRight), (0, combi_1.tok)(tokens_1.ParenRightW), (0, combi_1.tok)(tokens_1.WParenRightW)));
14
+ const listOld = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeft), (0, combi_1.alt)((0, combi_1.ver)(version_1.Release.v740sp05, short, { also: combi_1.AlsoIn.OpenABAP }), val), (0, combi_1.starPrio)((0, combi_1.seq)(",", val)), (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.ParenRight), (0, combi_1.tok)(tokens_1.ParenRightW), (0, combi_1.tok)(tokens_1.WParenRightW)));
15
15
  const listNew = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), val, (0, combi_1.starPrio)((0, combi_1.seq)(",", (0, combi_1.altPrio)(short, val))), (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.WParenRight), (0, combi_1.tok)(tokens_1.WParenRightW)));
16
16
  // version is a guess, https://github.com/abaplint/abaplint/issues/2530
17
- const listNeww = (0, combi_1.ver)(version_1.Version.v740sp02, listNew, version_1.Version.OpenABAP);
17
+ const listNeww = (0, combi_1.ver)(version_1.Release.v740sp02, listNew, { also: combi_1.AlsoIn.OpenABAP });
18
18
  const subSelect = sql_set_op_group_1.SQLSetOpGroup;
19
19
  // simple subquery for pre-v750 versions: IN ( SELECT ... ), https://github.com/abaplint/abaplint/issues/3999
20
20
  const simpleSubSelect = (0, combi_1.seq)("(", "SELECT", (0, _select_core_1.buildSelectCore)(undefined, false), ")");
@@ -8,7 +8,7 @@ const wparen_left_1 = require("../../1_lexer/tokens/wparen_left");
8
8
  const version_1 = require("../../../version");
9
9
  class SQLIntoList extends combi_1.Expression {
10
10
  getRunnable() {
11
- const intoList = (0, combi_1.seq)((0, combi_1.altPrio)((0, combi_1.tok)(wparen_left_1.WParenLeft), (0, combi_1.ver)(version_1.Version.v740sp02, (0, combi_1.tok)(wparen_leftw_1.WParenLeftW), version_1.Version.OpenABAP)), (0, combi_1.starPrio)((0, combi_1.seq)(_1.SQLTarget, ",")), _1.SQLTarget, ")");
11
+ const intoList = (0, combi_1.seq)((0, combi_1.altPrio)((0, combi_1.tok)(wparen_left_1.WParenLeft), (0, combi_1.ver)(version_1.Release.v740sp02, (0, combi_1.tok)(wparen_leftw_1.WParenLeftW), { also: combi_1.AlsoIn.OpenABAP })), (0, combi_1.starPrio)((0, combi_1.seq)(_1.SQLTarget, ",")), _1.SQLTarget, ")");
12
12
  return (0, combi_1.seq)("INTO", intoList);
13
13
  }
14
14
  }
@@ -9,7 +9,7 @@ class SQLJoin extends combi_1.Expression {
9
9
  getRunnable() {
10
10
  const joinType = (0, combi_1.seq)((0, combi_1.optPrio)((0, combi_1.altPrio)("INNER", "LEFT OUTER", "LEFT", "RIGHT OUTER", "RIGHT")), "JOIN");
11
11
  const join = (0, combi_1.seq)(joinType, new sql_join_source_1.SQLJoinSource(), "ON", _1.SQLCond);
12
- const crossJoin = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)("CROSS JOIN", new sql_join_source_1.SQLJoinSource()), version_1.Version.OpenABAP);
12
+ const crossJoin = (0, combi_1.ver)(version_1.Release.v750, (0, combi_1.seq)("CROSS JOIN", new sql_join_source_1.SQLJoinSource()), { also: combi_1.AlsoIn.OpenABAP });
13
13
  return (0, combi_1.altPrio)(crossJoin, join);
14
14
  }
15
15
  }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SQLLikeRegexpr = void 0;
4
+ const combi_1 = require("../combi");
5
+ const version_1 = require("../../../version");
6
+ const tokens_1 = require("../../1_lexer/tokens");
7
+ const simple_source3_1 = require("./simple_source3");
8
+ const source_1 = require("./source");
9
+ const sql_function_input_1 = require("./sql_function_input");
10
+ class SQLLikeRegexpr extends combi_1.Expression {
11
+ getRunnable() {
12
+ const hostParen = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.ParenLeftW), source_1.Source, (0, combi_1.tok)(tokens_1.WParenRightW));
13
+ const hostVar = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WAt), (0, combi_1.altPrio)(simple_source3_1.SimpleSource3, hostParen));
14
+ const flag = (0, combi_1.seq)("FLAG", (0, combi_1.altPrio)(hostVar, sql_function_input_1.SQLFunctionInput));
15
+ return (0, combi_1.ver)(version_1.Release.v757, (0, combi_1.seq)("LIKE_REGEXPR", sql_function_input_1.SQLFunctionInput, (0, combi_1.optPrio)(flag)));
16
+ }
17
+ }
18
+ exports.SQLLikeRegexpr = SQLLikeRegexpr;
19
+ //# sourceMappingURL=sql_like_regexpr.js.map
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SQLLocateRegexpr = void 0;
4
+ const combi_1 = require("../combi");
5
+ const version_1 = require("../../../version");
6
+ const tokens_1 = require("../../1_lexer/tokens");
7
+ const sql_regexpr_pattern_1 = require("./sql_regexpr_pattern");
8
+ const sql_regexpr_from_1 = require("./sql_regexpr_from");
9
+ const sql_regexpr_occurrence_1 = require("./sql_regexpr_occurrence");
10
+ const sql_regexpr_group_1 = require("./sql_regexpr_group");
11
+ class SQLLocateRegexpr extends combi_1.Expression {
12
+ getRunnable() {
13
+ const startOrAfter = (0, combi_1.optPrio)((0, combi_1.altPrio)("START", "AFTER"));
14
+ return (0, combi_1.ver)(version_1.Release.v758, (0, combi_1.seq)("LOCATE_REGEXPR", (0, combi_1.tok)(tokens_1.ParenLeftW), startOrAfter, sql_regexpr_pattern_1.SQLRegexprPattern, (0, combi_1.optPrio)(sql_regexpr_from_1.SQLRegexprFrom), (0, combi_1.optPrio)(sql_regexpr_occurrence_1.SQLRegexprOccurrence), (0, combi_1.optPrio)(sql_regexpr_group_1.SQLRegexprGroup), (0, combi_1.tok)(tokens_1.WParenRightW)));
15
+ }
16
+ }
17
+ exports.SQLLocateRegexpr = SQLLocateRegexpr;
18
+ //# sourceMappingURL=sql_locate_regexpr.js.map
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SQLOccurrencesRegexpr = void 0;
4
+ const combi_1 = require("../combi");
5
+ const version_1 = require("../../../version");
6
+ const tokens_1 = require("../../1_lexer/tokens");
7
+ const sql_regexpr_pattern_1 = require("./sql_regexpr_pattern");
8
+ const sql_regexpr_from_1 = require("./sql_regexpr_from");
9
+ class SQLOccurrencesRegexpr extends combi_1.Expression {
10
+ getRunnable() {
11
+ return (0, combi_1.ver)(version_1.Release.v757, (0, combi_1.seq)("OCCURRENCES_REGEXPR", (0, combi_1.tok)(tokens_1.ParenLeftW), sql_regexpr_pattern_1.SQLRegexprPattern, (0, combi_1.optPrio)(sql_regexpr_from_1.SQLRegexprFrom), (0, combi_1.tok)(tokens_1.WParenRightW)));
12
+ }
13
+ }
14
+ exports.SQLOccurrencesRegexpr = SQLOccurrencesRegexpr;
15
+ //# sourceMappingURL=sql_occurrences_regexpr.js.map
@@ -8,10 +8,10 @@ const _1 = require(".");
8
8
  class SQLOptions extends combi_1.Expression {
9
9
  getRunnable() {
10
10
  const usingClients = (0, combi_1.alt)((0, combi_1.seq)("CLIENTS IN", (0, combi_1.alt)(sql_source_simple_1.SQLSourceSimple, "T000")), "ALL CLIENTS", (0, combi_1.seq)("CLIENT", sql_source_simple_1.SQLSourceSimple));
11
- const privilegedAccess = (0, combi_1.ver)(version_1.Version.v758, _1.SQLPrivilegedAccess);
11
+ const privilegedAccess = (0, combi_1.ver)(version_1.Release.v758, _1.SQLPrivilegedAccess);
12
12
  const general = (0, combi_1.per)(privilegedAccess, _1.SQLBypassingBuffer, _1.DatabaseConnection);
13
13
  const usingClause = (0, combi_1.seq)("USING", usingClients, (0, combi_1.optPrio)(general));
14
- return (0, combi_1.ver)(version_1.Version.v758, (0, combi_1.seq)("OPTIONS", (0, combi_1.alt)(usingClause, general)));
14
+ return (0, combi_1.ver)(version_1.Release.v758, (0, combi_1.seq)("OPTIONS", (0, combi_1.alt)(usingClause, general)));
15
15
  }
16
16
  }
17
17
  exports.SQLOptions = SQLOptions;
@@ -17,8 +17,8 @@ class SQLOver extends combi_1.Expression {
17
17
  const currentRow = (0, combi_1.seq)("CURRENT", "ROW");
18
18
  const numBound = (0, combi_1.seq)(sql_source_1.SQLSource, (0, combi_1.altPrio)("PRECEDING", "FOLLOWING"));
19
19
  const bound = (0, combi_1.altPrio)(unboundedPreceding, unboundedFollowing, currentRow, numBound);
20
- const windowFrameSpec = (0, combi_1.ver)(version_1.Version.v757, (0, combi_1.seq)("ROWS", "BETWEEN", bound, "AND", bound));
21
- return (0, combi_1.ver)(version_1.Version.v757, (0, combi_1.seq)("OVER", lparen, (0, combi_1.optPrio)(partitionBy), (0, combi_1.optPrio)(sql_order_by_1.SQLOrderBy), (0, combi_1.optPrio)(windowFrameSpec), rparen));
20
+ const windowFrameSpec = (0, combi_1.ver)(version_1.Release.v757, (0, combi_1.seq)("ROWS", "BETWEEN", bound, "AND", bound));
21
+ return (0, combi_1.ver)(version_1.Release.v757, (0, combi_1.seq)("OVER", lparen, (0, combi_1.optPrio)(partitionBy), (0, combi_1.optPrio)(sql_order_by_1.SQLOrderBy), (0, combi_1.optPrio)(windowFrameSpec), rparen));
22
22
  }
23
23
  }
24
24
  exports.SQLOver = SQLOver;
@@ -11,7 +11,7 @@ class SQLPathForColumn extends combi_1.Expression {
11
11
  const tablePrefix = (0, combi_1.regex)(/^(\/\w+\/)?\w+~$/);
12
12
  const withPrefix = (0, combi_1.seq)(tablePrefix, (0, combi_1.plus)(new sql_path_segment_1.SQLPathSegment(true)), (0, combi_1.tok)(tokens_1.Dash), field_1.Field);
13
13
  const standalone = (0, combi_1.seq)((0, combi_1.plus)(new sql_path_segment_1.SQLPathSegment()), (0, combi_1.tok)(tokens_1.Dash), field_1.Field);
14
- return (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.altPrio)(withPrefix, standalone));
14
+ return (0, combi_1.ver)(version_1.Release.v740sp05, (0, combi_1.altPrio)(withPrefix, standalone));
15
15
  }
16
16
  }
17
17
  exports.SQLPathForColumn = SQLPathForColumn;
@@ -7,7 +7,7 @@ const database_table_1 = require("./database_table");
7
7
  const version_1 = require("../../../version");
8
8
  class SQLPathForEntity extends combi_1.Expression {
9
9
  getRunnable() {
10
- return (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.optPrio)(database_table_1.DatabaseTable), (0, combi_1.plus)(new sql_path_segment_1.SQLPathSegment())));
10
+ return (0, combi_1.ver)(version_1.Release.v740sp05, (0, combi_1.seq)((0, combi_1.optPrio)(database_table_1.DatabaseTable), (0, combi_1.plus)(new sql_path_segment_1.SQLPathSegment())));
11
11
  }
12
12
  }
13
13
  exports.SQLPathForEntity = SQLPathForEntity;