diff --git a/regression/verilog/nettype/nettype1.desc b/regression/verilog/nettype/nettype1.desc index 13082b2d0..f3fcbeb04 100644 --- a/regression/verilog/nettype/nettype1.desc +++ b/regression/verilog/nettype/nettype1.desc @@ -1,4 +1,4 @@ -KNOWNBUG +CORE nettype1.sv ^EXIT=0$ @@ -6,4 +6,3 @@ nettype1.sv -- ^warning: ignoring -- -nettype is not implemented. diff --git a/src/verilog/parser.y b/src/verilog/parser.y index 41cc2f670..1c8763280 100644 --- a/src/verilog/parser.y +++ b/src/verilog/parser.y @@ -1395,6 +1395,7 @@ data_declaration: swapop($$, $4); } | type_declaration | package_import_declaration + | net_type_declaration ; const_opt: @@ -1464,6 +1465,21 @@ type_declaration: } ; +net_type_declaration: + TOK_NETTYPE + { init($$, ID_decl); + stack_expr($$).set(ID_class, ID_typedef); + } + data_type any_identifier ';' + { $$ = $2; + // add to the scope as a type name + PARSER.scopes.add_name(stack_expr($4).get(ID_base_name), "", verilog_scopet::TYPEDEF); + addswap($$, ID_type, $3); + stack_expr($4).id(ID_declarator); + mto($$, $4); + } + ; + vectored_scalared_opt: /* Optional */ { make_nil($$); } @@ -4624,6 +4640,8 @@ hierarchical_identifier: hierarchical_variable_identifier: hierarchical_identifier; +net_type_identifier: TOK_TYPE_IDENTIFIER; + identifier: non_type_identifier; property_identifier: TOK_NON_TYPE_IDENTIFIER;