const n=Object.freeze({displayName:"ABAP",fileTypes:["abap","ABAP"],foldingStartMarker:"/\\*\\*|\\{\\s*$",foldingStopMarker:"\\*\\*/|^\\s*\\}",name:"abap",patterns:[{captures:{1:{name:"punctuation.definition.comment.abap"}},match:"^\\*.*\\n?",name:"comment.line.full.abap"},{captures:{1:{name:"punctuation.definition.comment.abap"}},match:'".*\\n?',name:"comment.line.partial.abap"},{match:"(?|=>))([a-z_\\/][a-z_0-9\\/]*)(?=\\s+(?:=|\\+=|-=|\\*=|\\/=|&&=|&=)\\s+)",name:"variable.other.abap"},{match:"\\b[0-9]+(\\b|\\.|,)",name:"constant.numeric.abap"},{match:"(?ix)(^|\\s+)((PUBLIC|PRIVATE|PROTECTED)\\sSECTION)(?=\\s+|:|\\.)",name:"storage.modifier.class.abap"},{begin:"(?]*)+(?=\\s+|\\.)"},{begin:"(?=[A-Za-z_][A-Za-z0-9_]*)",end:"(?![A-Za-z0-9_])",patterns:[{include:"#generic_names"}]}]},{begin:"(?ix)^\\s*(INTERFACE)\\s([a-z_\\/][a-z_0-9\\/]*)",beginCaptures:{1:{name:"storage.type.block.abap"},2:{name:"entity.name.type.abap"}},end:"\\s*\\.\\s*\\n?",patterns:[{match:"(?ix)(?<=^|\\s)(DEFERRED|PUBLIC)(?=\\s+|\\.)",name:"storage.modifier.method.abap"}]},{begin:"(?ix)^\\s*(FORM)\\s([a-z_\\/][a-z_0-9\\/\\-\\?]*)",beginCaptures:{1:{name:"storage.type.block.abap"},2:{name:"entity.name.type.abap"}},end:"\\s*\\.\\s*\\n?",patterns:[{match:"(?ix)(?<=^|\\s)(USING|TABLES|CHANGING|RAISING|IMPLEMENTATION|DEFINITION)(?=\\s+|\\.)",name:"storage.modifier.form.abap"},{include:"#abaptypes"},{include:"#keywords_followed_by_braces"}]},{match:"(?i)(endclass|endmethod|endform|endinterface)",name:"storage.type.block.end.abap"},{match:"(?i)(<[A-Za-z_][A-Za-z0-9_]*>)",name:"variable.other.field.symbol.abap"},{include:"#keywords"},{include:"#abap_constants"},{include:"#reserved_names"},{include:"#operators"},{include:"#builtin_functions"},{include:"#abaptypes"},{include:"#system_fields"},{include:"#sql_functions"},{include:"#sql_types"}],repository:{abap_constants:{match:`(?ix)(?<=\\s)(initial|null|space|abap_true|abap_false|abap_undefined|table_line| %_final|%_hints|%_predefined|col_background|col_group|col_heading|col_key|col_negative|col_normal|col_positive|col_total| adabas|as400|db2|db6|hdb|oracle|sybase|mssqlnt|pos_low|pos_high)(?=\\s|\\.|,)`,name:"constant.language.abap"},abaptypes:{patterns:[{match:"(?ix)\\s(abap_bool|string|xstring|any|clike|csequence|numeric|xsequence|decfloat|decfloat16|decfloat34|utclong|simple|int8|c|n|i|p|f|d|t|x)(?=\\s|\\.|,)",name:"support.type.abap"},{match:"(?ix)\\s(TYPE|REF|TO|LIKE|LINE|OF|STRUCTURE|STANDARD|SORTED|HASHED|INDEX|TABLE|WITH|UNIQUE|NON-UNIQUE|SECONDARY|DEFAULT|KEY)(?=\\s|\\.|,)",name:"keyword.control.simple.abap"}]},arithmetic_operator:{match:"(?i)(?<=\\s)(\\+|\\-|\\*|\\*\\*|\\/|%|DIV|MOD|BIT-AND|BIT-OR|BIT-XOR|BIT-NOT)(?=\\s)",name:"keyword.control.simple.abap"},builtin_functions:{match:"(?ix)(?<=\\s)(abs|sign|ceil|floor|trunc|frac|acos|asin|atan|cos|sin|tan|cosh|sinh|tanh|exp|log|log10|sqrt|strlen|xstrlen|charlen|lines|numofchar|dbmaxlen|round|rescale|nmax|nmin|cmax|cmin|boolc|boolx|xsdbool|contains|contains_any_of|contains_any_not_of|matches|line_exists|ipow|char_off|count|count_any_of|count_any_not_of|distance|condense|concat_lines_of|escape|find|find_end|find_any_of|find_any_not_of|insert|match|repeat|replace|reverse|segment|shift_left|shift_right|substring|substring_after|substring_from|substring_before|substring_to|to_upper|to_lower|to_mixed|from_mixed|translate|bit-set|line_index)(?=\\()",name:"entity.name.function.builtin.abap"},comparison_operator:{match:"(?i)(?<=\\s)(<|>|<\\=|>\\=|\\=|<>|eq|ne|lt|le|gt|ge|cs|cp|co|cn|ca|na|ns|np|byte-co|byte-cn|byte-ca|byte-na|byte-cs|byte-ns|o|z|m)(?=\\s)",name:"keyword.control.simple.abap"},control_keywords:{match:`(?ix)(^|\\s)( at|case|catch|continue|do|elseif|else|endat|endcase|endcatch|enddo|endif| endloop|endon|endtry|endwhile|if|loop|on|raise|try|while)(?=\\s|\\.|:)`,name:"keyword.control.flow.abap"},generic_names:{match:"[A-Za-z_][A-Za-z0-9_]*"},keywords:{patterns:[{include:"#main_keywords"},{include:"#text_symbols"},{include:"#control_keywords"},{include:"#keywords_followed_by_braces"}]},keywords_followed_by_braces:{captures:{1:{name:"keyword.control.simple.abap"},2:{name:"variable.other.abap"}},match:"(?ix)\\b(data|value|field-symbol|final|reference|resumable)\\((?)\\)"},logical_operator:{match:"(?i)(?<=\\s)(not|or|and)(?=\\s)",name:"keyword.control.simple.abap"},main_keywords:{match:`(?ix)(?<=^|\\s)( abap-source| abstract| accept| accepting| access| according| action| activation| actual| add| add-corresponding| adjacent| alias| aliases| align| all| allocate| alpha| amdp| analysis| analyzer| append| appending| application| archive| area| arithmetic| as| ascending| assert| assign| assigned| assigning| association| asynchronous| at| attributes| authority| authority-check| authorization| auto| back| background| backward| badi| base| before| begin| behavior| between| binary| bit| blank| blanks| block| blocks| bound| boundaries| bounds| boxed| break| break-point| buffer| by| bypassing| byte| byte-order| call| calling| cast| casting| cds| center| centered| change| changing| channels| char-to-hex| character| check| checkbox| cid| circular| class| class-data| class-events| class-method| class-methods| class-pool| cleanup| clear| client| clients| clock| clone| close| cnt| code| collect| color| column| comment| comments| commit| common| communication| comparing| component| components| compression| compute| concatenate| cond| condense| condition| connection| constant| constants| context| contexts| control| controls| conv| conversion| convert| copy| corresponding| count| country| cover| create| currency| current| cursor| customer-function| data| database| datainfo| dataset| date| daylight| ddl| deallocate| decimals| declarations| deep| default| deferred| define| delete| deleting| demand| descending| describe| destination| detail| determine| dialog| did| directory| discarding| display| display-mode| distance| distinct| divide| divide-corresponding| dummy| duplicate| duplicates| duration| during| dynpro| edit| editor-call| empty| enabled| enabling| encoding| end| end-enhancement-section| end-of-definition| end-of-page| end-of-selection| end-test-injection| end-test-seam| endenhancement| endexec| endfunction| endian| ending| endmodule| endprovide| endselect| endwith| engineering| enhancement| enhancement-point| enhancement-section| enhancements| entities| entity| entries| entry| enum| environment| equiv| errors| escape| escaping| event| events| exact| except| exception| exception-table| exceptions| excluding| exec| execute| exists| exit| exit-command| expanding| explicit| exponent| export| exporting| extended| extension| extract| fail| failed| features| fetch| field| field-groups| field-symbols| fields| file| fill| filter| filters| final| find| first| first-line| fixed-point| flush| following| for| format| forward| found| frame| frames| free| from| full| function| function-pool| generate| get| giving| graph| group| groups| handle| handler| hashed| having| header| headers| heading| help-id| help-request| hide| hint| hold| hotspot| icon| id| identification| identifier| ignore| ignoring| immediately| implemented| implicit| import| importing| in| inactive| incl| include| includes| increment| index| index-line| indicators| infotypes| inheriting| init| initial| initialization| inner| input| insert| instance| instances| intensified| interface| interface-pool| interfaces| internal| intervals| into| inverse| inverted-date| is| iso| job| join| keep| keeping| kernel| key| keys| keywords| kind| language| last| late| layout| leading| leave| left| left-justified| leftplus| leftspace| legacy| length| let| level| levels| like| line| line-count| line-selection| line-size| linefeed| lines| link| list| list-processing| listbox| load| load-of-program| local| locale| lock| locks| log-point| logical| lower| mapped| mapping| margin| mark| mask| match| matchcode| maximum| members| memory| mesh| message| message-id| messages| messaging| method| methods| mode| modif| modifier| modify| module| move| move-corresponding| multiply| multiply-corresponding| name| nametab| native| nested| nesting| new| new-line| new-page| new-section| next| no| no-display| no-extension| no-gap| no-gaps| no-grouping| no-heading| no-scrolling| no-sign| no-title| no-zero| nodes| non-unicode| non-unique| number| object| objects| objmgr| obligatory| occurence| occurences| occurrence| occurrences| occurs| of| offset| on| only| open| optional| option| options| order| others| out| outer| output| output-length| overflow| overlay| pack| package| pad| padding| page| parameter| parameter-table| parameters| part| partially| pcre| perform| performing| permissions| pf-status| places| pool| position| pragmas| preceeding| precompiled| preferred| preserving| primary| print| print-control| private| privileged| procedure| program| property| protected| provide| push| pushbutton| put| query| queue-only| queueonly| quickinfo| radiobutton| raising| range| ranges| read| read-only| receive| received| receiving| redefinition| reduce| ref| reference| refresh| regex| reject| renaming| replace| replacement| replacing| report| reported| request| requested| required| reserve| reset| resolution| respecting| response| restore| result| results| resumable| resume| retry| return| returning| right| right-justified| rightplus| rightspace| rollback| rows| rp-provide-from-last| run| sap| sap-spool| save| saving| scale_preserving| scale_preserving_scientific| scan| scientific| scientific_with_leading_zero| screen| scroll| scroll-boundary| scrolling| search| seconds| section| select| select-options| selection| selection-screen| selection-set| selection-sets| selection-table| selections| send| separate| separated| session| set| shared| shift| shortdump| shortdump-id| sign| sign_as_postfix| simple| simulation| single| size| skip| skipping| smart| some| sort| sortable| sorted| source| specified| split| spool| spots| sql| stable| stamp| standard| start-of-selection| starting| state| statement| statements| static| statics| statusinfo| step| step-loop| stop| structure| structures| style| subkey| submatches| submit| subroutine| subscreen| substring| subtract| subtract-corresponding| suffix| sum| summary| supplied| supply| suppress| switch| symbol| syntax-check| syntax-trace| system-call| system-exceptions| tab| tabbed| table| tables| tableview| tabstrip| target| task| tasks| test| test-injection| test-seam| testing| text| textpool| then| throw| time| times| timestamp| timezone| title| titlebar| to| tokens| top-lines| top-of-page| trace-file| trace-table| trailing| transaction| transfer| transformation| translate| transporting| trmac| truncate| truncation| type| type-pool| type-pools| types| uline| unassign| unbounded| under| unicode| union| unique| unit| unix| unpack| until| unwind| up| update| upper| user| user-command| using| utf-8| uuid| valid| validate| value| value-request| values| vary| varying| version| via| visible| wait| when| where| width| window| windows| with| with-heading| with-title| without| word| work| workspace| write| xml| xsd| yes| zero| zone )(?=\\s|\\.|:|,)`,name:"keyword.control.simple.abap"},operators:{patterns:[{include:"#other_operator"},{include:"#arithmetic_operator"},{include:"#comparison_operator"},{include:"#logical_operator"}]},other_operator:{match:"(?<=\\s)(&&|&|\\?=|\\+=|-=|\\/=|\\*=|&&=|&=)(?=\\s)",name:"keyword.control.simple.abap"},reserved_names:{match:"(?ix)(?<=\\s)(me|super)(?=\\s|\\.|,|->)",name:"constant.language.abap"},sql_functions:{match:`(?ix)(?<=\\s)( abap_system_timezone| abap_user_timezone| abs| add_days| add_months| allow_precision_loss| as_geo_json| avg| bintohex| cast| ceil| coalesce| concat_with_space| concat| corr_spearman| corr| count| currency_conversion| datn_add_days| datn_add_months| datn_days_between| dats_add_days| dats_add_months| dats_days_between| dats_from_datn| dats_is_valid| dats_tims_to_tstmp| dats_to_datn| dayname| days_between| dense_rank| division| div| extract_day| extract_hour| extract_minute| extract_month| extract_second| extract_year| first_value| floor| grouping| hextobin| initcap| instr| is_valid| lag| last_value| lead| left| length| like_regexpr| locate_regexpr_after| locate_regexpr| locate| lower| lpad| ltrim| max| median| min| mod| monthname| ntile| occurrences_regexpr| over| product| rank| replace_regexpr| replace| rigth| round| row_number| rpad| rtrim| stddev| string_agg| substring_regexpr| substring| sum| tims_from_timn| tims_is_valid| tims_to_timn| to_blob| to_clob| tstmp_add_seconds| tstmp_current_utctimestamp| tstmp_is_valid| tstmp_seconds_between| tstmp_to_dats| tstmp_to_dst| tstmp_to_tims| tstmpl_from_utcl| tstmpl_to_utcl| unit_conversion| upper| utcl_add_seconds| utcl_current| utcl_seconds_between| uuid| var| weekday )(?=\\()`,name:"entity.name.function.sql.abap"},sql_types:{match:"(?ix)(?<=\\s)(char|clnt|cuky|curr|datn|dats|dec|decfloat16|decfloat34|fltp|int1|int2|int4|int8|lang|numc|quan|raw|sstring|timn|tims|unit|utclong)(?=\\s|\\(|\\))",name:"entity.name.type.sql.abap"},system_fields:{captures:{1:{name:"variable.language.abap"},2:{name:"variable.language.abap"}},match:"(?ix)\\b(sy)-(abcde|batch|binpt|calld|callr|colno|cpage|cprog|cucol|curow|datar|datlo|datum|dayst|dbcnt|dbnam|dbsysc|dyngr|dynnr|fdayw|fdpos|host|index|langu|ldbpg|lilli|linct|linno|linsz|lisel|listi|loopc|lsind|macol|mandt|marow|modno|msgid|msgli|msgno|msgty|msgv[1-4]|opsysc|pagno|pfkey|repid|saprl|scols|slset|spono|srows|staco|staro|stepl|subrc|sysid|tabix|tcode|tfill|timlo|title|tleng|tvar[0-9]|tzone|ucomm|uline|uname|uzeit|vline|wtitl|zonlo)(?=\\.|\\s)"},text_symbols:{captures:{1:{name:"keyword.control.simple.abap"},2:{name:"constant.numeric.abap"}},match:"(?ix)(?<=^|\\s)(text)-([A-Z0-9]{1,3})(?=\\s|\\.|:|,)"}},scopeName:"source.abap"});var e=[n];export{e as default};