From ba097bd3118db3135e75b913cae81973995777cd Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Mon, 21 Jun 2021 19:19:11 +0200 Subject: Handle component declarations. --- pyGHDL/dom/DesignUnit.py | 62 ++++++++++++++++++++++++------------ pyGHDL/dom/Literal.py | 1 + pyGHDL/dom/_Translate.py | 6 +++- pyGHDL/dom/formatting/prettyprint.py | 23 +++++++++++-- 4 files changed, 68 insertions(+), 24 deletions(-) (limited to 'pyGHDL') diff --git a/pyGHDL/dom/DesignUnit.py b/pyGHDL/dom/DesignUnit.py index 8e10aa815..53cc03395 100644 --- a/pyGHDL/dom/DesignUnit.py +++ b/pyGHDL/dom/DesignUnit.py @@ -39,24 +39,25 @@ This module contains all DOM classes for VHDL's design units (:class:`context StringBuffer: + buffer = [] + prefix = " " * level + buffer.append("{prefix}- Component: {name}".format(name=component.Name, prefix=prefix)) + buffer.append("{prefix} Generics:".format(prefix=prefix)) + for generic in component.GenericItems: + for line in self.formatGeneric(generic, level + 1): + buffer.append(line) + buffer.append("{prefix} Ports:".format(prefix=prefix)) + for port in component.PortItems: + for line in self.formatPort(port, level + 1): + buffer.append(line) + + return buffer + def formatPackage(self, package: Package, level: int = 0) -> StringBuffer: buffer = [] prefix = " " * level @@ -326,6 +342,9 @@ class PrettyPrint: name=item.Name, ) ) + elif isinstance(item, Component): + for line in self.formatComponent(item, level): + buffer.append(line) else: raise PrettyPrintException("Unhandled declared item kind.") -- cgit v1.2.3