aboutsummaryrefslogtreecommitdiffstats
path: root/pyGHDL/dom/formatting
diff options
context:
space:
mode:
authorPatrick Lehmann <Patrick.Lehmann@plc2.de>2021-06-28 17:24:40 +0200
committerPatrick Lehmann <Patrick.Lehmann@plc2.de>2021-07-01 06:39:46 +0200
commite8556a64e6ad3cedbe4862e6be992f516536abf7 (patch)
tree5f5f7f3cd8cc0522742488c7060f014d92a2e5b6 /pyGHDL/dom/formatting
parent3c26dd63f093e156c9bf4143aeddafd3a4664ecc (diff)
downloadghdl-e8556a64e6ad3cedbe4862e6be992f516536abf7.tar.gz
ghdl-e8556a64e6ad3cedbe4862e6be992f516536abf7.tar.bz2
ghdl-e8556a64e6ad3cedbe4862e6be992f516536abf7.zip
Rework and fine tuning.
Diffstat (limited to 'pyGHDL/dom/formatting')
-rw-r--r--pyGHDL/dom/formatting/prettyprint.py41
1 files changed, 36 insertions, 5 deletions
diff --git a/pyGHDL/dom/formatting/prettyprint.py b/pyGHDL/dom/formatting/prettyprint.py
index cddfec458..f7994b36d 100644
--- a/pyGHDL/dom/formatting/prettyprint.py
+++ b/pyGHDL/dom/formatting/prettyprint.py
@@ -16,6 +16,7 @@ from pyGHDL.dom.Type import (
ProtectedType,
ProtectedTypeBody,
PhysicalType,
+ IncompleteType,
)
from pyVHDLModel.VHDLModel import (
GenericInterfaceItem,
@@ -24,7 +25,7 @@ from pyVHDLModel.VHDLModel import (
WithDefaultExpressionMixin,
Function,
BaseType,
- Type,
+ FullType,
)
from pyGHDL import GHDLBaseException
@@ -97,7 +98,12 @@ class PrettyPrint:
# buffer.append(line)
buffer.append("{prefix}Packages:".format(prefix=prefix))
for package in library.Packages:
- for line in self.formatPackage(package, level + 1):
+ if isinstance(package, Package):
+ gen = self.formatPackage
+ else:
+ gen = self.formatPackageInstance
+
+ for line in gen(package, level + 1):
buffer.append(line)
# buffer.append("{prefix}PackageBodies:".format(prefix=prefix))
# for packageBodies in library.PackageBodies:
@@ -127,7 +133,12 @@ class PrettyPrint:
buffer.append(line)
buffer.append("{prefix}Packages:".format(prefix=prefix))
for package in document.Packages:
- for line in self.formatPackage(package, level + 1):
+ if isinstance(package, Package):
+ gen = self.formatPackage
+ else:
+ gen = self.formatPackageInstance
+
+ for line in gen(package, level + 1):
buffer.append(line)
buffer.append("{prefix}PackageBodies:".format(prefix=prefix))
for packageBodies in document.PackageBodies:
@@ -225,6 +236,24 @@ class PrettyPrint:
return buffer
+ def formatPackageInstance(
+ self, package: PackageInstantiation, level: int = 0
+ ) -> StringBuffer:
+ buffer = []
+ prefix = " " * level
+ buffer.append("{prefix}- Name: {name}".format(name=package.Name, prefix=prefix))
+ buffer.append(
+ "{prefix} Package: {name!s}".format(
+ prefix=prefix, name=package.PackageReference
+ )
+ )
+ buffer.append("{prefix} Generic Map: ...".format(prefix=prefix))
+ # for item in package.GenericItems:
+ # for line in self.formatGeneric(item, level + 1):
+ # buffer.append(line)
+
+ return buffer
+
def formatPackageBody(
self, packageBody: PackageBody, level: int = 0
) -> StringBuffer:
@@ -383,7 +412,7 @@ class PrettyPrint:
),
)
)
- elif isinstance(item, Type):
+ elif isinstance(item, (FullType, IncompleteType)):
buffer.append(
"{prefix}- {type}".format(prefix=prefix, type=self.formatType(item))
)
@@ -454,7 +483,9 @@ class PrettyPrint:
def formatType(self, item: BaseType) -> str:
result = "type {name} is ".format(name=item.Name)
- if isinstance(item, IntegerType):
+ if isinstance(item, IncompleteType):
+ result += ""
+ elif isinstance(item, IntegerType):
result += "range {left!s} to {right!s}".format(
left=item.LeftBound, right=item.RightBound
)