diff --git a/lexor.lex b/lexor.lex index 01a891437..7a432361e 100644 --- a/lexor.lex +++ b/lexor.lex @@ -325,7 +325,15 @@ TU [munpf] \\[^ \t\b\f\r\n]+ { yylval.text = strdupnew(yytext+1); - return IDENTIFIER; } + if (gn_system_verilog()) { + if (data_type_t*type = pform_test_type_identifier(yylval.text)) { + delete[]yylval.text; + yylval.data_type = type; + return TYPE_IDENTIFIER; + } + } + return IDENTIFIER; + } \$([a-zA-Z0-9$_]+) { /* The 1364-1995 timing checks. */ diff --git a/parse.y b/parse.y index fe6ba14c1..1c88baa17 100644 --- a/parse.y +++ b/parse.y @@ -3938,6 +3938,9 @@ module_item { yyerror(@5, "error: Errors in net variable list."); } + | attribute_list_opt net_type TYPE_IDENTIFIER net_variable_list ';' + { yyerror(@2, "sorry: Nets of named types not supported."); } + /* This form doesn't have the range, but does have strengths. This gives strength to the assignment drivers. */ diff --git a/pform.h b/pform.h index 9fd2a3d80..0bde0e30c 100644 --- a/pform.h +++ b/pform.h @@ -255,12 +255,6 @@ extern void pform_makewire(const struct vlltype&li, list*attr, PWSRType rt = SR_NET); -extern void pform_makewire(const struct vlltype&li, - struct_type_t*struct_type, - list*names, - NetNet::PortType, - list*attr); - /* This form handles assignment declarations. */ extern void pform_makewire(const struct vlltype&li, list*range,