Amend the workaround for ticket #35, so that shocks+endval+simul can looped over
parent
dbec61ba62
commit
1c98c34724
|
@ -95,6 +95,9 @@ void
|
||||||
SimulStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings)
|
SimulStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings)
|
||||||
{
|
{
|
||||||
mod_file_struct.simul_present = true;
|
mod_file_struct.simul_present = true;
|
||||||
|
|
||||||
|
// The following is necessary to allow shocks+endval+simul in a loop
|
||||||
|
mod_file_struct.shocks_present_but_simul_not_yet = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -150,9 +150,9 @@ EndValStatement::EndValStatement(const init_values_t &init_values_arg,
|
||||||
void
|
void
|
||||||
EndValStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings)
|
EndValStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings)
|
||||||
{
|
{
|
||||||
if (mod_file_struct.shocks_present)
|
if (mod_file_struct.shocks_present_but_simul_not_yet)
|
||||||
{
|
{
|
||||||
cerr << "ERROR: Putting a \"shocks\" block before an \"endval\" block is not permitted. Please swap the two blocks. This limitation will be removed in the next major release of Dynare." << endl;
|
cerr << "ERROR: Putting a \"shocks\" block before an \"endval\" block is not permitted. Please swap the two blocks. This limitation will be removed in a future release of Dynare." << endl;
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -196,7 +196,7 @@ void
|
||||||
ShocksStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings)
|
ShocksStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings)
|
||||||
{
|
{
|
||||||
// Workaround for trac ticket #35
|
// Workaround for trac ticket #35
|
||||||
mod_file_struct.shocks_present = true;
|
mod_file_struct.shocks_present_but_simul_not_yet = true;
|
||||||
|
|
||||||
// Determine if there is a calibrated measurement error
|
// Determine if there is a calibrated measurement error
|
||||||
for (var_and_std_shocks_t::const_iterator it = var_shocks.begin();
|
for (var_and_std_shocks_t::const_iterator it = var_shocks.begin();
|
||||||
|
@ -245,7 +245,7 @@ void
|
||||||
MShocksStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings)
|
MShocksStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings)
|
||||||
{
|
{
|
||||||
// Workaround for trac ticket #35
|
// Workaround for trac ticket #35
|
||||||
mod_file_struct.shocks_present = true;
|
mod_file_struct.shocks_present_but_simul_not_yet = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
ConditionalForecastPathsStatement::ConditionalForecastPathsStatement(const AbstractShocksStatement::det_shocks_t &paths_arg, const SymbolTable &symbol_table_arg) :
|
ConditionalForecastPathsStatement::ConditionalForecastPathsStatement(const AbstractShocksStatement::det_shocks_t &paths_arg, const SymbolTable &symbol_table_arg) :
|
||||||
|
|
|
@ -37,7 +37,7 @@ ModFileStructure::ModFileStructure() :
|
||||||
identification_present(false),
|
identification_present(false),
|
||||||
estimation_analytic_derivation(false),
|
estimation_analytic_derivation(false),
|
||||||
partial_information(false),
|
partial_information(false),
|
||||||
shocks_present(false),
|
shocks_present_but_simul_not_yet(false),
|
||||||
histval_present(false),
|
histval_present(false),
|
||||||
k_order_solver(false),
|
k_order_solver(false),
|
||||||
calibrated_measurement_errors(false),
|
calibrated_measurement_errors(false),
|
||||||
|
|
|
@ -69,9 +69,11 @@ public:
|
||||||
bool estimation_analytic_derivation;
|
bool estimation_analytic_derivation;
|
||||||
//! Whether the option partial_information is given to stoch_simul/estimation/osr/ramsey_policy
|
//! Whether the option partial_information is given to stoch_simul/estimation/osr/ramsey_policy
|
||||||
bool partial_information;
|
bool partial_information;
|
||||||
//! Whether a shocks or mshocks block is present
|
//! Whether a shocks or mshocks block has been parsed and no simul command yet run
|
||||||
/*! Used for the workaround for trac ticket #35 */
|
/*! Used for the workaround for trac ticket #35. When a simul command is
|
||||||
bool shocks_present;
|
seen, this flag is cleared in order to allow a sequence
|
||||||
|
shocks+endval+simul in a loop */
|
||||||
|
bool shocks_present_but_simul_not_yet;
|
||||||
//! Whether a histval bloc is present
|
//! Whether a histval bloc is present
|
||||||
/*! Used for the workaround for trac ticket #157 */
|
/*! Used for the workaround for trac ticket #157 */
|
||||||
bool histval_present;
|
bool histval_present;
|
||||||
|
|
Loading…
Reference in New Issue