Commit c2cec94a authored by Sébastien Villemot's avatar Sébastien Villemot
Browse files

Verify types of the symbols in estimated_params{,_init,_bounds} statements.

Closes #624
parent 2ab9614f
...@@ -1223,8 +1223,23 @@ ParsingDriver::add_estimated_params_element() ...@@ -1223,8 +1223,23 @@ ParsingDriver::add_estimated_params_element()
if (estim_params.name != "dsge_prior_weight") if (estim_params.name != "dsge_prior_weight")
{ {
check_symbol_existence(estim_params.name); check_symbol_existence(estim_params.name);
if (estim_params.name2.size() > 0) SymbolType type = mod_file->symbol_table.getType(estim_params.name);
check_symbol_existence(estim_params.name2); switch (estim_params.type)
{
case 1:
if (type != eEndogenous && type != eExogenous)
error(estim_params.name + " must be an endogenous or an exogenous variable");
break;
case 2:
check_symbol_is_parameter(&estim_params.name);
break;
case 3:
check_symbol_existence(estim_params.name2);
SymbolType type2 = mod_file->symbol_table.getType(estim_params.name2);
if ((type != eEndogenous && type != eExogenous) || type != type2)
error(estim_params.name + " and " + estim_params.name2 + " must either be both endogenous variables or both exogenous");
break;
}
} }
estim_params_list.push_back(estim_params); estim_params_list.push_back(estim_params);
estim_params.init(*data_tree); estim_params.init(*data_tree);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment