Merge pull request #181 from phire/portinfo_grammar
vvp grammar: .port_info statements should require/generate semicolons.
This commit is contained in:
commit
0caa109174
|
|
@ -2304,7 +2304,7 @@ int draw_scope(ivl_scope_t net, ivl_scope_t parent)
|
||||||
unsigned width = ivl_scope_mod_module_port_width(net,idx);
|
unsigned width = ivl_scope_mod_module_port_width(net,idx);
|
||||||
if( name == 0 )
|
if( name == 0 )
|
||||||
name = "";
|
name = "";
|
||||||
fprintf( vvp_out, " .port_info %u %s %u \"%s\"\n",
|
fprintf( vvp_out, " .port_info %u %s %u \"%s\";\n",
|
||||||
idx, vvp_port_info_type_str(ptype), width,
|
idx, vvp_port_info_type_str(ptype), width,
|
||||||
vvp_mangle_name(name) );
|
vvp_mangle_name(name) );
|
||||||
}
|
}
|
||||||
|
|
|
||||||
13
vvp/parse.y
13
vvp/parse.y
|
|
@ -27,6 +27,7 @@
|
||||||
# include <cstdlib>
|
# include <cstdlib>
|
||||||
# include <cassert>
|
# include <cassert>
|
||||||
# include "ivl_alloc.h"
|
# include "ivl_alloc.h"
|
||||||
|
# include "version_base.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* These are bits in the lexor.
|
* These are bits in the lexor.
|
||||||
|
|
@ -708,9 +709,19 @@ statement
|
||||||
|
|
||||||
|
|
||||||
/* Port information for scopes... currently this is just meta-data for VPI queries */
|
/* Port information for scopes... currently this is just meta-data for VPI queries */
|
||||||
| K_PORT_INFO T_NUMBER port_type T_NUMBER T_STRING
|
| K_PORT_INFO T_NUMBER port_type T_NUMBER T_STRING ';'
|
||||||
{ compile_port_info( $2 /* port_index */, $3, $4 /* width */,
|
{ compile_port_info( $2 /* port_index */, $3, $4 /* width */,
|
||||||
$5 /*&name */ ); }
|
$5 /*&name */ ); }
|
||||||
|
/* Unfortunately, older versions didn't check for a semicolon at the end of
|
||||||
|
.port_info statements.
|
||||||
|
To insure backwards compatablitly with old files, we have a duplicate rule
|
||||||
|
that doesn't require a semicolon. After version 11, this rule will be
|
||||||
|
disabled (and can safely be deleted. */
|
||||||
|
| K_PORT_INFO T_NUMBER port_type T_NUMBER T_STRING
|
||||||
|
{ if (VERSION_MAJOR > 11)
|
||||||
|
yyerror("syntax error");
|
||||||
|
compile_port_info( $2 /* port_index */, $3, $4 /* width */,
|
||||||
|
$5 /*&name */ ); }
|
||||||
|
|
||||||
| K_TIMESCALE T_NUMBER T_NUMBER';'
|
| K_TIMESCALE T_NUMBER T_NUMBER';'
|
||||||
{ compile_timescale($2, $3); }
|
{ compile_timescale($2, $3); }
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue