diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 11:33:32 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 11:33:32 +0000 |
commit | 1f403ad2197fc7442409f434ee574f3e6b46fb73 (patch) | |
tree | 0299c6dd11d5edfa918a29b6456bc1875f1d288c /tests/snippets/systemverilog | |
parent | Initial commit. (diff) | |
download | pygments-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.txt | 157 | ||||
-rw-r--r-- | tests/snippets/systemverilog/test_classes.txt | 89 | ||||
-rw-r--r-- | tests/snippets/systemverilog/test_numbers.txt | 158 | ||||
-rw-r--r-- | tests/snippets/systemverilog/test_operators.txt | 213 |
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 |