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