Merge pull request #2550 from zachjs/macro-arg-spaces

verilog: allow spaces in macro arguments
This commit is contained in:
whitequark 2021-01-25 10:36:07 +00:00 committed by GitHub
commit ffbd813a8c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 1 deletions

View File

@ -392,7 +392,6 @@ static bool read_argument(std::string &dest)
{
std::vector<char> openers;
for (;;) {
skip_spaces();
std::string tok = next_token(true);
if (tok == ")") {
if (openers.empty())

View File

@ -0,0 +1,28 @@
module top(
input wire [31:0] i,
output wire [31:0] x, y, z
);
`define BAR(a) a
`define FOO(a = function automatic [31:0] f) a
`BAR(function automatic [31:0] a);
input [31:0] i;
a = i * 2;
endfunction
`FOO();
input [31:0] i;
f = i * 3;
endfunction
`FOO(function automatic [31:0] b);
input [31:0] i;
b = i * 5;
endfunction
assign x = a(i);
assign y = f(i);
assign z = b(i);
endmodule