{"name":"TL Verilog","scopeName":"source.tlverilog","patterns":[{"name":"keyword.other.tlverilog","match":"\\b(automatic|cell|config|deassign|defparam|design|disable|edge|endconfig|endgenerate|endspecify|endtable|endtask|event|generate|genvar|ifnone|incdir|instance|liblist|library|localparam|macromodule|negedge|noshowcancelled|posedge|pulsestyle_onevent|pulsestyle_ondetect|real|realtime|scalared|showcancelled|specify|specparam|table|task|time|use|vectored|new)\\b"},{"name":"entity.name.stage.tlverilog","match":"@\\b(\\d+)\\b"},{"name":"entity.name.pipe.tlverilog","match":"\\|\\b([a-zA-Z0-9_]+)\\b"},{"name":"invalid.illegal.tlverilog","match":"\\t"},{"name":"entity.name.hierarchy.tlverilog","match":"\u003e([a-zA-Z][a-zA-Z0-9_]+)"},{"name":"entity.name.hierarchy.tlverilog","match":"\\/([a-zA-Z0-9_]+)"},{"name":"keyword.control.conditional.tlverilog","match":"\\?[\\$\\*][a-zA-Z0-9_]+"},{"name":"variable.other.tlverilog","match":"\\$\\b([a-zA-Z_][a-zA-Z0-9_]+)\\b"},{"name":"entity.name.alignment.tlverilog","match":"%([+-]\\d+|\\w+)"},{"name":"support.macro.tlverilog","match":"\\b([mM]4\\+\\w+)"},{"name":"keyword.region.tlverilog","match":"^\\s*\\\\(TLV.*|SV.*|m4_TLV_version.*)$"},{"name":"variable.sv.tlverilog","match":"\\*\\b([a-zA-Z_][a-zA-Z0-9_]+)\\b"},{"name":"constant.other.tlverilog","match":"\\#\\b([a-zA-Z_][a-zA-Z0-9_]+)\\b"},{"name":"entity.name.alignment.tlverilog","match":"(\u003c\u003c|\u003c\u003e|\u003e\u003e-?)[a-zA-Z0-9_]+"},{"name":"keyword.other.tlverilog","match":"\\b(#|@|begin|end|fork|join|join_any|join_none|forkjoin|{|})\\b"},{"name":"keyword.control.tlverilog","match":"\\b(initial|always|wait|force|release|assign|always_comb|always_ff|always_latch|forever|repeat|while|for|if|iff|else|case|casex|casez|default|endcase|return|break|continue|do|foreach|randomize|with|inside|dist|clocking|cover|coverpoint|property|bins|binsof|illegal_bins|ignore_bins|randcase|modport|matches|solve|static|assert|assume|before|expect|bind|extends|sequence|var|cross|ref|first_match|srandom|time|struct|packed|final|chandle|alias|tagged|extern|throughout|timeprecision|timeunit|priority|type|union|unique|uwire|wait_order|triggered|randsequence|import|export|context|pure|intersect|wildcard|within|virtual|local|const|typedef|enum|protected|this|super|endmodule|endfunction|endprimitive|endclass|endpackage|endsequence|endprogram|endclocking|endproperty|endgroup|endinterface)\\b"},{"name":"support.class.tlverilog","match":"\\b(std)\\b::"},{"name":"support.function.tlverilog","match":"\\.(atob|atohex|atoi|atooct|atoreal|bintoa|hextoa|itoa|octtoa|realtoa|len|getc|putc|toupper|tolower|compare|icompare|substr|num|exists|first|last|name|index|find|find_first|find_last|find_index|find_first_index|find_last_index|min|max|unique|unique_index|sort|rsort|shuffle|reverse|sum|product|xor|status|kill|self|await|suspend|resume|get|put|peek|try_get|try_peek|try_put|data|eq|neq|next|prev|new|size|delete|empty|pop_front|pop_back|front|back|insert|insert_range|erase|erase_range|set|swap|clear|purge|start|finish)\\b"},{"name":"support.function.tlverilog","match":"\\b(get_randstate|set_randstate)\\b"},{"name":"support.constant.tlverilog","match":"\\b(null|void)\\b"},{"name":"meta.include.tlverilog","match":"^\\s*(`include)\\s+([\"\u003c].*[\"\u003e])","captures":{"1":{"name":"keyword.other.tlverilog"},"2":{"name":"entity.name.type.include.tlverilog"}}},{"name":"constant.other.preprocessor.tlverilog","match":"`(celldefine|default_nettype|define|else|elsif|endcelldefine|endif|ifdef|ifndef|include|line|nounconnected_drive|resetall|timescale|unconnected_drive|undef|begin_\\w+|end_\\w+|remove_\\w+|restore_\\w+)\\b"},{"include":"#comments"},{"name":"meta.definition.tlverilog","match":"\\b(function)\\b\\s+(\\[.*\\])?\\s+\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b","captures":{"1":{"name":"storage.type.tlverilog"},"3":{"name":"entity.name.type.class.tlverilog"}}},{"name":"meta.definition.tlverilog","match":"^\\s*(module|function|primitive|class|package|constraint|interface|covergroup|program)\\s+\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b","captures":{"1":{"name":"storage.type.tlverilog"},"2":{"name":"entity.name.type.class.tlverilog"}}},{"include":"#all-types"},{"name":"keyword.operator.staticcasting.tlverilog","match":"'\\s*\\(.+\\)"},{"name":"keyword.operator.unpackedarrayassignment.tlverilog","begin":"'{","end":"}","patterns":[{"name":"constant.character.escape.tlverilog","match":"."}],"beginCaptures":{"0":{"name":"keyword.operator.unpackaedarrayassignment.begin.tlverilog"}},"endCaptures":{"0":{"name":"keyword.operator.unpackaedarrayassignment.end.tlverilog"}}},{"name":"support.type.tlverilog","match":"\\b(output|input|inout|and|nand|nor|or|xor|xnor|buf|not|bufif[01]|notif[01]|r?[npc]mos|tran|r?tranif[01]|pullup|pulldown)\\b"},{"name":"constant.numeric.tlverilog","match":"(\\b\\d+)?'[sS]?([bB]\\s*[0-1_xXzZ?]+|[oO]\\s*[0-7_xXzZ?]+|[dD]\\s*[0-9_xXzZ?]+|[hH]\\s*[0-9a-fA-F_xXzZ?]+|[0-1xz])((e|E)(\\+|-)?[0-9]+)?\\b"},{"include":"#strings"}],"repository":{"all-types":{"patterns":[{"include":"#storage-type-tlverilog"},{"include":"#storage-modifier-tlverilog"}]},"comments":{"patterns":[{"name":"comment.block.tlverilog","begin":"/\\*","end":"\\*/","captures":{"0":{"name":"punctuation.definition.comment.tlverilog"}}},{"name":"comment.line.double-slash.tlverilog","match":"(//).*$\\n?","captures":{"1":{"name":"punctuation.definition.comment.tlverilog"}}}]},"storage-modifier-tlverilog":{"name":"storage.modifier.tlverilog","match":"\\b(signed|unsigned|small|medium|large|supply[01]|strong[01]|pull[01]|weak[01]|highz[01])\\b"},"storage-type-tlverilog":{"name":"storage.type.tlverilog","match":"\\b(wire|tri|tri[01]|supply[01]|wand|triand|wor|trior|trireg|reg|parameter|integer|rand|randc|int|longint|shortint|logic|bit|byte|shortreal|string)\\b"},"strings":{"patterns":[{"name":"string.quoted.double.tlverilog","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.tlverilog","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.tlverilog"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.tlverilog"}}},{"name":"string.quoted.single.tlverilog","begin":"'","end":"'","patterns":[{"name":"constant.character.escape.tlverilog","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.tlverilog"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.tlverilog"}}}]}}}