4444from  pyVHDLModel .Namespace   import  Namespace 
4545from  pyVHDLModel .Symbol      import  Symbol , PackageSymbol , EntitySymbol 
4646from  pyVHDLModel .Interface   import  GenericInterfaceItem , PortInterfaceItem 
47- from  pyVHDLModel .Subprogram  import  Procedure , Function 
48- from  pyVHDLModel .Object      import  Constant , Variable , Signal 
47+ from  pyVHDLModel .Subprogram  import  Procedure , Function ,  Subprogram 
48+ from  pyVHDLModel .Object      import  Constant , Variable , SharedVariable ,  Signal ,  File 
4949from  pyVHDLModel .Type        import  Type , Subtype 
5050from  pyVHDLModel .Concurrent  import  ConcurrentStatement , ConcurrentStatements , ConcurrentDeclarations 
5151
@@ -108,8 +108,8 @@ class DesignUnit(ModelEntity, NamedEntityMixin, DocumentedEntityMixin):
108108	_referencedPackages :  Dict [str , Dict [str , 'Package' ]]  #: Referenced packages based on explicit use clauses or implicit inheritance 
109109	_referencedContexts :  Dict [str , 'Context' ]             #: Referenced contexts based on explicit context references or implicit inheritance 
110110
111- 	_dependencyVertex :    Vertex [str , 'DesignUnit' , None , None ]  #: The vertex in the dependency graph 
112- 	_hierarchyVertex :     Vertex [str , 'DesignUnit' , None , None ]  #: The vertex in the hierarchy graph 
111+ 	_dependencyVertex :    Vertex [None ,  None ,  str , 'DesignUnit' ,  None ,  None ,  None ,  None ,  None ,  None ,  None ,  None ,  None ,  None ,  None , None , None ]  #: The vertex in the dependency graph 
112+ 	_hierarchyVertex :     Vertex [None ,  None ,  str , 'DesignUnit' ,  None ,  None ,  None ,  None ,  None ,  None ,  None ,  None ,  None ,  None ,  None , None , None ]  #: The vertex in the hierarchy graph 
113113
114114	_namespace :           'Namespace' 
115115
@@ -312,12 +312,15 @@ def __init__(self, identifier: str, contextItems: Iterable['Context'] = None, ge
312312				self ._declaredItems .append (item )
313313				item ._parent  =  self 
314314
315- 		self ._types  =  {}
316- 		self ._objects  =  {}
317- 		self ._constants  =  {}
318- 		self ._functions  =  {}
319- 		self ._procedures  =  {}
320- 		self ._components  =  {}
315+ 		self ._types  =        {}
316+ 		self ._objects  =      {}
317+ 		self ._constants  =    {}
318+ 		self ._sharedVariables  =  {}
319+ 		self ._signals  =      {}
320+ 		self ._subprograms  =  {}
321+ 		self ._functions  =    {}
322+ 		self ._procedures  =   {}
323+ 		self ._components  =   {}
321324
322325	@property  
323326	def  GenericItems (self ) ->  List [GenericInterfaceItem ]:
@@ -327,6 +330,30 @@ def GenericItems(self) -> List[GenericInterfaceItem]:
327330	def  DeclaredItems (self ) ->  List :
328331		return  self ._declaredItems 
329332
333+ 	@property  
334+ 	def  Types (self ) ->  Dict [str , Union [Type , Subtype ]]:
335+ 		return  self ._types 
336+ 
337+ 	@property  
338+ 	def  Objects (self ) ->  Dict [str , Union [Constant , SharedVariable , Signal , File ]]:
339+ 		return  self ._objects 
340+ 
341+ 	@property  
342+ 	def  Constants (self ) ->  Dict [str , Constant ]:
343+ 		return  self ._constants 
344+ 
345+ 	@property  
346+ 	def  Subprograms (self ) ->  Dict [str , Subprogram ]:
347+ 		return  self ._subprograms 
348+ 
349+ 	@property  
350+ 	def  Functions (self ) ->  Dict [str , Dict [str , Function ]]:
351+ 		return  self ._functions 
352+ 
353+ 	@property  
354+ 	def  Procedures (self ) ->  Dict [str , Dict [str , Procedure ]]:
355+ 		return  self ._procedures 
356+ 
330357	# TODO: move into __init__ ? 
331358	# TODO: share with architecture and block statement? 
332359	def  IndexPackage (self ):
@@ -448,10 +475,12 @@ def __init__(
448475
449476		self ._architectures  =  {}
450477
478+ 	# TODO: extract to mixin for generics 
451479	@property  
452480	def  GenericItems (self ) ->  List [GenericInterfaceItem ]:
453481		return  self ._genericItems 
454482
483+ 	# TODO: extract to mixin for ports 
455484	@property  
456485	def  PortItems (self ) ->  List [PortInterfaceItem ]:
457486		return  self ._portItems 
0 commit comments