diff options
author | Patrick Lehmann <Patrick.Lehmann@plc2.de> | 2021-06-27 22:46:28 +0200 |
---|---|---|
committer | Patrick Lehmann <Patrick.Lehmann@plc2.de> | 2021-07-01 06:39:46 +0200 |
commit | 5c2afa1e06c43e4f445e3387b3de77231b6c42d4 (patch) | |
tree | 865a9605f2447d4600899caa23b2de450405c075 /pyGHDL/dom | |
parent | 2b8408086015c15c105c3a173e9485c19e391980 (diff) | |
download | ghdl-5c2afa1e06c43e4f445e3387b3de77231b6c42d4.tar.gz ghdl-5c2afa1e06c43e4f445e3387b3de77231b6c42d4.tar.bz2 ghdl-5c2afa1e06c43e4f445e3387b3de77231b6c42d4.zip |
Fixed MRO problems.
Diffstat (limited to 'pyGHDL/dom')
-rw-r--r-- | pyGHDL/dom/InterfaceItem.py | 6 | ||||
-rw-r--r-- | pyGHDL/dom/Object.py | 33 | ||||
-rw-r--r-- | pyGHDL/dom/formatting/prettyprint.py | 18 |
3 files changed, 25 insertions, 32 deletions
diff --git a/pyGHDL/dom/InterfaceItem.py b/pyGHDL/dom/InterfaceItem.py index c5955c6aa..97ef0cfe8 100644 --- a/pyGHDL/dom/InterfaceItem.py +++ b/pyGHDL/dom/InterfaceItem.py @@ -199,13 +199,9 @@ class ParameterConstantInterfaceItem( subType: SubTypeOrSymbol, defaultExpression: Expression = None, ): - super().__init__(name, mode) + super().__init__(name, mode, subType, defaultExpression) DOMMixin.__init__(self, node) - # TODO: move to model - self._subType = subType - self._defaultExpression = defaultExpression - @classmethod def parse(cls, parameterNode: Iir) -> "ParameterConstantInterfaceItem": name = GetNameOfNode(parameterNode) diff --git a/pyGHDL/dom/Object.py b/pyGHDL/dom/Object.py index 3085f9f81..0358f716d 100644 --- a/pyGHDL/dom/Object.py +++ b/pyGHDL/dom/Object.py @@ -62,13 +62,9 @@ class Constant(VHDLModel_Constant, DOMMixin): subType: SubTypeOrSymbol, defaultExpression: Expression, ): - super().__init__(name) + super().__init__(name, subType, defaultExpression) DOMMixin.__init__(self, node) - self._name = name - self._subType = subType - self._defaultExpression = defaultExpression - @classmethod def parse(cls, constantNode: Iir) -> Union["Constant", "DeferredConstant"]: from pyGHDL.dom._Translate import ( @@ -90,12 +86,9 @@ class Constant(VHDLModel_Constant, DOMMixin): @export class DeferredConstant(VHDLModel_DeferredConstant, DOMMixin): def __init__(self, node: Iir, name: str, subType: SubTypeOrSymbol): - super().__init__(name) + super().__init__(name, subType) DOMMixin.__init__(self, node) - self._name = name - self._subType = subType - @classmethod def parse(cls, constantNode: Iir) -> "DeferredConstant": from pyGHDL.dom._Translate import GetSubTypeIndicationFromNode @@ -117,13 +110,9 @@ class Variable(VHDLModel_Variable, DOMMixin): subType: SubTypeOrSymbol, defaultExpression: Expression, ): - super().__init__(name) + super().__init__(name, subType, defaultExpression) DOMMixin.__init__(self, node) - self._name = name - self._subType = subType - self._defaultExpression = defaultExpression - @classmethod def parse(cls, variableNode: Iir) -> "Variable": from pyGHDL.dom._Translate import ( @@ -144,12 +133,9 @@ class Variable(VHDLModel_Variable, DOMMixin): @export class SharedVariable(VHDLModel_SharedVariable, DOMMixin): def __init__(self, node: Iir, name: str, subType: SubTypeOrSymbol): - super().__init__(name) + super().__init__(name, subType) DOMMixin.__init__(self, node) - self._name = name - self._subType = subType - @classmethod def parse(cls, variableNode: Iir) -> "SharedVariable": from pyGHDL.dom._Translate import GetSubTypeIndicationFromNode @@ -169,13 +155,9 @@ class Signal(VHDLModel_Signal, DOMMixin): subType: SubTypeOrSymbol, defaultExpression: Expression, ): - super().__init__(name) + super().__init__(name, subType, defaultExpression) DOMMixin.__init__(self, node) - self._name = name - self._subType = subType - self._defaultExpression = defaultExpression - @classmethod def parse(cls, signalNode: Iir) -> "Signal": from pyGHDL.dom._Translate import ( @@ -194,12 +176,9 @@ class Signal(VHDLModel_Signal, DOMMixin): @export class File(VHDLModel_File, DOMMixin): def __init__(self, node: Iir, name: str, subType: SubTypeOrSymbol): - super().__init__(name) + super().__init__(name, subType) DOMMixin.__init__(self, node) - self._name = name - self._subType = subType - @classmethod def parse(cls, fileNode: Iir) -> "File": from pyGHDL.dom._Translate import GetSubTypeIndicationFromNode diff --git a/pyGHDL/dom/formatting/prettyprint.py b/pyGHDL/dom/formatting/prettyprint.py index fb1fcf826..cddfec458 100644 --- a/pyGHDL/dom/formatting/prettyprint.py +++ b/pyGHDL/dom/formatting/prettyprint.py @@ -44,6 +44,7 @@ from pyGHDL.dom.Object import Constant, Signal, SharedVariable, File from pyGHDL.dom.InterfaceItem import ( GenericConstantInterfaceItem, PortSignalInterfaceItem, + GenericTypeInterfaceItem, ) from pyGHDL.dom.Symbol import ( SimpleSubTypeSymbol, @@ -262,6 +263,8 @@ class PrettyPrint: ) -> StringBuffer: if isinstance(generic, GenericConstantInterfaceItem): return self.formatGenericConstant(generic, level) + elif isinstance(generic, GenericTypeInterfaceItem): + return self.formatGenericType(generic, level) else: raise PrettyPrintException( "Unhandled generic kind for generic '{name}'.".format(name=generic.Name) @@ -297,6 +300,21 @@ class PrettyPrint: return buffer + def formatGenericType( + self, generic: GenericConstantInterfaceItem, level: int = 0 + ) -> StringBuffer: + buffer = [] + prefix = " " * level + + buffer.append( + "{prefix} - type {name}".format( + prefix=prefix, + name=generic.Name, + ) + ) + + return buffer + def formatPortSignal( self, port: PortSignalInterfaceItem, level: int = 0 ) -> StringBuffer: |