From 469a8d28a1efae99ea1dc1e3f3c84c4889ba2421 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Tue, 22 Jun 2021 18:36:46 +0200 Subject: Code cleanups. --- pyGHDL/dom/Object.py | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'pyGHDL/dom/Object.py') diff --git a/pyGHDL/dom/Object.py b/pyGHDL/dom/Object.py index 1f1f8f6d9..746971bac 100644 --- a/pyGHDL/dom/Object.py +++ b/pyGHDL/dom/Object.py @@ -63,9 +63,7 @@ class Constant(VHDLModel_Constant): subTypeIndication = GetSubtypeIndicationFromNode(node, "constant", name) defaultExpression = GetExpressionFromNode(nodes.Get_Default_Value(node)) - constant = cls(name, subTypeIndication, defaultExpression) - - return constant + return cls(name, subTypeIndication, defaultExpression) @export @@ -85,9 +83,7 @@ class Variable(VHDLModel_Variable): subTypeIndication = GetSubtypeIndicationFromNode(node, "variable", name) defaultExpression = GetExpressionFromNode(nodes.Get_Default_Value(node)) - variable = cls(name, subTypeIndication, defaultExpression) - - return variable + return cls(name, subTypeIndication, defaultExpression) @export @@ -108,6 +104,4 @@ class Signal(VHDLModel_Signal): default = nodes.Get_Default_Value(node) defaultExpression = GetExpressionFromNode(default) if default else None - signal = cls(name, subTypeIndication, defaultExpression) - - return signal + return cls(name, subTypeIndication, defaultExpression) -- cgit v1.2.3 From ea328fa671fc42569a688c8dfb308d87f42771c3 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Tue, 22 Jun 2021 19:20:16 +0200 Subject: Prepared for DeferredConstant. --- pyGHDL/dom/Object.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'pyGHDL/dom/Object.py') diff --git a/pyGHDL/dom/Object.py b/pyGHDL/dom/Object.py index 746971bac..953fddc41 100644 --- a/pyGHDL/dom/Object.py +++ b/pyGHDL/dom/Object.py @@ -37,6 +37,7 @@ from pyGHDL.dom._Translate import GetSubtypeIndicationFromNode, GetExpressionFro from pyGHDL.dom._Utils import GetNameOfNode from pyVHDLModel.VHDLModel import ( Constant as VHDLModel_Constant, + DeferredConstant as VHDLModel_DeferredConstant, Variable as VHDLModel_Variable, Signal as VHDLModel_Signal, Expression, @@ -66,6 +67,24 @@ class Constant(VHDLModel_Constant): return cls(name, subTypeIndication, defaultExpression) +@export +class DeferredConstant(VHDLModel_DeferredConstant): + def __init__(self, name: str, subType: SubTypeOrSymbol): + super().__init__(name) + + self._name = name + self._subType = subType + + @classmethod + def parse(cls, node): + name = GetNameOfNode(node) + subTypeIndication = GetSubtypeIndicationFromNode( + node, "deferred constant", name + ) + + return cls(name, subTypeIndication) + + @export class Variable(VHDLModel_Variable): def __init__( -- cgit v1.2.3 From 6b5e08c5373607115cb0fec38b67a76e2f7f8927 Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Tue, 22 Jun 2021 23:30:06 +0200 Subject: Handle shared variables. --- pyGHDL/dom/Object.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'pyGHDL/dom/Object.py') diff --git a/pyGHDL/dom/Object.py b/pyGHDL/dom/Object.py index 953fddc41..c8777f722 100644 --- a/pyGHDL/dom/Object.py +++ b/pyGHDL/dom/Object.py @@ -39,6 +39,7 @@ from pyVHDLModel.VHDLModel import ( Constant as VHDLModel_Constant, DeferredConstant as VHDLModel_DeferredConstant, Variable as VHDLModel_Variable, + SharedVariable as VHDLModel_SharedVariable, Signal as VHDLModel_Signal, Expression, SubTypeOrSymbol, @@ -105,6 +106,22 @@ class Variable(VHDLModel_Variable): return cls(name, subTypeIndication, defaultExpression) +@export +class SharedVariable(VHDLModel_SharedVariable): + def __init__(self, name: str, subType: SubTypeOrSymbol): + super().__init__(name) + + self._name = name + self._subType = subType + + @classmethod + def parse(cls, node): + name = GetNameOfNode(node) + subTypeIndication = GetSubtypeIndicationFromNode(node, "variable", name) + + return cls(name, subTypeIndication) + + @export class Signal(VHDLModel_Signal): def __init__( -- cgit v1.2.3 From 95d5cb9329ee335a64e444ed0fd93bb0950edc5a Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Wed, 23 Jun 2021 10:52:13 +0200 Subject: Removed duplicate function. --- pyGHDL/dom/Object.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'pyGHDL/dom/Object.py') diff --git a/pyGHDL/dom/Object.py b/pyGHDL/dom/Object.py index c8777f722..a5ea4b1ff 100644 --- a/pyGHDL/dom/Object.py +++ b/pyGHDL/dom/Object.py @@ -33,7 +33,7 @@ from pyGHDL.libghdl.vhdl import nodes from pydecor import export -from pyGHDL.dom._Translate import GetSubtypeIndicationFromNode, GetExpressionFromNode +from pyGHDL.dom._Translate import GetSubTypeIndicationFromNode, GetExpressionFromNode from pyGHDL.dom._Utils import GetNameOfNode from pyVHDLModel.VHDLModel import ( Constant as VHDLModel_Constant, @@ -62,7 +62,7 @@ class Constant(VHDLModel_Constant): @classmethod def parse(cls, node): name = GetNameOfNode(node) - subTypeIndication = GetSubtypeIndicationFromNode(node, "constant", name) + subTypeIndication = GetSubTypeIndicationFromNode(node, "constant", name) defaultExpression = GetExpressionFromNode(nodes.Get_Default_Value(node)) return cls(name, subTypeIndication, defaultExpression) @@ -79,7 +79,7 @@ class DeferredConstant(VHDLModel_DeferredConstant): @classmethod def parse(cls, node): name = GetNameOfNode(node) - subTypeIndication = GetSubtypeIndicationFromNode( + subTypeIndication = GetSubTypeIndicationFromNode( node, "deferred constant", name ) @@ -100,7 +100,7 @@ class Variable(VHDLModel_Variable): @classmethod def parse(cls, node): name = GetNameOfNode(node) - subTypeIndication = GetSubtypeIndicationFromNode(node, "variable", name) + subTypeIndication = GetSubTypeIndicationFromNode(node, "variable", name) defaultExpression = GetExpressionFromNode(nodes.Get_Default_Value(node)) return cls(name, subTypeIndication, defaultExpression) @@ -117,7 +117,7 @@ class SharedVariable(VHDLModel_SharedVariable): @classmethod def parse(cls, node): name = GetNameOfNode(node) - subTypeIndication = GetSubtypeIndicationFromNode(node, "variable", name) + subTypeIndication = GetSubTypeIndicationFromNode(node, "variable", name) return cls(name, subTypeIndication) @@ -136,7 +136,7 @@ class Signal(VHDLModel_Signal): @classmethod def parse(cls, node): name = GetNameOfNode(node) - subTypeIndication = GetSubtypeIndicationFromNode(node, "signal", name) + subTypeIndication = GetSubTypeIndicationFromNode(node, "signal", name) default = nodes.Get_Default_Value(node) defaultExpression = GetExpressionFromNode(default) if default else None -- cgit v1.2.3