Support --bbox-unsup parsing of for with multiple increments

This commit is contained in:
Wilson Snyder 2020-06-06 13:55:15 -04:00
parent 3a0b8c8870
commit ae701e014d
3 changed files with 15 additions and 16 deletions

View File

@ -294,7 +294,6 @@ vnum {vnum1}|{vnum2}|{vnum3}|{vnum4}|{vnum5}
"always" { FL; return yALWAYS; } "always" { FL; return yALWAYS; }
"and" { FL; return yAND; } "and" { FL; return yAND; }
"assign" { FL; return yASSIGN; } "assign" { FL; return yASSIGN; }
"before" { FL; return yBEFORE; }
"begin" { FL; return yBEGIN; } "begin" { FL; return yBEGIN; }
"buf" { FL; return yBUF; } "buf" { FL; return yBUF; }
"bufif0" { FL; return yBUFIF0; } "bufif0" { FL; return yBUFIF0; }
@ -468,7 +467,7 @@ vnum {vnum1}|{vnum2}|{vnum3}|{vnum4}|{vnum5}
"always_latch" { FL; return yALWAYS_LATCH; } "always_latch" { FL; return yALWAYS_LATCH; }
"assert" { FL; return yASSERT; } "assert" { FL; return yASSERT; }
"assume" { FL; return yASSUME; } "assume" { FL; return yASSUME; }
"before" { ERROR_RSVD_WORD("SystemVerilog 2005"); } "before" { FL; return yBEFORE; }
"bind" { FL; return yBIND; } "bind" { FL; return yBIND; }
"bins" { ERROR_RSVD_WORD("SystemVerilog 2005"); } "bins" { ERROR_RSVD_WORD("SystemVerilog 2005"); }
"binsof" { ERROR_RSVD_WORD("SystemVerilog 2005"); } "binsof" { ERROR_RSVD_WORD("SystemVerilog 2005"); }

View File

@ -3299,7 +3299,7 @@ for_initialization<nodep>: // ==IEEE: for_initialization + for_variable_declarat
for_initializationItemList<nodep>: // IEEE: [for_variable_declaration...] for_initializationItemList<nodep>: // IEEE: [for_variable_declaration...]
for_initializationItem { $$ = $1; } for_initializationItem { $$ = $1; }
| for_initializationItemList ',' for_initializationItem { $$ = $1; $<fl>2->v3error("Unsupported: for loop initialization after the first comma"); } | for_initializationItemList ',' for_initializationItem { $$ = $1; BBUNSUP($2, "Unsupported: for loop initialization after the first comma"); }
; ;
for_initializationItem<nodep>: // IEEE: variable_assignment + for_variable_declaration for_initializationItem<nodep>: // IEEE: variable_assignment + for_variable_declaration
@ -3325,7 +3325,7 @@ for_stepE<nodep>: // IEEE: for_step + empty
for_step<nodep>: // IEEE: for_step for_step<nodep>: // IEEE: for_step
for_step_assignment { $$ = $1; } for_step_assignment { $$ = $1; }
| for_step ',' for_step_assignment { $$ = $1; $<fl>1->v3error("Unsupported: for loop step after the first comma"); } | for_step ',' for_step_assignment { $$ = $1; BBUNSUP($2, "Unsupported: for loop step after the first comma"); }
; ;
for_step_assignment<nodep>: // ==IEEE: for_step_assignment for_step_assignment<nodep>: // ==IEEE: for_step_assignment

View File

@ -1,18 +1,18 @@
%Error: t/t_for_comma_bad.v:14:16: Unsupported: for loop step after the first comma %Error: t/t_for_comma_bad.v:14:21: Unsupported: for loop step after the first comma
14 | for (; ; a=a+1, b=b+1) ; 14 | for (; ; a=a+1, b=b+1) ;
| ^ | ^
%Error: t/t_for_comma_bad.v:17:19: Unsupported: for loop step after the first comma %Error: t/t_for_comma_bad.v:17:24: Unsupported: for loop step after the first comma
17 | for (; a<1; a=a+1, b=b+1) ; 17 | for (; a<1; a=a+1, b=b+1) ;
| ^ | ^
%Error: t/t_for_comma_bad.v:20:22: Unsupported: for loop step after the first comma %Error: t/t_for_comma_bad.v:20:27: Unsupported: for loop step after the first comma
20 | for (a=0; a<1; a=a+1, b=b+1) ; 20 | for (a=0; a<1; a=a+1, b=b+1) ;
| ^ | ^
%Error: t/t_for_comma_bad.v:23:30: Unsupported: for loop step after the first comma %Error: t/t_for_comma_bad.v:23:35: Unsupported: for loop step after the first comma
23 | for (integer a=0; a<1; a=a+1, b=b+1) ; 23 | for (integer a=0; a<1; a=a+1, b=b+1) ;
| ^ | ^
%Error: t/t_for_comma_bad.v:26:34: Unsupported: for loop step after the first comma %Error: t/t_for_comma_bad.v:26:39: Unsupported: for loop step after the first comma
26 | for (var integer a=0; a<1; a=a+1, b=b+1) ; 26 | for (var integer a=0; a<1; a=a+1, b=b+1) ;
| ^ | ^
%Error: t/t_for_comma_bad.v:27:23: Unsupported: for loop initialization after the first comma %Error: t/t_for_comma_bad.v:27:23: Unsupported: for loop initialization after the first comma
27 | for (integer a=0, integer b=0; a<1; ) ; 27 | for (integer a=0, integer b=0; a<1; ) ;
| ^ | ^
@ -22,7 +22,7 @@
%Error: t/t_for_comma_bad.v:29:23: Unsupported: for loop initialization after the first comma %Error: t/t_for_comma_bad.v:29:23: Unsupported: for loop initialization after the first comma
29 | for (integer a=0, integer b=0; a<1; a=a+1, b=b+1) ; 29 | for (integer a=0, integer b=0; a<1; a=a+1, b=b+1) ;
| ^ | ^
%Error: t/t_for_comma_bad.v:29:43: Unsupported: for loop step after the first comma %Error: t/t_for_comma_bad.v:29:48: Unsupported: for loop step after the first comma
29 | for (integer a=0, integer b=0; a<1; a=a+1, b=b+1) ; 29 | for (integer a=0, integer b=0; a<1; a=a+1, b=b+1) ;
| ^ | ^
%Error: Exiting due to %Error: Exiting due to