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/_Utils.py | 47 ++++++++--------------------------------------- 1 file changed, 8 insertions(+), 39 deletions(-) (limited to 'pyGHDL/dom/_Utils.py') diff --git a/pyGHDL/dom/_Utils.py b/pyGHDL/dom/_Utils.py index 7ab02ace9..5a9c1c135 100644 --- a/pyGHDL/dom/_Utils.py +++ b/pyGHDL/dom/_Utils.py @@ -35,23 +35,15 @@ from typing import Union from pyTooling.Decorators import export from pyVHDLModel.Base import Mode +from pyVHDLModel.Name import Name +from pyVHDLModel.Symbol import PackageMembersReferenceSymbol, AllPackageMembersReferenceSymbol from pyGHDL.libghdl import LibGHDLException, name_table, errorout_memory, files_map, file_comments from pyGHDL.libghdl._types import Iir from pyGHDL.libghdl.vhdl import nodes, utils from pyGHDL.libghdl.vhdl.nodes import Null_Iir from pyGHDL.dom import DOMException, Position -from pyGHDL.dom.Symbol import ( - LibraryReferenceSymbol, - PackageReferenceSymbol, - PackageMembersReferenceSymbol, - AllPackageMembersReferenceSymbol, - ContextReferenceSymbol, - EntityInstantiationSymbol, - ComponentInstantiationSymbol, - ConfigurationInstantiationSymbol, -) - +from pyGHDL.dom.Names import SelectedName, AllName, SimpleName __MODE_TRANSLATION = { nodes.Iir_Mode.In_Mode: Mode.In, @@ -172,35 +164,12 @@ def GetPackageSymbol(node: Iir) -> PackageReferenceSymbol: def GetPackageMemberSymbol( node: Iir, -) -> Union[PackageReferenceSymbol, PackageMembersReferenceSymbol, AllPackageMembersReferenceSymbol]: - kind = GetIirKindOfNode(node) - prefixName = GetPackageSymbol(nodes.Get_Prefix(node)) - if kind == nodes.Iir_Kind.Selected_Name: - name = GetNameOfNode(node) - return PackageMembersReferenceSymbol(node, name, prefixName) - elif kind == nodes.Iir_Kind.Selected_By_All_Name: - prefixName = GetPackageSymbol(nodes.Get_Prefix(node)) - return AllPackageMembersReferenceSymbol(node, prefixName) - else: - raise DOMException(f"{kind.name} at {Position.parse(node)}") - +) -> Union[PackageMembersReferenceSymbol, AllPackageMembersReferenceSymbol]: + from pyGHDL.dom._Translate import GetName -def GetContextSymbol(node: Iir) -> ContextReferenceSymbol: - kind = GetIirKindOfNode(node) - if kind == nodes.Iir_Kind.Selected_Name: - name = GetNameOfNode(node) - prefixName = GetLibrarySymbol(nodes.Get_Prefix(node)) - return ContextReferenceSymbol(node, name, prefixName) - else: - raise DOMException(f"{kind.name} at {Position.parse(node)}") - - -def GetEntityInstantiationSymbol(node: Iir) -> EntityInstantiationSymbol: - kind = GetIirKindOfNode(node) - if kind == nodes.Iir_Kind.Selected_Name: - name = GetNameOfNode(node) - prefixName = GetLibrarySymbol(nodes.Get_Prefix(node)) - return EntityInstantiationSymbol(node, name, prefixName) + name = GetName(node) + if isinstance(name, AllName): + return AllPackageMembersReferenceSymbol(name) else: raise DOMException(f"{kind.name} at {Position.parse(node)}") -- 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/_Utils.py | 58 +--------------------------------------------------- 1 file changed, 1 insertion(+), 57 deletions(-) (limited to 'pyGHDL/dom/_Utils.py') diff --git a/pyGHDL/dom/_Utils.py b/pyGHDL/dom/_Utils.py index 5a9c1c135..f8358cb2c 100644 --- a/pyGHDL/dom/_Utils.py +++ b/pyGHDL/dom/_Utils.py @@ -30,20 +30,15 @@ # # SPDX-License-Identifier: GPL-2.0-or-later # ============================================================================ -from typing import Union - from pyTooling.Decorators import export from pyVHDLModel.Base import Mode -from pyVHDLModel.Name import Name -from pyVHDLModel.Symbol import PackageMembersReferenceSymbol, AllPackageMembersReferenceSymbol from pyGHDL.libghdl import LibGHDLException, name_table, errorout_memory, files_map, file_comments from pyGHDL.libghdl._types import Iir from pyGHDL.libghdl.vhdl import nodes, utils from pyGHDL.libghdl.vhdl.nodes import Null_Iir -from pyGHDL.dom import DOMException, Position -from pyGHDL.dom.Names import SelectedName, AllName, SimpleName +from pyGHDL.dom import DOMException __MODE_TRANSLATION = { nodes.Iir_Mode.In_Mode: Mode.In, @@ -139,54 +134,3 @@ def GetModeOfNode(node: Iir) -> Mode: return __MODE_TRANSLATION[nodes.Get_Mode(node)] except KeyError as ex: raise DOMException(f"Unknown mode '{ex.args[0]}'.") from ex - - -def GetLibrarySymbol(node: Iir) -> LibraryReferenceSymbol: - kind = GetIirKindOfNode(node) - if kind == nodes.Iir_Kind.Simple_Name: - name = GetNameOfNode(node) - return LibraryReferenceSymbol(node, name) - else: - raise DOMException(f"{kind} at {Position.parse(node)}") - - -def GetPackageSymbol(node: Iir) -> PackageReferenceSymbol: - kind = GetIirKindOfNode(node) - name = GetNameOfNode(node) - if kind == nodes.Iir_Kind.Selected_Name: - prefixName = GetLibrarySymbol(nodes.Get_Prefix(node)) - return PackageReferenceSymbol(node, name, prefixName) - elif kind == nodes.Iir_Kind.Simple_Name: - return PackageReferenceSymbol(node, name, None) - else: - raise DOMException(f"{kind.name} at {Position.parse(node)}") - - -def GetPackageMemberSymbol( - node: Iir, -) -> Union[PackageMembersReferenceSymbol, AllPackageMembersReferenceSymbol]: - from pyGHDL.dom._Translate import GetName - - name = GetName(node) - if isinstance(name, AllName): - return AllPackageMembersReferenceSymbol(name) - else: - raise DOMException(f"{kind.name} at {Position.parse(node)}") - - -def GetComponentInstantiationSymbol(node: Iir) -> ComponentInstantiationSymbol: - kind = GetIirKindOfNode(node) - if kind == nodes.Iir_Kind.Simple_Name: - name = GetNameOfNode(node) - return ComponentInstantiationSymbol(node, name) - else: - raise DOMException(f"{kind.name} at {Position.parse(node)}") - - -def GetConfigurationInstantiationSymbol(node: Iir) -> ConfigurationInstantiationSymbol: - kind = GetIirKindOfNode(node) - if kind == nodes.Iir_Kind.Simple_Name: - name = GetNameOfNode(node) - return ConfigurationInstantiationSymbol(node, name) - else: - raise DOMException(f"{kind.name} at {Position.parse(node)}") -- cgit v1.2.3