diff options
author | Unai Martinez-Corral <38422348+umarcor@users.noreply.github.com> | 2023-04-19 20:27:33 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-19 20:27:33 +0200 |
commit | cc5cf36c2d2e87eaf01b608c7391abdba8f9fff7 (patch) | |
tree | 49769a8bc72fd1d950074a74f38475016df2b11b /pyGHDL/dom/_Utils.py | |
parent | 6544b839fe6dceb56cb544bc4f69f0ab28100172 (diff) | |
parent | 989ec4ce0d43b90a5ada0a582c5b1ec6e610cb06 (diff) | |
download | ghdl-cc5cf36c2d2e87eaf01b608c7391abdba8f9fff7.tar.gz ghdl-cc5cf36c2d2e87eaf01b608c7391abdba8f9fff7.tar.bz2 ghdl-cc5cf36c2d2e87eaf01b608c7391abdba8f9fff7.zip |
pyGHDL: Reworked Symbols and Names (#2412)
Diffstat (limited to 'pyGHDL/dom/_Utils.py')
-rw-r--r-- | pyGHDL/dom/_Utils.py | 89 |
1 files changed, 1 insertions, 88 deletions
diff --git a/pyGHDL/dom/_Utils.py b/pyGHDL/dom/_Utils.py index 7ab02ace9..f8358cb2c 100644 --- a/pyGHDL/dom/_Utils.py +++ b/pyGHDL/dom/_Utils.py @@ -30,8 +30,6 @@ # # SPDX-License-Identifier: GPL-2.0-or-later # ============================================================================ -from typing import Union - from pyTooling.Decorators import export from pyVHDLModel.Base import Mode @@ -40,18 +38,7 @@ from pyGHDL.libghdl import LibGHDLException, name_table, errorout_memory, files_ 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 import DOMException __MODE_TRANSLATION = { nodes.Iir_Mode.In_Mode: Mode.In, @@ -147,77 +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[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)}") - - -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) - 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)}") |