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-zA-Z_][a-zA-Z0-9_$]*)[ \\\\t\\\\r\\\\n]*(:)[ \\\\t\\\\r\\\\n]*(assert|assume|cover|restrict)\\\\b\"},\"attributes\":{\"begin\":\"(?|\\\\|=>|->>|\\\\*>|#-#|#=#|&&&\",\"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\\\\r\\\\n]*(#)[ \\\\t\\\\r\\\\n]*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.channel.systemverilog\"},\"2\":{\"name\":\"punctuation.section.parameters.begin\"}},\"end\":\"(\\\\))[ \\\\t\\\\r\\\\n]*(?=;|\\\\(|[a-zA-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-zA-Z_][a-zA-Z0-9_$]*\",\"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\\\\r\\\\n]*(?:\\\\b(output|input|inout|ref)\\\\b[ \\\\t\\\\r\\\\n]*)?(?:\\\\b(localparam|parameter|var|supply[01]|tri|triand|trior|trireg|tri[01]|uwire|wire|wand|wor)\\\\b[ \\\\t\\\\r\\\\n]*)?(?:\\\\b([a-zA-Z_][a-zA-Z0-9_$]*)(::))?(?:([a-zA-Z_][a-zA-Z0-9_$]*)\\\\b[ \\\\t\\\\r\\\\n]*)?(?:\\\\b(signed|unsigned)\\\\b[ \\\\t\\\\r\\\\n]*)?(?:(\\\\[[a-zA-Z0-9_:$\\\\.\\\\-\\\\+\\\\*/%`' \\\\t\\\\r\\\\n\\\\[\\\\]\\\\(\\\\)]*\\\\])[ \\\\t\\\\r\\\\n]*)?(?<^!~\\\\(][ \\\\t\\\\r\\\\n]*)\\\\b([a-zA-Z_][a-zA-Z0-9_$]*)\\\\b[ \\\\t\\\\r\\\\n]*(\\\\[[a-zA-Z0-9_:$\\\\.\\\\-\\\\+\\\\*/%`' \\\\t\\\\r\\\\n\\\\[\\\\]\\\\(\\\\)]*\\\\])?[ \\\\t\\\\r\\\\n]*(?=,|;|=|\\\\)|/|$)\",\"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-zA-Z_][a-zA-Z0-9_$]*\",\"name\":\"variable.other.identifier.systemverilog\"}]},\"sequence\":{\"captures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"entity.name.function.systemverilog\"}},\"match\":\"[ \\\\t\\\\r\\\\n]*\\\\b(sequence)[ \\\\t\\\\r\\\\n]+([a-zA-Z_][a-zA-Z0-9_$]*)\\\\b\",\"name\":\"meta.sequence.systemverilog\"},\"storage-scope\":{\"captures\":{\"1\":{\"name\":\"support.type.scope.systemverilog\"},\"2\":{\"name\":\"keyword.operator.scope.systemverilog\"}},\"match\":\"\\\\b([a-zA-Z_][a-zA-Z0-9_$]*)(::)\",\"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\":\"\\\\\\\\(?:[nt\\\\\\\\\\\"vfa]|[0-7]{3}|x[0-9a-fA-F]{2})\",\"name\":\"constant.character.escape.systemverilog\"},{\"match\":\"%(\\\\d+\\\\$)?['\\\\-+0 #]*[,;:_]?((-?\\\\d+)|\\\\*(-?\\\\d+\\\\$)?)?(\\\\.((-?\\\\d+)|\\\\*(-?\\\\d+\\\\$)?)?)?(hh|h|ll|l|j|z|t|L)?[xXhHdDoObBcClLvVmMpPsStTuUzZeEfFgG%]\",\"name\":\"constant.character.format.placeholder.systemverilog\"},{\"match\":\"%\",\"name\":\"invalid.illegal.placeholder.systemverilog\"},{\"include\":\"#fixme-todo\"}]},{\"begin\":\"(?<=include)[ \\\\t\\\\r\\\\n]*(<)\",\"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\\\\r\\\\n]*\\\\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\\\\r\\\\n]*\\\\b(begin|fork)\\\\b(?:[ \\\\t\\\\r\\\\n]*(:)[ \\\\t\\\\r\\\\n]*([a-zA-Z_][a-zA-Z0-9_$]*))?\",\"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\\\\r\\\\n]*\\\\b(end|endmodule|endinterface|endprogram|endchecker|endclass|endpackage|endconfig|endfunction|endtask|endproperty|endsequence|endgroup|endprimitive|endclocking|endgenerate|join|join_any|join_none)\\\\b(?:[ \\\\t\\\\r\\\\n]*(:)[ \\\\t\\\\r\\\\n]*([a-zA-Z_][a-zA-Z0-9_$]*))?\",\"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-zA-Z_][a-zA-Z0-9_$]*)[ \\\\t\\\\r\\\\n]*(:))?[ \\\\t\\\\r\\\\n]*(coverpoint|cross)[ \\\\t\\\\r\\\\n]+([a-zA-Z_][a-zA-Z0-9_$]*)\",\"name\":\"meta.definition.systemverilog\"},\"sv-definition\":{\"captures\":{\"1\":{\"name\":\"keyword.control.systemverilog\"},\"2\":{\"name\":\"entity.name.type.class.systemverilog\"}},\"match\":\"[ \\\\t\\\\r\\\\n]*\\\\b(primitive|package|constraint|interface|covergroup|program)[ \\\\t\\\\r\\\\n]+\\\\b([a-zA-Z_][a-zA-Z0-9_$]*)\\\\b\",\"name\":\"meta.definition.systemverilog\"},\"sv-local\":{\"captures\":{\"1\":{\"name\":\"keyword.other.systemverilog\"}},\"match\":\"[ \\\\t\\\\r\\\\n]*\\\\b(const|static|protected|virtual|localparam|parameter|local)\\\\b\"},\"sv-option\":{\"captures\":{\"1\":{\"name\":\"keyword.cover.systemverilog\"}},\"match\":\"[ \\\\t\\\\r\\\\n]*\\\\b(option)\\\\.\"},\"sv-rand\":{\"match\":\"[ \\\\t\\\\r\\\\n]*\\\\b(?:rand|randc)\\\\b\",\"name\":\"storage.type.rand.systemverilog\"},\"sv-std\":{\"match\":\"\\\\b(std)\\\\b::\",\"name\":\"support.class.systemverilog\"},\"system-tf\":{\"match\":\"\\\\$[a-zA-Z0-9_$][a-zA-Z0-9_$]*\\\\b\",\"name\":\"support.function.systemverilog\"},\"tables\":{\"begin\":\"[ \\\\t\\\\r\\\\n]*\\\\b(table)\\\\b\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.table.systemverilog.begin\"}},\"end\":\"[ \\\\t\\\\r\\\\n]*\\\\b(endtable)\\\\b\",\"endCaptures\":{\"1\":{\"name\":\"keyword.table.systemverilog.end\"}},\"name\":\"meta.table.systemverilog\",\"patterns\":[{\"include\":\"#comments\"},{\"match\":\"\\\\b[01xXbBrRfFpPnN]\\\\b\",\"name\":\"constant.language.systemverilog\"},{\"match\":\"[-*?]\",\"name\":\"constant.language.systemverilog\"},{\"captures\":{\"1\":{\"name\":\"constant.language.systemverilog\"}},\"match\":\"\\\\(([01xX?]{2})\\\\)\"},{\"match\":\":\",\"name\":\"punctuation.definition.label.systemverilog\"},{\"include\":\"#operators\"},{\"include\":\"#constants\"},{\"include\":\"#strings\"},{\"include\":\"#identifiers\"}]},\"typedef\":{\"begin\":\"[ \\\\t\\\\r\\\\n]*\\\\b(?:(typedef)[ \\\\t\\\\r\\\\n]+)(?:([a-zA-Z_][a-zA-Z0-9_$]*)(?:[ \\\\t\\\\r\\\\n]+\\\\b(signed|unsigned)\\\\b)?(?:[ \\\\t\\\\r\\\\n]*(\\\\[[a-zA-Z0-9_:$\\\\.\\\\-\\\\+\\\\*/%`' \\\\t\\\\r\\\\n\\\\[\\\\]\\\\(\\\\)]*\\\\])?))?(?=[ \\\\t\\\\r\\\\n]*[a-zA-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\\\\r\\\\n]*\\\\b(typedef)[ \\\\t\\\\r\\\\n]+(enum|struct|union(?:[ \\\\t\\\\r\\\\n]+tagged)?|class|interface[ \\\\t\\\\r\\\\n]+class)(?:[ \\\\t\\\\r\\\\n]+(?!packed|signed|unsigned)([a-zA-Z_][a-zA-Z0-9_$]*)?(?:[ \\\\t\\\\r\\\\n]*(\\\\[[a-zA-Z0-9_:$\\\\.\\\\-\\\\+\\\\*/%`' \\\\t\\\\r\\\\n\\\\[\\\\]\\\\(\\\\)]*\\\\])?))?(?:[ \\\\t\\\\r\\\\n]+(packed))?(?:[ \\\\t\\\\r\\\\n]+(signed|unsigned))?(?=[ \\\\t\\\\r\\\\n]*(?:{|$))\",\"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\\\\r\\\\n]*([a-zA-Z_][a-zA-Z0-9_$]*|(?<=^|[ \\\\t\\\\r\\\\n])\\\\\\\\[!-~]+(?=$|[ \\\\t\\\\r\\\\n]))(?:[ \\\\t\\\\r\\\\n]*(\\\\[[a-zA-Z0-9_:$\\\\.\\\\-\\\\+\\\\*/%`' \\\\t\\\\r\\\\n\\\\[\\\\]\\\\(\\\\)]*\\\\])?)[ \\\\t\\\\r\\\\n]*[,;]\",\"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 ]