Open
Description
When a localparam is encountered in the ANSI style parameter declaration, a parsing error is reported.
Example source verilog
module a_module #(
localparam A = 2
)(
input [A-1:0] sig
);
endmodule
The resulting pyverilog output:
Generating LALR tables
WARNING: 183 shift/reduce conflicts
Traceback (most recent call last):
File ".../pyverilog_test.py", line 14, in <module>
ast, directives = parse(vlog)
^^^^^^^^^^^
File ".../.venv/lib/python3.12/site-packages/pyverilog/vparser/parser.py", line 2338, in parse
ast = codeparser.parse()
^^^^^^^^^^^^^^^^^^
File ".../.venv/lib/python3.12/site-packages/pyverilog/vparser/parser.py", line 2316, in parse
ast = self.parser.parse(text, debug=debug)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File ".../.venv/lib/python3.12/site-packages/pyverilog/vparser/parser.py", line 77, in parse
return self.parser.parse(text, lexer=self.lexer, debug=debug)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File ".../.venv/lib/python3.12/site-packages/ply/yacc.py", line 333, in parse
return self.parseopt_notrack(input, lexer, debug, tracking, tokenfunc)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File ".../.venv/lib/python3.12/site-packages/ply/yacc.py", line 1201, in parseopt_notrack
tok = call_errorfunc(self.errorfunc, errtoken, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File ".../.venv/lib/python3.12/site-packages/ply/yacc.py", line 192, in call_errorfunc
r = errorfunc(token)
^^^^^^^^^^^^^^^^
File ".../.venv/lib/python3.12/site-packages/pyverilog/vparser/parser.py", line 2268, in p_error
self._raise_error(p)
File ".../.venv/lib/python3.12/site-packages/pyverilog/vparser/parser.py", line 2279, in _raise_error
raise ParseError("%s: %s" % (coord, msg))
pyverilog.vparser.parser.ParseError: line:3: before: "localparam"
Metadata
Metadata
Assignees
Labels
No labels