aboutsummaryrefslogtreecommitdiffstats
path: root/pyGHDL
diff options
context:
space:
mode:
Diffstat (limited to 'pyGHDL')
-rwxr-xr-xpyGHDL/cli/dom.py11
-rw-r--r--pyGHDL/cli/requirements.txt4
-rw-r--r--pyGHDL/dom/NonStandard.py1
-rw-r--r--pyGHDL/dom/_Translate.py16
-rw-r--r--pyGHDL/dom/requirements.txt2
-rw-r--r--pyGHDL/libghdl/requirements.txt2
6 files changed, 26 insertions, 10 deletions
diff --git a/pyGHDL/cli/dom.py b/pyGHDL/cli/dom.py
index 1ec168842..20a49d8eb 100755
--- a/pyGHDL/cli/dom.py
+++ b/pyGHDL/cli/dom.py
@@ -41,7 +41,7 @@ from pyGHDL.dom import DOMException
from pyGHDL.libghdl import LibGHDLException
from pyTooling.Decorators import export
-from pyTooling.MetaClasses import Singleton
+from pyTooling.MetaClasses import ExtendedType
from pyTooling.TerminalUI import LineTerminal, Severity
from pyAttributes import Attribute
from pyAttributes.ArgParseAttributes import (
@@ -118,10 +118,6 @@ class Application(LineTerminal, ArgParseMixin):
def __init__(self, debug=False, verbose=False, quiet=False, sphinx=False):
super().__init__(verbose, debug, quiet)
- # Initialize the Terminal class
- # --------------------------------------------------------------------------
- Singleton.Register(LineTerminal, self)
-
# Initialize DOM with an empty design
# --------------------------------------------------------------------------
self._design = Design()
@@ -311,6 +307,9 @@ class Application(LineTerminal, ArgParseMixin):
for architecture in architectures:
entity.Architectures.append(architecture)
+ if not self._design.Documents:
+ self.WriteFatal(f"No files processed at all.")
+
PP = PrettyPrint()
buffer = []
@@ -347,7 +346,7 @@ def main(): # mccabe:disable=MC0001
try:
# handover to a class instance
- app = Application(debug, verbose, quiet)
+ app = Application() # debug, verbose, quiet)
app.Run()
app.exit()
except PrettyPrintException as ex:
diff --git a/pyGHDL/cli/requirements.txt b/pyGHDL/cli/requirements.txt
index 9865f70b8..e453bcbde 100644
--- a/pyGHDL/cli/requirements.txt
+++ b/pyGHDL/cli/requirements.txt
@@ -1,5 +1,5 @@
-r ../dom/requirements.txt
-pyTooling>=1.6.0,<=1.10.0
-pyTooling.TerminalUI>=1.5.3,<=1.5.7
+pyTooling>=2.1.0
+pyTooling.TerminalUI>=1.5.9
pyAttributes>=2.3.2
diff --git a/pyGHDL/dom/NonStandard.py b/pyGHDL/dom/NonStandard.py
index f6f451325..4e842f012 100644
--- a/pyGHDL/dom/NonStandard.py
+++ b/pyGHDL/dom/NonStandard.py
@@ -98,6 +98,7 @@ class Design(VHDLModel_Design):
errorout_memory.Install_Handler()
libghdl_set_option("--std=08")
+ libghdl_set_option("--ams")
parse.Flag_Parse_Parenthesis.value = True
diff --git a/pyGHDL/dom/_Translate.py b/pyGHDL/dom/_Translate.py
index ee1586e6b..2f4a90343 100644
--- a/pyGHDL/dom/_Translate.py
+++ b/pyGHDL/dom/_Translate.py
@@ -823,6 +823,16 @@ def GetDeclaredItemsFromChainedNodes(nodeChain: Iir, entity: str, name: str) ->
print("[NOT IMPLEMENTED] Group template declaration in {name}".format(name=name))
elif kind == nodes.Iir_Kind.Disconnection_Specification:
print("[NOT IMPLEMENTED] Disconnect specification in {name}".format(name=name))
+ elif kind == nodes.Iir_Kind.Nature_Declaration:
+ print("[NOT IMPLEMENTED] Nature declaration in {name}".format(name=name))
+ elif kind == nodes.Iir_Kind.Free_Quantity_Declaration:
+ print("[NOT IMPLEMENTED] Free quantity declaration in {name}".format(name=name))
+ elif kind == nodes.Iir_Kind.Across_Quantity_Declaration:
+ print("[NOT IMPLEMENTED] Across quantity declaration in {name}".format(name=name))
+ elif kind == nodes.Iir_Kind.Through_Quantity_Declaration:
+ print("[NOT IMPLEMENTED] Through quantity declaration in {name}".format(name=name))
+ elif kind == nodes.Iir_Kind.Terminal_Declaration:
+ print("[NOT IMPLEMENTED] Terminal declaration in {name}".format(name=name))
else:
position = Position.parse(item)
raise DOMException(
@@ -924,6 +934,12 @@ def GetConcurrentStatementsFromChainedNodes(
yield ForGenerateStatement.parse(statement, label)
elif kind == nodes.Iir_Kind.Psl_Assert_Directive:
yield ConcurrentAssertStatement.parse(statement, label)
+ elif kind == nodes.Iir_Kind.Simple_Simultaneous_Statement:
+ print(
+ "[NOT IMPLEMENTED] Simple simultaneous statement (label: '{label}') at line {line}".format(
+ label=label, line=pos.Line
+ )
+ )
else:
raise DOMException(
"Unknown statement of kind '{kind}' in {entity} '{name}' at {file}:{line}:{column}.".format(
diff --git a/pyGHDL/dom/requirements.txt b/pyGHDL/dom/requirements.txt
index 18b3495eb..943757e92 100644
--- a/pyGHDL/dom/requirements.txt
+++ b/pyGHDL/dom/requirements.txt
@@ -1,4 +1,4 @@
-r ../libghdl/requirements.txt
-pyVHDLModel==0.14.1
+pyVHDLModel==0.14.4
#https://github.com/VHDL/pyVHDLModel/archive/dev.zip#pyVHDLModel
diff --git a/pyGHDL/libghdl/requirements.txt b/pyGHDL/libghdl/requirements.txt
index aeb01d251..5f5b740d6 100644
--- a/pyGHDL/libghdl/requirements.txt
+++ b/pyGHDL/libghdl/requirements.txt
@@ -1 +1 @@
-pyTooling>=1.6.0,<=1.10.0
+pyTooling>=2.1.0