From 58a21322e2dd3ce47853b43d086f42890da11a37 Mon Sep 17 00:00:00 2001 From: Houtan Bastani <houtan@dynare.org> Date: Mon, 3 Apr 2017 14:52:20 +0200 Subject: [PATCH] preprocessor: allow variables to pass undeclared as exogenous variables when nostrict flag is passed --- ParsingDriver.cc | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/ParsingDriver.cc b/ParsingDriver.cc index c0b914ac..e0ffbf8e 100644 --- a/ParsingDriver.cc +++ b/ParsingDriver.cc @@ -749,9 +749,24 @@ ParsingDriver::end_model() { if (model_errors.size() > 0) { - for (vector<pair<string, string> >::const_iterator it = model_errors.begin(); it != model_errors.end(); it++) - cerr << it->second; - exit(EXIT_FAILURE); + bool exit_after_write = false; + bool exit_after_write_undeclared_vars = true; + for (vector<pair<string, string> >::const_iterator it = model_errors.begin(); + it != model_errors.end(); it++) + { + if (it->first == "") + exit_after_write = true; + + if (mod_file->symbol_table.getType(it->first) == eExogenous) + { + exit_after_write_undeclared_vars = false; + cerr << "(Changed to warning): "; + } + + cerr << it->second; + } + if (exit_after_write || exit_after_write_undeclared_vars) + exit(EXIT_FAILURE); } reset_data_tree(); } -- GitLab