const n=Object.freeze({fileTypes:["abap","ABAP"],foldingStartMarker:"/\\*\\*|\\{\\s*$",foldingStopMarker:"\\*\\*/|^\\s*\\}",keyEquivalent:"^~A",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:"(?<![^\\s])##.*?(?=([\\.:,\\s]))",name:"comment.line.pragma.abap"},{match:"(?i)(?<=(?:\\s|~|-))(?<=(?:->|=>))([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:"(?<!\\\\)(\\|)(.*?)",end:"(?<!\\\\)(\\||(\\\\\\\\\\|))",name:"string.interpolated.abap",beginCaptures:{1:{name:"constant.character.escape.abap"}},endCaptures:{1:{name:"constant.character.escape.abap"}},patterns:[{match:"({ )|( })",name:"constant.character.escape"},{match:"(?<={ ).*?(?= })",name:"variable.other.abap"},{match:"\\\\\\|",name:"constant.character.escape.abap"}]},{begin:"'",end:"'",name:"string.quoted.single.abap",patterns:[{match:"''",name:"constant.character.escape.abap"}]},{begin:"`",end:"`",name:"string.quoted.single.abap",patterns:[{match:"``",name:"constant.character.escape.abap"}]},{begin:"(?i)^\\s*(class)\\s([a-z_\\/][a-z_0-9\\/]*)",beginCaptures:{1:{name:"storage.type.block.abap"},2:{name:"entity.name.type.block.abap"}},end:"\\s*\\.\\s*\\n?",name:"meta.block.begin.implementation.abap",patterns:[{match:"(?ix)(^|\\s+)(definition|implementation|public|inheriting\\s+from|final|deferred|abstract|shared\\s+memory\\s+enabled|(global|local)*\\s*friends|(create\\s+(public|protected|private))|for\\s+behavior\\s+of|for\\s+testing|risk\\s+level\\s+(critical|dangerous|harmless))|duration\\s(short|medium|long)(?=\\s+|\\.)",name:"storage.modifier.class.abap"},{begin:"(?=[A-Za-z_][A-Za-z0-9_]*)",contentName:"entity.name.type.block.abap",end:"(?![A-Za-z0-9_])",patterns:[{include:"#generic_names"}]}]},{begin:"(?ix)^\\s*(method)\\s(?:([a-z_\\/][a-z_0-9\\/]*)~)?([a-z_\\/][a-z_0-9\\/]*)",beginCaptures:{1:{name:"storage.type.block.abap"},2:{name:"entity.name.type.abap"},3:{name:"entity.name.function.abap"}},end:"\\s*\\.\\s*\\n?",patterns:[{match:"(?ix)(?<=^|\\s)(BY\\s+DATABASE(\\s+PROCEDURE|\\s+FUNCTION|\\s+GRAPH\\s+WORKSPACE)|BY\\s+KERNEL\\s+MODULE)(?=\\s+|\\.)",name:"storage.modifier.method.abap"},{match:"(?ix)(?<=^|\\s)(FOR\\s+(HDB|LLANG))(?=\\s+|\\.)",name:"storage.modifier.method.abap"},{match:"(?ix)(?<=\\s)(OPTIONS\\s+(READ-ONLY|DETERMINISTIC|SUPPRESS\\s+SYNTAX\\s+ERRORS))(?=\\s+|\\.)",name:"storage.modifier.method.abap"},{match:"(?ix)(?<=^|\\s)(LANGUAGE\\s+(SQLSCRIPT|SQL|GRAPH))(?=\\s+|\\.)",name:"storage.modifier.method.abap"},{match:"(?ix)(?<=\\s)(USING)\\s+([a-z_\\/][a-z_0-9\\/=\\>]*)+(?=\\s+|\\.)",captures:{1:{name:"storage.modifier.method.abap"}}},{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"},reserved_names:{match:"(?ix)(?<=\\s)(me|super)(?=\\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"},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"}]},logical_operator:{match:"(?i)(?<=\\s)(not|or|and)(?=\\s)",name:"keyword.control.simple.abap"},system_fields:{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)",captures:{1:{name:"variable.language.abap"},2:{name:"variable.language.abap"}}},main_keywords:{match:`(?ix)(?<=^|\\s)(
abap-source|
abstract|
accept|
accepting|
access|
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|
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|
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|
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|
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"},text_symbols:{match:"(?ix)(?<=^|\\s)(text)-([A-Z0-9]{1,3})(?=\\s|\\.|:|,)",captures:{1:{name:"keyword.control.simple.abap"},2:{name:"constant.numeric.abap"}}},keywords_followed_by_braces:{match:"(?ix)\\b(data|value|field-symbol|final|reference|resumable)\\((<?[a-z_\\/][a-z_0-9\\/]*>?)\\)",captures:{1:{name:"keyword.control.simple.abap"},2:{name:"variable.other.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"},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"},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"},sql_functions:{match:"(?ix)(?<=\\s)(abs|ceil|div|division|floor|mod|round|concat|concat_with_space|instr|left|length|like_regexpr|lower|lpad|ltrim|occurrences_regexpr|replace|replace_regexpr|rigth|rpad|rtrim|substring|upper|coalesce|uuid|bintohex|hextobin|to_clob|to_blob|currency_conversion|datn_days_between|datn_add_days|datn_add_months|dats_is_valid|dats_days_between|dats_add_days|dats_add_months|tims_is_valid|utcl_current|utcl_add_seconds|utcl_seconds_between|tstmp_is_valid|tstmp_current_utctimestamp|tstmp_seconds_between|tstmp_add_seconds|abap_system_timezone|abap_user_timezone|tstmp_to_dats|tstmp_to_tims|tstmp_to_dst|dats_tims_to_tstmp|tstmpl_to_utcl|tstmpl_from_utcl|dats_to_datn|dats_from_datn|tims_to_timn|tims_from_timn|avg|median|max|min|sum|product|stddev|var|corr|corr_spearman|string_agg|count|grouping|allow_precision_loss|over|cast)(?=\\()",name:"entity.name.function.sql.abap"}},scopeName:"source.abap",uuid:"0357FFB4-EFFF-4DE9-8371-B0F9C8DF1B21",displayName:"ABAP"});var e=[n];export{e as default};
