aboutsummaryrefslogtreecommitdiffstats
path: root/pyGHDL
diff options
context:
space:
mode:
authorPatrick Lehmann <Patrick.Lehmann@plc2.de>2023-04-16 19:43:35 +0200
committerPatrick Lehmann <Patrick.Lehmann@plc2.de>2023-04-16 19:43:35 +0200
commit61bb37c757e5167b617823d6b100edf54de154d6 (patch)
tree38147759dab3417b0bc29e3e9b6bfca5becebcbe /pyGHDL
parenta211cdcf7d5eb5f058d2e38c93092f4548283451 (diff)
downloadghdl-61bb37c757e5167b617823d6b100edf54de154d6.tar.gz
ghdl-61bb37c757e5167b617823d6b100edf54de154d6.tar.bz2
ghdl-61bb37c757e5167b617823d6b100edf54de154d6.zip
Fixed last testcase.
Diffstat (limited to 'pyGHDL')
-rw-r--r--pyGHDL/dom/DesignUnit.py11
-rw-r--r--pyGHDL/dom/Symbol.py15
-rw-r--r--pyGHDL/dom/formatting/GraphML.py2
3 files changed, 21 insertions, 7 deletions
diff --git a/pyGHDL/dom/DesignUnit.py b/pyGHDL/dom/DesignUnit.py
index 48ae24b6f..edca0789e 100644
--- a/pyGHDL/dom/DesignUnit.py
+++ b/pyGHDL/dom/DesignUnit.py
@@ -66,13 +66,14 @@ from pyGHDL.dom import DOMMixin, Position, DOMException
from pyGHDL.dom._Utils import GetNameOfNode, GetDocumentationOfNode
from pyGHDL.dom._Translate import GetGenericsFromChainedNodes, GetPortsFromChainedNodes, GetName
from pyGHDL.dom._Translate import GetDeclaredItemsFromChainedNodes, GetConcurrentStatementsFromChainedNodes
-from pyGHDL.dom.Names import SimpleName
+from pyGHDL.dom.Names import SimpleName, AllName
from pyGHDL.dom.Symbol import (
EntitySymbol,
ContextReferenceSymbol,
LibraryReferenceSymbol,
PackageSymbol,
PackageMemberReferenceSymbol,
+ AllPackageMembersReferenceSymbol
)
@@ -92,10 +93,14 @@ class UseClause(VHDLModel_UseClause, DOMMixin):
@classmethod
def parse(cls, useNode: Iir):
nameNode = nodes.Get_Selected_Name(useNode)
- uses = [PackageMemberReferenceSymbol(nameNode, GetName(nameNode))]
+ name = GetName(nameNode)
+ symbolType = AllPackageMembersReferenceSymbol if isinstance(name, AllName) else PackageMemberReferenceSymbol
+ uses = [symbolType(nameNode, name)]
for use in utils.chain_iter(nodes.Get_Use_Clause_Chain(useNode)):
nameNode = nodes.Get_Selected_Name(use)
- uses.append(PackageMemberReferenceSymbol(nameNode, GetName(nameNode)))
+ name = GetName(nameNode)
+ symbolType = AllPackageMembersReferenceSymbol if isinstance(name, AllName) else PackageMemberReferenceSymbol
+ uses.append(symbolType(nameNode, name))
return cls(useNode, uses)
diff --git a/pyGHDL/dom/Symbol.py b/pyGHDL/dom/Symbol.py
index 456c96847..05057793d 100644
--- a/pyGHDL/dom/Symbol.py
+++ b/pyGHDL/dom/Symbol.py
@@ -38,7 +38,8 @@ from pyVHDLModel import Name
from pyVHDLModel.Base import ExpressionUnion
from pyVHDLModel.Symbol import LibraryReferenceSymbol as VHDLModel_LibraryReferenceSymbol
from pyVHDLModel.Symbol import PackageReferenceSymbol as VHDLModel_PackageReferenceSymbol
-from pyVHDLModel.Symbol import PackageMembersReferenceSymbol as VHDLModel_PackageMembersReferenceSymbol
+from pyVHDLModel.Symbol import PackageMemberReferenceSymbol as VHDLModel_PackageMemberReferenceSymbol
+from pyVHDLModel.Symbol import AllPackageMembersReferenceSymbol as VHDLModel_AllPackageMembersReferenceSymbol
from pyVHDLModel.Symbol import ContextReferenceSymbol as VHDLModel_ContextReferenceSymbol
from pyVHDLModel.Symbol import EntitySymbol as VHDLModel_EntitySymbol
from pyVHDLModel.Symbol import ArchitectureSymbol as VHDLModel_ArchitectureSymbol
@@ -82,8 +83,16 @@ class ContextReferenceSymbol(VHDLModel_ContextReferenceSymbol, DOMMixin):
@export
-class PackageMemberReferenceSymbol(VHDLModel_PackageMembersReferenceSymbol, DOMMixin):
- @InheritDocString(VHDLModel_PackageMembersReferenceSymbol)
+class PackageMemberReferenceSymbol(VHDLModel_PackageMemberReferenceSymbol, DOMMixin):
+ @InheritDocString(VHDLModel_PackageMemberReferenceSymbol)
+ def __init__(self, identifierNode: Iir, name: Name):
+ super().__init__(name)
+ DOMMixin.__init__(self, identifierNode)
+
+
+@export
+class AllPackageMembersReferenceSymbol(VHDLModel_AllPackageMembersReferenceSymbol, DOMMixin):
+ @InheritDocString(VHDLModel_AllPackageMembersReferenceSymbol)
def __init__(self, identifierNode: Iir, name: Name):
super().__init__(name)
DOMMixin.__init__(self, identifierNode)
diff --git a/pyGHDL/dom/formatting/GraphML.py b/pyGHDL/dom/formatting/GraphML.py
index 7f72d54b5..0ad31e33f 100644
--- a/pyGHDL/dom/formatting/GraphML.py
+++ b/pyGHDL/dom/formatting/GraphML.py
@@ -91,7 +91,7 @@ class DependencyGraphFormatter:
for vertex in vertices:
if vertex["kind"] is DependencyGraphVertexKind.Architecture:
- value = f"{vertex.Value.Entity.Identifier}({vertex.Value.Identifier})"
+ value = f"{vertex.Value.Entity.Name.Identifier}({vertex.Value.Identifier})"
elif vertex["kind"] is DependencyGraphVertexKind.Document:
value = f"{vertex.ID}"
else: