summaryrefslogtreecommitdiffstats
path: root/tests/snippets/systemverilog
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 11:33:32 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 11:33:32 +0000
commit1f403ad2197fc7442409f434ee574f3e6b46fb73 (patch)
tree0299c6dd11d5edfa918a29b6456bc1875f1d288c /tests/snippets/systemverilog
parentInitial commit. (diff)
downloadpygments-1f403ad2197fc7442409f434ee574f3e6b46fb73.tar.xz
pygments-1f403ad2197fc7442409f434ee574f3e6b46fb73.zip
Adding upstream version 2.14.0+dfsg.upstream/2.14.0+dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/snippets/systemverilog')
-rw-r--r--tests/snippets/systemverilog/test_basic.txt157
-rw-r--r--tests/snippets/systemverilog/test_classes.txt89
-rw-r--r--tests/snippets/systemverilog/test_numbers.txt158
-rw-r--r--tests/snippets/systemverilog/test_operators.txt213
4 files changed, 617 insertions, 0 deletions
diff --git a/tests/snippets/systemverilog/test_basic.txt b/tests/snippets/systemverilog/test_basic.txt
new file mode 100644
index 0000000..1f86ed0
--- /dev/null
+++ b/tests/snippets/systemverilog/test_basic.txt
@@ -0,0 +1,157 @@
+# Examine tokens emitted by the SV lexer for a trivial module.
+# Not intended to stress any particular corner of the language.
+
+---input---
+// Adder flops the sum of its inputs
+module Adder #(
+ parameter int N = 42
+) (
+ output logic [N-1:0] y,
+ output logic co,
+
+ input logic [N-1:0] a,
+ input logic [N-1:0] b,
+ input logic ci,
+
+ input logic clk
+);
+ always_ff @(posedge clk) begin
+ {co, y} <= a + b + ci;
+ end
+endmodule : Adder
+
+---tokens---
+'// Adder flops the sum of its inputs\n' Comment.Single
+
+'module' Keyword
+' ' Text.Whitespace
+'Adder' Name
+' ' Text.Whitespace
+'#' Punctuation
+'(' Punctuation
+'\n ' Text.Whitespace
+'parameter' Keyword
+' ' Text.Whitespace
+'int' Keyword.Type
+' ' Text.Whitespace
+'N' Name
+' ' Text.Whitespace
+'=' Operator
+' ' Text.Whitespace
+'42' Literal.Number.Integer
+'\n' Text.Whitespace
+
+')' Punctuation
+' ' Text.Whitespace
+'(' Punctuation
+'\n ' Text.Whitespace
+'output' Keyword
+' ' Text.Whitespace
+'logic' Keyword.Type
+' ' Text.Whitespace
+'[' Punctuation
+'N' Name
+'-' Operator
+'1' Literal.Number.Integer
+':' Operator
+'0' Literal.Number.Integer
+']' Punctuation
+' ' Text.Whitespace
+'y' Name
+',' Punctuation
+'\n ' Text.Whitespace
+'output' Keyword
+' ' Text.Whitespace
+'logic' Keyword.Type
+' ' Text.Whitespace
+'co' Name
+',' Punctuation
+'\n\n ' Text.Whitespace
+'input' Keyword
+' ' Text.Whitespace
+'logic' Keyword.Type
+' ' Text.Whitespace
+'[' Punctuation
+'N' Name
+'-' Operator
+'1' Literal.Number.Integer
+':' Operator
+'0' Literal.Number.Integer
+']' Punctuation
+' ' Text.Whitespace
+'a' Name
+',' Punctuation
+'\n ' Text.Whitespace
+'input' Keyword
+' ' Text.Whitespace
+'logic' Keyword.Type
+' ' Text.Whitespace
+'[' Punctuation
+'N' Name
+'-' Operator
+'1' Literal.Number.Integer
+':' Operator
+'0' Literal.Number.Integer
+']' Punctuation
+' ' Text.Whitespace
+'b' Name
+',' Punctuation
+'\n ' Text.Whitespace
+'input' Keyword
+' ' Text.Whitespace
+'logic' Keyword.Type
+' ' Text.Whitespace
+'ci' Name
+',' Punctuation
+'\n\n ' Text.Whitespace
+'input' Keyword
+' ' Text.Whitespace
+'logic' Keyword.Type
+' ' Text.Whitespace
+'clk' Name
+'\n' Text.Whitespace
+
+')' Punctuation
+';' Punctuation
+'\n ' Text.Whitespace
+'always_ff' Keyword
+' ' Text.Whitespace
+'@' Punctuation
+'(' Punctuation
+'posedge' Keyword
+' ' Text.Whitespace
+'clk' Name
+')' Punctuation
+' ' Text.Whitespace
+'begin' Keyword
+'\n ' Text.Whitespace
+'{' Punctuation
+'co' Name
+',' Punctuation
+' ' Text.Whitespace
+'y' Name
+'}' Punctuation
+' ' Text.Whitespace
+'<' Operator
+'=' Operator
+' ' Text.Whitespace
+'a' Name
+' ' Text.Whitespace
+'+' Operator
+' ' Text.Whitespace
+'b' Name
+' ' Text.Whitespace
+'+' Operator
+' ' Text.Whitespace
+'ci' Name
+';' Punctuation
+'\n ' Text.Whitespace
+'end' Keyword
+'\n' Text.Whitespace
+
+'endmodule' Keyword
+' ' Text.Whitespace
+':' Operator
+' ' Text.Whitespace
+'Adder' Name
+'\n' Text.Whitespace
diff --git a/tests/snippets/systemverilog/test_classes.txt b/tests/snippets/systemverilog/test_classes.txt
new file mode 100644
index 0000000..b9529db
--- /dev/null
+++ b/tests/snippets/systemverilog/test_classes.txt
@@ -0,0 +1,89 @@
+# Most of the interesting types of class declarations
+
+---input---
+class Foo;
+endclass
+
+class Bar;
+endclass : Bar
+
+class Fiz extends Buz;
+endclass : Fiz
+
+class Free #(parameter type T = byte) extends Beer #(T);
+endclass : Free
+
+---tokens---
+'class' Keyword.Declaration
+' ' Text.Whitespace
+'Foo' Name.Class
+';' Punctuation
+'\n' Text.Whitespace
+
+'endclass' Keyword.Declaration
+'\n\n' Text.Whitespace
+
+'class' Keyword.Declaration
+' ' Text.Whitespace
+'Bar' Name.Class
+';' Punctuation
+'\n' Text.Whitespace
+
+'endclass' Keyword.Declaration
+' ' Text.Whitespace
+':' Punctuation
+' ' Text.Whitespace
+'Bar' Name.Class
+'\n\n' Text.Whitespace
+
+'class' Keyword.Declaration
+' ' Text.Whitespace
+'Fiz' Name.Class
+' ' Text.Whitespace
+'extends' Keyword.Declaration
+' ' Text.Whitespace
+'Buz' Name.Class
+';' Punctuation
+'\n' Text.Whitespace
+
+'endclass' Keyword.Declaration
+' ' Text.Whitespace
+':' Punctuation
+' ' Text.Whitespace
+'Fiz' Name.Class
+'\n\n' Text.Whitespace
+
+'class' Keyword.Declaration
+' ' Text.Whitespace
+'Free' Name.Class
+' ' Text.Whitespace
+'#' Punctuation
+'(' Punctuation
+'parameter' Keyword
+' ' Text.Whitespace
+'type' Keyword.Type
+' ' Text.Whitespace
+'T' Name
+' ' Text.Whitespace
+'=' Operator
+' ' Text.Whitespace
+'byte' Keyword.Type
+')' Punctuation
+' ' Text.Whitespace
+'extends' Keyword.Declaration
+' ' Text.Whitespace
+'Beer' Name.Class
+' ' Text.Whitespace
+'#' Punctuation
+'(' Punctuation
+'T' Name
+')' Punctuation
+';' Punctuation
+'\n' Text.Whitespace
+
+'endclass' Keyword.Declaration
+' ' Text.Whitespace
+':' Punctuation
+' ' Text.Whitespace
+'Free' Name.Class
+'\n' Text.Whitespace
diff --git a/tests/snippets/systemverilog/test_numbers.txt b/tests/snippets/systemverilog/test_numbers.txt
new file mode 100644
index 0000000..d7e4511
--- /dev/null
+++ b/tests/snippets/systemverilog/test_numbers.txt
@@ -0,0 +1,158 @@
+# Believe it or not, SystemVerilog supports spaces before and after the base
+# specifier (ie 'b, 'd, 'h). See IEEE 1800-2017 Section 5.7.1 for examples.
+
+---input---
+8'b10101010
+8 'b10101010
+8'b 10101010
+8'sb10101010
+8'Sb10101010
+8'B10101010
+8'b1010_1010
+8'b10xXzZ?10
+
+24'o01234567
+24 'o01234567
+24'o 01234567
+24'so01234567
+24'So01234567
+24'O01234567
+24'o0123_4567
+24'o01xXzZ?7
+
+32'd27182818
+32 'd27182818
+32'd 27182818
+32'sd27182818
+32'Sd27182818
+32'D27182818
+32'd2718_2818
+32'd27xXzZ?8
+
+32'hdeadbeef
+32 'hdeadbeef
+32'h deadbeef
+32'shdeadbeef
+32'Shdeadbeef
+32'Hdeadbeef
+32'hdead_beef
+32'hdexXzZ?f
+
+'0 '1 'x 'X 'z 'Z
+
+42 1234_5678
+
+---tokens---
+"8'b10101010" Literal.Number.Bin
+'\n' Text.Whitespace
+
+"8 'b10101010" Literal.Number.Bin
+'\n' Text.Whitespace
+
+"8'b 10101010" Literal.Number.Bin
+'\n' Text.Whitespace
+
+"8'sb10101010" Literal.Number.Bin
+'\n' Text.Whitespace
+
+"8'Sb10101010" Literal.Number.Bin
+'\n' Text.Whitespace
+
+"8'B10101010" Literal.Number.Bin
+'\n' Text.Whitespace
+
+"8'b1010_1010" Literal.Number.Bin
+'\n' Text.Whitespace
+
+"8'b10xXzZ?10" Literal.Number.Bin
+'\n\n' Text.Whitespace
+
+"24'o01234567" Literal.Number.Oct
+'\n' Text.Whitespace
+
+"24 'o01234567" Literal.Number.Oct
+'\n' Text.Whitespace
+
+"24'o 01234567" Literal.Number.Oct
+'\n' Text.Whitespace
+
+"24'so01234567" Literal.Number.Oct
+'\n' Text.Whitespace
+
+"24'So01234567" Literal.Number.Oct
+'\n' Text.Whitespace
+
+"24'O01234567" Literal.Number.Oct
+'\n' Text.Whitespace
+
+"24'o0123_4567" Literal.Number.Oct
+'\n' Text.Whitespace
+
+"24'o01xXzZ?7" Literal.Number.Oct
+'\n\n' Text.Whitespace
+
+"32'd27182818" Literal.Number.Integer
+'\n' Text.Whitespace
+
+"32 'd27182818" Literal.Number.Integer
+'\n' Text.Whitespace
+
+"32'd 27182818" Literal.Number.Integer
+'\n' Text.Whitespace
+
+"32'sd27182818" Literal.Number.Integer
+'\n' Text.Whitespace
+
+"32'Sd27182818" Literal.Number.Integer
+'\n' Text.Whitespace
+
+"32'D27182818" Literal.Number.Integer
+'\n' Text.Whitespace
+
+"32'd2718_2818" Literal.Number.Integer
+'\n' Text.Whitespace
+
+"32'd27xXzZ?8" Literal.Number.Integer
+'\n\n' Text.Whitespace
+
+"32'hdeadbeef" Literal.Number.Hex
+'\n' Text.Whitespace
+
+"32 'hdeadbeef" Literal.Number.Hex
+'\n' Text.Whitespace
+
+"32'h deadbeef" Literal.Number.Hex
+'\n' Text.Whitespace
+
+"32'shdeadbeef" Literal.Number.Hex
+'\n' Text.Whitespace
+
+"32'Shdeadbeef" Literal.Number.Hex
+'\n' Text.Whitespace
+
+"32'Hdeadbeef" Literal.Number.Hex
+'\n' Text.Whitespace
+
+"32'hdead_beef" Literal.Number.Hex
+'\n' Text.Whitespace
+
+"32'hdexXzZ?f" Literal.Number.Hex
+'\n\n' Text.Whitespace
+
+"'0" Literal.Number
+' ' Text.Whitespace
+"'1" Literal.Number
+' ' Text.Whitespace
+"'x" Literal.Number
+' ' Text.Whitespace
+"'X" Literal.Number
+' ' Text.Whitespace
+"'z" Literal.Number
+' ' Text.Whitespace
+"'Z" Literal.Number
+'\n\n' Text.Whitespace
+
+'42' Literal.Number.Integer
+' ' Text.Whitespace
+'1234_5678' Literal.Number.Integer
+'\n' Text.Whitespace
diff --git a/tests/snippets/systemverilog/test_operators.txt b/tests/snippets/systemverilog/test_operators.txt
new file mode 100644
index 0000000..fec4539
--- /dev/null
+++ b/tests/snippets/systemverilog/test_operators.txt
@@ -0,0 +1,213 @@
+# See 1800-2017 Table 11-2: Operator Precedence and Associativity
+# Note that the duplicates (unary/binary) have been removed,
+# ie '+', '-', '&', '|', '^', '~^', '^~'
+# Note: This is a inconsistent mix of operator and punctuation
+# Note: Operators would ideally be represented as one token: ':' ':' -> '::', '~' '&' -> '~&'
+
+---input---
+() [] :: .
++ - ! ~ & ~& | ~| ^ ~^ ^~ ++ --
+**
+* / %
+<< >> <<< >>>
+< <= > >= inside dist
+== != === !== ==? !=?
+&&
+||
+?:
+-> <->
+= += -= *= /= %= &= ^= |= <<= >>= <<<= >>>= := :/ <=
+{} {{}}
+
+---tokens---
+'(' Punctuation
+')' Punctuation
+' ' Text.Whitespace
+'[' Punctuation
+']' Punctuation
+' ' Text.Whitespace
+':' Operator
+':' Operator
+' ' Text.Whitespace
+'.' Punctuation
+'\n' Text.Whitespace
+
+'+' Operator
+' ' Text.Whitespace
+'-' Operator
+' ' Text.Whitespace
+'!' Operator
+' ' Text.Whitespace
+'~' Operator
+' ' Text.Whitespace
+'&' Operator
+' ' Text.Whitespace
+'~' Operator
+'&' Operator
+' ' Text.Whitespace
+'|' Operator
+' ' Text.Whitespace
+'~' Operator
+'|' Operator
+' ' Text.Whitespace
+'^' Operator
+' ' Text.Whitespace
+'~' Operator
+'^' Operator
+' ' Text.Whitespace
+'^' Operator
+'~' Operator
+' ' Text.Whitespace
+'+' Operator
+'+' Operator
+' ' Text.Whitespace
+'-' Operator
+'-' Operator
+'\n' Text.Whitespace
+
+'*' Operator
+'*' Operator
+'\n' Text.Whitespace
+
+'*' Operator
+' ' Text.Whitespace
+'/' Operator
+' ' Text.Whitespace
+'%' Operator
+'\n' Text.Whitespace
+
+'<' Operator
+'<' Operator
+' ' Text.Whitespace
+'>' Operator
+'>' Operator
+' ' Text.Whitespace
+'<' Operator
+'<' Operator
+'<' Operator
+' ' Text.Whitespace
+'>' Operator
+'>' Operator
+'>' Operator
+'\n' Text.Whitespace
+
+'<' Operator
+' ' Text.Whitespace
+'<' Operator
+'=' Operator
+' ' Text.Whitespace
+'>' Operator
+' ' Text.Whitespace
+'>' Operator
+'=' Operator
+' ' Text.Whitespace
+'inside' Operator.Word
+' ' Text.Whitespace
+'dist' Operator.Word
+'\n' Text.Whitespace
+
+'=' Operator
+'=' Operator
+' ' Text.Whitespace
+'!' Operator
+'=' Operator
+' ' Text.Whitespace
+'=' Operator
+'=' Operator
+'=' Operator
+' ' Text.Whitespace
+'!' Operator
+'=' Operator
+'=' Operator
+' ' Text.Whitespace
+'=' Operator
+'=' Operator
+'?' Operator
+' ' Text.Whitespace
+'!' Operator
+'=' Operator
+'?' Operator
+'\n' Text.Whitespace
+
+'&' Operator
+'&' Operator
+'\n' Text.Whitespace
+
+'|' Operator
+'|' Operator
+'\n' Text.Whitespace
+
+'?' Operator
+':' Operator
+'\n' Text.Whitespace
+
+'-' Operator
+'>' Operator
+' ' Text.Whitespace
+'<' Operator
+'-' Operator
+'>' Operator
+'\n' Text.Whitespace
+
+'=' Operator
+' ' Text.Whitespace
+'+' Operator
+'=' Operator
+' ' Text.Whitespace
+'-' Operator
+'=' Operator
+' ' Text.Whitespace
+'*' Operator
+'=' Operator
+' ' Text.Whitespace
+'/' Operator
+'=' Operator
+' ' Text.Whitespace
+'%' Operator
+'=' Operator
+' ' Text.Whitespace
+'&' Operator
+'=' Operator
+' ' Text.Whitespace
+'^' Operator
+'=' Operator
+' ' Text.Whitespace
+'|' Operator
+'=' Operator
+' ' Text.Whitespace
+'<' Operator
+'<' Operator
+'=' Operator
+' ' Text.Whitespace
+'>' Operator
+'>' Operator
+'=' Operator
+' ' Text.Whitespace
+'<' Operator
+'<' Operator
+'<' Operator
+'=' Operator
+' ' Text.Whitespace
+'>' Operator
+'>' Operator
+'>' Operator
+'=' Operator
+' ' Text.Whitespace
+':' Operator
+'=' Operator
+' ' Text.Whitespace
+':' Operator
+'/' Operator
+' ' Text.Whitespace
+'<' Operator
+'=' Operator
+'\n' Text.Whitespace
+
+'{' Punctuation
+'}' Punctuation
+' ' Text.Whitespace
+'{' Punctuation
+'{' Punctuation
+'}' Punctuation
+'}' Punctuation
+'\n' Text.Whitespace