aboutsummaryrefslogtreecommitdiffstats
path: root/pyGHDL/dom/DesignUnit.py
diff options
context:
space:
mode:
authorPatrick Lehmann <Patrick.Lehmann@plc2.de>2021-06-22 18:36:46 +0200
committerPatrick Lehmann <Patrick.Lehmann@plc2.de>2021-06-22 19:22:41 +0200
commit469a8d28a1efae99ea1dc1e3f3c84c4889ba2421 (patch)
tree39874476eae85b39487d56fb5ed4b0c199e16bfc /pyGHDL/dom/DesignUnit.py
parent983236ac3dfd0c455a0ac910a9a468ea2c81e5d9 (diff)
downloadghdl-469a8d28a1efae99ea1dc1e3f3c84c4889ba2421.tar.gz
ghdl-469a8d28a1efae99ea1dc1e3f3c84c4889ba2421.tar.bz2
ghdl-469a8d28a1efae99ea1dc1e3f3c84c4889ba2421.zip
Code cleanups.
Diffstat (limited to 'pyGHDL/dom/DesignUnit.py')
-rw-r--r--pyGHDL/dom/DesignUnit.py98
1 files changed, 34 insertions, 64 deletions
diff --git a/pyGHDL/dom/DesignUnit.py b/pyGHDL/dom/DesignUnit.py
index ce93bda3e..7eb15aebe 100644
--- a/pyGHDL/dom/DesignUnit.py
+++ b/pyGHDL/dom/DesignUnit.py
@@ -61,54 +61,39 @@ from pyGHDL.dom._Translate import (
GetDeclaredItemsFromChainedNodes,
)
from pyGHDL.dom.Symbol import EntitySymbol
-from pyGHDL.dom.Common import GHDLMixin
__all__ = []
@export
-class Entity(VHDLModel_Entity, GHDLMixin):
+class Entity(VHDLModel_Entity):
@classmethod
def parse(cls, entityNode: Iir):
name = GetNameOfNode(entityNode)
- entity = cls(name)
-
- for generic in GetGenericsFromChainedNodes(nodes.Get_Generic_Chain(entityNode)):
- entity.GenericItems.append(generic)
-
- for port in GetPortsFromChainedNodes(nodes.Get_Port_Chain(entityNode)):
- entity.PortItems.append(port)
-
- for item in GetDeclaredItemsFromChainedNodes(
+ generics = GetGenericsFromChainedNodes(nodes.Get_Generic_Chain(entityNode))
+ ports = GetPortsFromChainedNodes(nodes.Get_Port_Chain(entityNode))
+ declaredItems = GetDeclaredItemsFromChainedNodes(
nodes.Get_Declaration_Chain(entityNode), "entity", name
- ):
- entity.DeclaredItems.append(item)
+ )
+ bodyItems = []
- return entity
+ return cls(name, generics, ports, declaredItems, bodyItems)
@export
-class Architecture(VHDLModel_Architecture, GHDLMixin):
- def __init__(self, name: str, entity: EntityOrSymbol):
- super().__init__(name)
-
- self._entity = entity
-
+class Architecture(VHDLModel_Architecture):
@classmethod
def parse(cls, architectureNode: Iir):
name = GetNameOfNode(architectureNode)
entityName = GetNameOfNode(nodes.Get_Entity_Name(architectureNode))
entity = EntitySymbol(entityName)
-
- architecture = cls(name, entity)
-
- for item in GetDeclaredItemsFromChainedNodes(
+ declaredItems = GetDeclaredItemsFromChainedNodes(
nodes.Get_Declaration_Chain(architectureNode), "architecture", name
- ):
- architecture.DeclaredItems.append(item)
+ )
+ bodyItems = []
- return architecture
+ return cls(name, entity, declaredItems, bodyItems)
def resolve(self):
pass
@@ -119,54 +104,39 @@ class Component(VHDLModel_Component):
@classmethod
def parse(cls, componentNode: Iir):
name = GetNameOfNode(componentNode)
+ generics = GetGenericsFromChainedNodes(nodes.Get_Generic_Chain(componentNode))
+ ports = GetPortsFromChainedNodes(nodes.Get_Port_Chain(componentNode))
- component = cls(name)
-
- for generic in GetGenericsFromChainedNodes(
- nodes.Get_Generic_Chain(componentNode)
- ):
- component.GenericItems.append(generic)
-
- for port in GetPortsFromChainedNodes(nodes.Get_Port_Chain(componentNode)):
- component.PortItems.append(port)
-
- return component
+ return cls(name, generics, ports)
@export
-class Package(VHDLModel_Package, GHDLMixin):
+class Package(VHDLModel_Package):
@classmethod
- def parse(cls, libraryUnit: Iir):
- name = GetNameOfNode(libraryUnit)
-
- package = cls(name)
+ def parse(cls, packageNode: Iir):
+ name = GetNameOfNode(packageNode)
+ generics = None # GetGenericsFromChainedNodes(nodes.Get_Generic_Chain(packageNode))
+ declaredItems = GetDeclaredItemsFromChainedNodes(
+ nodes.Get_Declaration_Chain(packageNode), "package", name
+ )
- for item in GetDeclaredItemsFromChainedNodes(
- nodes.Get_Declaration_Chain(libraryUnit), "package", name
- ):
- package.DeclaredItems.append(item)
-
- return package
+ return cls(name, generics, declaredItems)
@export
-class PackageBody(VHDLModel_PackageBody, GHDLMixin):
+class PackageBody(VHDLModel_PackageBody):
@classmethod
- def parse(cls, libraryUnit: Iir):
- name = GetNameOfNode(libraryUnit)
-
- packageBody = cls(name)
-
- for item in GetDeclaredItemsFromChainedNodes(
- nodes.Get_Declaration_Chain(libraryUnit), "package body", name
- ):
- packageBody.DeclaredItems.append(item)
+ def parse(cls, packageBodyNode: Iir):
+ name = GetNameOfNode(packageBodyNode)
+ declaredItems = GetDeclaredItemsFromChainedNodes(
+ nodes.Get_Declaration_Chain(packageBodyNode), "package", name
+ )
- return packageBody
+ return cls(name, declaredItems)
@export
-class Context(VHDLModel_Context, GHDLMixin):
+class Context(VHDLModel_Context):
@classmethod
def parse(cls, libraryUnit: Iir):
name = GetNameOfNode(libraryUnit)
@@ -174,8 +144,8 @@ class Context(VHDLModel_Context, GHDLMixin):
@export
-class Configuration(VHDLModel_Configuration, GHDLMixin):
+class Configuration(VHDLModel_Configuration):
@classmethod
- def parse(cls, libraryUnit: Iir):
- name = GetNameOfNode(libraryUnit)
+ def parse(cls, configuration: Iir):
+ name = GetNameOfNode(configuration)
return cls(name)