securityos/node_modules/monaco-editor/esm/vs/basic-languages/abap/abap.js

1318 lines
21 KiB
JavaScript
Raw Normal View History

2024-09-06 15:32:35 +00:00
/*!-----------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Version: 0.36.1(6c56744c3419458f0dd48864520b759d1a3a1ca8)
* Released under the MIT license
* https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
*-----------------------------------------------------------------------------*/
// src/basic-languages/abap/abap.ts
var conf = {
comments: {
lineComment: "*"
},
brackets: [
["[", "]"],
["(", ")"]
]
};
var language = {
defaultToken: "invalid",
ignoreCase: true,
tokenPostfix: ".abap",
keywords: [
"abap-source",
"abbreviated",
"abstract",
"accept",
"accepting",
"according",
"activation",
"actual",
"add",
"add-corresponding",
"adjacent",
"after",
"alias",
"aliases",
"align",
"all",
"allocate",
"alpha",
"analysis",
"analyzer",
"and",
"append",
"appendage",
"appending",
"application",
"archive",
"area",
"arithmetic",
"as",
"ascending",
"aspect",
"assert",
"assign",
"assigned",
"assigning",
"association",
"asynchronous",
"at",
"attributes",
"authority",
"authority-check",
"avg",
"back",
"background",
"backup",
"backward",
"badi",
"base",
"before",
"begin",
"between",
"big",
"binary",
"bintohex",
"bit",
"black",
"blank",
"blanks",
"blob",
"block",
"blocks",
"blue",
"bound",
"boundaries",
"bounds",
"boxed",
"break-point",
"buffer",
"by",
"bypassing",
"byte",
"byte-order",
"call",
"calling",
"case",
"cast",
"casting",
"catch",
"center",
"centered",
"chain",
"chain-input",
"chain-request",
"change",
"changing",
"channels",
"character",
"char-to-hex",
"check",
"checkbox",
"ci_",
"circular",
"class",
"class-coding",
"class-data",
"class-events",
"class-methods",
"class-pool",
"cleanup",
"clear",
"client",
"clob",
"clock",
"close",
"coalesce",
"code",
"coding",
"col_background",
"col_group",
"col_heading",
"col_key",
"col_negative",
"col_normal",
"col_positive",
"col_total",
"collect",
"color",
"column",
"columns",
"comment",
"comments",
"commit",
"common",
"communication",
"comparing",
"component",
"components",
"compression",
"compute",
"concat",
"concat_with_space",
"concatenate",
"cond",
"condense",
"condition",
"connect",
"connection",
"constants",
"context",
"contexts",
"continue",
"control",
"controls",
"conv",
"conversion",
"convert",
"copies",
"copy",
"corresponding",
"country",
"cover",
"cpi",
"create",
"creating",
"critical",
"currency",
"currency_conversion",
"current",
"cursor",
"cursor-selection",
"customer",
"customer-function",
"dangerous",
"data",
"database",
"datainfo",
"dataset",
"date",
"dats_add_days",
"dats_add_months",
"dats_days_between",
"dats_is_valid",
"daylight",
"dd/mm/yy",
"dd/mm/yyyy",
"ddmmyy",
"deallocate",
"decimal_shift",
"decimals",
"declarations",
"deep",
"default",
"deferred",
"define",
"defining",
"definition",
"delete",
"deleting",
"demand",
"department",
"descending",
"describe",
"destination",
"detail",
"dialog",
"directory",
"disconnect",
"display",
"display-mode",
"distinct",
"divide",
"divide-corresponding",
"division",
"do",
"dummy",
"duplicate",
"duplicates",
"duration",
"during",
"dynamic",
"dynpro",
"edit",
"editor-call",
"else",
"elseif",
"empty",
"enabled",
"enabling",
"encoding",
"end",
"endat",
"endcase",
"endcatch",
"endchain",
"endclass",
"enddo",
"endenhancement",
"end-enhancement-section",
"endexec",
"endform",
"endfunction",
"endian",
"endif",
"ending",
"endinterface",
"end-lines",
"endloop",
"endmethod",
"endmodule",
"end-of-definition",
"end-of-editing",
"end-of-file",
"end-of-page",
"end-of-selection",
"endon",
"endprovide",
"endselect",
"end-test-injection",
"end-test-seam",
"endtry",
"endwhile",
"endwith",
"engineering",
"enhancement",
"enhancement-point",
"enhancements",
"enhancement-section",
"entries",
"entry",
"enum",
"environment",
"equiv",
"errormessage",
"errors",
"escaping",
"event",
"events",
"exact",
"except",
"exception",
"exceptions",
"exception-table",
"exclude",
"excluding",
"exec",
"execute",
"exists",
"exit",
"exit-command",
"expand",
"expanding",
"expiration",
"explicit",
"exponent",
"export",
"exporting",
"extend",
"extended",
"extension",
"extract",
"fail",
"fetch",
"field",
"field-groups",
"fields",
"field-symbol",
"field-symbols",
"file",
"filter",
"filters",
"filter-table",
"final",
"find",
"first",
"first-line",
"fixed-point",
"fkeq",
"fkge",
"flush",
"font",
"for",
"form",
"format",
"forward",
"found",
"frame",
"frames",
"free",
"friends",
"from",
"function",
"functionality",
"function-pool",
"further",
"gaps",
"generate",
"get",
"giving",
"gkeq",
"gkge",
"global",
"grant",
"green",
"group",
"groups",
"handle",
"handler",
"harmless",
"hashed",
"having",
"hdb",
"header",
"headers",
"heading",
"head-lines",
"help-id",
"help-request",
"hextobin",
"hide",
"high",
"hint",
"hold",
"hotspot",
"icon",
"id",
"identification",
"identifier",
"ids",
"if",
"ignore",
"ignoring",
"immediately",
"implementation",
"implementations",
"implemented",
"implicit",
"import",
"importing",
"in",
"inactive",
"incl",
"include",
"includes",
"including",
"increment",
"index",
"index-line",
"infotypes",
"inheriting",
"init",
"initial",
"initialization",
"inner",
"inout",
"input",
"insert",
"instance",
"instances",
"instr",
"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",
"lines",
"line-count",
"linefeed",
"line-selection",
"line-size",
"list",
"listbox",
"list-processing",
"little",
"llang",
"load",
"load-of-program",
"lob",
"local",
"locale",
"locator",
"logfile",
"logical",
"log-point",
"long",
"loop",
"low",
"lower",
"lpad",
"lpi",
"ltrim",
"mail",
"main",
"major-id",
"mapping",
"margin",
"mark",
"mask",
"match",
"matchcode",
"max",
"maximum",
"medium",
"members",
"memory",
"mesh",
"message",
"message-id",
"messages",
"messaging",
"method",
"methods",
"min",
"minimum",
"minor-id",
"mm/dd/yy",
"mm/dd/yyyy",
"mmddyy",
"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-topofpage",
"no-zero",
"node",
"nodes",
"non-unicode",
"non-unique",
"not",
"null",
"number",
"object",
"objects",
"obligatory",
"occurrence",
"occurrences",
"occurs",
"of",
"off",
"offset",
"ole",
"on",
"only",
"open",
"option",
"optional",
"options",
"or",
"order",
"other",
"others",
"out",
"outer",
"output",
"output-length",
"overflow",
"overlay",
"pack",
"package",
"pad",
"padding",
"page",
"pages",
"parameter",
"parameters",
"parameter-table",
"part",
"partially",
"pattern",
"percentage",
"perform",
"performing",
"person",
"pf1",
"pf10",
"pf11",
"pf12",
"pf13",
"pf14",
"pf15",
"pf2",
"pf3",
"pf4",
"pf5",
"pf6",
"pf7",
"pf8",
"pf9",
"pf-status",
"pink",
"places",
"pool",
"pos_high",
"pos_low",
"position",
"pragmas",
"precompiled",
"preferred",
"preserving",
"primary",
"print",
"print-control",
"priority",
"private",
"procedure",
"process",
"program",
"property",
"protected",
"provide",
"public",
"push",
"pushbutton",
"put",
"queue-only",
"quickinfo",
"radiobutton",
"raise",
"raising",
"range",
"ranges",
"read",
"reader",
"read-only",
"receive",
"received",
"receiver",
"receiving",
"red",
"redefinition",
"reduce",
"reduced",
"ref",
"reference",
"refresh",
"regex",
"reject",
"remote",
"renaming",
"replace",
"replacement",
"replacing",
"report",
"request",
"requested",
"reserve",
"reset",
"resolution",
"respecting",
"responsible",
"result",
"results",
"resumable",
"resume",
"retry",
"return",
"returncode",
"returning",
"returns",
"right",
"right-justified",
"rightplus",
"rightspace",
"risk",
"rmc_communication_failure",
"rmc_invalid_status",
"rmc_system_failure",
"role",
"rollback",
"rows",
"rpad",
"rtrim",
"run",
"sap",
"sap-spool",
"saving",
"scale_preserving",
"scale_preserving_scientific",
"scan",
"scientific",
"scientific_with_leading_zero",
"scroll",
"scroll-boundary",
"scrolling",
"search",
"secondary",
"seconds",
"section",
"select",
"selection",
"selections",
"selection-screen",
"selection-set",
"selection-sets",
"selection-table",
"select-options",
"send",
"separate",
"separated",
"set",
"shared",
"shift",
"short",
"shortdump-id",
"sign_as_postfix",
"single",
"size",
"skip",
"skipping",
"smart",
"some",
"sort",
"sortable",
"sorted",
"source",
"specified",
"split",
"spool",
"spots",
"sql",
"sqlscript",
"stable",
"stamp",
"standard",
"starting",
"start-of-editing",
"start-of-selection",
"state",
"statement",
"statements",
"static",
"statics",
"statusinfo",
"step-loop",
"stop",
"structure",
"structures",
"style",
"subkey",
"submatches",
"submit",
"subroutine",
"subscreen",
"subtract",
"subtract-corresponding",
"suffix",
"sum",
"summary",
"summing",
"supplied",
"supply",
"suppress",
"switch",
"switchstates",
"symbol",
"syncpoints",
"syntax",
"syntax-check",
"syntax-trace",
"system-call",
"system-exceptions",
"system-exit",
"tab",
"tabbed",
"table",
"tables",
"tableview",
"tabstrip",
"target",
"task",
"tasks",
"test",
"testing",
"test-injection",
"test-seam",
"text",
"textpool",
"then",
"throw",
"time",
"times",
"timestamp",
"timezone",
"tims_is_valid",
"title",
"titlebar",
"title-lines",
"to",
"tokenization",
"tokens",
"top-lines",
"top-of-page",
"trace-file",
"trace-table",
"trailing",
"transaction",
"transfer",
"transformation",
"translate",
"transporting",
"trmac",
"truncate",
"truncation",
"try",
"tstmp_add_seconds",
"tstmp_current_utctimestamp",
"tstmp_is_valid",
"tstmp_seconds_between",
"type",
"type-pool",
"type-pools",
"types",
"uline",
"unassign",
"under",
"unicode",
"union",
"unique",
"unit_conversion",
"unix",
"unpack",
"until",
"unwind",
"up",
"update",
"upper",
"user",
"user-command",
"using",
"utf-8",
"valid",
"value",
"value-request",
"values",
"vary",
"varying",
"verification-message",
"version",
"via",
"view",
"visible",
"wait",
"warning",
"when",
"whenever",
"where",
"while",
"width",
"window",
"windows",
"with",
"with-heading",
"without",
"with-title",
"word",
"work",
"write",
"writer",
"xml",
"xsd",
"yellow",
"yes",
"yymmdd",
"zero",
"zone",
"abap_system_timezone",
"abap_user_timezone",
"access",
"action",
"adabas",
"adjust_numbers",
"allow_precision_loss",
"allowed",
"amdp",
"applicationuser",
"as_geo_json",
"as400",
"associations",
"balance",
"behavior",
"breakup",
"bulk",
"cds",
"cds_client",
"check_before_save",
"child",
"clients",
"corr",
"corr_spearman",
"cross",
"cycles",
"datn_add_days",
"datn_add_months",
"datn_days_between",
"dats_from_datn",
"dats_tims_to_tstmp",
"dats_to_datn",
"db2",
"db6",
"ddl",
"dense_rank",
"depth",
"deterministic",
"discarding",
"entities",
"entity",
"error",
"failed",
"finalize",
"first_value",
"fltp_to_dec",
"following",
"fractional",
"full",
"graph",
"grouping",
"hierarchy",
"hierarchy_ancestors",
"hierarchy_ancestors_aggregate",
"hierarchy_descendants",
"hierarchy_descendants_aggregate",
"hierarchy_siblings",
"incremental",
"indicators",
"lag",
"last_value",
"lead",
"leaves",
"like_regexpr",
"link",
"locale_sap",
"lock",
"locks",
"many",
"mapped",
"matched",
"measures",
"median",
"mssqlnt",
"multiple",
"nodetype",
"ntile",
"nulls",
"occurrences_regexpr",
"one",
"operations",
"oracle",
"orphans",
"over",
"parent",
"parents",
"partition",
"pcre",
"period",
"pfcg_mapping",
"preceding",
"privileged",
"product",
"projection",
"rank",
"redirected",
"replace_regexpr",
"reported",
"response",
"responses",
"root",
"row",
"row_number",
"sap_system_date",
"save",
"schema",
"session",
"sets",
"shortdump",
"siblings",
"spantree",
"start",
"stddev",
"string_agg",
"subtotal",
"sybase",
"tims_from_timn",
"tims_to_timn",
"to_blob",
"to_clob",
"total",
"trace-entry",
"tstmp_to_dats",
"tstmp_to_dst",
"tstmp_to_tims",
"tstmpl_from_utcl",
"tstmpl_to_utcl",
"unbounded",
"utcl_add_seconds",
"utcl_current",
"utcl_seconds_between",
"uuid",
"var",
"verbatim"
],
builtinFunctions: [
"abs",
"acos",
"asin",
"atan",
"bit-set",
"boolc",
"boolx",
"ceil",
"char_off",
"charlen",
"cmax",
"cmin",
"concat_lines_of",
"contains",
"contains_any_not_of",
"contains_any_of",
"cos",
"cosh",
"count",
"count_any_not_of",
"count_any_of",
"dbmaxlen",
"distance",
"escape",
"exp",
"find_any_not_of",
"find_any_of",
"find_end",
"floor",
"frac",
"from_mixed",
"ipow",
"line_exists",
"line_index",
"log",
"log10",
"matches",
"nmax",
"nmin",
"numofchar",
"repeat",
"rescale",
"reverse",
"round",
"segment",
"shift_left",
"shift_right",
"sign",
"sin",
"sinh",
"sqrt",
"strlen",
"substring",
"substring_after",
"substring_before",
"substring_from",
"substring_to",
"tan",
"tanh",
"to_lower",
"to_mixed",
"to_upper",
"trunc",
"utclong_add",
"utclong_current",
"utclong_diff",
"xsdbool",
"xstrlen"
],
typeKeywords: [
"b",
"c",
"d",
"decfloat16",
"decfloat34",
"f",
"i",
"int8",
"n",
"p",
"s",
"string",
"t",
"utclong",
"x",
"xstring",
"any",
"clike",
"csequence",
"decfloat",
"numeric",
"simple",
"xsequence",
"accp",
"char",
"clnt",
"cuky",
"curr",
"datn",
"dats",
"d16d",
"d16n",
"d16r",
"d34d",
"d34n",
"d34r",
"dec",
"df16_dec",
"df16_raw",
"df34_dec",
"df34_raw",
"fltp",
"geom_ewkb",
"int1",
"int2",
"int4",
"lang",
"lchr",
"lraw",
"numc",
"quan",
"raw",
"rawstring",
"sstring",
"timn",
"tims",
"unit",
"utcl",
"df16_scl",
"df34_scl",
"prec",
"varc",
"abap_bool",
"abap_false",
"abap_true",
"abap_undefined",
"me",
"screen",
"space",
"super",
"sy",
"syst",
"table_line",
"*sys*"
],
builtinMethods: ["class_constructor", "constructor"],
derivedTypes: [
"%CID",
"%CID_REF",
"%CONTROL",
"%DATA",
"%ELEMENT",
"%FAIL",
"%KEY",
"%MSG",
"%PARAM",
"%PID",
"%PID_ASSOC",
"%PID_PARENT",
"%_HINTS"
],
cdsLanguage: [
"@AbapAnnotation",
"@AbapCatalog",
"@AccessControl",
"@API",
"@ClientDependent",
"@ClientHandling",
"@CompatibilityContract",
"@DataAging",
"@EndUserText",
"@Environment",
"@LanguageDependency",
"@MappingRole",
"@Metadata",
"@MetadataExtension",
"@ObjectModel",
"@Scope",
"@Semantics",
"$EXTENSION",
"$SELF"
],
selectors: ["->", "->*", "=>", "~", "~*"],
operators: [
" +",
" -",
"/",
"*",
"**",
"div",
"mod",
"=",
"#",
"@",
"+=",
"-=",
"*=",
"/=",
"**=",
"&&=",
"?=",
"&",
"&&",
"bit-and",
"bit-not",
"bit-or",
"bit-xor",
"m",
"o",
"z",
"<",
" >",
"<=",
">=",
"<>",
"><",
"=<",
"=>",
"bt",
"byte-ca",
"byte-cn",
"byte-co",
"byte-cs",
"byte-na",
"byte-ns",
"ca",
"cn",
"co",
"cp",
"cs",
"eq",
"ge",
"gt",
"le",
"lt",
"na",
"nb",
"ne",
"np",
"ns",
"*/",
"*:",
"--",
"/*",
"//"
],
symbols: /[=><!~?&+\-*\/\^%#@]+/,
tokenizer: {
root: [
[
/[a-z_\/$%@]([\w\/$%]|-(?!>))*/,
{
cases: {
"@typeKeywords": "type",
"@keywords": "keyword",
"@cdsLanguage": "annotation",
"@derivedTypes": "type",
"@builtinFunctions": "type",
"@builtinMethods": "type",
"@operators": "key",
"@default": "identifier"
}
}
],
[/<[\w]+>/, "identifier"],
[/##[\w|_]+/, "comment"],
{ include: "@whitespace" },
[/[:,.]/, "delimiter"],
[/[{}()\[\]]/, "@brackets"],
[
/@symbols/,
{
cases: {
"@selectors": "tag",
"@operators": "key",
"@default": ""
}
}
],
[/'/, { token: "string", bracket: "@open", next: "@stringquote" }],
[/`/, { token: "string", bracket: "@open", next: "@stringping" }],
[/\|/, { token: "string", bracket: "@open", next: "@stringtemplate" }],
[/\d+/, "number"]
],
stringtemplate: [
[/[^\\\|]+/, "string"],
[/\\\|/, "string"],
[/\|/, { token: "string", bracket: "@close", next: "@pop" }]
],
stringping: [
[/[^\\`]+/, "string"],
[/`/, { token: "string", bracket: "@close", next: "@pop" }]
],
stringquote: [
[/[^\\']+/, "string"],
[/'/, { token: "string", bracket: "@close", next: "@pop" }]
],
whitespace: [
[/[ \t\r\n]+/, ""],
[/^\*.*$/, "comment"],
[/\".*$/, "comment"]
]
}
};
export {
conf,
language
};