aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Lehmann <Patrick.Lehmann@plc2.de>2022-12-26 22:40:28 +0100
committerPatrick Lehmann <Patrick.Lehmann@plc2.de>2022-12-26 22:40:28 +0100
commit78a439d9e8a220125895312162fcebe62863f261 (patch)
treebe3fdc4535dd267815f5a2281d2f2e5e35a80760
parentf1059ae910767d5bb89244175d892a34e57fab63 (diff)
downloadghdl-78a439d9e8a220125895312162fcebe62863f261.tar.gz
ghdl-78a439d9e8a220125895312162fcebe62863f261.tar.bz2
ghdl-78a439d9e8a220125895312162fcebe62863f261.zip
Replaced specific code with routines from pyVHDLModel.
-rwxr-xr-xpyGHDL/cli/dom.py21
-rw-r--r--pyGHDL/dom/_Utils.py11
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)}")