From 7f7e6fe30ef4f9ba4507b89174676f57c42c0000 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sun, 26 Nov 2017 23:36:26 +0100 Subject: Implementation for Structogram iterator and Statement type The interator is not (yet) aware of the scope in which it is iterating. --- src/ui/AsciiRenderer.cpp | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'src/ui/AsciiRenderer.cpp') diff --git a/src/ui/AsciiRenderer.cpp b/src/ui/AsciiRenderer.cpp index 0f17d85..d06dadb 100644 --- a/src/ui/AsciiRenderer.cpp +++ b/src/ui/AsciiRenderer.cpp @@ -5,7 +5,7 @@ * Author: naopross */ -#include "AsciiRenderer.h" +#include "AsciiRenderer.hpp" #include @@ -38,10 +38,9 @@ void AsciiRenderer::drawText(std::string text, unsigned int width, std::string b unsigned int textWidth = width - before.length() - after.length(); - std::cout << before; - for (unsigned int i = 0; i < text.length(); i++) { - if (i % textWidth == 0) { + for (std::size_t i = 0; i < text.length(); i++) { + if (i % textWidth == 0 && i != 0) { std::cout << after << "\n" << before; } @@ -62,24 +61,24 @@ void AsciiRenderer::drawDecision(std::string condition, std::string trueText, st } void AsciiRenderer::render() { - const std::list& statements = m_structogram.getStatements(); - for (std::list::const_iterator it = statements.begin(); it != statements.end(); it++) { - Statement st = *it; - switch (st.type) { + for (Structogram::iterator it = m_structogram.begin(); it != m_structogram.end(); ++it) { + + switch (it->type) { case Statement::Type::PROCESS: drawLine(); - drawText(st.text); + drawText(it->text); + drawLine(); break; case Statement::Type::DECISION: - drawLine(); break; case Statement::Type::SWITCH: break; case Statement::Type::SCOPE: + std::cout << "Title: " << it->text << std::endl; break; case Statement::Type::WHILE: @@ -90,6 +89,10 @@ void AsciiRenderer::render() { case Statement::Type::PARALLEL: break; + + case Statement::END: + // do nothing + break; } } } -- cgit v1.2.1