File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -53,6 +53,21 @@ def test_parsing_entity_with_package_generic(self):
5353 self .assertEqual (entity .generics [0 ].identifier , 'package_g' )
5454 self .assertEqual (entity .generics [0 ].subtype_indication .type_mark , 'integer' )
5555
56+ def test_parsing_entity_with_type_generic (self ):
57+ entity = self .parse_single_entity ("""\
58+ entity ent is
59+ generic (
60+ type t;
61+ type_g : integer
62+ );
63+ end entity;
64+ """ )
65+ self .assertEqual (entity .identifier , "ent" )
66+ self .assertEqual (entity .ports , [])
67+ self .assertEqual (len (entity .generics ), 1 )
68+ self .assertEqual (entity .generics [0 ].identifier , 'type_g' )
69+ self .assertEqual (entity .generics [0 ].subtype_indication .type_mark , 'integer' )
70+
5671 def test_getting_entities_from_design_file (self ):
5772 design_file = VHDLDesignFile .parse ("""
5873entity entity1 is
Original file line number Diff line number Diff line change @@ -397,6 +397,7 @@ def _find_port_clause(cls, code):
397397 return []
398398
399399 _package_generic_re = re .compile (r"\s*package\s+" , re .MULTILINE | re .IGNORECASE )
400+ _type_generic_re = re .compile (r"\s*type\s+" , re .MULTILINE | re .IGNORECASE )
400401
401402 @classmethod
402403 def _parse_generic_clause (cls , code ):
@@ -413,10 +414,14 @@ def _parse_generic_clause(cls, code):
413414 # Add interface elements to the generic list
414415 for interface_element in interface_elements :
415416
416- if cls ._package_generic_re .match (interface_element . strip () ) is not None :
417+ if cls ._package_generic_re .match (interface_element ) is not None :
417418 # Ignore package generics
418419 continue
419420
421+ if cls ._type_generic_re .match (interface_element ) is not None :
422+ # Ignore type generics
423+ continue
424+
420425 generic_list .append (VHDLInterfaceElement .parse (interface_element ))
421426
422427 return generic_list
You can’t perform that action at this time.
0 commit comments