420 lines
11 KiB
JavaScript
420 lines
11 KiB
JavaScript
define("vs/st-UObc-eRR", ["exports"], (function(exports) {
|
||
"use strict";
|
||
const conf = {
|
||
comments: {
|
||
lineComment: "//",
|
||
blockComment: ["(*", "*)"]
|
||
},
|
||
brackets: [
|
||
["{", "}"],
|
||
["[", "]"],
|
||
["(", ")"],
|
||
["var", "end_var"],
|
||
["var_input", "end_var"],
|
||
["var_output", "end_var"],
|
||
["var_in_out", "end_var"],
|
||
["var_temp", "end_var"],
|
||
["var_global", "end_var"],
|
||
["var_access", "end_var"],
|
||
["var_external", "end_var"],
|
||
["type", "end_type"],
|
||
["struct", "end_struct"],
|
||
["program", "end_program"],
|
||
["function", "end_function"],
|
||
["function_block", "end_function_block"],
|
||
["action", "end_action"],
|
||
["step", "end_step"],
|
||
["initial_step", "end_step"],
|
||
["transaction", "end_transaction"],
|
||
["configuration", "end_configuration"],
|
||
["tcp", "end_tcp"],
|
||
["recource", "end_recource"],
|
||
["channel", "end_channel"],
|
||
["library", "end_library"],
|
||
["folder", "end_folder"],
|
||
["binaries", "end_binaries"],
|
||
["includes", "end_includes"],
|
||
["sources", "end_sources"]
|
||
],
|
||
autoClosingPairs: [
|
||
{ open: "[", close: "]" },
|
||
{ open: "{", close: "}" },
|
||
{ open: "(", close: ")" },
|
||
{ open: "/*", close: "*/" },
|
||
{ open: "'", close: "'", notIn: ["string_sq"] },
|
||
{ open: '"', close: '"', notIn: ["string_dq"] },
|
||
{ open: "var_input", close: "end_var" },
|
||
{ open: "var_output", close: "end_var" },
|
||
{ open: "var_in_out", close: "end_var" },
|
||
{ open: "var_temp", close: "end_var" },
|
||
{ open: "var_global", close: "end_var" },
|
||
{ open: "var_access", close: "end_var" },
|
||
{ open: "var_external", close: "end_var" },
|
||
{ open: "type", close: "end_type" },
|
||
{ open: "struct", close: "end_struct" },
|
||
{ open: "program", close: "end_program" },
|
||
{ open: "function", close: "end_function" },
|
||
{ open: "function_block", close: "end_function_block" },
|
||
{ open: "action", close: "end_action" },
|
||
{ open: "step", close: "end_step" },
|
||
{ open: "initial_step", close: "end_step" },
|
||
{ open: "transaction", close: "end_transaction" },
|
||
{ open: "configuration", close: "end_configuration" },
|
||
{ open: "tcp", close: "end_tcp" },
|
||
{ open: "recource", close: "end_recource" },
|
||
{ open: "channel", close: "end_channel" },
|
||
{ open: "library", close: "end_library" },
|
||
{ open: "folder", close: "end_folder" },
|
||
{ open: "binaries", close: "end_binaries" },
|
||
{ open: "includes", close: "end_includes" },
|
||
{ open: "sources", close: "end_sources" }
|
||
],
|
||
surroundingPairs: [
|
||
{ open: "{", close: "}" },
|
||
{ open: "[", close: "]" },
|
||
{ open: "(", close: ")" },
|
||
{ open: '"', close: '"' },
|
||
{ open: "'", close: "'" },
|
||
{ open: "var", close: "end_var" },
|
||
{ open: "var_input", close: "end_var" },
|
||
{ open: "var_output", close: "end_var" },
|
||
{ open: "var_in_out", close: "end_var" },
|
||
{ open: "var_temp", close: "end_var" },
|
||
{ open: "var_global", close: "end_var" },
|
||
{ open: "var_access", close: "end_var" },
|
||
{ open: "var_external", close: "end_var" },
|
||
{ open: "type", close: "end_type" },
|
||
{ open: "struct", close: "end_struct" },
|
||
{ open: "program", close: "end_program" },
|
||
{ open: "function", close: "end_function" },
|
||
{ open: "function_block", close: "end_function_block" },
|
||
{ open: "action", close: "end_action" },
|
||
{ open: "step", close: "end_step" },
|
||
{ open: "initial_step", close: "end_step" },
|
||
{ open: "transaction", close: "end_transaction" },
|
||
{ open: "configuration", close: "end_configuration" },
|
||
{ open: "tcp", close: "end_tcp" },
|
||
{ open: "recource", close: "end_recource" },
|
||
{ open: "channel", close: "end_channel" },
|
||
{ open: "library", close: "end_library" },
|
||
{ open: "folder", close: "end_folder" },
|
||
{ open: "binaries", close: "end_binaries" },
|
||
{ open: "includes", close: "end_includes" },
|
||
{ open: "sources", close: "end_sources" }
|
||
],
|
||
folding: {
|
||
markers: {
|
||
start: new RegExp("^\\s*#pragma\\s+region\\b"),
|
||
end: new RegExp("^\\s*#pragma\\s+endregion\\b")
|
||
}
|
||
}
|
||
};
|
||
const language = {
|
||
defaultToken: "",
|
||
tokenPostfix: ".st",
|
||
ignoreCase: true,
|
||
brackets: [
|
||
{ token: "delimiter.curly", open: "{", close: "}" },
|
||
{ token: "delimiter.parenthesis", open: "(", close: ")" },
|
||
{ token: "delimiter.square", open: "[", close: "]" }
|
||
],
|
||
keywords: [
|
||
"if",
|
||
"end_if",
|
||
"elsif",
|
||
"else",
|
||
"case",
|
||
"of",
|
||
"to",
|
||
"__try",
|
||
"__catch",
|
||
"__finally",
|
||
"do",
|
||
"with",
|
||
"by",
|
||
"while",
|
||
"repeat",
|
||
"end_while",
|
||
"end_repeat",
|
||
"end_case",
|
||
"for",
|
||
"end_for",
|
||
"task",
|
||
"retain",
|
||
"non_retain",
|
||
"constant",
|
||
"with",
|
||
"at",
|
||
"exit",
|
||
"return",
|
||
"interval",
|
||
"priority",
|
||
"address",
|
||
"port",
|
||
"on_channel",
|
||
"then",
|
||
"iec",
|
||
"file",
|
||
"uses",
|
||
"version",
|
||
"packagetype",
|
||
"displayname",
|
||
"copyright",
|
||
"summary",
|
||
"vendor",
|
||
"common_source",
|
||
"from",
|
||
"extends",
|
||
"implements"
|
||
],
|
||
constant: ["false", "true", "null"],
|
||
defineKeywords: [
|
||
"var",
|
||
"var_input",
|
||
"var_output",
|
||
"var_in_out",
|
||
"var_temp",
|
||
"var_global",
|
||
"var_access",
|
||
"var_external",
|
||
"end_var",
|
||
"type",
|
||
"end_type",
|
||
"struct",
|
||
"end_struct",
|
||
"program",
|
||
"end_program",
|
||
"function",
|
||
"end_function",
|
||
"function_block",
|
||
"end_function_block",
|
||
"interface",
|
||
"end_interface",
|
||
"method",
|
||
"end_method",
|
||
"property",
|
||
"end_property",
|
||
"namespace",
|
||
"end_namespace",
|
||
"configuration",
|
||
"end_configuration",
|
||
"tcp",
|
||
"end_tcp",
|
||
"resource",
|
||
"end_resource",
|
||
"channel",
|
||
"end_channel",
|
||
"library",
|
||
"end_library",
|
||
"folder",
|
||
"end_folder",
|
||
"binaries",
|
||
"end_binaries",
|
||
"includes",
|
||
"end_includes",
|
||
"sources",
|
||
"end_sources",
|
||
"action",
|
||
"end_action",
|
||
"step",
|
||
"initial_step",
|
||
"end_step",
|
||
"transaction",
|
||
"end_transaction"
|
||
],
|
||
typeKeywords: [
|
||
"int",
|
||
"sint",
|
||
"dint",
|
||
"lint",
|
||
"usint",
|
||
"uint",
|
||
"udint",
|
||
"ulint",
|
||
"real",
|
||
"lreal",
|
||
"time",
|
||
"date",
|
||
"time_of_day",
|
||
"date_and_time",
|
||
"string",
|
||
"bool",
|
||
"byte",
|
||
"word",
|
||
"dword",
|
||
"array",
|
||
"pointer",
|
||
"lword"
|
||
],
|
||
operators: [
|
||
"=",
|
||
">",
|
||
"<",
|
||
":",
|
||
":=",
|
||
"<=",
|
||
">=",
|
||
"<>",
|
||
"&",
|
||
"+",
|
||
"-",
|
||
"*",
|
||
"**",
|
||
"MOD",
|
||
"^",
|
||
"or",
|
||
"and",
|
||
"not",
|
||
"xor",
|
||
"abs",
|
||
"acos",
|
||
"asin",
|
||
"atan",
|
||
"cos",
|
||
"exp",
|
||
"expt",
|
||
"ln",
|
||
"log",
|
||
"sin",
|
||
"sqrt",
|
||
"tan",
|
||
"sel",
|
||
"max",
|
||
"min",
|
||
"limit",
|
||
"mux",
|
||
"shl",
|
||
"shr",
|
||
"rol",
|
||
"ror",
|
||
"indexof",
|
||
"sizeof",
|
||
"adr",
|
||
"adrinst",
|
||
"bitadr",
|
||
"is_valid",
|
||
"ref",
|
||
"ref_to"
|
||
],
|
||
builtinVariables: [],
|
||
builtinFunctions: [
|
||
"sr",
|
||
"rs",
|
||
"tp",
|
||
"ton",
|
||
"tof",
|
||
"eq",
|
||
"ge",
|
||
"le",
|
||
"lt",
|
||
"ne",
|
||
"round",
|
||
"trunc",
|
||
"ctd",
|
||
"сtu",
|
||
"ctud",
|
||
"r_trig",
|
||
"f_trig",
|
||
"move",
|
||
"concat",
|
||
"delete",
|
||
"find",
|
||
"insert",
|
||
"left",
|
||
"len",
|
||
"replace",
|
||
"right",
|
||
"rtc"
|
||
],
|
||
// we include these common regular expressions
|
||
symbols: /[=><!~?:&|+\-*\/\^%]+/,
|
||
// C# style strings
|
||
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
|
||
// The main tokenizer for our languages
|
||
tokenizer: {
|
||
root: [
|
||
[/(\.\.)/, "delimiter"],
|
||
[/\b(16#[0-9A-Fa-f\_]*)+\b/, "number.hex"],
|
||
[/\b(2#[01\_]+)+\b/, "number.binary"],
|
||
[/\b(8#[0-9\_]*)+\b/, "number.octal"],
|
||
[/\b\d*\.\d+([eE][\-+]?\d+)?\b/, "number.float"],
|
||
[/\b(L?REAL)#[0-9\_\.e]+\b/, "number.float"],
|
||
[/\b(BYTE|(?:D|L)?WORD|U?(?:S|D|L)?INT)#[0-9\_]+\b/, "number"],
|
||
[/\d+/, "number"],
|
||
[/\b(T|DT|TOD)#[0-9:-_shmyd]+\b/, "tag"],
|
||
[/\%(I|Q|M)(X|B|W|D|L)[0-9\.]+/, "tag"],
|
||
[/\%(I|Q|M)[0-9\.]*/, "tag"],
|
||
[/\b[A-Za-z]{1,6}#[0-9]+\b/, "tag"],
|
||
[/\b(TO_|CTU_|CTD_|CTUD_|MUX_|SEL_)[A_Za-z]+\b/, "predefined"],
|
||
[/\b[A_Za-z]+(_TO_)[A_Za-z]+\b/, "predefined"],
|
||
[/[;]/, "delimiter"],
|
||
[/[.]/, { token: "delimiter", next: "@params" }],
|
||
// identifiers and keywords
|
||
[
|
||
/[a-zA-Z_]\w*/,
|
||
{
|
||
cases: {
|
||
"@operators": "operators",
|
||
"@keywords": "keyword",
|
||
"@typeKeywords": "type",
|
||
"@defineKeywords": "variable",
|
||
"@constant": "constant",
|
||
"@builtinVariables": "predefined",
|
||
"@builtinFunctions": "predefined",
|
||
"@default": "identifier"
|
||
}
|
||
}
|
||
],
|
||
{ include: "@whitespace" },
|
||
[/[{}()\[\]]/, "@brackets"],
|
||
[/"([^"\\]|\\.)*$/, "string.invalid"],
|
||
// non-teminated string
|
||
[/"/, { token: "string.quote", bracket: "@open", next: "@string_dq" }],
|
||
[/'/, { token: "string.quote", bracket: "@open", next: "@string_sq" }],
|
||
[/'[^\\']'/, "string"],
|
||
[/(')(@escapes)(')/, ["string", "string.escape", "string"]],
|
||
[/'/, "string.invalid"]
|
||
],
|
||
params: [
|
||
[/\b[A-Za-z0-9_]+\b(?=\()/, { token: "identifier", next: "@pop" }],
|
||
[/\b[A-Za-z0-9_]+\b/, "variable.name", "@pop"]
|
||
],
|
||
comment: [
|
||
[/[^\/*]+/, "comment"],
|
||
[/\/\*/, "comment", "@push"],
|
||
// nested comment
|
||
["\\*/", "comment", "@pop"],
|
||
[/[\/*]/, "comment"]
|
||
],
|
||
comment2: [
|
||
[/[^\(*]+/, "comment"],
|
||
[/\(\*/, "comment", "@push"],
|
||
// nested comment
|
||
["\\*\\)", "comment", "@pop"],
|
||
[/[\(*]/, "comment"]
|
||
],
|
||
whitespace: [
|
||
[/[ \t\r\n]+/, "white"],
|
||
[/\/\/.*$/, "comment"],
|
||
[/\/\*/, "comment", "@comment"],
|
||
[/\(\*/, "comment", "@comment2"]
|
||
],
|
||
string_dq: [
|
||
[/[^\\"]+/, "string"],
|
||
[/@escapes/, "string.escape"],
|
||
[/\\./, "string.escape.invalid"],
|
||
[/"/, { token: "string.quote", bracket: "@close", next: "@pop" }]
|
||
],
|
||
string_sq: [
|
||
[/[^\\']+/, "string"],
|
||
[/@escapes/, "string.escape"],
|
||
[/\\./, "string.escape.invalid"],
|
||
[/'/, { token: "string.quote", bracket: "@close", next: "@pop" }]
|
||
]
|
||
}
|
||
};
|
||
exports.conf = conf;
|
||
exports.language = language;
|
||
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
||
}));
|