123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573 |
- /*!-----------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Version: 0.31.1(337587859b1c171314b40503171188b6cea6a32a)
- * Released under the MIT license
- * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
- *-----------------------------------------------------------------------------*/
- define("vs/basic-languages/systemverilog/systemverilog",[],()=>{
- var moduleExports = (() => {
- var __defProp = Object.defineProperty;
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
- var __export = (target, all) => {
- __markAsModule(target);
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
- };
- // src/basic-languages/systemverilog/systemverilog.ts
- var systemverilog_exports = {};
- __export(systemverilog_exports, {
- conf: () => conf,
- language: () => language
- });
- var conf = {
- comments: {
- lineComment: "//",
- blockComment: ["/*", "*/"]
- },
- brackets: [
- ["{", "}"],
- ["[", "]"],
- ["(", ")"],
- ["begin", "end"],
- ["case", "endcase"],
- ["casex", "endcase"],
- ["casez", "endcase"],
- ["checker", "endchecker"],
- ["class", "endclass"],
- ["clocking", "endclocking"],
- ["config", "endconfig"],
- ["function", "endfunction"],
- ["generate", "endgenerate"],
- ["group", "endgroup"],
- ["interface", "endinterface"],
- ["module", "endmodule"],
- ["package", "endpackage"],
- ["primitive", "endprimitive"],
- ["program", "endprogram"],
- ["property", "endproperty"],
- ["specify", "endspecify"],
- ["sequence", "endsequence"],
- ["table", "endtable"],
- ["task", "endtask"]
- ],
- autoClosingPairs: [
- { open: "[", close: "]" },
- { open: "{", close: "}" },
- { open: "(", close: ")" },
- { open: "'", close: "'", notIn: ["string", "comment"] },
- { open: '"', close: '"', notIn: ["string"] }
- ],
- surroundingPairs: [
- { open: "{", close: "}" },
- { open: "[", close: "]" },
- { open: "(", close: ")" },
- { open: '"', close: '"' },
- { open: "'", close: "'" }
- ],
- folding: {
- offSide: false,
- markers: {
- start: new RegExp("^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:begin|case(x|z)?|class|clocking|config|covergroup|function|generate|interface|module|package|primitive|property|program|sequence|specify|table|task)\\b"),
- end: new RegExp("^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:end|endcase|endclass|endclocking|endconfig|endgroup|endfunction|endgenerate|endinterface|endmodule|endpackage|endprimitive|endproperty|endprogram|endsequence|endspecify|endtable|endtask)\\b")
- }
- }
- };
- var language = {
- defaultToken: "",
- tokenPostfix: ".sv",
- brackets: [
- { token: "delimiter.curly", open: "{", close: "}" },
- { token: "delimiter.parenthesis", open: "(", close: ")" },
- { token: "delimiter.square", open: "[", close: "]" },
- { token: "delimiter.angle", open: "<", close: ">" }
- ],
- keywords: [
- "accept_on",
- "alias",
- "always",
- "always_comb",
- "always_ff",
- "always_latch",
- "and",
- "assert",
- "assign",
- "assume",
- "automatic",
- "before",
- "begin",
- "bind",
- "bins",
- "binsof",
- "bit",
- "break",
- "buf",
- "bufif0",
- "bufif1",
- "byte",
- "case",
- "casex",
- "casez",
- "cell",
- "chandle",
- "checker",
- "class",
- "clocking",
- "cmos",
- "config",
- "const",
- "constraint",
- "context",
- "continue",
- "cover",
- "covergroup",
- "coverpoint",
- "cross",
- "deassign",
- "default",
- "defparam",
- "design",
- "disable",
- "dist",
- "do",
- "edge",
- "else",
- "end",
- "endcase",
- "endchecker",
- "endclass",
- "endclocking",
- "endconfig",
- "endfunction",
- "endgenerate",
- "endgroup",
- "endinterface",
- "endmodule",
- "endpackage",
- "endprimitive",
- "endprogram",
- "endproperty",
- "endspecify",
- "endsequence",
- "endtable",
- "endtask",
- "enum",
- "event",
- "eventually",
- "expect",
- "export",
- "extends",
- "extern",
- "final",
- "first_match",
- "for",
- "force",
- "foreach",
- "forever",
- "fork",
- "forkjoin",
- "function",
- "generate",
- "genvar",
- "global",
- "highz0",
- "highz1",
- "if",
- "iff",
- "ifnone",
- "ignore_bins",
- "illegal_bins",
- "implements",
- "implies",
- "import",
- "incdir",
- "include",
- "initial",
- "inout",
- "input",
- "inside",
- "instance",
- "int",
- "integer",
- "interconnect",
- "interface",
- "intersect",
- "join",
- "join_any",
- "join_none",
- "large",
- "let",
- "liblist",
- "library",
- "local",
- "localparam",
- "logic",
- "longint",
- "macromodule",
- "matches",
- "medium",
- "modport",
- "module",
- "nand",
- "negedge",
- "nettype",
- "new",
- "nexttime",
- "nmos",
- "nor",
- "noshowcancelled",
- "not",
- "notif0",
- "notif1",
- "null",
- "or",
- "output",
- "package",
- "packed",
- "parameter",
- "pmos",
- "posedge",
- "primitive",
- "priority",
- "program",
- "property",
- "protected",
- "pull0",
- "pull1",
- "pulldown",
- "pullup",
- "pulsestyle_ondetect",
- "pulsestyle_onevent",
- "pure",
- "rand",
- "randc",
- "randcase",
- "randsequence",
- "rcmos",
- "real",
- "realtime",
- "ref",
- "reg",
- "reject_on",
- "release",
- "repeat",
- "restrict",
- "return",
- "rnmos",
- "rpmos",
- "rtran",
- "rtranif0",
- "rtranif1",
- "s_always",
- "s_eventually",
- "s_nexttime",
- "s_until",
- "s_until_with",
- "scalared",
- "sequence",
- "shortint",
- "shortreal",
- "showcancelled",
- "signed",
- "small",
- "soft",
- "solve",
- "specify",
- "specparam",
- "static",
- "string",
- "strong",
- "strong0",
- "strong1",
- "struct",
- "super",
- "supply0",
- "supply1",
- "sync_accept_on",
- "sync_reject_on",
- "table",
- "tagged",
- "task",
- "this",
- "throughout",
- "time",
- "timeprecision",
- "timeunit",
- "tran",
- "tranif0",
- "tranif1",
- "tri",
- "tri0",
- "tri1",
- "triand",
- "trior",
- "trireg",
- "type",
- "typedef",
- "union",
- "unique",
- "unique0",
- "unsigned",
- "until",
- "until_with",
- "untyped",
- "use",
- "uwire",
- "var",
- "vectored",
- "virtual",
- "void",
- "wait",
- "wait_order",
- "wand",
- "weak",
- "weak0",
- "weak1",
- "while",
- "wildcard",
- "wire",
- "with",
- "within",
- "wor",
- "xnor",
- "xor"
- ],
- builtin_gates: [
- "and",
- "nand",
- "nor",
- "or",
- "xor",
- "xnor",
- "buf",
- "not",
- "bufif0",
- "bufif1",
- "notif1",
- "notif0",
- "cmos",
- "nmos",
- "pmos",
- "rcmos",
- "rnmos",
- "rpmos",
- "tran",
- "tranif1",
- "tranif0",
- "rtran",
- "rtranif1",
- "rtranif0"
- ],
- operators: [
- "=",
- "+=",
- "-=",
- "*=",
- "/=",
- "%=",
- "&=",
- "|=",
- "^=",
- "<<=",
- ">>+",
- "<<<=",
- ">>>=",
- "?",
- ":",
- "+",
- "-",
- "!",
- "~",
- "&",
- "~&",
- "|",
- "~|",
- "^",
- "~^",
- "^~",
- "+",
- "-",
- "*",
- "/",
- "%",
- "==",
- "!=",
- "===",
- "!==",
- "==?",
- "!=?",
- "&&",
- "||",
- "**",
- "<",
- "<=",
- ">",
- ">=",
- "&",
- "|",
- "^",
- ">>",
- "<<",
- ">>>",
- "<<<",
- "++",
- "--",
- "->",
- "<->",
- "inside",
- "dist",
- "::",
- "+:",
- "-:",
- "*>",
- "&&&",
- "|->",
- "|=>",
- "#=#"
- ],
- symbols: /[=><!~?:&|+\-*\/\^%#]+/,
- escapes: /%%|\\(?:[antvf\\"']|x[0-9A-Fa-f]{1,2}|[0-7]{1,3})/,
- identifier: /(?:[a-zA-Z_][a-zA-Z0-9_$\.]*|\\\S+ )/,
- systemcall: /[$][a-zA-Z0-9_]+/,
- timeunits: /s|ms|us|ns|ps|fs/,
- tokenizer: {
- root: [
- [
- /^(\s*)(@identifier)/,
- [
- "",
- {
- cases: {
- "@builtin_gates": {
- token: "keyword.$2",
- next: "@module_instance"
- },
- table: {
- token: "keyword.$2",
- next: "@table"
- },
- "@keywords": { token: "keyword.$2" },
- "@default": {
- token: "identifier",
- next: "@module_instance"
- }
- }
- }
- ]
- ],
- [/^\s*`include/, { token: "keyword.directive.include", next: "@include" }],
- [/^\s*`\s*\w+/, "keyword"],
- { include: "@identifier_or_keyword" },
- { include: "@whitespace" },
- [/\(\*.*\*\)/, "annotation"],
- [/@systemcall/, "variable.predefined"],
- [/[{}()\[\]]/, "@brackets"],
- [/[<>](?!@symbols)/, "@brackets"],
- [
- /@symbols/,
- {
- cases: {
- "@operators": "delimiter",
- "@default": ""
- }
- }
- ],
- { include: "@numbers" },
- [/[;,.]/, "delimiter"],
- { include: "@strings" }
- ],
- identifier_or_keyword: [
- [
- /@identifier/,
- {
- cases: {
- "@keywords": { token: "keyword.$0" },
- "@default": "identifier"
- }
- }
- ]
- ],
- numbers: [
- [/\d+?[\d_]*(?:\.[\d_]+)?[eE][\-+]?\d+/, "number.float"],
- [/\d+?[\d_]*\.[\d_]+(?:\s*@timeunits)?/, "number.float"],
- [/(?:\d+?[\d_]*\s*)?'[sS]?[dD]\s*[0-9xXzZ?]+?[0-9xXzZ?_]*/, "number"],
- [/(?:\d+?[\d_]*\s*)?'[sS]?[bB]\s*[0-1xXzZ?]+?[0-1xXzZ?_]*/, "number.binary"],
- [/(?:\d+?[\d_]*\s*)?'[sS]?[oO]\s*[0-7xXzZ?]+?[0-7xXzZ?_]*/, "number.octal"],
- [/(?:\d+?[\d_]*\s*)?'[sS]?[hH]\s*[0-9a-fA-FxXzZ?]+?[0-9a-fA-FxXzZ?_]*/, "number.hex"],
- [/1step/, "number"],
- [/[\dxXzZ]+?[\dxXzZ_]*(?:\s*@timeunits)?/, "number"],
- [/'[01xXzZ]+/, "number"]
- ],
- module_instance: [
- { include: "@whitespace" },
- [/(#?)(\()/, ["", { token: "@brackets", next: "@port_connection" }]],
- [/@identifier\s*[;={}\[\],]/, { token: "@rematch", next: "@pop" }],
- [/@symbols|[;={}\[\],]/, { token: "@rematch", next: "@pop" }],
- [/@identifier/, "type"],
- [/;/, "delimiter", "@pop"]
- ],
- port_connection: [
- { include: "@identifier_or_keyword" },
- { include: "@whitespace" },
- [/@systemcall/, "variable.predefined"],
- { include: "@numbers" },
- { include: "@strings" },
- [/[,]/, "delimiter"],
- [/\(/, "@brackets", "@port_connection"],
- [/\)/, "@brackets", "@pop"]
- ],
- whitespace: [
- [/[ \t\r\n]+/, ""],
- [/\/\*/, "comment", "@comment"],
- [/\/\/.*$/, "comment"]
- ],
- comment: [
- [/[^\/*]+/, "comment"],
- [/\*\//, "comment", "@pop"],
- [/[\/*]/, "comment"]
- ],
- strings: [
- [/"([^"\\]|\\.)*$/, "string.invalid"],
- [/"/, "string", "@string"]
- ],
- string: [
- [/[^\\"]+/, "string"],
- [/@escapes/, "string.escape"],
- [/\\./, "string.escape.invalid"],
- [/"/, "string", "@pop"]
- ],
- include: [
- [
- /(\s*)(")([\w*\/*]*)(.\w*)(")/,
- [
- "",
- "string.include.identifier",
- "string.include.identifier",
- "string.include.identifier",
- { token: "string.include.identifier", next: "@pop" }
- ]
- ],
- [
- /(\s*)(<)([\w*\/*]*)(.\w*)(>)/,
- [
- "",
- "string.include.identifier",
- "string.include.identifier",
- "string.include.identifier",
- { token: "string.include.identifier", next: "@pop" }
- ]
- ]
- ],
- table: [
- { include: "@whitespace" },
- [/[()]/, "@brackets"],
- [/[:;]/, "delimiter"],
- [/[01\-*?xXbBrRfFpPnN]/, "variable.predefined"],
- ["endtable", "keyword.endtable", "@pop"]
- ]
- }
- };
- return systemverilog_exports;
- })();
- return moduleExports;
- });
|