diff options
-rwxr-xr-x | pyGHDL/cli/dom.py | 21 | ||||
-rw-r--r-- | pyGHDL/dom/_Utils.py | 11 |
2 files changed, 21 insertions, 11 deletions
diff --git a/pyGHDL/cli/dom.py b/pyGHDL/cli/dom.py index 68bd33c34..7ca4a17da 100755 --- a/pyGHDL/cli/dom.py +++ b/pyGHDL/cli/dom.py @@ -299,16 +299,23 @@ class Application(LineTerminal, ArgParseMixin): ) ) - for library in self._design.Libraries.values(): - for entityName, architectures in library.Architectures.items(): - for entity in library.Entities: - if entity.Identifier == str(entityName): - for architecture in architectures: - entity.Architectures.append(architecture) - if not self._design.Documents: self.WriteFatal("No files processed at all.") + self._design.LoadDefaultLibraries() + self._design.Analyze() + self.WriteInfo( + dedent( + """\ + default library load time: {:5.3f} us + dependency analysis time: {:5.3f} us + """ + ).format( + self._design._loadDefaultLibraryTime * 10**6, + self._design._analyzeTime * 10**6, + ) + ) + PP = PrettyPrint() buffer = [] diff --git a/pyGHDL/dom/_Utils.py b/pyGHDL/dom/_Utils.py index 87dd227a8..185f07bc4 100644 --- a/pyGHDL/dom/_Utils.py +++ b/pyGHDL/dom/_Utils.py @@ -41,7 +41,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 +from pyGHDL.dom import DOMException, Position __MODE_TRANSLATION = { nodes.Iir_Mode.In_Mode: Mode.In, @@ -138,6 +138,7 @@ def GetModeOfNode(node: Iir) -> Mode: except KeyError as ex: raise DOMException(f"Unknown mode '{ex.args[0]}'.") from ex + def GetPackageMemberSymbol(node: Iir) -> Union[PackageMembersReferenceSymbol, AllPackageMembersReferenceSymbol]: kind = GetIirKindOfNode(node) prefixName = GetPackageSymbol(nodes.Get_Prefix(node)) @@ -147,7 +148,8 @@ def GetPackageMemberSymbol(node: Iir) -> Union[PackageMembersReferenceSymbol, Al elif kind == nodes.Iir_Kind.Selected_By_All_Name: return AllPackageMembersReferenceSymbol(node, prefixName) else: - raise DOMException() + raise DOMException(f"{kind.name} at {Position.parse(node)}") + def GetPackageSymbol(node: Iir) -> PackageReferenceSymbol: kind = GetIirKindOfNode(node) @@ -156,7 +158,8 @@ def GetPackageSymbol(node: Iir) -> PackageReferenceSymbol: prefixName = GetLibrarySymbol(nodes.Get_Prefix(node)) return PackageReferenceSymbol(node, name, prefixName) else: - raise DOMException() + raise DOMException(f"{kind.name} at {Position.parse(node)}") + def GetLibrarySymbol(node: Iir) -> LibraryReferenceSymbol: kind = GetIirKindOfNode(node) @@ -164,4 +167,4 @@ def GetLibrarySymbol(node: Iir) -> LibraryReferenceSymbol: name = GetNameOfNode(node) return LibraryReferenceSymbol(node, name) else: - raise DOMException() + raise DOMException(f"{kind} at {Position.parse(node)}") |