aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Lehmann <Patrick.Lehmann@plc2.de>2023-04-14 07:42:22 +0200
committerPatrick Lehmann <Patrick.Lehmann@plc2.de>2023-04-14 07:42:22 +0200
commitbee2616e7fed89c042f79592ddfafa2f6aea451e (patch)
tree2c06d1e8bf3adceb41a70b50b12ae30601135ef7
parente95d45e41d32c0d73179cea22c8b3ea812eafb41 (diff)
downloadghdl-bee2616e7fed89c042f79592ddfafa2f6aea451e.tar.gz
ghdl-bee2616e7fed89c042f79592ddfafa2f6aea451e.tar.bz2
ghdl-bee2616e7fed89c042f79592ddfafa2f6aea451e.zip
Fixes due to failing testcases.
-rw-r--r--pyGHDL/dom/Concurrent.py14
-rw-r--r--pyGHDL/dom/DesignUnit.py14
-rw-r--r--pyGHDL/dom/Symbol.py8
-rw-r--r--pyGHDL/dom/Type.py4
4 files changed, 26 insertions, 14 deletions
diff --git a/pyGHDL/dom/Concurrent.py b/pyGHDL/dom/Concurrent.py
index 71ee634cc..4ffba28d1 100644
--- a/pyGHDL/dom/Concurrent.py
+++ b/pyGHDL/dom/Concurrent.py
@@ -115,9 +115,9 @@ class ComponentInstantiation(VHDLModel_ComponentInstantiation, DOMMixin):
@classmethod
def parse(cls, instantiationNode: Iir, instantiatedUnit: Iir, label: str) -> "ComponentInstantiation":
- from pyGHDL.dom._Translate import GetGenericMapAspect, GetPortMapAspect
+ from pyGHDL.dom._Translate import GetName, GetGenericMapAspect, GetPortMapAspect
- componentSymbol = GetComponentInstantiationSymbol(instantiatedUnit)
+ componentSymbol = ComponentInstantiationSymbol(instantiatedUnit, GetName(instantiatedUnit))
genericAssociations = GetGenericMapAspect(nodes.Get_Generic_Map_Aspect_Chain(instantiationNode))
portAssociations = GetPortMapAspect(nodes.Get_Port_Map_Aspect_Chain(instantiationNode))
@@ -142,8 +142,8 @@ class EntityInstantiation(VHDLModel_EntityInstantiation, DOMMixin):
def parse(cls, instantiationNode: Iir, instantiatedUnit: Iir, label: str) -> "EntityInstantiation":
from pyGHDL.dom._Translate import GetName, GetGenericMapAspect, GetPortMapAspect
- entityId = nodes.Get_Entity_Name(instantiatedUnit)
- entitySymbol = GetEntityInstantiationSymbol(entityId)
+ entityName = nodes.Get_Entity_Name(instantiatedUnit)
+ entitySymbol = EntityInstantiationSymbol(entityName, GetName(entityName))
architectureSymbol = None
architectureId = nodes.Get_Architecture(instantiatedUnit)
@@ -171,10 +171,10 @@ class ConfigurationInstantiation(VHDLModel_ConfigurationInstantiation, DOMMixin)
@classmethod
def parse(cls, instantiationNode: Iir, instantiatedUnit: Iir, label: str) -> "ConfigurationInstantiation":
- from pyGHDL.dom._Translate import GetGenericMapAspect, GetPortMapAspect
+ from pyGHDL.dom._Translate import GetName, GetGenericMapAspect, GetPortMapAspect
- configurationId = nodes.Get_Configuration_Name(instantiatedUnit)
- configurationSymbol = GetConfigurationInstantiationSymbol(configurationId)
+ configurationName = nodes.Get_Configuration_Name(instantiatedUnit)
+ configurationSymbol = ConfigurationInstantiationSymbol(configurationName, GetName(configurationName))
genericAssociations = GetGenericMapAspect(nodes.Get_Generic_Map_Aspect_Chain(instantiationNode))
portAssociations = GetPortMapAspect(nodes.Get_Port_Map_Aspect_Chain(instantiationNode))
diff --git a/pyGHDL/dom/DesignUnit.py b/pyGHDL/dom/DesignUnit.py
index 6484d1532..ef1a37493 100644
--- a/pyGHDL/dom/DesignUnit.py
+++ b/pyGHDL/dom/DesignUnit.py
@@ -66,7 +66,7 @@ from pyGHDL.dom import DOMMixin, Position, DOMException
from pyGHDL.dom._Utils import GetNameOfNode, GetDocumentationOfNode, GetPackageMemberSymbol
from pyGHDL.dom._Translate import GetGenericsFromChainedNodes, GetPortsFromChainedNodes, GetName
from pyGHDL.dom._Translate import GetDeclaredItemsFromChainedNodes, GetConcurrentStatementsFromChainedNodes
-from pyGHDL.dom.Symbol import EntitySymbol, ContextReferenceSymbol, LibraryReferenceSymbol, PackageSymbol
+from pyGHDL.dom.Symbol import EntitySymbol, ContextReferenceSymbol, LibraryReferenceSymbol, PackageSymbol, PackageMemberReferenceSymbol
@export
@@ -84,9 +84,11 @@ class UseClause(VHDLModel_UseClause, DOMMixin):
@classmethod
def parse(cls, useNode: Iir):
- uses = [GetPackageMemberSymbol(nodes.Get_Selected_Name(useNode))]
+ nameNode = nodes.Get_Selected_Name(useNode)
+ uses = [PackageMemberReferenceSymbol(nameNode, GetName(nameNode))]
for use in utils.chain_iter(nodes.Get_Use_Clause_Chain(useNode)):
- uses.append(GetPackageMemberSymbol(nodes.Get_Selected_Name(use)))
+ nameNode = nodes.Get_Selected_Name(use)
+ uses.append(PackageMemberReferenceSymbol(nameNode, GetName(nameNode)))
return cls(useNode, uses)
@@ -99,9 +101,11 @@ class ContextReference(VHDLModel_ContextReference, DOMMixin):
@classmethod
def parse(cls, contextNode: Iir):
- contexts = [GetContextSymbol(nodes.Get_Selected_Name(contextNode))]
+ nameNode = nodes.Get_Selected_Name(contextNode)
+ contexts = [ContextReferenceSymbol(nameNode, GetName(nameNode))]
for context in utils.chain_iter(nodes.Get_Context_Reference_Chain(contextNode)):
- contexts.append(GetContextSymbol(nodes.Get_Selected_Name(context)))
+ nameNode = nodes.Get_Selected_Name(context)
+ contexts.append(ContextReferenceSymbol(nameNode, GetName(nameNode)))
return cls(contextNode, contexts)
diff --git a/pyGHDL/dom/Symbol.py b/pyGHDL/dom/Symbol.py
index 7c29acf06..fe3f3bbe0 100644
--- a/pyGHDL/dom/Symbol.py
+++ b/pyGHDL/dom/Symbol.py
@@ -83,6 +83,14 @@ class ContextReferenceSymbol(VHDLModel_ContextReferenceSymbol, DOMMixin):
@export
+class PackageMemberReferenceSymbol(VHDLModel_PackageMembersReferenceSymbol, DOMMixin):
+ @InheritDocString(VHDLModel_PackageMembersReferenceSymbol)
+ def __init__(self, identifierNode: Iir, name: Name):
+ super().__init__(name)
+ DOMMixin.__init__(self, identifierNode)
+
+
+@export
class EntityInstantiationSymbol(VHDLModel_EntityInstantiationSymbol, DOMMixin):
@InheritDocString(VHDLModel_EntityInstantiationSymbol)
def __init__(self, identifierNode: Iir, name: Name):
diff --git a/pyGHDL/dom/Type.py b/pyGHDL/dom/Type.py
index e7d9701fd..7df1ad7a1 100644
--- a/pyGHDL/dom/Type.py
+++ b/pyGHDL/dom/Type.py
@@ -114,7 +114,7 @@ class PhysicalType(VHDLModel_PhysicalType, DOMMixin):
@classmethod
def parse(cls, typeName: str, typeDefinitionNode: Iir) -> "PhysicalType":
from pyGHDL.dom._Utils import GetIirKindOfNode, GetNameOfNode
- from pyGHDL.dom._Translate import GetRangeFromNode, GetNameFromNode
+ from pyGHDL.dom._Translate import GetRangeFromNode, GetName
rangeConstraint = nodes.Get_Range_Constraint(typeDefinitionNode)
rangeKind = GetIirKindOfNode(rangeConstraint)
@@ -124,7 +124,7 @@ class PhysicalType(VHDLModel_PhysicalType, DOMMixin):
nodes.Iir_Kind.Attribute_Name,
nodes.Iir_Kind.Parenthesis_Name,
):
- rng = GetNameFromNode(rangeConstraint)
+ rng = GetName(rangeConstraint)
else:
pos = Position.parse(typeDefinitionNode)
raise DOMException(f"Unknown range kind '{rangeKind.name}' in physical type definition at line {pos.Line}.")