From ca39821dc013a877a8dbdfabbc3b861eb4d4d2e3 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Mon, 26 Jul 2021 00:13:11 +0200 Subject: Adjusted to renaming in pyVHDLModel. --- pyGHDL/dom/Object.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'pyGHDL/dom/Object.py') diff --git a/pyGHDL/dom/Object.py b/pyGHDL/dom/Object.py index d25acb587..623917661 100644 --- a/pyGHDL/dom/Object.py +++ b/pyGHDL/dom/Object.py @@ -32,10 +32,9 @@ # ============================================================================ from typing import Union -from pyGHDL.libghdl._types import Iir from pydecor import export -from pyVHDLModel.VHDLModel import ( +from pyVHDLModel.SyntaxModel import ( Constant as VHDLModel_Constant, DeferredConstant as VHDLModel_DeferredConstant, Variable as VHDLModel_Variable, @@ -46,6 +45,7 @@ from pyVHDLModel.VHDLModel import ( SubtypeOrSymbol, ) +from pyGHDL.libghdl._types import Iir from pyGHDL.libghdl.vhdl import nodes from pyGHDL.dom import DOMMixin from pyGHDL.dom._Utils import GetNameOfNode -- cgit v1.2.3 From 77f969a11ea5ac38f007dbf3aab986dcf10125b0 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Mon, 26 Jul 2021 03:11:03 +0200 Subject: Also handle multiple identifiers in signal, variable, object and file declarations. --- pyGHDL/dom/Object.py | 85 +++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 65 insertions(+), 20 deletions(-) (limited to 'pyGHDL/dom/Object.py') diff --git a/pyGHDL/dom/Object.py b/pyGHDL/dom/Object.py index 623917661..b14d0094c 100644 --- a/pyGHDL/dom/Object.py +++ b/pyGHDL/dom/Object.py @@ -30,7 +30,7 @@ # # SPDX-License-Identifier: GPL-2.0-or-later # ============================================================================ -from typing import Union +from typing import Union, List from pydecor import export @@ -58,11 +58,11 @@ class Constant(VHDLModel_Constant, DOMMixin): def __init__( self, node: Iir, - identifier: str, + identifiers: List[str], subtype: SubtypeOrSymbol, defaultExpression: Expression, ): - super().__init__(identifier, subtype, defaultExpression) + super().__init__(identifiers, subtype, defaultExpression) DOMMixin.__init__(self, node) @classmethod @@ -78,15 +78,28 @@ class Constant(VHDLModel_Constant, DOMMixin): if defaultValue != nodes.Null_Iir: defaultExpression = GetExpressionFromNode(defaultValue) - return cls(constantNode, name, subtypeIndication, defaultExpression) + return cls( + constantNode, + list( + name, + ), + subtypeIndication, + defaultExpression, + ) else: - return DeferredConstant(constantNode, name, subtypeIndication) + return DeferredConstant( + constantNode, + list( + name, + ), + subtypeIndication, + ) @export class DeferredConstant(VHDLModel_DeferredConstant, DOMMixin): - def __init__(self, node: Iir, identifier: str, subtype: SubtypeOrSymbol): - super().__init__(identifier, subtype) + def __init__(self, node: Iir, identifiers: List[str], subtype: SubtypeOrSymbol): + super().__init__(identifiers, subtype) DOMMixin.__init__(self, node) @classmethod @@ -98,7 +111,13 @@ class DeferredConstant(VHDLModel_DeferredConstant, DOMMixin): constantNode, "deferred constant", name ) - return cls(constantNode, name, subtypeIndication) + return cls( + constantNode, + list( + name, + ), + subtypeIndication, + ) @export @@ -106,11 +125,11 @@ class Variable(VHDLModel_Variable, DOMMixin): def __init__( self, node: Iir, - identifier: str, + identifiers: List[str], subtype: SubtypeOrSymbol, defaultExpression: Expression, ): - super().__init__(identifier, subtype, defaultExpression) + super().__init__(identifiers, subtype, defaultExpression) DOMMixin.__init__(self, node) @classmethod @@ -127,13 +146,20 @@ class Variable(VHDLModel_Variable, DOMMixin): if defaultValue != nodes.Null_Iir: defaultExpression = GetExpressionFromNode(defaultValue) - return cls(variableNode, name, subtypeIndication, defaultExpression) + return cls( + variableNode, + list( + name, + ), + subtypeIndication, + defaultExpression, + ) @export class SharedVariable(VHDLModel_SharedVariable, DOMMixin): - def __init__(self, node: Iir, identifier: str, subtype: SubtypeOrSymbol): - super().__init__(identifier, subtype) + def __init__(self, node: Iir, identifiers: List[str], subtype: SubtypeOrSymbol): + super().__init__(identifiers, subtype) DOMMixin.__init__(self, node) @classmethod @@ -143,7 +169,13 @@ class SharedVariable(VHDLModel_SharedVariable, DOMMixin): name = GetNameOfNode(variableNode) subtypeIndication = GetSubtypeIndicationFromNode(variableNode, "variable", name) - return cls(variableNode, name, subtypeIndication) + return cls( + variableNode, + list( + name, + ), + subtypeIndication, + ) @export @@ -151,11 +183,11 @@ class Signal(VHDLModel_Signal, DOMMixin): def __init__( self, node: Iir, - identifier: str, + identifiers: List[str], subtype: SubtypeOrSymbol, defaultExpression: Expression, ): - super().__init__(identifier, subtype, defaultExpression) + super().__init__(identifiers, subtype, defaultExpression) DOMMixin.__init__(self, node) @classmethod @@ -170,13 +202,20 @@ class Signal(VHDLModel_Signal, DOMMixin): default = nodes.Get_Default_Value(signalNode) defaultExpression = GetExpressionFromNode(default) if default else None - return cls(signalNode, name, subtypeIndication, defaultExpression) + return cls( + signalNode, + list( + name, + ), + subtypeIndication, + defaultExpression, + ) @export class File(VHDLModel_File, DOMMixin): - def __init__(self, node: Iir, identifier: str, subtype: SubtypeOrSymbol): - super().__init__(identifier, subtype) + def __init__(self, node: Iir, identifiers: List[str], subtype: SubtypeOrSymbol): + super().__init__(identifiers, subtype) DOMMixin.__init__(self, node) @classmethod @@ -188,4 +227,10 @@ class File(VHDLModel_File, DOMMixin): # FIXME: handle file open stuff - return cls(fileNode, name, subtypeIndication) + return cls( + fileNode, + list( + name, + ), + subtypeIndication, + ) -- cgit v1.2.3 From 5314281f0b8090f820ae64b652e40c300c2bdec2 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Fri, 30 Jul 2021 23:55:18 +0200 Subject: Fixes. --- pyGHDL/dom/Object.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'pyGHDL/dom/Object.py') diff --git a/pyGHDL/dom/Object.py b/pyGHDL/dom/Object.py index b14d0094c..b83f352a4 100644 --- a/pyGHDL/dom/Object.py +++ b/pyGHDL/dom/Object.py @@ -80,18 +80,18 @@ class Constant(VHDLModel_Constant, DOMMixin): return cls( constantNode, - list( + [ name, - ), + ], subtypeIndication, defaultExpression, ) else: return DeferredConstant( constantNode, - list( + [ name, - ), + ], subtypeIndication, ) @@ -113,9 +113,9 @@ class DeferredConstant(VHDLModel_DeferredConstant, DOMMixin): return cls( constantNode, - list( + [ name, - ), + ], subtypeIndication, ) @@ -148,9 +148,9 @@ class Variable(VHDLModel_Variable, DOMMixin): return cls( variableNode, - list( + [ name, - ), + ], subtypeIndication, defaultExpression, ) @@ -171,9 +171,9 @@ class SharedVariable(VHDLModel_SharedVariable, DOMMixin): return cls( variableNode, - list( + [ name, - ), + ], subtypeIndication, ) @@ -204,9 +204,9 @@ class Signal(VHDLModel_Signal, DOMMixin): return cls( signalNode, - list( + [ name, - ), + ], subtypeIndication, defaultExpression, ) @@ -229,8 +229,8 @@ class File(VHDLModel_File, DOMMixin): return cls( fileNode, - list( + [ name, - ), + ], subtypeIndication, ) -- cgit v1.2.3 From 8b98e2883b40b00922c9944c2470211ee055a9a5 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Mon, 23 Aug 2021 09:02:47 +0200 Subject: Fixes due to a bug in pyVHDLModel. Name Context was used twice. --- pyGHDL/dom/Object.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'pyGHDL/dom/Object.py') diff --git a/pyGHDL/dom/Object.py b/pyGHDL/dom/Object.py index b83f352a4..def09d50c 100644 --- a/pyGHDL/dom/Object.py +++ b/pyGHDL/dom/Object.py @@ -41,7 +41,7 @@ from pyVHDLModel.SyntaxModel import ( SharedVariable as VHDLModel_SharedVariable, Signal as VHDLModel_Signal, File as VHDLModel_File, - Expression, + ExpressionUnion, SubtypeOrSymbol, ) @@ -60,7 +60,7 @@ class Constant(VHDLModel_Constant, DOMMixin): node: Iir, identifiers: List[str], subtype: SubtypeOrSymbol, - defaultExpression: Expression, + defaultExpression: ExpressionUnion, ): super().__init__(identifiers, subtype, defaultExpression) DOMMixin.__init__(self, node) @@ -127,7 +127,7 @@ class Variable(VHDLModel_Variable, DOMMixin): node: Iir, identifiers: List[str], subtype: SubtypeOrSymbol, - defaultExpression: Expression, + defaultExpression: ExpressionUnion, ): super().__init__(identifiers, subtype, defaultExpression) DOMMixin.__init__(self, node) @@ -185,7 +185,7 @@ class Signal(VHDLModel_Signal, DOMMixin): node: Iir, identifiers: List[str], subtype: SubtypeOrSymbol, - defaultExpression: Expression, + defaultExpression: ExpressionUnion, ): super().__init__(identifiers, subtype, defaultExpression) DOMMixin.__init__(self, node) -- cgit v1.2.3