Files
Tiber365/node_modules/@shikijs/langs/dist/system-verilog.mjs
2025-07-24 18:46:24 +02:00

6 lines
28 KiB
JavaScript

const lang = Object.freeze(JSON.parse("{\"displayName\":\"SystemVerilog\",\"fileTypes\":[\"v\",\"vh\",\"sv\",\"svh\"],\"name\":\"system-verilog\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#strings\"},{\"include\":\"#typedef-enum-struct-union\"},{\"include\":\"#typedef\"},{\"include\":\"#functions\"},{\"include\":\"#keywords\"},{\"include\":\"#tables\"},{\"include\":\"#function-task\"},{\"include\":\"#module-declaration\"},{\"include\":\"#class-declaration\"},{\"include\":\"#enum-struct-union\"},{\"include\":\"#sequence\"},{\"include\":\"#all-types\"},{\"include\":\"#module-parameters\"},{\"include\":\"#module-no-parameters\"},{\"include\":\"#port-net-parameter\"},{\"include\":\"#system-tf\"},{\"include\":\"#assertion\"},{\"include\":\"#bind-directive\"},{\"include\":\"#cast-operator\"},{\"include\":\"#storage-scope\"},{\"include\":\"#attributes\"},{\"include\":\"#imports\"},{\"include\":\"#operators\"},{\"include\":\"#constants\"},{\"include\":\"#identifiers\"},{\"include\":\"#selects\"}],\"repository\":{\"all-types\":{\"patterns\":[{\"include\":\"#built-ins\"},{\"include\":\"#modifiers\"}]},\"assertion\":{\"captures\":{\"1\":{\"name\":\"entity.name.goto-label.php\"},\"2\":{\"name\":\"keyword.operator.systemverilog\"},\"3\":{\"name\":\"keyword.sva.systemverilog\"}},\"match\":\"\\\\b([A-Z_a-z][$0-9A-Z_a-z]*)[\\\\t\\\\n\\\\r ]*(:)[\\\\t\\\\n\\\\r ]*(assert|assume|cover|restrict)\\\\b\"},\"attributes\":{\"begin\":\"(?<!@[\\\\t\\\\n\\\\r ]?)\\\\(\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.attribute.rounds.begin\"}},\"end\":\"\\\\*\\\\)\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.attribute.rounds.end\"}},\"name\":\"meta.attribute.systemverilog\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"keyword.operator.assignment.systemverilog\"}},\"match\":\"([A-Z_a-z][$0-9A-Z_a-z]*)(?:[\\\\t\\\\n\\\\r ]*(=)[\\\\t\\\\n\\\\r ]*)?\"},{\"include\":\"#constants\"},{\"include\":\"#strings\"}]},\"base-grammar\":{\"patterns\":[{\"include\":\"#all-types\"},{\"include\":\"#comments\"},{\"include\":\"#operators\"},{\"include\":\"#constants\"},{\"include\":\"#strings\"},{\"captures\":{\"1\":{\"name\":\"storage.type.interface.systemverilog\"}},\"match\":\"[\\\\t\\\\n\\\\r ]*\\\\b([A-Z_a-z][$0-9A-Z_a-z]*)[\\\\t\\\\n\\\\r ]+[A-Z_a-z][\\\\t\\\\n ,0-9=A-Z_a-z]*\"},{\"include\":\"#storage-scope\"}]},\"bind-directive\":{\"captures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"entity.name.type.module.systemverilog\"}},\"match\":\"[\\\\t\\\\n\\\\r ]*\\\\b(bind)[\\\\t\\\\n\\\\r ]+([A-Z_a-z][$.0-9A-Z_a-z]*)\\\\b\",\"name\":\"meta.definition.systemverilog\"},\"built-ins\":{\"patterns\":[{\"match\":\"[\\\\t\\\\n\\\\r ]*\\\\b(bit|logic|reg)\\\\b\",\"name\":\"storage.type.vector.systemverilog\"},{\"match\":\"[\\\\t\\\\n\\\\r ]*\\\\b(byte|shortint|int|longint|integer|time|genvar)\\\\b\",\"name\":\"storage.type.atom.systemverilog\"},{\"match\":\"[\\\\t\\\\n\\\\r ]*\\\\b(shortreal|real|realtime)\\\\b\",\"name\":\"storage.type.notint.systemverilog\"},{\"match\":\"[\\\\t\\\\n\\\\r ]*\\\\b(supply[01]|tri|triand|trior|trireg|tri[01]|uwire|wire|wand|wor)\\\\b\",\"name\":\"storage.type.net.systemverilog\"},{\"match\":\"[\\\\t\\\\n\\\\r ]*\\\\b(genvar|var|void|signed|unsigned|string|const|process)\\\\b\",\"name\":\"storage.type.built-in.systemverilog\"},{\"match\":\"[\\\\t\\\\n\\\\r ]*\\\\b(uvm_(?:root|transaction|component|monitor|driver|test|env|object|agent|sequence_base|sequence_item|sequence_state|sequencer|sequencer_base|sequence|component_registry|analysis_imp|analysis_port|analysis_export|config_db|active_passive_enum|phase|verbosity|tlm_analysis_fifo|tlm_fifo|report_server|objection|recorder|domain|reg_field|reg_block|reg|bitstream_t|radix_enum|printer|packer|comparer|scope_stack))\\\\b\",\"name\":\"storage.type.uvm.systemverilog\"}]},\"cast-operator\":{\"captures\":{\"1\":{\"patterns\":[{\"include\":\"#built-ins\"},{\"include\":\"#constants\"},{\"match\":\"[A-Z_a-z][$0-9A-Z_a-z]*\",\"name\":\"storage.type.user-defined.systemverilog\"}]},\"2\":{\"name\":\"keyword.operator.cast.systemverilog\"}},\"match\":\"[\\\\t\\\\n\\\\r ]*([0-9]+|[A-Z_a-z][$0-9A-Z_a-z]*)(')(?=\\\\()\",\"name\":\"meta.cast.systemverilog\"},\"class-declaration\":{\"begin\":\"[\\\\t\\\\n\\\\r ]*\\\\b(virtual[\\\\t\\\\n\\\\r ]+)?(class)(?:[\\\\t\\\\n\\\\r ]+((?:st|autom)atic))?[\\\\t\\\\n\\\\r ]+([A-Z_a-z][$0-:A-Z_a-z]*)(?:[\\\\t\\\\n\\\\r ]+(extends|implements)[\\\\t\\\\n\\\\r ]+([A-Z_a-z][$0-:A-Z_a-z]*))?\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.systemverilog\"},\"2\":{\"name\":\"storage.type.class.systemverilog\"},\"3\":{\"name\":\"storage.modifier.systemverilog\"},\"4\":{\"name\":\"entity.name.type.class.systemverilog\"},\"5\":{\"name\":\"keyword.control.systemverilog\"},\"6\":{\"name\":\"entity.name.type.class.systemverilog\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.class.end.systemverilog\"}},\"name\":\"meta.class.systemverilog\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"entity.name.type.class.systemverilog\"},\"3\":{\"name\":\"entity.name.type.class.systemverilog\"}},\"match\":\"[\\\\t\\\\n\\\\r ]+\\\\b(extends|implements)[\\\\t\\\\n\\\\r ]+([A-Z_a-z][$0-:A-Z_a-z]*)(?:[\\\\t\\\\n\\\\r ]*,[\\\\t\\\\n\\\\r ]*([A-Z_a-z][$0-:A-Z_a-z]*))*\"},{\"captures\":{\"1\":{\"name\":\"storage.type.userdefined.systemverilog\"},\"2\":{\"name\":\"keyword.operator.param.systemverilog\"}},\"match\":\"[\\\\t\\\\n\\\\r ]+\\\\b([A-Z_a-z][$0-9A-Z_a-z]*)[\\\\t\\\\n\\\\r ]*(#)\\\\(\",\"name\":\"meta.typedef.class.systemverilog\"},{\"include\":\"#port-net-parameter\"},{\"include\":\"#base-grammar\"},{\"include\":\"#module-binding\"},{\"include\":\"#identifiers\"}]},\"comments\":{\"patterns\":[{\"begin\":\"/\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.systemverilog\"}},\"end\":\"\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.systemverilog\"}},\"name\":\"comment.block.systemverilog\",\"patterns\":[{\"include\":\"#fixme-todo\"}]},{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.systemverilog\"}},\"end\":\"$\\\\n?\",\"name\":\"comment.line.double-slash.systemverilog\",\"patterns\":[{\"include\":\"#fixme-todo\"}]}]},\"compiler-directives\":{\"name\":\"meta.preprocessor.systemverilog\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.directive.systemverilog\"},\"2\":{\"name\":\"string.regexp.systemverilog\"}},\"match\":\"(`)(else|endif|endcelldefine|celldefine|nounconnected_drive|resetall|undefineall|end_keywords|__FILE__|__LINE__)\\\\b\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.directive.systemverilog\"},\"2\":{\"name\":\"string.regexp.systemverilog\"},\"3\":{\"name\":\"variable.other.constant.preprocessor.systemverilog\"}},\"match\":\"(`)(ifdef|ifndef|elsif|define|undef|pragma)[\\\\t\\\\n\\\\r ]+([A-Z_a-z][$0-9A-Z_a-z]*)\\\\b\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.directive.systemverilog\"},\"2\":{\"name\":\"string.regexp.systemverilog\"}},\"match\":\"(`)(include|timescale|default_nettype|unconnected_drive|line|begin_keywords)\\\\b\"},{\"begin\":\"(`)(protected)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.directive.systemverilog\"},\"2\":{\"name\":\"string.regexp.systemverilog\"}},\"end\":\"(`)(endprotected)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.directive.systemverilog\"},\"2\":{\"name\":\"string.regexp.systemverilog\"}},\"name\":\"meta.crypto.systemverilog\"},{\"captures\":{\"1\":{\"name\":\"punctuation.definition.directive.systemverilog\"},\"2\":{\"name\":\"variable.other.constant.preprocessor.systemverilog\"}},\"match\":\"(`)([A-Z_a-z][$0-9A-Z_a-z]*)\\\\b\"}]},\"constants\":{\"patterns\":[{\"match\":\"(\\\\b[1-9][0-9_]*)?'([Ss]?[Bb][\\\\t\\\\n\\\\r ]*[01?XZxz][01?XZ_xz]*|[Ss]?[Oo][\\\\t\\\\n\\\\r ]*[0-7?XZxz][0-7?XZ_xz]*|[Ss]?[Dd][\\\\t\\\\n\\\\r ]*[0-9?XZxz][0-9?XZ_xz]*|[Ss]?[Hh][\\\\t\\\\n\\\\r ]*[?XZxz\\\\h][?XZ_xz\\\\h]*)(([Ee])([-+])?[0-9]+)?(?!['\\\\w])\",\"name\":\"constant.numeric.systemverilog\"},{\"match\":\"'[01XZxz]\",\"name\":\"constant.numeric.bit.systemverilog\"},{\"match\":\"\\\\b\\\\d[._\\\\d]*(?<!\\\\.)[Ee][-+]?[0-9]+\\\\b\",\"name\":\"constant.numeric.exp.systemverilog\"},{\"match\":\"\\\\b\\\\d[._\\\\d]*(?![.\\\\d]|[\\\\t\\\\n\\\\r ]*(?:[Ee]|fs|ps|ns|us|ms|s))\\\\b\",\"name\":\"constant.numeric.decimal.systemverilog\"},{\"match\":\"\\\\b\\\\d[.\\\\d]*[\\\\t\\\\n\\\\r ]*(?:[fnpu]|m?)s\\\\b\",\"name\":\"constant.numeric.time.systemverilog\"},{\"include\":\"#compiler-directives\"},{\"match\":\"\\\\b(?:this|super|null)\\\\b\",\"name\":\"constant.language.systemverilog\"},{\"match\":\"\\\\b([A-Z][0-9A-Z_]*)\\\\b\",\"name\":\"constant.other.net.systemverilog\"},{\"match\":\"\\\\b(?<!\\\\.)([0-9A-Z_]+)(?!\\\\.)\\\\b\",\"name\":\"constant.numeric.parameter.uppercase.systemverilog\"},{\"match\":\"\\\\.\\\\*\",\"name\":\"keyword.operator.quantifier.regexp\"}]},\"enum-struct-union\":{\"begin\":\"[\\\\t\\\\n\\\\r ]*\\\\b(enum|struct|union(?:[\\\\t\\\\n\\\\r ]+tagged)?|class|interface[\\\\t\\\\n\\\\r ]+class)(?:[\\\\t\\\\n\\\\r ]+(?!(?:pack|sign|unsign)ed)([A-Z_a-z][$0-9A-Z_a-z]*)?[\\\\t\\\\n\\\\r ]*(\\\\[[]\\\\t\\\\n\\\\r $%'-+\\\\--:A-\\\\[_-z]*])?)?(?:[\\\\t\\\\n\\\\r ]+(packed))?(?:[\\\\t\\\\n\\\\r ]+((?:|un)signed))?(?=[\\\\t\\\\n\\\\r ]*(?:\\\\{|$))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"patterns\":[{\"include\":\"#built-ins\"}]},\"3\":{\"patterns\":[{\"include\":\"#selects\"}]},\"4\":{\"name\":\"storage.modifier.systemverilog\"},\"5\":{\"name\":\"storage.modifier.systemverilog\"}},\"end\":\"(?<=})[\\\\t\\\\n\\\\r ]*([A-Z_a-z][$0-9A-Z_a-z]*|(?<=^|[\\\\t\\\\n\\\\r ])\\\\\\\\[!-~]+(?=$|[\\\\t\\\\n\\\\r ]))[\\\\t\\\\n\\\\r ]*(\\\\[[]\\\\t\\\\n\\\\r $%'-+\\\\--:A-\\\\[_-z]*])?[\\\\t\\\\n\\\\r ]*[,;]\",\"endCaptures\":{\"1\":{\"patterns\":[{\"include\":\"#identifiers\"}]},\"2\":{\"patterns\":[{\"include\":\"#selects\"}]}},\"name\":\"meta.enum-struct-union.systemverilog\",\"patterns\":[{\"include\":\"#keywords\"},{\"include\":\"#base-grammar\"},{\"include\":\"#identifiers\"}]},\"fixme-todo\":{\"patterns\":[{\"match\":\"(?i:fixme)\",\"name\":\"invalid.broken.fixme.systemverilog\"},{\"match\":\"(?i:todo)\",\"name\":\"invalid.unimplemented.todo.systemverilog\"}]},\"function-task\":{\"begin\":\"[\\\\t\\\\n\\\\r ]*(?:\\\\b(virtual)[\\\\t\\\\n\\\\r ]+)?\\\\b(function|task)\\\\b(?:[\\\\t\\\\n\\\\r ]+\\\\b((?:st|autom)atic)\\\\b)?\",\"beginCaptures\":{\"1\":{\"name\":\"storage.modifier.systemverilog\"},\"2\":{\"name\":\"storage.type.function.systemverilog\"},\"3\":{\"name\":\"storage.modifier.systemverilog\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.function.end.systemverilog\"}},\"name\":\"meta.function.systemverilog\",\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.type.scope.systemverilog\"},\"2\":{\"name\":\"keyword.operator.scope.systemverilog\"},\"3\":{\"patterns\":[{\"include\":\"#built-ins\"},{\"match\":\"[A-Z_a-z][$0-9A-Z_a-z]*\",\"name\":\"storage.type.user-defined.systemverilog\"}]},\"4\":{\"patterns\":[{\"include\":\"#modifiers\"}]},\"5\":{\"patterns\":[{\"include\":\"#selects\"}]},\"6\":{\"name\":\"entity.name.function.systemverilog\"}},\"match\":\"[\\\\t\\\\n\\\\r ]*(?:\\\\b([A-Z_a-z][$0-9A-Z_a-z]*)(::))?([A-Z_a-z][$0-9A-Z_a-z]*\\\\b[\\\\t\\\\n\\\\r ]+)?(?:\\\\b((?:|un)signed)\\\\b[\\\\t\\\\n\\\\r ]*)?(?:(\\\\[[]\\\\t\\\\n\\\\r $%'-+\\\\--:A-\\\\[_-z]*])[\\\\t\\\\n\\\\r ]*)?\\\\b([A-Z_a-z][$0-9A-Z_a-z]*)\\\\b[\\\\t\\\\n\\\\r ]*(?=[(;])\"},{\"include\":\"#keywords\"},{\"include\":\"#port-net-parameter\"},{\"include\":\"#base-grammar\"},{\"include\":\"#identifiers\"}]},\"functions\":{\"match\":\"[\\\\t\\\\n\\\\r ]*\\\\b(?!while|for|iff??|else|casex??|casez)([A-Z_a-z][$0-9A-Z_a-z]*)(?=[\\\\t\\\\n\\\\r ]*\\\\()\",\"name\":\"entity.name.function.systemverilog\"},\"identifiers\":{\"patterns\":[{\"match\":\"\\\\b[A-Z_a-z][$0-9A-Z_a-z]*\\\\b\",\"name\":\"variable.other.identifier.systemverilog\"},{\"match\":\"(?<=^|[\\\\t\\\\n\\\\r ])\\\\\\\\[!-~]+(?=$|[\\\\t\\\\n\\\\r ])\",\"name\":\"string.regexp.identifier.systemverilog\"}]},\"imports\":{\"captures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"support.type.scope.systemverilog\"},\"3\":{\"name\":\"keyword.operator.scope.systemverilog\"},\"4\":{\"patterns\":[{\"include\":\"#operators\"},{\"include\":\"#identifiers\"}]}},\"match\":\"[\\\\t\\\\n\\\\r ]*\\\\b((?:im|ex)port)[\\\\t\\\\n\\\\r ]+([A-Z_a-z][$0-9A-Z_a-z]*|\\\\*)[\\\\t\\\\n\\\\r ]*(::)[\\\\t\\\\n\\\\r ]*([A-Z_a-z][$0-9A-Z_a-z]*|\\\\*)[\\\\t\\\\n\\\\r ]*([,;])\",\"name\":\"meta.import.systemverilog\"},\"keywords\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"keyword.other.systemverilog\"}},\"match\":\"[\\\\t\\\\n\\\\r ]*\\\\b(edge|negedge|posedge|cell|config|defparam|design|disable|endgenerate|endspecify|event|generate|ifnone|incdir|instance|liblist|library|noshowcancelled|pulsestyle_onevent|pulsestyle_ondetect|scalared|showcancelled|specify|specparam|use|vectored)\\\\b\"},{\"include\":\"#sv-control\"},{\"include\":\"#sv-control-begin\"},{\"include\":\"#sv-control-end\"},{\"include\":\"#sv-definition\"},{\"include\":\"#sv-cover-cross\"},{\"include\":\"#sv-std\"},{\"include\":\"#sv-option\"},{\"include\":\"#sv-local\"},{\"include\":\"#sv-rand\"}]},\"modifiers\":{\"match\":\"[\\\\t\\\\n\\\\r ]*\\\\b(?:(?:un)?signed|packed|small|medium|large|supply[01]|strong[01]|pull[01]|weak[01]|highz[01])\\\\b\",\"name\":\"storage.modifier.systemverilog\"},\"module-binding\":{\"begin\":\"\\\\.([A-Z_a-z][$0-9A-Z_a-z]*)[\\\\t\\\\n\\\\r ]*\\\\(\",\"beginCaptures\":{\"1\":{\"name\":\"support.function.port.systemverilog\"}},\"end\":\"\\\\),?\",\"name\":\"meta.port.binding.systemverilog\",\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#comments\"},{\"include\":\"#operators\"},{\"include\":\"#strings\"},{\"include\":\"#constants\"},{\"include\":\"#storage-scope\"},{\"include\":\"#cast-operator\"},{\"include\":\"#system-tf\"},{\"match\":\"\\\\bvirtual\\\\b\",\"name\":\"storage.modifier.systemverilog\"},{\"include\":\"#identifiers\"}]},\"module-declaration\":{\"begin\":\"[\\\\t\\\\n\\\\r ]*\\\\b((?:macro)?module|interface|program|package|modport)[\\\\t\\\\n\\\\r ]+(?:((?:st|autom)atic)[\\\\t\\\\n\\\\r ]+)?([A-Z_a-z][$0-9A-Z_a-z]*)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"storage.modifier.systemverilog\"},\"3\":{\"name\":\"entity.name.type.module.systemverilog\"}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.module.end.systemverilog\"}},\"name\":\"meta.module.systemverilog\",\"patterns\":[{\"include\":\"#parameters\"},{\"include\":\"#port-net-parameter\"},{\"include\":\"#imports\"},{\"include\":\"#base-grammar\"},{\"include\":\"#system-tf\"},{\"include\":\"#identifiers\"}]},\"module-no-parameters\":{\"begin\":\"[\\\\t\\\\n\\\\r ]*\\\\b(?:(bind|pullup|pulldown)[\\\\t\\\\n\\\\r ]+(?:([A-Z_a-z][$.0-9A-Z_a-z]*)[\\\\t\\\\n\\\\r ]+)?)?(\\\\b(?:and|nand|or|nor|xor|xnor|buf|not|bufif[01]|notif[01]|r?[cnp]mos|r?tran|r?tranif[01])\\\\b|[A-Z_a-z][$0-9A-Z_a-z]*)[\\\\t\\\\n\\\\r ]+(?!intersect|and|or|throughout|within)([A-Z_a-z][$0-9A-Z_a-z]*)[\\\\t\\\\n\\\\r ]*(\\\\[[]\\\\t\\\\n\\\\r $%'-+\\\\--:A-\\\\[_-z]*])?[\\\\t\\\\n\\\\r ]*(?=\\\\(|$)(?!;)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"entity.name.type.module.systemverilog\"},\"3\":{\"name\":\"entity.name.type.module.systemverilog\"},\"4\":{\"name\":\"variable.other.module.systemverilog\"},\"5\":{\"patterns\":[{\"include\":\"#selects\"}]}},\"end\":\"\\\\)(?:[\\\\t\\\\n\\\\r ]*(;))?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.module.instantiation.end.systemverilog\"}},\"name\":\"meta.module.no_parameters.systemverilog\",\"patterns\":[{\"include\":\"#module-binding\"},{\"include\":\"#comments\"},{\"include\":\"#operators\"},{\"include\":\"#constants\"},{\"include\":\"#strings\"},{\"include\":\"#port-net-parameter\"},{\"match\":\"\\\\b([A-Z_a-z][$0-9A-Z_a-z]*)\\\\b(?=[\\\\t\\\\n\\\\r ]*(\\\\(|$))\",\"name\":\"variable.other.module.systemverilog\"},{\"include\":\"#identifiers\"}]},\"module-parameters\":{\"begin\":\"[\\\\t\\\\n\\\\r ]*\\\\b(?:(bind)[\\\\t\\\\n\\\\r ]+([A-Z_a-z][$.0-9A-Z_a-z]*)[\\\\t\\\\n\\\\r ]+)?([A-Z_a-z][$0-9A-Z_a-z]*)[\\\\t\\\\n\\\\r ]+(?!intersect|and|or|throughout|within)(?=#[^#])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"entity.name.type.module.systemverilog\"},\"3\":{\"name\":\"entity.name.type.module.systemverilog\"}},\"end\":\"\\\\)(?:[\\\\t\\\\n\\\\r ]*(;))?\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.module.instantiation.end.systemverilog\"}},\"name\":\"meta.module.parameters.systemverilog\",\"patterns\":[{\"match\":\"\\\\b([A-Z_a-z][$0-9A-Z_a-z]*)\\\\b(?=[\\\\t\\\\n\\\\r ]*\\\\()\",\"name\":\"variable.other.module.systemverilog\"},{\"include\":\"#module-binding\"},{\"include\":\"#parameters\"},{\"include\":\"#comments\"},{\"include\":\"#operators\"},{\"include\":\"#constants\"},{\"include\":\"#strings\"},{\"include\":\"#port-net-parameter\"},{\"match\":\"\\\\b([A-Z_a-z][$0-9A-Z_a-z]*)\\\\b(?=[\\\\t\\\\n\\\\r ]*$)\",\"name\":\"variable.other.module.systemverilog\"},{\"include\":\"#identifiers\"}]},\"operators\":{\"patterns\":[{\"match\":\"\\\\b(?:dist|inside|with|intersect|and|or|throughout|within|first_match)\\\\b|:=|:/|\\\\|->|\\\\|=>|->>|\\\\*>|#-#|#=#|&&&\",\"name\":\"keyword.operator.logical.systemverilog\"},{\"match\":\"@|##?|->|<->\",\"name\":\"keyword.operator.channel.systemverilog\"},{\"match\":\"(?:[-%\\\\&*+/^|]|>>>?|<<<?|<?)=\",\"name\":\"keyword.operator.assignment.systemverilog\"},{\"match\":\"\\\\+\\\\+\",\"name\":\"keyword.operator.increment.systemverilog\"},{\"match\":\"--\",\"name\":\"keyword.operator.decrement.systemverilog\"},{\"match\":\"[-+]|\\\\*\\\\*|[%*/]\",\"name\":\"keyword.operator.arithmetic.systemverilog\"},{\"match\":\"!|&&|\\\\|\\\\|\",\"name\":\"keyword.operator.logical.systemverilog\"},{\"match\":\"<<<?|>>>?\",\"name\":\"keyword.operator.bitwise.shift.systemverilog\"},{\"match\":\"~&|~\\\\|?|\\\\^~|~\\\\^|[\\\\&^{|]|'\\\\{|[:?}]\",\"name\":\"keyword.operator.bitwise.systemverilog\"},{\"match\":\"<=?|>=?|==\\\\?|!=\\\\?|===|!==|==|!=\",\"name\":\"keyword.operator.comparison.systemverilog\"}]},\"parameters\":{\"begin\":\"[\\\\t\\\\n\\\\r ]*(#)[\\\\t\\\\n\\\\r ]*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.channel.systemverilog\"},\"2\":{\"name\":\"punctuation.section.parameters.begin\"}},\"end\":\"(\\\\))[\\\\t\\\\n\\\\r ]*(?=[(;A-Z\\\\\\\\_a-z]|$)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.section.parameters.end\"}},\"name\":\"meta.parameters.systemverilog\",\"patterns\":[{\"include\":\"#port-net-parameter\"},{\"include\":\"#comments\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#strings\"},{\"include\":\"#system-tf\"},{\"include\":\"#functions\"},{\"match\":\"\\\\bvirtual\\\\b\",\"name\":\"storage.modifier.systemverilog\"},{\"include\":\"#module-binding\"}]},\"port-net-parameter\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"support.type.direction.systemverilog\"},\"2\":{\"name\":\"storage.type.net.systemverilog\"},\"3\":{\"name\":\"support.type.scope.systemverilog\"},\"4\":{\"name\":\"keyword.operator.scope.systemverilog\"},\"5\":{\"patterns\":[{\"include\":\"#built-ins\"},{\"match\":\"[A-Z_a-z][$0-9A-Z_a-z]*\",\"name\":\"storage.type.user-defined.systemverilog\"}]},\"6\":{\"patterns\":[{\"include\":\"#modifiers\"}]},\"7\":{\"patterns\":[{\"include\":\"#selects\"}]},\"8\":{\"patterns\":[{\"include\":\"#constants\"},{\"include\":\"#identifiers\"}]},\"9\":{\"patterns\":[{\"include\":\"#selects\"}]}},\"match\":\",?[\\\\t\\\\n\\\\r ]*(?:\\\\b(output|input|inout|ref)\\\\b[\\\\t\\\\n\\\\r ]*)?(?:\\\\b(localparam|parameter|var|supply[01]|tri|triand|trior|trireg|tri[01]|uwire|wire|wand|wor)\\\\b[\\\\t\\\\n\\\\r ]*)?(?:\\\\b([A-Z_a-z][$0-9A-Z_a-z]*)(::))?(?:([A-Z_a-z][$0-9A-Z_a-z]*)\\\\b[\\\\t\\\\n\\\\r ]*)?(?:\\\\b((?:|un)signed)\\\\b[\\\\t\\\\n\\\\r ]*)?(?:(\\\\[[]\\\\t\\\\n\\\\r $%'-+\\\\--:A-\\\\[_-z]*])[\\\\t\\\\n\\\\r ]*)?(?<!(?<!#)[-!%\\\\&(*+/:<-?^|~][\\\\t\\\\n\\\\r ]*)\\\\b([A-Z_a-z][$0-9A-Z_a-z]*)\\\\b[\\\\t\\\\n\\\\r ]*(\\\\[[]\\\\t\\\\n\\\\r $%'-+\\\\--:A-\\\\[_-z]*])?[\\\\t\\\\n\\\\r ]*(?=[),/;=]|$)\",\"name\":\"meta.port-net-parameter.declaration.systemverilog\"}]},\"selects\":{\"begin\":\"\\\\[\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.slice.brackets.begin\"}},\"end\":\"]\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.slice.brackets.end\"}},\"name\":\"meta.brackets.select.systemverilog\",\"patterns\":[{\"match\":\"\\\\$(?![a-z])\",\"name\":\"constant.language.systemverilog\"},{\"include\":\"#system-tf\"},{\"include\":\"#constants\"},{\"include\":\"#operators\"},{\"include\":\"#cast-operator\"},{\"include\":\"#storage-scope\"},{\"match\":\"[A-Z_a-z][$0-9A-Z_a-z]*\",\"name\":\"variable.other.identifier.systemverilog\"}]},\"sequence\":{\"captures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"entity.name.function.systemverilog\"}},\"match\":\"[\\\\t\\\\n\\\\r ]*\\\\b(sequence)[\\\\t\\\\n\\\\r ]+([A-Z_a-z][$0-9A-Z_a-z]*)\\\\b\",\"name\":\"meta.sequence.systemverilog\"},\"storage-scope\":{\"captures\":{\"1\":{\"name\":\"support.type.scope.systemverilog\"},\"2\":{\"name\":\"keyword.operator.scope.systemverilog\"}},\"match\":\"\\\\b([A-Z_a-z][$0-9A-Z_a-z]*)(::)\",\"name\":\"meta.scope.systemverilog\"},\"strings\":{\"patterns\":[{\"begin\":\"`?\\\"\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.begin.systemverilog\"}},\"end\":\"\\\"`?\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.systemverilog\"}},\"name\":\"string.quoted.double.systemverilog\",\"patterns\":[{\"match\":\"\\\\\\\\(?:[\\\"\\\\\\\\afntv]|[0-7]{3}|x\\\\h{2})\",\"name\":\"constant.character.escape.systemverilog\"},{\"match\":\"%(\\\\d+\\\\$)?[- #'+0]*[,:;_]?((-?\\\\d+)|\\\\*(-?\\\\d+\\\\$)?)?(\\\\.((-?\\\\d+)|\\\\*(-?\\\\d+\\\\$)?)?)?(hh?|ll|[Ljltz])?[%B-HLMOPS-VXZb-hlmops-vxz]\",\"name\":\"constant.character.format.placeholder.systemverilog\"},{\"match\":\"%\",\"name\":\"invalid.illegal.placeholder.systemverilog\"},{\"include\":\"#fixme-todo\"}]},{\"begin\":\"(?<=include)[\\\\t\\\\n\\\\r ]*(<)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.string.begin.systemverilog\"}},\"end\":\">\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.string.end.systemverilog\"}},\"name\":\"string.quoted.other.lt-gt.include.systemverilog\"}]},\"sv-control\":{\"captures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"}},\"match\":\"[\\\\t\\\\n\\\\r ]*\\\\b(initial|always|always_comb|always_ff|always_latch|final|assign|deassign|force|release|wait|forever|repeat|alias|while|for|iff??|else|casex??|casez|default|endcase|return|break|continue|do|foreach|clocking|coverpoint|property|bins|binsof|illegal_bins|ignore_bins|randcase|matches|solve|before|expect|cross|ref|srandom|struct|chandle|tagged|extern|throughout|timeprecision|timeunit|priority|type|union|wait_order|triggered|randsequence|context|pure|wildcard|new|forkjoin|unique0??|priority)\\\\b\"},\"sv-control-begin\":{\"captures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"punctuation.definition.label.systemverilog\"},\"3\":{\"name\":\"entity.name.section.systemverilog\"}},\"match\":\"[\\\\t\\\\n\\\\r ]*\\\\b(begin|fork)\\\\b(?:[\\\\t\\\\n\\\\r ]*(:)[\\\\t\\\\n\\\\r ]*([A-Z_a-z][$0-9A-Z_a-z]*))?\",\"name\":\"meta.item.begin.systemverilog\"},\"sv-control-end\":{\"captures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"punctuation.definition.label.systemverilog\"},\"3\":{\"name\":\"entity.name.section.systemverilog\"}},\"match\":\"[\\\\t\\\\n\\\\r ]*\\\\b(end|endmodule|endinterface|endprogram|endchecker|endclass|endpackage|endconfig|endfunction|endtask|endproperty|endsequence|endgroup|endprimitive|endclocking|endgenerate|join|join_any|join_none)\\\\b(?:[\\\\t\\\\n\\\\r ]*(:)[\\\\t\\\\n\\\\r ]*([A-Z_a-z][$0-9A-Z_a-z]*))?\",\"name\":\"meta.item.end.systemverilog\"},\"sv-cover-cross\":{\"captures\":{\"2\":{\"name\":\"entity.name.type.class.systemverilog\"},\"3\":{\"name\":\"keyword.operator.other.systemverilog\"},\"4\":{\"name\":\"keyword.control.systemverilog\"}},\"match\":\"(([A-Z_a-z][$0-9A-Z_a-z]*)[\\\\t\\\\n\\\\r ]*(:))?[\\\\t\\\\n\\\\r ]*(c(?:overpoint|ross))[\\\\t\\\\n\\\\r ]+([A-Z_a-z][$0-9A-Z_a-z]*)\",\"name\":\"meta.definition.systemverilog\"},\"sv-definition\":{\"captures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"entity.name.type.class.systemverilog\"}},\"match\":\"[\\\\t\\\\n\\\\r ]*\\\\b(primitive|package|constraint|interface|covergroup|program)[\\\\t\\\\n\\\\r ]+\\\\b([A-Z_a-z][$0-9A-Z_a-z]*)\\\\b\",\"name\":\"meta.definition.systemverilog\"},\"sv-local\":{\"captures\":{\"1\":{\"name\":\"keyword.other.systemverilog\"}},\"match\":\"[\\\\t\\\\n\\\\r ]*\\\\b(const|static|protected|virtual|localparam|parameter|local)\\\\b\"},\"sv-option\":{\"captures\":{\"1\":{\"name\":\"keyword.cover.systemverilog\"}},\"match\":\"[\\\\t\\\\n\\\\r ]*\\\\b(option)\\\\.\"},\"sv-rand\":{\"match\":\"[\\\\t\\\\n\\\\r ]*\\\\brandc??\\\\b\",\"name\":\"storage.type.rand.systemverilog\"},\"sv-std\":{\"match\":\"\\\\b(std)\\\\b::\",\"name\":\"support.class.systemverilog\"},\"system-tf\":{\"match\":\"\\\\$[$0-9A-Z_a-z][$0-9A-Z_a-z]*\\\\b\",\"name\":\"support.function.systemverilog\"},\"tables\":{\"begin\":\"[\\\\t\\\\n\\\\r ]*\\\\b(table)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.table.systemverilog.begin\"}},\"end\":\"[\\\\t\\\\n\\\\r ]*\\\\b(endtable)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.table.systemverilog.end\"}},\"name\":\"meta.table.systemverilog\",\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"\\\\b[01BFNPRXbfnprx]\\\\b\",\"name\":\"constant.language.systemverilog\"},{\"match\":\"[-*?]\",\"name\":\"constant.language.systemverilog\"},{\"captures\":{\"1\":{\"name\":\"constant.language.systemverilog\"}},\"match\":\"\\\\(([01?Xx]{2})\\\\)\"},{\"match\":\":\",\"name\":\"punctuation.definition.label.systemverilog\"},{\"include\":\"#operators\"},{\"include\":\"#constants\"},{\"include\":\"#strings\"},{\"include\":\"#identifiers\"}]},\"typedef\":{\"begin\":\"[\\\\t\\\\n\\\\r ]*\\\\b(typedef)[\\\\t\\\\n\\\\r ]+(?:([A-Z_a-z][$0-9A-Z_a-z]*)(?:[\\\\t\\\\n\\\\r ]+\\\\b((?:|un)signed)\\\\b)?[\\\\t\\\\n\\\\r ]*(\\\\[[]\\\\t\\\\n\\\\r $%'-+\\\\--:A-\\\\[_-z]*])?)?(?=[\\\\t\\\\n\\\\r ]*[A-Z\\\\\\\\_a-z])\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"patterns\":[{\"include\":\"#built-ins\"},{\"match\":\"\\\\bvirtual\\\\b\",\"name\":\"storage.modifier.systemverilog\"}]},\"3\":{\"patterns\":[{\"include\":\"#modifiers\"}]},\"4\":{\"patterns\":[{\"include\":\"#selects\"}]}},\"end\":\";\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.typedef.end.systemverilog\"}},\"name\":\"meta.typedef.systemverilog\",\"patterns\":[{\"include\":\"#identifiers\"},{\"include\":\"#selects\"}]},\"typedef-enum-struct-union\":{\"begin\":\"[\\\\t\\\\n\\\\r ]*\\\\b(typedef)[\\\\t\\\\n\\\\r ]+(enum|struct|union(?:[\\\\t\\\\n\\\\r ]+tagged)?|class|interface[\\\\t\\\\n\\\\r ]+class)(?:[\\\\t\\\\n\\\\r ]+(?!(?:pack|sign|unsign)ed)([A-Z_a-z][$0-9A-Z_a-z]*)?[\\\\t\\\\n\\\\r ]*(\\\\[[]\\\\t\\\\n\\\\r $%'-+\\\\--:A-\\\\[_-z]*])?)?(?:[\\\\t\\\\n\\\\r ]+(packed))?(?:[\\\\t\\\\n\\\\r ]+((?:|un)signed))?(?=[\\\\t\\\\n\\\\r ]*(?:\\\\{|$))\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"keyword.control.systemverilog\"},\"3\":{\"patterns\":[{\"include\":\"#built-ins\"}]},\"4\":{\"patterns\":[{\"include\":\"#selects\"}]},\"5\":{\"name\":\"storage.modifier.systemverilog\"},\"6\":{\"name\":\"storage.modifier.systemverilog\"}},\"end\":\"(?<=})[\\\\t\\\\n\\\\r ]*([A-Z_a-z][$0-9A-Z_a-z]*|(?<=^|[\\\\t\\\\n\\\\r ])\\\\\\\\[!-~]+(?=$|[\\\\t\\\\n\\\\r ]))[\\\\t\\\\n\\\\r ]*(\\\\[[]\\\\t\\\\n\\\\r $%'-+\\\\--:A-\\\\[_-z]*])?[\\\\t\\\\n\\\\r ]*[,;]\",\"endCaptures\":{\"1\":{\"name\":\"storage.type.systemverilog\"},\"2\":{\"patterns\":[{\"include\":\"#selects\"}]}},\"name\":\"meta.typedef-enum-struct-union.systemverilog\",\"patterns\":[{\"include\":\"#port-net-parameter\"},{\"include\":\"#keywords\"},{\"include\":\"#base-grammar\"},{\"include\":\"#identifiers\"}]}},\"scopeName\":\"source.systemverilog\"}"))
export default [
lang
]