preprocessor: remove extra exogenous variables. closes #841
parent
d3455d42c1
commit
7591d5b6d3
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2008-2016 Dynare Team
|
* Copyright (C) 2008-2017 Dynare Team
|
||||||
*
|
*
|
||||||
* This file is part of Dynare.
|
* This file is part of Dynare.
|
||||||
*
|
*
|
||||||
|
@ -42,7 +42,7 @@ main2(stringstream &in, string &basename, bool debug, bool clear_all, bool clear
|
||||||
ModFile *mod_file = p.parse(in, debug);
|
ModFile *mod_file = p.parse(in, debug);
|
||||||
|
|
||||||
// Run checking pass
|
// Run checking pass
|
||||||
mod_file->checkPass();
|
mod_file->checkPass(nostrict);
|
||||||
|
|
||||||
// Perform transformations on the model (creation of auxiliary vars and equations)
|
// Perform transformations on the model (creation of auxiliary vars and equations)
|
||||||
mod_file->transformPass(nostrict);
|
mod_file->transformPass(nostrict);
|
||||||
|
|
23
ModFile.cc
23
ModFile.cc
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2006-2016 Dynare Team
|
* Copyright (C) 2006-2017 Dynare Team
|
||||||
*
|
*
|
||||||
* This file is part of Dynare.
|
* This file is part of Dynare.
|
||||||
*
|
*
|
||||||
|
@ -107,7 +107,7 @@ ModFile::addStatementAtFront(Statement *st)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ModFile::checkPass()
|
ModFile::checkPass(bool nostrict)
|
||||||
{
|
{
|
||||||
for (vector<Statement *>::iterator it = statements.begin();
|
for (vector<Statement *>::iterator it = statements.begin();
|
||||||
it != statements.end(); it++)
|
it != statements.end(); it++)
|
||||||
|
@ -299,19 +299,22 @@ ModFile::checkPass()
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if some exogenous is not used in the model block
|
// Check if some exogenous is not used in the model block, Issue #841
|
||||||
set<int> unusedExo = dynamic_model.findUnusedExogenous();
|
set<int> unusedExo = dynamic_model.findUnusedExogenous();
|
||||||
if (unusedExo.size() > 0)
|
if (unusedExo.size() > 0)
|
||||||
{
|
{
|
||||||
warnings << "WARNING: some exogenous (";
|
ostringstream unused_exos;
|
||||||
for (set<int>::const_iterator it = unusedExo.begin();
|
for (set<int>::iterator it = unusedExo.begin(); it != unusedExo.end(); it++)
|
||||||
it != unusedExo.end(); )
|
unused_exos << symbol_table.getName(*it) << " ";
|
||||||
|
|
||||||
|
if (nostrict)
|
||||||
|
warnings << "WARNING: " << unused_exos.str()
|
||||||
|
<< "not used in model block, removed by nostrict command-line option" << endl;
|
||||||
|
else
|
||||||
{
|
{
|
||||||
warnings << symbol_table.getName(*it);
|
cerr << "ERROR: " << unused_exos.str() << "not used in model block. To bypass this error, use the `nostrict` option. This may lead to crashes or unexpected behavior." << endl;
|
||||||
if (++it != unusedExo.end())
|
exit(EXIT_FAILURE);
|
||||||
warnings << ", ";
|
|
||||||
}
|
}
|
||||||
warnings << ") are declared but not used in the model. This may lead to crashes or unexpected behaviour." << endl;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2006-2016 Dynare Team
|
* Copyright (C) 2006-2017 Dynare Team
|
||||||
*
|
*
|
||||||
* This file is part of Dynare.
|
* This file is part of Dynare.
|
||||||
*
|
*
|
||||||
|
@ -128,7 +128,7 @@ public:
|
||||||
void evalAllExpressions(bool warn_uninit);
|
void evalAllExpressions(bool warn_uninit);
|
||||||
//! Do some checking and fills mod_file_struct
|
//! Do some checking and fills mod_file_struct
|
||||||
/*! \todo add check for number of equations and endogenous if ramsey_policy is present */
|
/*! \todo add check for number of equations and endogenous if ramsey_policy is present */
|
||||||
void checkPass();
|
void checkPass(bool nostrict);
|
||||||
//! Perform some transformations on the model (creation of auxiliary vars and equations)
|
//! Perform some transformations on the model (creation of auxiliary vars and equations)
|
||||||
void transformPass(bool nostrict);
|
void transformPass(bool nostrict);
|
||||||
//! Execute computations
|
//! Execute computations
|
||||||
|
|
Loading…
Reference in New Issue