============================================
net_declaration - wire
============================================

module mod ();
  wire a;
endmodule

----

(source_file
  (module_declaration
    (module_header
      (module_keyword) (simple_identifier)
    )
    (module_nonansi_header (list_of_ports))
    (module_or_generate_item (package_or_generate_item_declaration (net_declaration
      (net_type)
      (list_of_net_decl_assignments (net_decl_assignment (simple_identifier)))
    )))
  )
)

============================================
net_declaration - wire [31:0]
============================================

module mod ();
  wire [31:0] a;
endmodule

----

(source_file
  (module_declaration
    (module_header
      (module_keyword) (simple_identifier)
    )
    (module_nonansi_header (list_of_ports))
    (module_or_generate_item (package_or_generate_item_declaration (net_declaration
      (net_type)
      (data_type_or_implicit1
        (implicit_data_type1
          (packed_dimension
            (constant_range
              (constant_expression (constant_primary (primary_literal (integral_number (decimal_number (unsigned_number))))))
              (constant_expression (constant_primary (primary_literal (integral_number (decimal_number (unsigned_number))))))
            )
          )
        )
      )
      (list_of_net_decl_assignments (net_decl_assignment (simple_identifier)))
    )))
  )
)

============================================
net_declaration - wire [W-1:0]
============================================

module mod ();
  wire [W-1:0] a;
endmodule

----

(source_file
  (module_declaration
    (module_header
      (module_keyword) (simple_identifier)
    )
    (module_nonansi_header (list_of_ports))
    (module_or_generate_item (package_or_generate_item_declaration (net_declaration
      (net_type)
      (data_type_or_implicit1
        (implicit_data_type1
          (packed_dimension
            (constant_range
              (constant_expression
                (constant_expression
                  (constant_primary
                    (parameter_identifier (simple_identifier))
                  )
                )
                (constant_expression
                  (constant_primary
                    (primary_literal (integral_number (decimal_number (unsigned_number))))
                  )
                )
              )
              (constant_expression
                (constant_primary
                  (primary_literal (integral_number (decimal_number (unsigned_number))))
                )
              )
            )
          )
        )
      )
      (list_of_net_decl_assignments (net_decl_assignment (simple_identifier)))
    )))
  )
)

============================================
net_declaration - wire, reg, logic
============================================

module mod ();
  wire a, b, c;
  wire ddd;
  reg ee;
  logic [3:0] fff;
  my_type_t t1, t2;
endmodule

----

(source_file
  (module_declaration
    (module_header (module_keyword) (simple_identifier))
    (module_nonansi_header (list_of_ports))
    (module_or_generate_item (package_or_generate_item_declaration (net_declaration
      (net_type)
      (list_of_net_decl_assignments
        (net_decl_assignment (simple_identifier))
        (net_decl_assignment (simple_identifier))
        (net_decl_assignment (simple_identifier))
      )
    )))
    (module_or_generate_item (package_or_generate_item_declaration (net_declaration
      (net_type)
      (list_of_net_decl_assignments
        (net_decl_assignment (simple_identifier))
      )
    )))
    (module_or_generate_item (package_or_generate_item_declaration (data_declaration
      (data_type_or_implicit1 (data_type (integer_vector_type)))
      (list_of_variable_decl_assignments
        (variable_decl_assignment (simple_identifier))
      )
    )))
    (module_or_generate_item (package_or_generate_item_declaration (data_declaration
      (data_type_or_implicit1
        (data_type
          (integer_vector_type)
          (packed_dimension (constant_range
            (constant_expression (constant_primary (primary_literal (integral_number (decimal_number (unsigned_number))))))
            (constant_expression (constant_primary (primary_literal (integral_number (decimal_number (unsigned_number))))))
          ))
        )
      )
      (list_of_variable_decl_assignments (variable_decl_assignment (simple_identifier)))
    )))
    (module_or_generate_item (package_or_generate_item_declaration
      (net_declaration (simple_identifier)
        (list_of_net_decl_assignments
          (net_decl_assignment (simple_identifier))
          (net_decl_assignment (simple_identifier))
        )
      )
    ))
  )
)
