From e0bf2b60b65814f66c4009f2e36cfcdabdb7f913 Mon Sep 17 00:00:00 2001
From: Houtan Bastani <houtan@dynare.org>
Date: Mon, 9 Jul 2018 14:49:12 +0200
Subject: [PATCH] Modify 19048bdcae5ddbac401f13e18dcfd98509c74230 to store
 equation tags for variables declared in equation tags

---
 src/ParsingDriver.cc | 36 +++++++++++++-----------------------
 1 file changed, 13 insertions(+), 23 deletions(-)

diff --git a/src/ParsingDriver.cc b/src/ParsingDriver.cc
index f822f7c2..09acc9ff 100644
--- a/src/ParsingDriver.cc
+++ b/src/ParsingDriver.cc
@@ -369,32 +369,22 @@ ParsingDriver::add_predetermined_variable(string *name)
 void
 ParsingDriver::add_equation_tags(string *key, string *value)
 {
-  bool variable_declared = false;
-  string key_lowercase = *key;
-  transform(key_lowercase.begin(), key_lowercase.end(), key_lowercase.begin(), ::tolower);
-  if (key_lowercase.compare("endogenous") == 0)
-    {
-      declare_or_change_type(eEndogenous, value);
-      variable_declared = true;
-    }
+  eq_tags.emplace_back(*key, *value);
 
-  if (key_lowercase.compare("exogenous") == 0)
-    {
-      declare_or_change_type(eExogenous, value);
-      variable_declared = true;
-    }
+  transform(key->begin(), key->end(), key->begin(), ::tolower);
+  if (key->compare("endogenous") == 0)
+    declare_or_change_type(eEndogenous, value);
 
-  if (key_lowercase.compare("parameter") == 0)
-    {
-      declare_or_change_type(eParameter, value);
-      variable_declared = true;
-    }
+  else if (key->compare("exogenous") == 0)
+    declare_or_change_type(eExogenous, value);
 
-  if (!variable_declared)
-    {
-      eq_tags.emplace_back(*key, *value);
-      delete value;
-    }
+  else if (key->compare("parameter") == 0)
+    declare_or_change_type(eParameter, value);
+
+  if (!(key->compare("endogenous") == 0
+        || key->compare("exogenous") == 0
+        || key->compare("parameter") == 0))
+    delete value;
 
   delete key;
 }
-- 
GitLab