From 927eb99e75325164a541c2638e1e607294019381 Mon Sep 17 00:00:00 2001 From: Roland Reichwein Date: Tue, 17 Nov 2020 12:38:40 +0100 Subject: Complete hierarchical evaluation (unittest and systemtest fixed) --- flowgraph/scope.cpp | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'flowgraph/scope.cpp') diff --git a/flowgraph/scope.cpp b/flowgraph/scope.cpp index 54a3cca..dd6c62c 100644 --- a/flowgraph/scope.cpp +++ b/flowgraph/scope.cpp @@ -2,6 +2,14 @@ #include "storage.h" +FlowGraph::LocalScope::LocalScope() +{ +} + +FlowGraph::LocalScope::~LocalScope() +{ +} + void FlowGraph::LocalScope::push_back(std::shared_ptr data) { m_variables.push_back(data); @@ -9,18 +17,22 @@ void FlowGraph::LocalScope::push_back(std::shared_ptr data) void FlowGraph::LocalScope::append(const FlowGraph::LocalScope& other) { + // actually move variables to new scope m_variables.insert(m_variables.end(), other.m_variables.begin(), other.m_variables.end()); } -index_t FlowGraph::LocalScope::indexOfStorage(const Storage& storage) const +index_t FlowGraph::LocalScope::indexOfData(const FlowGraph::Data& data) const { - std::cout << "DEBUG: " << m_variables.size() << std::endl; for (index_t i = 0; i < m_variables.size(); i++) { - FlowGraph::Storage& i_storage {*(m_variables[i]->storage())}; - - if (&i_storage == &storage) // compare addresses + if (*m_variables[i] == data) return i; } - throw std::runtime_error("ICE: Storage not found"); + throw std::runtime_error("ICE: Data not found"); } + +size_t FlowGraph::LocalScope::size() const +{ + return m_variables.size(); +} + -- cgit v1.2.3