diff --git a/language_examples/systemverilog/implication.sv b/language_examples/systemverilog/implication.sv new file mode 100644 index 00000000..0b1f206c --- /dev/null +++ b/language_examples/systemverilog/implication.sv @@ -0,0 +1,15 @@ +module test; + +wire a, b; + +property p; + @(posedge clk) a |-> b; +endproperty +a: assert property(p); + +property p; + @(posedge clk) a |=> b; +endproperty +a: assert property(p); + +endmodule diff --git a/syntaxes/systemverilog.tmLanguage.json b/syntaxes/systemverilog.tmLanguage.json index c4c27e1b..72352642 100644 --- a/syntaxes/systemverilog.tmLanguage.json +++ b/syntaxes/systemverilog.tmLanguage.json @@ -878,6 +878,14 @@ }, "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" @@ -909,14 +917,6 @@ { "match": "<=|<|>=|>|==\\?|!=\\?|===|!==|==|!=", "name": "keyword.operator.comparison.systemverilog" - }, - { - "match": "@|##|#|->|<->", - "name": "keyword.operator.channel.systemverilog" - }, - { - "match": "\\b(?:dist|inside|with|intersect|and|or|throughout|within|first_match)\\b|:=|:/|\\|->|\\|=>|->>|\\*>|#-#|#=#|&&&", - "name": "keyword.operator.logical.systemverilog" } ] }, diff --git a/syntaxes/systemverilog.tmLanguage.yaml b/syntaxes/systemverilog.tmLanguage.yaml index 4a09b918..87ece923 100644 --- a/syntaxes/systemverilog.tmLanguage.yaml +++ b/syntaxes/systemverilog.tmLanguage.yaml @@ -472,6 +472,10 @@ repository: name: keyword.operator.quantifier.regexp 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: :|\? @@ -490,10 +494,6 @@ repository: name: keyword.operator.bitwise.systemverilog - match: <=|<|>=|>|==\?|!=\?|===|!==|==|!= name: keyword.operator.comparison.systemverilog - - match: '@|##|#|->|<->' - name: keyword.operator.channel.systemverilog - - match: \b(?:dist|inside|with|intersect|and|or|throughout|within|first_match)\b|:=|:/|\|->|\|=>|->>|\*>|#-#|#=#|&&& - name: keyword.operator.logical.systemverilog comments: patterns: - begin: /\*