Allow for the declaration of endogenous, exogenous, parameters on-the-fly in equation tags
parent
a7f8eaa336
commit
19048bdcae
|
@ -368,12 +368,37 @@ ParsingDriver::add_predetermined_variable(string *name)
|
||||||
|
|
||||||
void
|
void
|
||||||
ParsingDriver::add_equation_tags(string *key, string *value)
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (key_lowercase.compare("exogenous") == 0)
|
||||||
|
{
|
||||||
|
declare_or_change_type(eExogenous, value);
|
||||||
|
variable_declared = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (key_lowercase.compare("parameter") == 0)
|
||||||
|
{
|
||||||
|
declare_or_change_type(eParameter, value);
|
||||||
|
variable_declared = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!variable_declared)
|
||||||
{
|
{
|
||||||
eq_tags.emplace_back(*key, *value);
|
eq_tags.emplace_back(*key, *value);
|
||||||
delete key;
|
|
||||||
delete value;
|
delete value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete key;
|
||||||
|
}
|
||||||
|
|
||||||
expr_t
|
expr_t
|
||||||
ParsingDriver::add_non_negative_constant(string *constant)
|
ParsingDriver::add_non_negative_constant(string *constant)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue