@abaplint/core 2.119.27 → 2.119.28

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 (439) hide show
  1. package/build/abaplint.d.ts +10 -0
  2. package/build/src/abap/2_statements/combi.js +34 -1
  3. package/build/src/abap/2_statements/expand_macros.js +36 -3
  4. package/build/src/abap/2_statements/expressions/data_definition.js +34 -1
  5. package/build/src/abap/2_statements/expressions/index.js +2 -0
  6. package/build/src/abap/2_statements/expressions/lob_handle.js +34 -1
  7. package/build/src/abap/2_statements/expressions/method_def_returning.js +34 -1
  8. package/build/src/abap/2_statements/expressions/method_param.js +34 -1
  9. package/build/src/abap/2_statements/expressions/select.js +5 -14
  10. package/build/src/abap/2_statements/expressions/select_core.js +30 -0
  11. package/build/src/abap/2_statements/expressions/sql_compare.js +4 -4
  12. package/build/src/abap/2_statements/expressions/sql_having.js +2 -7
  13. package/build/src/abap/2_statements/expressions/sql_in.js +2 -1
  14. package/build/src/abap/2_statements/expressions/sql_set_op.js +18 -0
  15. package/build/src/abap/2_statements/expressions/sql_set_op_group.js +16 -0
  16. package/build/src/abap/2_statements/expressions/string_template.js +34 -1
  17. package/build/src/abap/2_statements/statement_parser.js +36 -3
  18. package/build/src/abap/2_statements/statements/include_type.js +34 -1
  19. package/build/src/abap/2_statements/statements/perform.js +34 -1
  20. package/build/src/abap/2_statements/statements/select.js +1 -4
  21. package/build/src/abap/2_statements/statements/static.js +34 -1
  22. package/build/src/abap/2_statements/statements/type.js +34 -1
  23. package/build/src/abap/3_structures/structure_parser.js +34 -1
  24. package/build/src/abap/3_structures/structures/any.js +35 -2
  25. package/build/src/abap/3_structures/structures/at.js +34 -1
  26. package/build/src/abap/3_structures/structures/at_first.js +34 -1
  27. package/build/src/abap/3_structures/structures/at_last.js +34 -1
  28. package/build/src/abap/3_structures/structures/case.js +34 -1
  29. package/build/src/abap/3_structures/structures/case_type.js +34 -1
  30. package/build/src/abap/3_structures/structures/catch.js +34 -1
  31. package/build/src/abap/3_structures/structures/catch_system_exceptions.js +34 -1
  32. package/build/src/abap/3_structures/structures/chain.js +34 -1
  33. package/build/src/abap/3_structures/structures/class_data.js +34 -1
  34. package/build/src/abap/3_structures/structures/class_definition.js +34 -1
  35. package/build/src/abap/3_structures/structures/class_global.js +35 -2
  36. package/build/src/abap/3_structures/structures/class_implementation.js +35 -2
  37. package/build/src/abap/3_structures/structures/cleanup.js +34 -1
  38. package/build/src/abap/3_structures/structures/constants.js +34 -1
  39. package/build/src/abap/3_structures/structures/data.js +34 -1
  40. package/build/src/abap/3_structures/structures/define.js +34 -1
  41. package/build/src/abap/3_structures/structures/do.js +34 -1
  42. package/build/src/abap/3_structures/structures/dynpro_logic.js +34 -1
  43. package/build/src/abap/3_structures/structures/dynpro_loop.js +34 -1
  44. package/build/src/abap/3_structures/structures/else.js +34 -1
  45. package/build/src/abap/3_structures/structures/elseif.js +34 -1
  46. package/build/src/abap/3_structures/structures/enhancement.js +34 -1
  47. package/build/src/abap/3_structures/structures/enhancement_section.js +34 -1
  48. package/build/src/abap/3_structures/structures/exec_sql.js +34 -1
  49. package/build/src/abap/3_structures/structures/form.js +34 -1
  50. package/build/src/abap/3_structures/structures/function_module.js +34 -1
  51. package/build/src/abap/3_structures/structures/if.js +34 -1
  52. package/build/src/abap/3_structures/structures/interface.js +34 -1
  53. package/build/src/abap/3_structures/structures/interface_global.js +35 -2
  54. package/build/src/abap/3_structures/structures/loop.js +34 -1
  55. package/build/src/abap/3_structures/structures/loop_at_screen.js +34 -1
  56. package/build/src/abap/3_structures/structures/loop_extract.js +34 -1
  57. package/build/src/abap/3_structures/structures/method.js +34 -1
  58. package/build/src/abap/3_structures/structures/module.js +34 -1
  59. package/build/src/abap/3_structures/structures/normal.js +35 -2
  60. package/build/src/abap/3_structures/structures/on_change.js +34 -1
  61. package/build/src/abap/3_structures/structures/private_section.js +34 -1
  62. package/build/src/abap/3_structures/structures/process_after_input.js +34 -1
  63. package/build/src/abap/3_structures/structures/process_before_output.js +34 -1
  64. package/build/src/abap/3_structures/structures/process_on_help_request.js +34 -1
  65. package/build/src/abap/3_structures/structures/process_on_value_request.js +34 -1
  66. package/build/src/abap/3_structures/structures/protected_section.js +34 -1
  67. package/build/src/abap/3_structures/structures/provide.js +34 -1
  68. package/build/src/abap/3_structures/structures/public_section.js +34 -1
  69. package/build/src/abap/3_structures/structures/section_contents.js +34 -1
  70. package/build/src/abap/3_structures/structures/select.js +34 -1
  71. package/build/src/abap/3_structures/structures/statics.js +34 -1
  72. package/build/src/abap/3_structures/structures/test_injection.js +34 -1
  73. package/build/src/abap/3_structures/structures/test_seam.js +34 -1
  74. package/build/src/abap/3_structures/structures/try.js +34 -1
  75. package/build/src/abap/3_structures/structures/type_enum.js +34 -1
  76. package/build/src/abap/3_structures/structures/type_mesh.js +34 -1
  77. package/build/src/abap/3_structures/structures/types.js +34 -1
  78. package/build/src/abap/3_structures/structures/when.js +34 -1
  79. package/build/src/abap/3_structures/structures/when_type.js +34 -1
  80. package/build/src/abap/3_structures/structures/while.js +34 -1
  81. package/build/src/abap/3_structures/structures/with.js +34 -1
  82. package/build/src/abap/4_file_information/abap_file_information_parser.js +37 -4
  83. package/build/src/abap/5_syntax/_object_oriented.js +35 -2
  84. package/build/src/abap/5_syntax/_procedural.js +36 -3
  85. package/build/src/abap/5_syntax/_type_utils.js +34 -1
  86. package/build/src/abap/5_syntax/basic_types.js +36 -3
  87. package/build/src/abap/5_syntax/expressions/cast.js +34 -1
  88. package/build/src/abap/5_syntax/expressions/compare.js +34 -1
  89. package/build/src/abap/5_syntax/expressions/component_chain.js +34 -1
  90. package/build/src/abap/5_syntax/expressions/component_compare.js +34 -1
  91. package/build/src/abap/5_syntax/expressions/component_compare_simple.js +34 -1
  92. package/build/src/abap/5_syntax/expressions/component_cond.js +34 -1
  93. package/build/src/abap/5_syntax/expressions/component_name.js +34 -1
  94. package/build/src/abap/5_syntax/expressions/cond.js +34 -1
  95. package/build/src/abap/5_syntax/expressions/cond_body.js +34 -1
  96. package/build/src/abap/5_syntax/expressions/conv_body.js +34 -1
  97. package/build/src/abap/5_syntax/expressions/corresponding_body.js +34 -1
  98. package/build/src/abap/5_syntax/expressions/data_definition.js +34 -1
  99. package/build/src/abap/5_syntax/expressions/default.js +34 -1
  100. package/build/src/abap/5_syntax/expressions/dynamic.js +34 -1
  101. package/build/src/abap/5_syntax/expressions/field_assignment.js +34 -1
  102. package/build/src/abap/5_syntax/expressions/field_chain.js +34 -1
  103. package/build/src/abap/5_syntax/expressions/field_length.js +34 -1
  104. package/build/src/abap/5_syntax/expressions/field_offset.js +34 -1
  105. package/build/src/abap/5_syntax/expressions/filter_body.js +34 -1
  106. package/build/src/abap/5_syntax/expressions/for.js +34 -1
  107. package/build/src/abap/5_syntax/expressions/fstarget.js +34 -1
  108. package/build/src/abap/5_syntax/expressions/function_parameters.js +34 -1
  109. package/build/src/abap/5_syntax/expressions/inline_data.js +34 -1
  110. package/build/src/abap/5_syntax/expressions/inline_field_definition.js +34 -1
  111. package/build/src/abap/5_syntax/expressions/inline_fs.js +34 -1
  112. package/build/src/abap/5_syntax/expressions/inline_loop_definition.js +34 -1
  113. package/build/src/abap/5_syntax/expressions/let.js +34 -1
  114. package/build/src/abap/5_syntax/expressions/loop_group_by.js +34 -1
  115. package/build/src/abap/5_syntax/expressions/message_source.js +34 -1
  116. package/build/src/abap/5_syntax/expressions/method_call_body.js +34 -1
  117. package/build/src/abap/5_syntax/expressions/method_call_chain.js +34 -1
  118. package/build/src/abap/5_syntax/expressions/method_call_param.js +34 -1
  119. package/build/src/abap/5_syntax/expressions/method_def_returning.js +34 -1
  120. package/build/src/abap/5_syntax/expressions/method_param.js +34 -1
  121. package/build/src/abap/5_syntax/expressions/method_parameters.js +34 -1
  122. package/build/src/abap/5_syntax/expressions/method_source.js +34 -1
  123. package/build/src/abap/5_syntax/expressions/new_object.js +34 -1
  124. package/build/src/abap/5_syntax/expressions/raise_with.js +34 -1
  125. package/build/src/abap/5_syntax/expressions/reduce_body.js +34 -1
  126. package/build/src/abap/5_syntax/expressions/reduce_next.js +34 -1
  127. package/build/src/abap/5_syntax/expressions/select.js +34 -1
  128. package/build/src/abap/5_syntax/expressions/source.js +34 -1
  129. package/build/src/abap/5_syntax/expressions/sql_compare.js +34 -1
  130. package/build/src/abap/5_syntax/expressions/sql_for_all_entries.js +34 -1
  131. package/build/src/abap/5_syntax/expressions/sql_from.js +34 -1
  132. package/build/src/abap/5_syntax/expressions/sql_in.js +34 -1
  133. package/build/src/abap/5_syntax/expressions/sql_order_by.js +34 -1
  134. package/build/src/abap/5_syntax/expressions/sql_source.js +34 -1
  135. package/build/src/abap/5_syntax/expressions/string_template.js +35 -2
  136. package/build/src/abap/5_syntax/expressions/switch_body.js +34 -1
  137. package/build/src/abap/5_syntax/expressions/table_expression.js +34 -1
  138. package/build/src/abap/5_syntax/expressions/target.js +34 -1
  139. package/build/src/abap/5_syntax/expressions/type_table.js +34 -1
  140. package/build/src/abap/5_syntax/expressions/type_table_key.js +34 -1
  141. package/build/src/abap/5_syntax/expressions/value_body.js +34 -1
  142. package/build/src/abap/5_syntax/global_definitions/find_global_definitions.js +35 -2
  143. package/build/src/abap/5_syntax/statements/add.js +34 -1
  144. package/build/src/abap/5_syntax/statements/add_corresponding.js +34 -1
  145. package/build/src/abap/5_syntax/statements/append.js +34 -1
  146. package/build/src/abap/5_syntax/statements/assert.js +34 -1
  147. package/build/src/abap/5_syntax/statements/assign.js +34 -1
  148. package/build/src/abap/5_syntax/statements/authority_check.js +34 -1
  149. package/build/src/abap/5_syntax/statements/call_badi.js +34 -1
  150. package/build/src/abap/5_syntax/statements/call_function.js +34 -1
  151. package/build/src/abap/5_syntax/statements/call_kernel.js +34 -1
  152. package/build/src/abap/5_syntax/statements/call_transaction.js +34 -1
  153. package/build/src/abap/5_syntax/statements/call_transformation.js +34 -1
  154. package/build/src/abap/5_syntax/statements/case.js +34 -1
  155. package/build/src/abap/5_syntax/statements/case_type.js +34 -1
  156. package/build/src/abap/5_syntax/statements/catch.js +34 -1
  157. package/build/src/abap/5_syntax/statements/check.js +34 -1
  158. package/build/src/abap/5_syntax/statements/class_data.js +34 -1
  159. package/build/src/abap/5_syntax/statements/class_deferred.js +34 -1
  160. package/build/src/abap/5_syntax/statements/class_local_friends.js +34 -1
  161. package/build/src/abap/5_syntax/statements/clear.js +34 -1
  162. package/build/src/abap/5_syntax/statements/close_cursor.js +34 -1
  163. package/build/src/abap/5_syntax/statements/close_dataset.js +34 -1
  164. package/build/src/abap/5_syntax/statements/collect.js +34 -1
  165. package/build/src/abap/5_syntax/statements/commit_entities.js +34 -1
  166. package/build/src/abap/5_syntax/statements/concatenate.js +34 -1
  167. package/build/src/abap/5_syntax/statements/condense.js +34 -1
  168. package/build/src/abap/5_syntax/statements/constant.js +34 -1
  169. package/build/src/abap/5_syntax/statements/controls.js +34 -1
  170. package/build/src/abap/5_syntax/statements/convert.js +34 -1
  171. package/build/src/abap/5_syntax/statements/create_data.js +34 -1
  172. package/build/src/abap/5_syntax/statements/create_object.js +34 -1
  173. package/build/src/abap/5_syntax/statements/data.js +34 -1
  174. package/build/src/abap/5_syntax/statements/delete_cluster.js +34 -1
  175. package/build/src/abap/5_syntax/statements/delete_database.js +34 -1
  176. package/build/src/abap/5_syntax/statements/delete_internal.js +34 -1
  177. package/build/src/abap/5_syntax/statements/delete_memory.js +34 -1
  178. package/build/src/abap/5_syntax/statements/delete_report.js +34 -1
  179. package/build/src/abap/5_syntax/statements/describe.js +34 -1
  180. package/build/src/abap/5_syntax/statements/divide.js +34 -1
  181. package/build/src/abap/5_syntax/statements/do.js +34 -1
  182. package/build/src/abap/5_syntax/statements/editor_call.js +34 -1
  183. package/build/src/abap/5_syntax/statements/else_if.js +34 -1
  184. package/build/src/abap/5_syntax/statements/export.js +34 -1
  185. package/build/src/abap/5_syntax/statements/fetch_next_cursor.js +34 -1
  186. package/build/src/abap/5_syntax/statements/field_group.js +34 -1
  187. package/build/src/abap/5_syntax/statements/fieldsymbol.js +34 -1
  188. package/build/src/abap/5_syntax/statements/find.js +34 -1
  189. package/build/src/abap/5_syntax/statements/format.js +34 -1
  190. package/build/src/abap/5_syntax/statements/free.js +34 -1
  191. package/build/src/abap/5_syntax/statements/get_badi.js +34 -1
  192. package/build/src/abap/5_syntax/statements/get_bit.js +34 -1
  193. package/build/src/abap/5_syntax/statements/get_cursor.js +34 -1
  194. package/build/src/abap/5_syntax/statements/get_locale.js +34 -1
  195. package/build/src/abap/5_syntax/statements/get_parameter.js +34 -1
  196. package/build/src/abap/5_syntax/statements/get_pf_status.js +34 -1
  197. package/build/src/abap/5_syntax/statements/get_reference.js +34 -1
  198. package/build/src/abap/5_syntax/statements/get_run_time.js +34 -1
  199. package/build/src/abap/5_syntax/statements/get_time.js +34 -1
  200. package/build/src/abap/5_syntax/statements/if.js +34 -1
  201. package/build/src/abap/5_syntax/statements/import.js +34 -1
  202. package/build/src/abap/5_syntax/statements/import_dynpro.js +34 -1
  203. package/build/src/abap/5_syntax/statements/include_type.js +34 -1
  204. package/build/src/abap/5_syntax/statements/insert_database.js +34 -1
  205. package/build/src/abap/5_syntax/statements/insert_field_group.js +34 -1
  206. package/build/src/abap/5_syntax/statements/insert_internal.js +34 -1
  207. package/build/src/abap/5_syntax/statements/insert_report.js +34 -1
  208. package/build/src/abap/5_syntax/statements/insert_textpool.js +34 -1
  209. package/build/src/abap/5_syntax/statements/interface_deferred.js +34 -1
  210. package/build/src/abap/5_syntax/statements/log_point.js +34 -1
  211. package/build/src/abap/5_syntax/statements/loop.js +34 -1
  212. package/build/src/abap/5_syntax/statements/loop_at_screen.js +34 -1
  213. package/build/src/abap/5_syntax/statements/message.js +34 -1
  214. package/build/src/abap/5_syntax/statements/method_implementation.js +34 -1
  215. package/build/src/abap/5_syntax/statements/modify_database.js +34 -1
  216. package/build/src/abap/5_syntax/statements/modify_entities.js +34 -1
  217. package/build/src/abap/5_syntax/statements/modify_internal.js +34 -1
  218. package/build/src/abap/5_syntax/statements/modify_screen.js +34 -1
  219. package/build/src/abap/5_syntax/statements/move.js +34 -1
  220. package/build/src/abap/5_syntax/statements/move_corresponding.js +34 -1
  221. package/build/src/abap/5_syntax/statements/multiply.js +34 -1
  222. package/build/src/abap/5_syntax/statements/open_cursor.js +34 -1
  223. package/build/src/abap/5_syntax/statements/open_dataset.js +34 -1
  224. package/build/src/abap/5_syntax/statements/pack.js +34 -1
  225. package/build/src/abap/5_syntax/statements/parameter.js +34 -1
  226. package/build/src/abap/5_syntax/statements/perform.js +35 -2
  227. package/build/src/abap/5_syntax/statements/raise.js +34 -1
  228. package/build/src/abap/5_syntax/statements/raise_event.js +34 -1
  229. package/build/src/abap/5_syntax/statements/ranges.js +34 -1
  230. package/build/src/abap/5_syntax/statements/read_entities.js +34 -1
  231. package/build/src/abap/5_syntax/statements/read_report.js +34 -1
  232. package/build/src/abap/5_syntax/statements/read_table.js +34 -1
  233. package/build/src/abap/5_syntax/statements/read_textpool.js +34 -1
  234. package/build/src/abap/5_syntax/statements/receive.js +34 -1
  235. package/build/src/abap/5_syntax/statements/refresh.js +34 -1
  236. package/build/src/abap/5_syntax/statements/replace.js +34 -1
  237. package/build/src/abap/5_syntax/statements/return.js +34 -1
  238. package/build/src/abap/5_syntax/statements/scan.js +34 -1
  239. package/build/src/abap/5_syntax/statements/search.js +34 -1
  240. package/build/src/abap/5_syntax/statements/select.js +34 -1
  241. package/build/src/abap/5_syntax/statements/select_loop.js +34 -1
  242. package/build/src/abap/5_syntax/statements/selection_screen.js +34 -1
  243. package/build/src/abap/5_syntax/statements/selectoption.js +34 -1
  244. package/build/src/abap/5_syntax/statements/set_bit.js +34 -1
  245. package/build/src/abap/5_syntax/statements/set_handler.js +34 -1
  246. package/build/src/abap/5_syntax/statements/set_locale.js +34 -1
  247. package/build/src/abap/5_syntax/statements/set_parameter.js +34 -1
  248. package/build/src/abap/5_syntax/statements/set_pf_status.js +34 -1
  249. package/build/src/abap/5_syntax/statements/set_titlebar.js +34 -1
  250. package/build/src/abap/5_syntax/statements/shift.js +34 -1
  251. package/build/src/abap/5_syntax/statements/sort.js +34 -1
  252. package/build/src/abap/5_syntax/statements/split.js +34 -1
  253. package/build/src/abap/5_syntax/statements/static.js +34 -1
  254. package/build/src/abap/5_syntax/statements/submit.js +34 -1
  255. package/build/src/abap/5_syntax/statements/subtract.js +34 -1
  256. package/build/src/abap/5_syntax/statements/subtract_corresponding.js +34 -1
  257. package/build/src/abap/5_syntax/statements/syntax_check.js +34 -1
  258. package/build/src/abap/5_syntax/statements/system_call.js +34 -1
  259. package/build/src/abap/5_syntax/statements/tables.js +34 -1
  260. package/build/src/abap/5_syntax/statements/transfer.js +34 -1
  261. package/build/src/abap/5_syntax/statements/translate.js +34 -1
  262. package/build/src/abap/5_syntax/statements/truncate_dataset.js +34 -1
  263. package/build/src/abap/5_syntax/statements/type.js +34 -1
  264. package/build/src/abap/5_syntax/statements/unassign.js +34 -1
  265. package/build/src/abap/5_syntax/statements/unpack.js +34 -1
  266. package/build/src/abap/5_syntax/statements/update_database.js +34 -1
  267. package/build/src/abap/5_syntax/statements/wait.js +34 -1
  268. package/build/src/abap/5_syntax/statements/when.js +34 -1
  269. package/build/src/abap/5_syntax/statements/when_type.js +34 -1
  270. package/build/src/abap/5_syntax/statements/while.js +34 -1
  271. package/build/src/abap/5_syntax/statements/with.js +34 -1
  272. package/build/src/abap/5_syntax/statements/with_loop.js +34 -1
  273. package/build/src/abap/5_syntax/statements/write.js +34 -1
  274. package/build/src/abap/5_syntax/structures/class_data.js +36 -3
  275. package/build/src/abap/5_syntax/structures/constants.js +37 -4
  276. package/build/src/abap/5_syntax/structures/data.js +37 -4
  277. package/build/src/abap/5_syntax/structures/statics.js +37 -4
  278. package/build/src/abap/5_syntax/structures/type_enum.js +36 -3
  279. package/build/src/abap/5_syntax/structures/types.js +37 -4
  280. package/build/src/abap/5_syntax/syntax.js +35 -2
  281. package/build/src/abap/artifacts.js +36 -3
  282. package/build/src/abap/types/class_attributes.js +36 -3
  283. package/build/src/abap/types/class_definition.js +36 -3
  284. package/build/src/abap/types/class_implementation.js +36 -3
  285. package/build/src/abap/types/event_definition.js +34 -1
  286. package/build/src/abap/types/form_definition.js +36 -3
  287. package/build/src/abap/types/interface_definition.js +36 -3
  288. package/build/src/abap/types/method_definition.js +34 -1
  289. package/build/src/abap/types/method_definitions.js +34 -1
  290. package/build/src/abap/types/method_implementation.js +35 -2
  291. package/build/src/abap/types/method_parameters.js +34 -1
  292. package/build/src/artifacts_objects.js +34 -1
  293. package/build/src/artifacts_rules.js +34 -1
  294. package/build/src/cds/artifacts.js +34 -1
  295. package/build/src/cds/cds_parser.js +34 -1
  296. package/build/src/config.js +34 -1
  297. package/build/src/ddic.js +34 -1
  298. package/build/src/ddl/artifacts.js +34 -1
  299. package/build/src/ddl/ddl_parser.js +34 -1
  300. package/build/src/index.js +44 -11
  301. package/build/src/lsp/_edit.js +34 -1
  302. package/build/src/lsp/_lookup.js +36 -3
  303. package/build/src/lsp/_lsp_utils.js +34 -1
  304. package/build/src/lsp/code_actions.js +34 -1
  305. package/build/src/lsp/code_lens.js +34 -1
  306. package/build/src/lsp/diagnostics.js +34 -1
  307. package/build/src/lsp/hover.js +36 -3
  308. package/build/src/lsp/inlay_hints.js +34 -1
  309. package/build/src/lsp/language_server.js +34 -1
  310. package/build/src/lsp/rename.js +34 -1
  311. package/build/src/lsp/semantic.js +35 -2
  312. package/build/src/lsp/symbols.js +36 -3
  313. package/build/src/objects/data_element.js +34 -1
  314. package/build/src/objects/domain.js +34 -1
  315. package/build/src/objects/rename/rename_global_class.js +35 -2
  316. package/build/src/objects/rename/rename_global_interface.js +35 -2
  317. package/build/src/objects/rename/rename_program.js +35 -2
  318. package/build/src/objects/table.js +34 -1
  319. package/build/src/objects/table_type.js +34 -1
  320. package/build/src/objects/view.js +34 -1
  321. package/build/src/pretty_printer/fix_keyword_case.js +34 -1
  322. package/build/src/pretty_printer/indent.js +35 -2
  323. package/build/src/registry.js +2 -2
  324. package/build/src/rules/add_test_attributes.js +35 -2
  325. package/build/src/rules/align_parameters.js +35 -2
  326. package/build/src/rules/align_type_expressions.js +36 -3
  327. package/build/src/rules/ambiguous_statement.js +34 -1
  328. package/build/src/rules/avoid_use.js +34 -1
  329. package/build/src/rules/begin_end_names.js +36 -3
  330. package/build/src/rules/begin_single_include.js +35 -2
  331. package/build/src/rules/call_transaction_authority_check.js +34 -1
  332. package/build/src/rules/catch_and_raise.js +36 -3
  333. package/build/src/rules/chain_mainly_declarations.js +34 -1
  334. package/build/src/rules/change_if_to_case.js +36 -3
  335. package/build/src/rules/check_ddic.js +34 -1
  336. package/build/src/rules/check_subrc.js +35 -2
  337. package/build/src/rules/check_text_elements.js +34 -1
  338. package/build/src/rules/classic_exceptions_overlap.js +34 -1
  339. package/build/src/rules/cloud_types.js +34 -1
  340. package/build/src/rules/constant_classes.js +34 -1
  341. package/build/src/rules/dangerous_statement.js +35 -2
  342. package/build/src/rules/db_operation_in_loop.js +35 -2
  343. package/build/src/rules/definitions_top.js +35 -2
  344. package/build/src/rules/downport.js +37 -4
  345. package/build/src/rules/empty_event.js +34 -1
  346. package/build/src/rules/empty_structure.js +34 -1
  347. package/build/src/rules/exit_or_check.js +34 -1
  348. package/build/src/rules/fm_global_parameters_obsolete.js +34 -1
  349. package/build/src/rules/forbidden_pseudo_and_pragma.js +35 -2
  350. package/build/src/rules/form_tables_obsolete.js +34 -1
  351. package/build/src/rules/fully_type_constants.js +34 -1
  352. package/build/src/rules/fully_type_itabs.js +35 -2
  353. package/build/src/rules/functional_writing.js +35 -2
  354. package/build/src/rules/global_class.js +34 -1
  355. package/build/src/rules/identical_conditions.js +36 -3
  356. package/build/src/rules/identical_contents.js +34 -1
  357. package/build/src/rules/identical_move.js +35 -2
  358. package/build/src/rules/if_in_if.js +35 -2
  359. package/build/src/rules/implement_methods.js +35 -2
  360. package/build/src/rules/implicit_start_of_selection.js +34 -1
  361. package/build/src/rules/in_statement_indentation.js +34 -1
  362. package/build/src/rules/indentation.js +35 -2
  363. package/build/src/rules/index_completely_contained.js +34 -1
  364. package/build/src/rules/invalid_table_index.js +34 -1
  365. package/build/src/rules/keep_single_parameter_on_one_line.js +34 -1
  366. package/build/src/rules/keyword_case.js +35 -2
  367. package/build/src/rules/line_break_multiple_parameters.js +34 -1
  368. package/build/src/rules/local_variable_names.js +36 -3
  369. package/build/src/rules/macro_naming.js +35 -2
  370. package/build/src/rules/main_file_contents.js +36 -3
  371. package/build/src/rules/many_parentheses.js +35 -2
  372. package/build/src/rules/max_one_method_parameter_per_line.js +35 -2
  373. package/build/src/rules/message_exists.js +35 -2
  374. package/build/src/rules/method_length.js +34 -1
  375. package/build/src/rules/mix_returning.js +35 -2
  376. package/build/src/rules/modify_only_own_db_tables.js +35 -2
  377. package/build/src/rules/names_no_dash.js +35 -2
  378. package/build/src/rules/nesting.js +34 -1
  379. package/build/src/rules/newline_between_methods.js +34 -1
  380. package/build/src/rules/no_chained_assignment.js +35 -2
  381. package/build/src/rules/no_comments_between_methods.js +34 -1
  382. package/build/src/rules/no_external_form_calls.js +35 -2
  383. package/build/src/rules/no_inline_in_optional_branches.js +35 -2
  384. package/build/src/rules/no_prefixes.js +35 -2
  385. package/build/src/rules/no_yoda_conditions.js +34 -1
  386. package/build/src/rules/nrob_consistency.js +34 -1
  387. package/build/src/rules/obsolete_statement.js +35 -2
  388. package/build/src/rules/omit_parameter_name.js +34 -1
  389. package/build/src/rules/omit_preceding_zeros.js +34 -1
  390. package/build/src/rules/omit_receiving.js +34 -1
  391. package/build/src/rules/parser_702_chaining.js +34 -1
  392. package/build/src/rules/parser_bad_exceptions.js +35 -2
  393. package/build/src/rules/parser_missing_space.js +34 -1
  394. package/build/src/rules/prefer_corresponding.js +34 -1
  395. package/build/src/rules/prefer_inline.js +34 -1
  396. package/build/src/rules/prefer_is_not.js +34 -1
  397. package/build/src/rules/prefer_raise_exception_new.js +34 -1
  398. package/build/src/rules/prefer_returning_to_exporting.js +35 -2
  399. package/build/src/rules/prefer_xsdbool.js +34 -1
  400. package/build/src/rules/preferred_compare_operator.js +34 -1
  401. package/build/src/rules/prefix_is_current_class.js +34 -1
  402. package/build/src/rules/reduce_procedural_code.js +34 -1
  403. package/build/src/rules/reduce_string_templates.js +34 -1
  404. package/build/src/rules/release_idoc.js +34 -1
  405. package/build/src/rules/remove_descriptions.js +34 -1
  406. package/build/src/rules/rfc_error_handling.js +35 -2
  407. package/build/src/rules/select_add_order_by.js +35 -2
  408. package/build/src/rules/select_performance.js +36 -3
  409. package/build/src/rules/select_single_full_key.js +35 -2
  410. package/build/src/rules/short_case.js +36 -3
  411. package/build/src/rules/space_before_dot.js +34 -1
  412. package/build/src/rules/sql_escape_host_variables.js +35 -2
  413. package/build/src/rules/strict_sql.js +35 -2
  414. package/build/src/rules/superclass_final.js +34 -1
  415. package/build/src/rules/superfluous_value.js +35 -2
  416. package/build/src/rules/sy_modification.js +34 -1
  417. package/build/src/rules/tables_declared_locally.js +35 -2
  418. package/build/src/rules/type_form_parameters.js +34 -1
  419. package/build/src/rules/types_naming.js +35 -2
  420. package/build/src/rules/uncaught_exception.js +36 -3
  421. package/build/src/rules/unknown_types.js +34 -1
  422. package/build/src/rules/unnecessary_pragma.js +35 -2
  423. package/build/src/rules/unnecessary_return.js +34 -1
  424. package/build/src/rules/unreachable_code.js +35 -2
  425. package/build/src/rules/unsecure_fae.js +34 -1
  426. package/build/src/rules/unused_ddic.js +34 -1
  427. package/build/src/rules/unused_methods.js +35 -2
  428. package/build/src/rules/unused_variables.js +34 -1
  429. package/build/src/rules/use_bool_expression.js +36 -3
  430. package/build/src/rules/use_class_based_exceptions.js +35 -2
  431. package/build/src/rules/use_line_exists.js +35 -2
  432. package/build/src/rules/use_new.js +35 -2
  433. package/build/src/rules/when_others_last.js +35 -2
  434. package/build/src/rules/xml_consistency.js +34 -1
  435. package/build/src/stuff.js +34 -1
  436. package/build/src/utils/cyclomatic_complexity_stats.js +36 -3
  437. package/build/src/utils/form_length_stats.js +34 -1
  438. package/build/src/utils/method_length_stats.js +35 -2
  439. package/package.json +3 -3
@@ -2597,6 +2597,8 @@ declare namespace Expressions {
2597
2597
  SQLOver,
2598
2598
  SQLPath,
2599
2599
  SQLPrivilegedAccess,
2600
+ SQLSetOp,
2601
+ SQLSetOpGroup,
2600
2602
  SQLSourceNoSpace,
2601
2603
  SQLSourceSimple,
2602
2604
  SQLSource,
@@ -6496,6 +6498,14 @@ declare class SQLPrivilegedAccess extends Expression {
6496
6498
  getRunnable(): IStatementRunnable;
6497
6499
  }
6498
6500
 
6501
+ declare class SQLSetOp extends Expression {
6502
+ getRunnable(): IStatementRunnable;
6503
+ }
6504
+
6505
+ declare class SQLSetOpGroup extends Expression {
6506
+ getRunnable(): IStatementRunnable;
6507
+ }
6508
+
6499
6509
  declare class SQLSource extends Expression {
6500
6510
  getRunnable(): IStatementRunnable;
6501
6511
  }
@@ -1,4 +1,37 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.Combi = exports.Expression = void 0;
4
37
  exports.str = str;
@@ -18,7 +51,7 @@ exports.ver = ver;
18
51
  exports.verNot = verNot;
19
52
  exports.failCombinator = failCombinator;
20
53
  exports.failStar = failStar;
21
- const Tokens = require("../1_lexer/tokens");
54
+ const Tokens = __importStar(require("../1_lexer/tokens"));
22
55
  const nodes_1 = require("../nodes");
23
56
  const version_1 = require("../../version");
24
57
  const result_1 = require("./result");
@@ -1,9 +1,42 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.ExpandMacros = void 0;
4
- const Statements = require("./statements");
5
- const Expressions = require("./expressions");
6
- const Tokens = require("../1_lexer/tokens");
37
+ const Statements = __importStar(require("./statements"));
38
+ const Expressions = __importStar(require("./expressions"));
39
+ const Tokens = __importStar(require("../1_lexer/tokens"));
7
40
  const _statement_1 = require("./statements/_statement");
8
41
  const statement_node_1 = require("../nodes/statement_node");
9
42
  const token_node_1 = require("../nodes/token_node");
@@ -1,8 +1,41 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.DataDefinition = void 0;
4
37
  const combi_1 = require("../combi");
5
- const Expressions = require(".");
38
+ const Expressions = __importStar(require("."));
6
39
  const version_1 = require("../../../version");
7
40
  class DataDefinition extends combi_1.Expression {
8
41
  getRunnable() {
@@ -211,6 +211,8 @@ __exportStar(require("./sql_over"), exports);
211
211
  __exportStar(require("./sql_over"), exports);
212
212
  __exportStar(require("./sql_path"), exports);
213
213
  __exportStar(require("./sql_privileged_access"), exports);
214
+ __exportStar(require("./sql_set_op"), exports);
215
+ __exportStar(require("./sql_set_op_group"), exports);
214
216
  __exportStar(require("./sql_source_no_space"), exports);
215
217
  __exportStar(require("./sql_source_simple"), exports);
216
218
  __exportStar(require("./sql_source"), exports);
@@ -1,8 +1,41 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.LOBHandle = void 0;
4
37
  const combi_1 = require("../combi");
5
- const Expressions = require(".");
38
+ const Expressions = __importStar(require("."));
6
39
  class LOBHandle extends combi_1.Expression {
7
40
  getRunnable() {
8
41
  return (0, combi_1.seq)("WRITER FOR COLUMNS", Expressions.Field);
@@ -1,8 +1,41 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.MethodDefReturning = void 0;
4
37
  const combi_1 = require("../combi");
5
- const Expressions = require(".");
38
+ const Expressions = __importStar(require("."));
6
39
  const tokens_1 = require("../../1_lexer/tokens");
7
40
  class MethodDefReturning extends combi_1.Expression {
8
41
  getRunnable() {
@@ -1,8 +1,41 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.MethodParam = void 0;
4
37
  const combi_1 = require("../combi");
5
- const Expressions = require(".");
38
+ const Expressions = __importStar(require("."));
6
39
  const tokens_1 = require("../../1_lexer/tokens");
7
40
  class MethodParam extends combi_1.Expression {
8
41
  getRunnable() {
@@ -4,24 +4,15 @@ exports.Select = void 0;
4
4
  const combi_1 = require("../combi");
5
5
  const _1 = require(".");
6
6
  const version_1 = require("../../../version");
7
- const sql_group_by_1 = require("./sql_group_by");
8
7
  const sql_into_structure_1 = require("./sql_into_structure");
9
- const sql_up_to_1 = require("./sql_up_to");
8
+ const select_core_1 = require("./select_core");
10
9
  class Select extends combi_1.Expression {
11
10
  getRunnable() {
12
11
  const into = (0, combi_1.altPrio)(_1.SQLIntoTable, sql_into_structure_1.SQLIntoStructure, _1.SQLIntoList);
13
- const where = (0, combi_1.seq)("WHERE", _1.SQLCond);
14
- const offset = (0, combi_1.ver)(version_1.Version.v751, (0, combi_1.seq)("OFFSET", _1.SQLSource));
15
- const bypass = (0, combi_1.str)("BYPASSING BUFFER");
16
- const fields = (0, combi_1.ver)(version_1.Version.v750, _1.SQLFields, version_1.Version.OpenABAP);
17
- const privileged = (0, combi_1.ver)(version_1.Version.v758, _1.SQLPrivilegedAccess);
18
- const perm = (0, combi_1.per)(_1.SQLFrom, into, _1.SQLForAllEntries, where, _1.SQLOrderBy, sql_up_to_1.SQLUpTo, offset, _1.SQLClient, _1.SQLHaving, bypass, sql_group_by_1.SQLGroupBy, fields, _1.DatabaseConnection, _1.SQLHints, privileged, _1.SQLOptions);
19
- const permSingle = (0, combi_1.per)(_1.SQLFrom, (0, combi_1.altPrio)(sql_into_structure_1.SQLIntoStructure, _1.SQLIntoList), where, _1.SQLClient, bypass, sql_group_by_1.SQLGroupBy, fields, _1.DatabaseConnection, _1.SQLHints, privileged, _1.SQLOptions);
20
- const fieldList = (0, combi_1.optPrio)(_1.SQLFieldList);
21
- const single = (0, combi_1.seq)("SINGLE", (0, combi_1.optPrio)("FOR UPDATE"), fieldList, permSingle);
22
- const other = (0, combi_1.seq)((0, combi_1.optPrio)("DISTINCT"), fieldList, perm);
23
- const ret = (0, combi_1.seq)("SELECT", (0, combi_1.altPrio)(single, other));
24
- return ret;
12
+ const standalone = (0, select_core_1.buildSelectCore)(into);
13
+ const unionTail = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.plusPrio)(_1.SQLSetOp), version_1.Version.OpenABAP);
14
+ const chained = (0, combi_1.seq)((0, select_core_1.buildSelectCore)(undefined, false), unionTail, (0, combi_1.optPrio)(_1.SQLOrderBy), (0, combi_1.optPrio)(into));
15
+ return (0, combi_1.altPrio)(chained, standalone);
25
16
  }
26
17
  }
27
18
  exports.Select = Select;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildSelectCore = buildSelectCore;
4
+ const combi_1 = require("../combi");
5
+ const _1 = require(".");
6
+ const version_1 = require("../../../version");
7
+ const sql_group_by_1 = require("./sql_group_by");
8
+ const sql_into_structure_1 = require("./sql_into_structure");
9
+ const sql_up_to_1 = require("./sql_up_to");
10
+ function buildSelectCore(into, allowOrderBy = true) {
11
+ const where = (0, combi_1.seq)("WHERE", _1.SQLCond);
12
+ const offset = (0, combi_1.ver)(version_1.Version.v751, (0, combi_1.seq)("OFFSET", _1.SQLSource));
13
+ const bypass = (0, combi_1.str)("BYPASSING BUFFER");
14
+ const fields = (0, combi_1.ver)(version_1.Version.v750, _1.SQLFields, version_1.Version.OpenABAP);
15
+ const privileged = (0, combi_1.ver)(version_1.Version.v758, _1.SQLPrivilegedAccess);
16
+ const orderByItems = allowOrderBy ? [_1.SQLOrderBy, sql_up_to_1.SQLUpTo, offset] : [];
17
+ const permItems = [_1.SQLFrom, ...(into ? [into] : []), _1.SQLForAllEntries, where,
18
+ ...orderByItems, _1.SQLClient, _1.SQLHaving,
19
+ bypass, sql_group_by_1.SQLGroupBy, fields, _1.DatabaseConnection, _1.SQLHints, privileged, _1.SQLOptions];
20
+ const perm = (0, combi_1.per)(permItems[0], permItems[1], ...permItems.slice(2));
21
+ const intoSingle = (0, combi_1.altPrio)(sql_into_structure_1.SQLIntoStructure, _1.SQLIntoList);
22
+ const permSingleItems = [_1.SQLFrom, ...(into ? [intoSingle] : []), where, _1.SQLClient,
23
+ bypass, sql_group_by_1.SQLGroupBy, _1.SQLHaving, fields, _1.DatabaseConnection, _1.SQLHints, privileged, _1.SQLOptions];
24
+ const permSingle = (0, combi_1.per)(permSingleItems[0], permSingleItems[1], ...permSingleItems.slice(2));
25
+ const fieldList = (0, combi_1.optPrio)(_1.SQLFieldList);
26
+ const single = (0, combi_1.seq)("SINGLE", (0, combi_1.optPrio)("FOR UPDATE"), fieldList, permSingle);
27
+ const other = (0, combi_1.seq)((0, combi_1.optPrio)("DISTINCT"), fieldList, perm);
28
+ return (0, combi_1.seq)("SELECT", (0, combi_1.altPrio)(single, other));
29
+ }
30
+ //# sourceMappingURL=select_core.js.map
@@ -5,19 +5,19 @@ const combi_1 = require("../combi");
5
5
  const _1 = require(".");
6
6
  const version_1 = require("../../../version");
7
7
  const tokens_1 = require("../../1_lexer/tokens");
8
+ const sql_set_op_group_1 = require("./sql_set_op_group");
8
9
  class SQLCompare extends combi_1.Expression {
9
10
  getRunnable() {
10
- const subSelect = (0, combi_1.seq)("(", _1.Select, ")");
11
- const subSelectDouble = (0, combi_1.seq)("(", "(", _1.Select, ")", ")");
11
+ const subSelect = (0, combi_1.ver)(version_1.Version.v750, sql_set_op_group_1.SQLSetOpGroup, version_1.Version.OpenABAP);
12
12
  const between = (0, combi_1.seq)("BETWEEN", _1.SQLSource, "AND", _1.SQLSource);
13
13
  const like = (0, combi_1.seq)("LIKE", _1.SQLSource, (0, combi_1.optPrio)((0, combi_1.seq)("ESCAPE", _1.SQLSource)));
14
14
  const nul = (0, combi_1.seq)("IS", (0, combi_1.optPrio)("NOT"), (0, combi_1.altPrio)("NULL", (0, combi_1.ver)(version_1.Version.v753, "INITIAL")));
15
15
  const source = new _1.SQLSource();
16
- const sub = (0, combi_1.seq)((0, combi_1.optPrio)((0, combi_1.altPrio)("ALL", "ANY", "SOME")), (0, combi_1.altPrio)(subSelect, subSelectDouble));
16
+ const sub = (0, combi_1.seq)((0, combi_1.optPrio)((0, combi_1.altPrio)("ALL", "ANY", "SOME")), subSelect);
17
17
  const arith = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.plusPrio)((0, combi_1.seq)((0, combi_1.altPrio)("+", "-", "*", "/"), _1.SQLFieldName)), version_1.Version.OpenABAP);
18
18
  const paren = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.ParenLeftW), _1.Source, (0, combi_1.tok)(tokens_1.WParenRightW));
19
19
  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)(_1.SimpleSource3, paren)), version_1.Version.OpenABAP);
20
- const rett = (0, combi_1.seq)((0, combi_1.altPrio)(_1.SQLAggregation, _1.SQLFunction, _1.ConstantString, (0, combi_1.seq)((0, combi_1.altPrio)(_1.SQLPath, _1.SQLFieldName), (0, combi_1.optPrio)(arith)), at), (0, combi_1.altPrio)((0, combi_1.seq)(_1.SQLCompareOperator, (0, combi_1.altPrio)(sub, source)), (0, combi_1.seq)((0, combi_1.optPrio)("NOT"), (0, combi_1.altPrio)(_1.SQLIn, like, between)), nul));
20
+ const rett = (0, combi_1.seq)((0, combi_1.altPrio)(_1.SQLAggregation, _1.SQLFunction, _1.ConstantString, (0, combi_1.seq)((0, combi_1.altPrio)(_1.SQLPath, _1.SQLFieldName), (0, combi_1.optPrio)(arith)), at), (0, combi_1.altPrio)((0, combi_1.seq)(_1.SQLCompareOperator, (0, combi_1.altPrio)(sub, _1.SQLAggregation, _1.SQLFunction, source)), (0, combi_1.seq)((0, combi_1.optPrio)("NOT"), (0, combi_1.altPrio)(_1.SQLIn, like, between)), nul));
21
21
  const exists = (0, combi_1.seq)("EXISTS", subSelect);
22
22
  return (0, combi_1.altPrio)(exists, _1.Dynamic, rett);
23
23
  }
@@ -2,15 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SQLHaving = void 0;
4
4
  const combi_1 = require("../combi");
5
- const dynamic_1 = require("./dynamic");
6
- const sql_aggregation_1 = require("./sql_aggregation");
7
- const sql_compare_operator_1 = require("./sql_compare_operator");
8
- const sql_source_1 = require("./sql_source");
5
+ const sql_cond_1 = require("./sql_cond");
9
6
  class SQLHaving extends combi_1.Expression {
10
7
  getRunnable() {
11
- const cond = (0, combi_1.seq)(sql_aggregation_1.SQLAggregation, sql_compare_operator_1.SQLCompareOperator, sql_source_1.SQLSource);
12
- const having = (0, combi_1.seq)("HAVING", (0, combi_1.altPrio)(dynamic_1.Dynamic, cond));
13
- return having;
8
+ return (0, combi_1.seq)("HAVING", sql_cond_1.SQLCond);
14
9
  }
15
10
  }
16
11
  exports.SQLHaving = SQLHaving;
@@ -5,6 +5,7 @@ const combi_1 = require("../combi");
5
5
  const _1 = require(".");
6
6
  const tokens_1 = require("../../1_lexer/tokens");
7
7
  const version_1 = require("../../../version");
8
+ const sql_set_op_group_1 = require("./sql_set_op_group");
8
9
  class SQLIn extends combi_1.Expression {
9
10
  getRunnable() {
10
11
  const val = new _1.SQLSource();
@@ -13,7 +14,7 @@ class SQLIn extends combi_1.Expression {
13
14
  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)));
14
15
  // version is a guess, https://github.com/abaplint/abaplint/issues/2530
15
16
  const listNeww = (0, combi_1.ver)(version_1.Version.v740sp02, listNew, version_1.Version.OpenABAP);
16
- const subSelect = (0, combi_1.seq)("(", _1.Select, ")");
17
+ const subSelect = sql_set_op_group_1.SQLSetOpGroup;
17
18
  const inn = (0, combi_1.seq)("IN", (0, combi_1.altPrio)(subSelect, listOld, listNeww, _1.SQLSource));
18
19
  return inn;
19
20
  }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SQLSetOp = void 0;
4
+ const combi_1 = require("../combi");
5
+ const version_1 = require("../../../version");
6
+ const sql_set_op_group_1 = require("./sql_set_op_group");
7
+ const select_core_1 = require("./select_core");
8
+ class SQLSetOp extends combi_1.Expression {
9
+ getRunnable() {
10
+ const operand = (0, combi_1.altPrio)(sql_set_op_group_1.SQLSetOpGroup, (0, select_core_1.buildSelectCore)(undefined, false));
11
+ const union = (0, combi_1.seq)("UNION", (0, combi_1.optPrio)((0, combi_1.altPrio)("DISTINCT", "ALL")));
12
+ const intersectExcept = (0, combi_1.altPrio)((0, combi_1.seq)("INTERSECT", (0, combi_1.optPrio)("DISTINCT")), (0, combi_1.seq)("EXCEPT", (0, combi_1.optPrio)("DISTINCT")));
13
+ const op = (0, combi_1.altPrio)((0, combi_1.ver)(version_1.Version.v750, union, version_1.Version.OpenABAP), (0, combi_1.ver)(version_1.Version.v756, intersectExcept));
14
+ return (0, combi_1.seq)(op, operand);
15
+ }
16
+ }
17
+ exports.SQLSetOp = SQLSetOp;
18
+ //# sourceMappingURL=sql_set_op.js.map
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SQLSetOpGroup = void 0;
4
+ const combi_1 = require("../combi");
5
+ const _1 = require(".");
6
+ const version_1 = require("../../../version");
7
+ const select_core_1 = require("./select_core");
8
+ class SQLSetOpGroup extends combi_1.Expression {
9
+ getRunnable() {
10
+ const operand = (0, combi_1.altPrio)(SQLSetOpGroup, (0, select_core_1.buildSelectCore)(undefined, false));
11
+ const chain = (0, combi_1.seq)(operand, (0, combi_1.optPrio)((0, combi_1.seq)((0, combi_1.ver)(version_1.Version.v750, (0, combi_1.plusPrio)(_1.SQLSetOp), version_1.Version.OpenABAP), (0, combi_1.optPrio)(_1.SQLOrderBy))));
12
+ return (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)("(", chain, ")"), version_1.Version.OpenABAP);
13
+ }
14
+ }
15
+ exports.SQLSetOpGroup = SQLSetOpGroup;
16
+ //# sourceMappingURL=sql_set_op_group.js.map
@@ -1,8 +1,41 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.StringTemplate = void 0;
4
37
  const combi_1 = require("../combi");
5
- const Tokens = require("../../1_lexer/tokens");
38
+ const Tokens = __importStar(require("../../1_lexer/tokens"));
6
39
  const version_1 = require("../../../version");
7
40
  const _1 = require(".");
8
41
  class StringTemplate extends combi_1.Expression {
@@ -1,9 +1,42 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.StatementParser = exports.STATEMENT_MAX_TOKENS = void 0;
4
- const Statements = require("./statements");
5
- const Expressions = require("./expressions");
6
- const Tokens = require("../1_lexer/tokens");
37
+ const Statements = __importStar(require("./statements"));
38
+ const Expressions = __importStar(require("./expressions"));
39
+ const Tokens = __importStar(require("../1_lexer/tokens"));
7
40
  const nodes_1 = require("../nodes");
8
41
  const artifacts_1 = require("../artifacts");
9
42
  const combi_1 = require("./combi");
@@ -1,8 +1,41 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.IncludeType = void 0;
4
37
  const combi_1 = require("../combi");
5
- const Expressions = require("../expressions");
38
+ const Expressions = __importStar(require("../expressions"));
6
39
  class IncludeType {
7
40
  getMatcher() {
8
41
  const tas = (0, combi_1.seq)("AS", Expressions.Field);
@@ -1,9 +1,42 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.Perform = void 0;
4
37
  const combi_1 = require("../combi");
5
38
  const tokens_1 = require("../../1_lexer/tokens");
6
- const Expressions = require("../expressions");
39
+ const Expressions = __importStar(require("../expressions"));
7
40
  const version_1 = require("../../../version");
8
41
  const expressions_1 = require("../expressions");
9
42
  class Perform {