@abaplint/core 2.119.42 → 2.119.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/abaplint.d.ts +152 -8
- 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 +5 -5
- package/build/src/abap/2_statements/expressions/assign_source.js +1 -1
- 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/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 +1 -1
- package/build/src/abap/2_statements/expressions/select_cte.js +5 -5
- 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_source.js +2 -2
- 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_corresponding.js +1 -1
- package/build/src/abap/2_statements/statements/append.js +1 -1
- package/build/src/abap/2_statements/statements/assign.js +1 -1
- package/build/src/abap/2_statements/statements/assign_local_copy.js +1 -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/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_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 +4 -4
- 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/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_definition.js +1 -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_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 +1 -1
- package/build/src/abap/2_statements/statements/create_object.js +1 -1
- 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_dataset.js +1 -1
- package/build/src/abap/2_statements/statements/delete_dynpro.js +1 -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/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/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_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/format.js +1 -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/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_run_time.js +1 -1
- package/build/src/abap/2_statements/statements/hide.js +1 -1
- 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_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/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 +3 -3
- package/build/src/abap/2_statements/statements/loop_at_screen.js +1 -1
- package/build/src/abap/2_statements/statements/message.js +1 -1
- package/build/src/abap/2_statements/statements/method_def.js +1 -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/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 +2 -2
- 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 +2 -2
- 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 +1 -1
- 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_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_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/stop.js +1 -1
- package/build/src/abap/2_statements/statements/submit.js +1 -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_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 +1 -1
- package/build/src/abap/2_statements/statements/verification_message.js +1 -1
- package/build/src/abap/2_statements/statements/wait.js +1 -1
- 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 +10 -0
- package/build/src/abap/5_syntax/expressions/field_chain.js +3 -2
- package/build/src/abap/5_syntax/expressions/method_source.js +1 -1
- package/build/src/abap/5_syntax/expressions/select.js +17 -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/expressions/cds_define_projection.js +1 -1
- package/build/src/cds/expressions/cds_define_view.js +1 -1
- package/build/src/config.js +22 -1
- 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/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/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 +210 -2
- 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
package/build/abaplint.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ export declare abstract class ABAPObject extends AbstractObject {
|
|
|
28
28
|
abstract getDescription(): string | undefined;
|
|
29
29
|
constructor(name: string);
|
|
30
30
|
static is(x: any): x is ABAPObject;
|
|
31
|
-
parse(
|
|
31
|
+
parse(release: ABAPRelease, globalMacros?: readonly string[], reg?: IRegistry, languageVersion?: LanguageVersion, openABAP?: boolean): IParseResult;
|
|
32
32
|
setDirty(): void;
|
|
33
33
|
private getParsedXML;
|
|
34
34
|
getABAPFiles(): readonly ABAPFile[];
|
|
@@ -59,6 +59,27 @@ declare class ABAPQueryQuery extends AbstractObject {
|
|
|
59
59
|
getDescription(): string | undefined;
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
+
/**
|
|
63
|
+
* A single row in the release table.
|
|
64
|
+
*
|
|
65
|
+
* abap — SAP_BASIS / ABAP release name as SAP calls it (e.g. "740SP05", "7.90", "9.16")
|
|
66
|
+
* kernel — SAP kernel release number that ships this ABAP release
|
|
67
|
+
* op — on-premise release number (e.g. 758, 816), null for cloud-only releases
|
|
68
|
+
* cloud — cloud release number (e.g. 793, 916), null for pre-cloud releases
|
|
69
|
+
* ce — SAP BTP / S/4HANA Cloud Public Edition shipment quarter (YYMM, e.g. 2308),
|
|
70
|
+
* null if never shipped to customers on cloud
|
|
71
|
+
* ordinal — chronological index (set at build time from array position), used for ordering
|
|
72
|
+
*/
|
|
73
|
+
export declare interface ABAPRelease {
|
|
74
|
+
readonly name: string;
|
|
75
|
+
readonly abap: string | null;
|
|
76
|
+
readonly kernel: number | null;
|
|
77
|
+
readonly op: number | null;
|
|
78
|
+
readonly cloud: number | null;
|
|
79
|
+
readonly ce: number | null;
|
|
80
|
+
readonly ordinal: number;
|
|
81
|
+
}
|
|
82
|
+
|
|
62
83
|
declare class Abstract extends Expression {
|
|
63
84
|
getRunnable(): IStatementRunnable;
|
|
64
85
|
}
|
|
@@ -101,7 +122,7 @@ declare abstract class AbstractObject implements IObject {
|
|
|
101
122
|
abstract getDescription(): string | undefined;
|
|
102
123
|
constructor(name: string);
|
|
103
124
|
getParsingIssues(): readonly Issue[];
|
|
104
|
-
parse(
|
|
125
|
+
parse(_release?: ABAPRelease, _globalMacros?: readonly string[], _reg?: IRegistry, _languageVersion?: LanguageVersion, _openABAP?: boolean): IParseResult;
|
|
105
126
|
getName(): string;
|
|
106
127
|
setDirty(): void;
|
|
107
128
|
addFile(file: IFile): void;
|
|
@@ -1442,7 +1463,7 @@ declare class CondSub extends Expression {
|
|
|
1442
1463
|
|
|
1443
1464
|
export declare class Config implements IConfiguration {
|
|
1444
1465
|
private readonly config;
|
|
1445
|
-
static getDefault(ver?: Version): Config;
|
|
1466
|
+
static getDefault(ver?: Version, langVer?: LanguageVersion, openABAP?: boolean): Config;
|
|
1446
1467
|
getEnabledRules(): IRule[];
|
|
1447
1468
|
constructor(json: string);
|
|
1448
1469
|
get(): IConfig;
|
|
@@ -1450,7 +1471,10 @@ export declare class Config implements IConfiguration {
|
|
|
1450
1471
|
readByRule(rule: string): any;
|
|
1451
1472
|
getGlobal(): IGlobalConfig;
|
|
1452
1473
|
getSyntaxSetttings(): ISyntaxSettings;
|
|
1474
|
+
getRelease(): ABAPRelease;
|
|
1475
|
+
getOpenABAP(): boolean;
|
|
1453
1476
|
getVersion(): Version;
|
|
1477
|
+
getLanguageVersion(): LanguageVersion;
|
|
1454
1478
|
private checkVersion;
|
|
1455
1479
|
}
|
|
1456
1480
|
|
|
@@ -1547,7 +1571,10 @@ export declare class CurrentScope {
|
|
|
1547
1571
|
static buildDefault(reg: IRegistry, obj: IObject): CurrentScope;
|
|
1548
1572
|
private static addBuiltIn;
|
|
1549
1573
|
private constructor();
|
|
1574
|
+
getRelease(): ABAPRelease;
|
|
1550
1575
|
getVersion(): Version;
|
|
1576
|
+
getLanguageVersion(): LanguageVersion;
|
|
1577
|
+
getOpenABAP(): boolean;
|
|
1551
1578
|
getRegistry(): IRegistry;
|
|
1552
1579
|
addType(type: TypedIdentifier | undefined): void;
|
|
1553
1580
|
addTypeNamed(name: string, type: TypedIdentifier | undefined): void;
|
|
@@ -2381,6 +2408,7 @@ declare abstract class Expression implements IStatementRunnable {
|
|
|
2381
2408
|
declare class ExpressionNode extends AbstractNode<ExpressionNode | TokenNode> {
|
|
2382
2409
|
private readonly expression;
|
|
2383
2410
|
constructor(expression: IStatementRunnable);
|
|
2411
|
+
addChild(_n: ExpressionNode | TokenNode): void;
|
|
2384
2412
|
get(): IStatementRunnable;
|
|
2385
2413
|
countTokens(): number;
|
|
2386
2414
|
getFirstToken(): Token;
|
|
@@ -2594,7 +2622,20 @@ declare namespace Expressions {
|
|
|
2594
2622
|
SQLFromSource,
|
|
2595
2623
|
SQLFrom,
|
|
2596
2624
|
SQLFunctionInput,
|
|
2625
|
+
sqlFunctionDefs,
|
|
2626
|
+
sqlNamedFunctionDefs,
|
|
2627
|
+
sqlSpatialFunctionDefs,
|
|
2628
|
+
sqlSpatialAggregateDefs,
|
|
2597
2629
|
SQLFunction,
|
|
2630
|
+
SQLRegexprPattern,
|
|
2631
|
+
SQLRegexprFrom,
|
|
2632
|
+
SQLRegexprOccurrence,
|
|
2633
|
+
SQLRegexprGroup,
|
|
2634
|
+
SQLReplaceRegexpr,
|
|
2635
|
+
SQLOccurrencesRegexpr,
|
|
2636
|
+
SQLSubstringRegexpr,
|
|
2637
|
+
SQLLocateRegexpr,
|
|
2638
|
+
SQLLikeRegexpr,
|
|
2598
2639
|
SQLGroupBy,
|
|
2599
2640
|
SQLHaving,
|
|
2600
2641
|
SQLHints,
|
|
@@ -3316,7 +3357,7 @@ declare interface IBuiltinMethod {
|
|
|
3316
3357
|
optional?: {
|
|
3317
3358
|
[key: string]: AbstractType;
|
|
3318
3359
|
};
|
|
3319
|
-
|
|
3360
|
+
release?: ABAPRelease;
|
|
3320
3361
|
predicate?: boolean;
|
|
3321
3362
|
return: AbstractType;
|
|
3322
3363
|
cache?: BuiltInMethod | undefined;
|
|
@@ -3380,7 +3421,11 @@ export declare interface IConfiguration {
|
|
|
3380
3421
|
getEnabledRules(): IRule[];
|
|
3381
3422
|
get(): IConfig;
|
|
3382
3423
|
getGlobal(): IGlobalConfig;
|
|
3424
|
+
/** @deprecated Use getRelease() instead. */
|
|
3383
3425
|
getVersion(): Version;
|
|
3426
|
+
getRelease(): ABAPRelease;
|
|
3427
|
+
getLanguageVersion(): LanguageVersion;
|
|
3428
|
+
getOpenABAP(): boolean;
|
|
3384
3429
|
getSyntaxSetttings(): ISyntaxSettings;
|
|
3385
3430
|
readByRule(rule: string): any;
|
|
3386
3431
|
readByKey(rule: string, key: string): any;
|
|
@@ -4013,7 +4058,7 @@ export declare interface IObject extends IArtifact {
|
|
|
4013
4058
|
/** returns true if the object was parsed, false if no changes since last parse
|
|
4014
4059
|
* registry for global cross object macros
|
|
4015
4060
|
*/
|
|
4016
|
-
parse(
|
|
4061
|
+
parse(release?: ABAPRelease, globalMacros?: readonly string[], reg?: IRegistry, languageVersion?: LanguageVersion, openABAP?: boolean): IParseResult;
|
|
4017
4062
|
getParsingIssues(): readonly Issue[];
|
|
4018
4063
|
getFiles(): readonly IFile[];
|
|
4019
4064
|
addFile(file: IFile): void;
|
|
@@ -4305,8 +4350,11 @@ declare interface ISyntaxResult {
|
|
|
4305
4350
|
}
|
|
4306
4351
|
|
|
4307
4352
|
declare interface ISyntaxSettings {
|
|
4308
|
-
/** ABAP
|
|
4353
|
+
/** ABAP release to parse against, e.g. `"v758"`, `"Newest"`, `"Cloud"`. */
|
|
4309
4354
|
version?: Version;
|
|
4355
|
+
languageVersion?: LanguageVersion;
|
|
4356
|
+
/** Use the OpenABAP dialect (v702 base + a set of additional language features). */
|
|
4357
|
+
openABAP?: boolean;
|
|
4310
4358
|
/** Report error for objects in this regex namespace. Types not in namespace will be void. Case insensitive */
|
|
4311
4359
|
errorNamespace: string;
|
|
4312
4360
|
/** List of full named global constants (regex not possible)
|
|
@@ -4424,6 +4472,21 @@ declare namespace LanguageServerTypes {
|
|
|
4424
4472
|
}
|
|
4425
4473
|
export { LanguageServerTypes }
|
|
4426
4474
|
|
|
4475
|
+
/**
|
|
4476
|
+
* Dialect / flavor axis, orthogonal to the on-prem/cloud release track.
|
|
4477
|
+
*
|
|
4478
|
+
* `Normal` = full ABAP, no restrictions.
|
|
4479
|
+
* `Cloud` = restricted ABAP for Cloud, syntactic and semantic restrictions apply.
|
|
4480
|
+
* `KeyUser` = stricter still (KeyUser Extensibility), strict subset of Cloud.
|
|
4481
|
+
*
|
|
4482
|
+
* Ordering: KeyUser(0) < Cloud(1) < Normal(2) — lower = more restrictive.
|
|
4483
|
+
*/
|
|
4484
|
+
export declare enum LanguageVersion {
|
|
4485
|
+
Normal = "Normal",
|
|
4486
|
+
KeyUser = "KeyUser",
|
|
4487
|
+
Cloud = "Cloud"
|
|
4488
|
+
}
|
|
4489
|
+
|
|
4427
4490
|
declare class Leave implements IStatement {
|
|
4428
4491
|
getMatcher(): IStatementRunnable;
|
|
4429
4492
|
}
|
|
@@ -5676,7 +5739,7 @@ declare class ProxyObject extends AbstractObject {
|
|
|
5676
5739
|
};
|
|
5677
5740
|
getDescription(): string | undefined;
|
|
5678
5741
|
setDirty(): void;
|
|
5679
|
-
parse(
|
|
5742
|
+
parse(_release?: ABAPRelease, _globalMacros?: readonly string[], reg?: IRegistry): {
|
|
5680
5743
|
updated: boolean;
|
|
5681
5744
|
runtime: number;
|
|
5682
5745
|
};
|
|
@@ -5875,6 +5938,18 @@ declare class Reject implements IStatement {
|
|
|
5875
5938
|
getMatcher(): IStatementRunnable;
|
|
5876
5939
|
}
|
|
5877
5940
|
|
|
5941
|
+
/** Lookup table keyed by release name (e.g. `Release.v740sp05`, `Release.Newest`). */
|
|
5942
|
+
export declare const Release: {
|
|
5943
|
+
readonly [name: string]: ABAPRelease;
|
|
5944
|
+
};
|
|
5945
|
+
|
|
5946
|
+
/**
|
|
5947
|
+
* Is `running` at least as new as `required`?
|
|
5948
|
+
* Comparison is purely by ordinal (declaration order in ReleaseList).
|
|
5949
|
+
* Newest (last entry) satisfies any required release.
|
|
5950
|
+
*/
|
|
5951
|
+
export declare function releaseAtLeast(running: ABAPRelease, required: ABAPRelease): boolean;
|
|
5952
|
+
|
|
5878
5953
|
export declare class Rename {
|
|
5879
5954
|
private readonly reg;
|
|
5880
5955
|
constructor(reg: IRegistry);
|
|
@@ -5934,6 +6009,8 @@ declare class Result {
|
|
|
5934
6009
|
popNode(): ExpressionNode | TokenNode | undefined;
|
|
5935
6010
|
getNodes(): (ExpressionNode | TokenNode)[];
|
|
5936
6011
|
setNodes(n: (ExpressionNode | TokenNode)[]): void;
|
|
6012
|
+
getTokens(): readonly Token[];
|
|
6013
|
+
getTokenIndex(): number;
|
|
5937
6014
|
remainingLength(): number;
|
|
5938
6015
|
}
|
|
5939
6016
|
|
|
@@ -6490,6 +6567,10 @@ declare class SQLFunction extends Expression {
|
|
|
6490
6567
|
getRunnable(): IStatementRunnable;
|
|
6491
6568
|
}
|
|
6492
6569
|
|
|
6570
|
+
declare type SQLFunctionDef = [string, number, ABAPRelease];
|
|
6571
|
+
|
|
6572
|
+
declare const sqlFunctionDefs: SQLFunctionDef[];
|
|
6573
|
+
|
|
6493
6574
|
declare class SQLFunctionInput extends Expression {
|
|
6494
6575
|
getRunnable(): IStatementRunnable;
|
|
6495
6576
|
}
|
|
@@ -6542,6 +6623,30 @@ declare class SQLJoinSource extends Expression {
|
|
|
6542
6623
|
getRunnable(): IStatementRunnable;
|
|
6543
6624
|
}
|
|
6544
6625
|
|
|
6626
|
+
declare class SQLLikeRegexpr extends Expression {
|
|
6627
|
+
getRunnable(): IStatementRunnable;
|
|
6628
|
+
}
|
|
6629
|
+
|
|
6630
|
+
declare class SQLLocateRegexpr extends Expression {
|
|
6631
|
+
getRunnable(): IStatementRunnable;
|
|
6632
|
+
}
|
|
6633
|
+
|
|
6634
|
+
declare type SQLNamedFunctionDef = [string, ABAPRelease, SQLNamedParam[]];
|
|
6635
|
+
|
|
6636
|
+
declare const sqlNamedFunctionDefs: SQLNamedFunctionDef[];
|
|
6637
|
+
|
|
6638
|
+
declare type SQLNamedParam = {
|
|
6639
|
+
name: string;
|
|
6640
|
+
value: SQLNamedParamValue;
|
|
6641
|
+
optional?: true;
|
|
6642
|
+
};
|
|
6643
|
+
|
|
6644
|
+
declare type SQLNamedParamValue = "any" | "abap_only";
|
|
6645
|
+
|
|
6646
|
+
declare class SQLOccurrencesRegexpr extends Expression {
|
|
6647
|
+
getRunnable(): IStatementRunnable;
|
|
6648
|
+
}
|
|
6649
|
+
|
|
6545
6650
|
declare class SQLOptions extends Expression {
|
|
6546
6651
|
getRunnable(): IStatementRunnable;
|
|
6547
6652
|
}
|
|
@@ -6584,6 +6689,26 @@ declare class SQLPrivilegedAccess extends Expression {
|
|
|
6584
6689
|
getRunnable(): IStatementRunnable;
|
|
6585
6690
|
}
|
|
6586
6691
|
|
|
6692
|
+
declare class SQLRegexprFrom extends Expression {
|
|
6693
|
+
getRunnable(): IStatementRunnable;
|
|
6694
|
+
}
|
|
6695
|
+
|
|
6696
|
+
declare class SQLRegexprGroup extends Expression {
|
|
6697
|
+
getRunnable(): IStatementRunnable;
|
|
6698
|
+
}
|
|
6699
|
+
|
|
6700
|
+
declare class SQLRegexprOccurrence extends Expression {
|
|
6701
|
+
getRunnable(): IStatementRunnable;
|
|
6702
|
+
}
|
|
6703
|
+
|
|
6704
|
+
declare class SQLRegexprPattern extends Expression {
|
|
6705
|
+
getRunnable(): IStatementRunnable;
|
|
6706
|
+
}
|
|
6707
|
+
|
|
6708
|
+
declare class SQLReplaceRegexpr extends Expression {
|
|
6709
|
+
getRunnable(): IStatementRunnable;
|
|
6710
|
+
}
|
|
6711
|
+
|
|
6587
6712
|
declare class SQLSetOp extends Expression {
|
|
6588
6713
|
getRunnable(): IStatementRunnable;
|
|
6589
6714
|
}
|
|
@@ -6604,6 +6729,14 @@ declare class SQLSourceSimple extends Expression {
|
|
|
6604
6729
|
getRunnable(): IStatementRunnable;
|
|
6605
6730
|
}
|
|
6606
6731
|
|
|
6732
|
+
declare const sqlSpatialAggregateDefs: SQLFunctionDef[];
|
|
6733
|
+
|
|
6734
|
+
declare const sqlSpatialFunctionDefs: SQLFunctionDef[];
|
|
6735
|
+
|
|
6736
|
+
declare class SQLSubstringRegexpr extends Expression {
|
|
6737
|
+
getRunnable(): IStatementRunnable;
|
|
6738
|
+
}
|
|
6739
|
+
|
|
6607
6740
|
declare class SQLTarget extends Expression {
|
|
6608
6741
|
getRunnable(): IStatementRunnable;
|
|
6609
6742
|
}
|
|
@@ -7754,6 +7887,7 @@ declare class VerificationMessage implements IStatement {
|
|
|
7754
7887
|
getMatcher(): IStatementRunnable;
|
|
7755
7888
|
}
|
|
7756
7889
|
|
|
7890
|
+
/** @deprecated Use ABAPRelease and Release instead */
|
|
7757
7891
|
export declare enum Version {
|
|
7758
7892
|
OpenABAP = "open-abap",// as 702, but with some extra new language features
|
|
7759
7893
|
v700 = "v700",
|
|
@@ -7770,9 +7904,19 @@ export declare enum Version {
|
|
|
7770
7904
|
v756 = "v756",
|
|
7771
7905
|
v757 = "v757",
|
|
7772
7906
|
v758 = "v758",
|
|
7773
|
-
|
|
7907
|
+
v816 = "v816",
|
|
7908
|
+
/**
|
|
7909
|
+
* Steampunk / SAP BTP ABAP Environment. This was never a release identity —
|
|
7910
|
+
* it always meant "latest available release, parsed under cloud-language
|
|
7911
|
+
* restrictions". It expands into the explicit
|
|
7912
|
+
* Release.Newest + {@link LanguageVersion.Cloud} pair.
|
|
7913
|
+
*/
|
|
7914
|
+
Cloud = "Cloud",
|
|
7915
|
+
Newest = "Newest"
|
|
7774
7916
|
}
|
|
7775
7917
|
|
|
7918
|
+
export declare function versionToABAPRelease(v: Version): ABAPRelease;
|
|
7919
|
+
|
|
7776
7920
|
declare class View extends AbstractObject {
|
|
7777
7921
|
private parsedData;
|
|
7778
7922
|
getType(): string;
|
|
@@ -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,8 +10,8 @@ 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);
|
|
@@ -29,9 +29,9 @@ function buildSelectSingleCore(allowInto = false) {
|
|
|
29
29
|
}
|
|
30
30
|
function buildSelectCore(allowInto = false, allowOrderBy = true) {
|
|
31
31
|
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.
|
|
32
|
+
const offset = (0, combi_1.ver)(version_1.Release.v751, (0, combi_1.seq)("OFFSET", _1.SQLSource));
|
|
33
|
+
const sqlFields = (0, combi_1.ver)(version_1.Release.v750, _1.SQLFields, { also: combi_1.AlsoIn.OpenABAP });
|
|
34
|
+
const privileged = (0, combi_1.ver)(version_1.Release.v758, _1.SQLPrivilegedAccess);
|
|
35
35
|
const fieldList = (0, combi_1.optPrio)(_1.SQLFieldList);
|
|
36
36
|
const client = (0, combi_1.optPrio)(_1.SQLClient);
|
|
37
37
|
const byp = (0, combi_1.optPrio)(_1.SQLBypassingBuffer);
|
|
@@ -10,7 +10,7 @@ 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.
|
|
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
14
|
const tableField = (0, combi_1.seq)("TABLE FIELD", (0, combi_1.alt)(source_1.Source, dynamic_1.Dynamic));
|
|
15
15
|
const arrow = (0, combi_1.alt)((0, combi_1.tok)(tokens_1.InstanceArrow), (0, combi_1.tok)(tokens_1.StaticArrow));
|
|
16
16
|
const source = (0, combi_1.alt)((0, combi_1.seq)(source_1.Source, (0, combi_1.opt)((0, combi_1.seq)(arrow, dynamic_1.Dynamic))), component, tableField, (0, combi_1.seq)(dynamic_1.Dynamic, (0, combi_1.opt)((0, combi_1.seq)(arrow, (0, combi_1.alt)(field_1.Field, dynamic_1.Dynamic)))));
|
|
@@ -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
|
}
|