From e0bf2b60b65814f66c4009f2e36cfcdabdb7f913 Mon Sep 17 00:00:00 2001 From: Houtan Bastani 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; }