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