Skip to content

Commit 529fd28

Browse files
committed
Increase the error verbosity of the Verilog parser
Bison is instructed to generate verbose error messages for the Verilog parser. This results in more helpful syntax error messages at least in some cases.
1 parent c036dd5 commit 529fd28

File tree

18 files changed

+70
-4
lines changed

18 files changed

+70
-4
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
CORE
2+
syntax1.smv
3+
4+
^file .* line 3: syntax error, unexpected VAR, expecting string or "'" before 'VAR'$
5+
^EXIT=1$
6+
^SIGNAL=0$
7+
--
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
MODULE -- forgot the name
2+
3+
VAR abc : BOOLEAN;
4+
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
CORE
2+
syntax2.smv
3+
4+
^file .* line 3: syntax error, unexpected VAR before 'VAR'$
5+
^EXIT=1$
6+
^SIGNAL=0$
7+
--
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
-- forgot the MODULE
2+
3+
VAR abc : BOOLEAN;
4+
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
CORE
2+
syntax3.smv
3+
4+
^file .* line 3: syntax error, unexpected string, expecting number before 'not_a_number'$
5+
^EXIT=1$
6+
^SIGNAL=0$
7+
--
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
MODULE main
2+
3+
VAR foobar : 1.. not_a_number;
4+
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
CORE
22
ifdef1.v
33

4-
^file ifdef1\.v line 4: syntax error before 'syntax'$
4+
^file ifdef1\.v line 4: syntax error, unexpected .* before 'syntax'$
55
^EXIT=1$
66
^SIGNAL=0$
77
--
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
CORE
22
ifdef2.v
33

4-
^file ifdef2\.v line 4: syntax error before 'syntax'$
4+
^file ifdef2\.v line 4: syntax error, unexpected .* before 'syntax'$
55
^EXIT=1$
66
^SIGNAL=0$
77
--
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
CORE
22
multi-line-define2.v
33

4-
^file multi-line-define2\.v line 4: syntax error before 'syntax'$
4+
^file multi-line-define2\.v line 4: syntax error, unexpected .* before 'syntax'$
55
^EXIT=1$
66
^SIGNAL=0$
77
--
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
CORE
22
multi-line-define3.v
33

4-
^file multi-line-define3\.v line 4: syntax error before 'syntax'$
4+
^file multi-line-define3\.v line 4: syntax error, unexpected .* before 'syntax'$
55
^EXIT=1$
66
^SIGNAL=0$
77
--
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
CORE
2+
syntax1.sv
3+
4+
^file .* line 1: syntax error, unexpected ';', expecting TOK_NON_TYPE_IDENTIFIER before ';'$
5+
^EXIT=1$
6+
^SIGNAL=0$
7+
--
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module ;// forgot the name
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
CORE
2+
syntax2.sv
3+
4+
^file syntax2.sv line 3: syntax error, unexpected byte, expecting ';' before 'byte'$
5+
^EXIT=1$
6+
^SIGNAL=0$
7+
--
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module main // forgot the ;
2+
3+
byte some_var;
4+
5+
endmodule
6+
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
CORE
2+
syntax3.sv
3+
4+
^file syntax3.sv line 1: syntax error, unexpected ';' before ';'$
5+
^EXIT=1$
6+
^SIGNAL=0$
7+
--
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module main(; // forgot the )

src/smvlang/parser.y

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/* increase verbosity of error messages, to include expected tokens */
12
%define parse.error verbose
23

34
%{

src/verilog/parser.y

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
/* increase verbosity of error messages, to include expected tokens */
2+
%define parse.error verbose
3+
14
%{
25
/*******************************************************************\
36

0 commit comments

Comments
 (0)