From f1061e8df166901abd64b7540485401f79d6e728 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org>
Date: Fri, 20 Mar 2020 16:38:43 +0100
Subject: [PATCH] Block decomposition: turn BlockType into an enum class

---
 src/CodeInterpreter.hh | 10 +++++-----
 src/DynamicModel.cc    | 10 +++++-----
 src/ModelTree.hh       |  8 ++++----
 src/StaticModel.cc     |  8 ++++----
 4 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/src/CodeInterpreter.hh b/src/CodeInterpreter.hh
index 075c6e7f..4b9911c0 100644
--- a/src/CodeInterpreter.hh
+++ b/src/CodeInterpreter.hh
@@ -105,12 +105,12 @@ enum Tags
 
   };
 
-enum BlockType
+enum class BlockType
   {
-   SIMULTANS, //!< Simultaneous time separable block
-   PROLOGUE, //!< Prologue block (one equation at the beginning, later merged)
-   EPILOGUE, //!< Epilogue block (one equation at the beginning, later merged)
-   SIMULTAN //!< Simultaneous time unseparable block
+   simultans, //!< Simultaneous time separable block
+   prologue, //!< Prologue block (one equation at the beginning, later merged)
+   epilogue, //!< Epilogue block (one equation at the beginning, later merged)
+   simultan //!< Simultaneous time unseparable block
   };
 
 enum EquationType
diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc
index 1d79f582..7af8eab9 100644
--- a/src/DynamicModel.cc
+++ b/src/DynamicModel.cc
@@ -431,19 +431,19 @@ DynamicModel::writeModelEquationsOrdered_M(const string &basename) const
         output << "function [residual, y, g1, g2, g3, b, varargout] = dynamic_" << block+1 << "(y, x, params, steady_state, periods, jacobian_eval, y_kmin, y_size, Periods)" << endl;
       BlockType block_type;
       if (simulation_type == SOLVE_TWO_BOUNDARIES_COMPLETE || simulation_type == SOLVE_TWO_BOUNDARIES_SIMPLE)
-        block_type = SIMULTAN;
+        block_type = BlockType::simultan;
       else if (simulation_type == SOLVE_FORWARD_COMPLETE || simulation_type == SOLVE_BACKWARD_COMPLETE)
-        block_type = SIMULTANS;
+        block_type = BlockType::simultans;
       else if ((simulation_type == SOLVE_FORWARD_SIMPLE || simulation_type == SOLVE_BACKWARD_SIMPLE
                 || simulation_type == EVALUATE_BACKWARD || simulation_type == EVALUATE_FORWARD)
                && getBlockFirstEquation(block) < prologue)
-        block_type = PROLOGUE;
+        block_type = BlockType::prologue;
       else if ((simulation_type == SOLVE_FORWARD_SIMPLE || simulation_type == SOLVE_BACKWARD_SIMPLE
                 || simulation_type == EVALUATE_BACKWARD || simulation_type == EVALUATE_FORWARD)
                && getBlockFirstEquation(block) >= equations.size() - epilogue)
-        block_type = EPILOGUE;
+        block_type = BlockType::epilogue;
       else
-        block_type = SIMULTANS;
+        block_type = BlockType::simultans;
       output << "  % ////////////////////////////////////////////////////////////////////////" << endl
              << "  % //" << string("                     Block ").substr(int (log10(block + 1))) << block + 1 << " " << BlockType0(block_type)
              << "          //" << endl
diff --git a/src/ModelTree.hh b/src/ModelTree.hh
index 0045fc2e..9203b79d 100644
--- a/src/ModelTree.hh
+++ b/src/ModelTree.hh
@@ -454,13 +454,13 @@ public:
   {
     switch (type)
       {
-      case SIMULTANS:
+      case BlockType::simultans:
         return "SIMULTANEOUS TIME SEPARABLE  ";
-      case PROLOGUE:
+      case BlockType::prologue:
         return "PROLOGUE                     ";
-      case EPILOGUE:
+      case BlockType::epilogue:
         return "EPILOGUE                     ";
-      case SIMULTAN:
+      case BlockType::simultan:
         return "SIMULTANEOUS TIME UNSEPARABLE";
       default:
         return "UNKNOWN                      ";
diff --git a/src/StaticModel.cc b/src/StaticModel.cc
index b0d49d41..b73030cd 100644
--- a/src/StaticModel.cc
+++ b/src/StaticModel.cc
@@ -312,17 +312,17 @@ StaticModel::writeModelEquationsOrdered_M(const string &basename) const
 
       BlockType block_type;
       if (simulation_type == SOLVE_FORWARD_COMPLETE || simulation_type == SOLVE_BACKWARD_COMPLETE)
-        block_type = SIMULTANS;
+        block_type = BlockType::simultans;
       else if ((simulation_type == SOLVE_FORWARD_SIMPLE || simulation_type == SOLVE_BACKWARD_SIMPLE
                 || simulation_type == EVALUATE_BACKWARD || simulation_type == EVALUATE_FORWARD)
                && getBlockFirstEquation(block) < prologue)
-        block_type = PROLOGUE;
+        block_type = BlockType::prologue;
       else if ((simulation_type == SOLVE_FORWARD_SIMPLE || simulation_type == SOLVE_BACKWARD_SIMPLE
                 || simulation_type == EVALUATE_BACKWARD || simulation_type == EVALUATE_FORWARD)
                && getBlockFirstEquation(block) >= equations.size() - epilogue)
-        block_type = EPILOGUE;
+        block_type = BlockType::epilogue;
       else
-        block_type = SIMULTANS;
+        block_type = BlockType::simultans;
       output << "  % ////////////////////////////////////////////////////////////////////////" << endl
              << "  % //" << string("                     Block ").substr(int (log10(block + 1))) << block + 1 << " " << BlockType0(block_type)
              << "          //" << endl
-- 
GitLab