@fluster.io/dev
Version:
8 lines (7 loc) • 26.3 kB
JavaScript
const e = 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 ]*(?:[fmnpu]|)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|if|iff|else|case|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|h|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|if|iff|else|case|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|unique|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 ]*\\\\brand(?:|c)\\\\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"}`)), t = [
e
];
export {
t as default
};
//# sourceMappingURL=system-verilog-B0NmSI3m.js.map