From e95d45e41d32c0d73179cea22c8b3ea812eafb41 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Thu, 13 Apr 2023 23:44:29 +0200 Subject: Reworking symbols. --- pyGHDL/dom/DesignUnit.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'pyGHDL/dom/DesignUnit.py') diff --git a/pyGHDL/dom/DesignUnit.py b/pyGHDL/dom/DesignUnit.py index 079364742..6484d1532 100644 --- a/pyGHDL/dom/DesignUnit.py +++ b/pyGHDL/dom/DesignUnit.py @@ -63,8 +63,8 @@ from pyGHDL.libghdl import utils from pyGHDL.libghdl._types import Iir from pyGHDL.libghdl.vhdl import nodes from pyGHDL.dom import DOMMixin, Position, DOMException -from pyGHDL.dom._Utils import GetNameOfNode, GetDocumentationOfNode, GetPackageMemberSymbol, GetContextSymbol -from pyGHDL.dom._Translate import GetGenericsFromChainedNodes, GetPortsFromChainedNodes +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 @@ -158,7 +158,7 @@ class Architecture(VHDLModel_Architecture, DOMMixin): name = GetNameOfNode(architectureNode) documentation = GetDocumentationOfNode(architectureNode) entityNameNode = nodes.Get_Entity_Name(architectureNode) - entitySymbol = EntitySymbol(entityNameNode, GetNameOfNode(entityNameNode)) + entitySymbol = EntitySymbol(entityNameNode, GetName(entityNameNode)) declaredItems = GetDeclaredItemsFromChainedNodes( nodes.Get_Declaration_Chain(architectureNode), "architecture", name ) @@ -241,7 +241,7 @@ class PackageBody(VHDLModel_PackageBody, DOMMixin): @classmethod def parse(cls, packageBodyNode: Iir, contextItems: Iterable[VHDLModel_ContextUnion]): - packageName = GetNameOfNode(packageBodyNode) + packageName = GetName(packageBodyNode) packageSymbol = PackageSymbol(packageBodyNode, packageName) documentation = GetDocumentationOfNode(packageBodyNode) declaredItems = GetDeclaredItemsFromChainedNodes( -- cgit v1.2.3 From bee2616e7fed89c042f79592ddfafa2f6aea451e Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Fri, 14 Apr 2023 07:42:22 +0200 Subject: Fixes due to failing testcases. --- pyGHDL/dom/DesignUnit.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'pyGHDL/dom/DesignUnit.py') 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) -- cgit v1.2.3 From d67bfa80c0c7d013a99636d7959cf433000ab2e7 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Sat, 15 Apr 2023 10:43:09 +0200 Subject: Modifications due to changes in Symbols. --- pyGHDL/dom/DesignUnit.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'pyGHDL/dom/DesignUnit.py') diff --git a/pyGHDL/dom/DesignUnit.py b/pyGHDL/dom/DesignUnit.py index ef1a37493..9779a7ea0 100644 --- a/pyGHDL/dom/DesignUnit.py +++ b/pyGHDL/dom/DesignUnit.py @@ -66,6 +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.Names import SimpleName from pyGHDL.dom.Symbol import EntitySymbol, ContextReferenceSymbol, LibraryReferenceSymbol, PackageSymbol, PackageMemberReferenceSymbol @@ -245,11 +246,11 @@ class PackageBody(VHDLModel_PackageBody, DOMMixin): @classmethod def parse(cls, packageBodyNode: Iir, contextItems: Iterable[VHDLModel_ContextUnion]): - packageName = GetName(packageBodyNode) - packageSymbol = PackageSymbol(packageBodyNode, packageName) + packageIdentifier = GetNameOfNode(packageBodyNode) + packageSymbol = PackageSymbol(packageBodyNode, SimpleName(packageBodyNode, packageIdentifier)) documentation = GetDocumentationOfNode(packageBodyNode) declaredItems = GetDeclaredItemsFromChainedNodes( - nodes.Get_Declaration_Chain(packageBodyNode), "package", packageName + nodes.Get_Declaration_Chain(packageBodyNode), "package", packageIdentifier ) # FIXME: read use clauses @@ -309,7 +310,7 @@ class Context(VHDLModel_Context, DOMMixin): kind = GetIirKindOfNode(item) if kind is nodes.Iir_Kind.Library_Clause: libraryIdentifier = GetNameOfNode(item) - names.append(LibraryReferenceSymbol(item, libraryIdentifier)) + names.append(LibraryReferenceSymbol(item, SimpleName(item, libraryIdentifier))) if nodes.Get_Has_Identifier_List(item): continue -- cgit v1.2.3 From 636bdef4116fc635b2f4be04db7ab06543085121 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Sat, 15 Apr 2023 19:10:33 +0200 Subject: Formatting by black. --- pyGHDL/dom/DesignUnit.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'pyGHDL/dom/DesignUnit.py') diff --git a/pyGHDL/dom/DesignUnit.py b/pyGHDL/dom/DesignUnit.py index 9779a7ea0..cfaa7d55f 100644 --- a/pyGHDL/dom/DesignUnit.py +++ b/pyGHDL/dom/DesignUnit.py @@ -66,8 +66,14 @@ 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.Names import SimpleName -from pyGHDL.dom.Symbol import EntitySymbol, ContextReferenceSymbol, LibraryReferenceSymbol, PackageSymbol, PackageMemberReferenceSymbol +from pyGHDL.dom.Names import SimpleName +from pyGHDL.dom.Symbol import ( + EntitySymbol, + ContextReferenceSymbol, + LibraryReferenceSymbol, + PackageSymbol, + PackageMemberReferenceSymbol, +) @export -- cgit v1.2.3 From e58078203afbdde0fb41c5a3ec43c80312cbbd8b Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Sat, 15 Apr 2023 23:55:17 +0200 Subject: Removed Get**Symbol functions. --- pyGHDL/dom/DesignUnit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'pyGHDL/dom/DesignUnit.py') diff --git a/pyGHDL/dom/DesignUnit.py b/pyGHDL/dom/DesignUnit.py index cfaa7d55f..48ae24b6f 100644 --- a/pyGHDL/dom/DesignUnit.py +++ b/pyGHDL/dom/DesignUnit.py @@ -63,7 +63,7 @@ from pyGHDL.libghdl import utils from pyGHDL.libghdl._types import Iir from pyGHDL.libghdl.vhdl import nodes from pyGHDL.dom import DOMMixin, Position, DOMException -from pyGHDL.dom._Utils import GetNameOfNode, GetDocumentationOfNode, GetPackageMemberSymbol +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 -- cgit v1.2.3 From 61bb37c757e5167b617823d6b100edf54de154d6 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Sun, 16 Apr 2023 19:43:35 +0200 Subject: Fixed last testcase. --- pyGHDL/dom/DesignUnit.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'pyGHDL/dom/DesignUnit.py') 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) -- cgit v1.2.3 From 989ec4ce0d43b90a5ada0a582c5b1ec6e610cb06 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Sun, 16 Apr 2023 20:03:06 +0200 Subject: Bumped dependencies. --- pyGHDL/dom/DesignUnit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'pyGHDL/dom/DesignUnit.py') diff --git a/pyGHDL/dom/DesignUnit.py b/pyGHDL/dom/DesignUnit.py index edca0789e..9e9df15d0 100644 --- a/pyGHDL/dom/DesignUnit.py +++ b/pyGHDL/dom/DesignUnit.py @@ -73,7 +73,7 @@ from pyGHDL.dom.Symbol import ( LibraryReferenceSymbol, PackageSymbol, PackageMemberReferenceSymbol, - AllPackageMembersReferenceSymbol + AllPackageMembersReferenceSymbol, ) -- cgit v1.2.3