v4 preprocessor: adding list of strings as option type
added some options for GSA git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1781 ac1d8469-bf42-47a9-8791-bf33cf982152time-shift
parent
21d00c14bb
commit
1867caa5b0
|
@ -1240,6 +1240,10 @@ dynare_sensitivity_option : o_gsa_identification
|
||||||
| o_gsa_alpha_rmse
|
| o_gsa_alpha_rmse
|
||||||
| o_gsa_alpha2_rmse
|
| o_gsa_alpha2_rmse
|
||||||
| o_gsa_threshold_redform
|
| o_gsa_threshold_redform
|
||||||
|
| o_gsa_namendo
|
||||||
|
| o_gsa_namexo
|
||||||
|
| o_gsa_namlagendo
|
||||||
|
| o_gsa_var_rmse
|
||||||
;
|
;
|
||||||
|
|
||||||
homotopy_setup: HOMOTOPY_SETUP ';' homotopy_list END
|
homotopy_setup: HOMOTOPY_SETUP ';' homotopy_list END
|
||||||
|
@ -1364,23 +1368,19 @@ o_gsa_nsam : NSAM EQUAL INT_NUMBER { driver.option_num("identification", $3); };
|
||||||
o_gsa_load_redform : LOAD_REDFORM EQUAL INT_NUMBER { driver.option_num("identification", $3); };
|
o_gsa_load_redform : LOAD_REDFORM EQUAL INT_NUMBER { driver.option_num("identification", $3); };
|
||||||
o_gsa_load_rmse : LOAD_RMSE EQUAL INT_NUMBER { driver.option_num("load_rmse", $3); };
|
o_gsa_load_rmse : LOAD_RMSE EQUAL INT_NUMBER { driver.option_num("load_rmse", $3); };
|
||||||
o_gsa_load_stab : LOAD_STAB EQUAL INT_NUMBER { driver.option_num("load_stab", $3); };
|
o_gsa_load_stab : LOAD_STAB EQUAL INT_NUMBER { driver.option_num("load_stab", $3); };
|
||||||
o_gsa_alpha2_stab : ALPHA2_STAB EQUAL number { driver.option_num("identification", $3); };
|
o_gsa_alpha2_stab : ALPHA2_STAB EQUAL number { driver.option_num("alpha2_stab", $3); };
|
||||||
o_gsa_ksstat : KSSTAT EQUAL number { driver.option_num("ksstat", $3); };
|
o_gsa_ksstat : KSSTAT EQUAL number { driver.option_num("ksstat", $3); };
|
||||||
o_gsa_logtrans_redform : LOGTRANS_REDFORM EQUAL INT_NUMBER { driver.option_num("logtrans_redform", $3); };
|
o_gsa_logtrans_redform : LOGTRANS_REDFORM EQUAL INT_NUMBER { driver.option_num("logtrans_redform", $3); };
|
||||||
o_gsa_threshold_redform : THRESHOLD_REDFORM EQUAL vec_int { driver.option_num("threshold_redfor",$3); };
|
o_gsa_threshold_redform : THRESHOLD_REDFORM EQUAL vec_int { driver.option_num("threshold_redfor",$3); };
|
||||||
|
|
||||||
o_gsa_ksstat_redform : KSSTAT_REDFORM EQUAL number { driver.option_num("ksstat_redfrom", $3); };
|
o_gsa_ksstat_redform : KSSTAT_REDFORM EQUAL number { driver.option_num("ksstat_redfrom", $3); };
|
||||||
o_gsa_alpha2_redform : ALPHA2_REDFORM EQUAL number { driver.option_num("alpha2_redform", $3); };
|
o_gsa_alpha2_redform : ALPHA2_REDFORM EQUAL number { driver.option_num("alpha2_redform", $3); };
|
||||||
/*
|
o_gsa_namendo : NAMENDO EQUAL '(' tmp_var_list ')' { driver.option_str_lst("namendo"); };
|
||||||
o_gsa_namendo : NAMENDO EQUAL tmp_var_list { driver.option_list("namendo", $3); };
|
o_gsa_namlagendo : NAMLAGENDO EQUAL '(' tmp_var_list ')' { driver.option_str_lst("namlagendo"); };
|
||||||
o_gsa_namlagendo : NAMLAGENDO tmp_var_list { driver.option_list("namlagendo", $3); };
|
o_gsa_namexo : NAMEXO EQUAL '(' tmp_var_list ')' { driver.option_str_lst("namexo"); };
|
||||||
o_gsa_namexo : NAMEXO tmp_var_list { driver.option_list("namexo", $3); };
|
|
||||||
*/
|
|
||||||
o_gsa_rmse : RMSE EQUAL INT_NUMBER { driver.option_num("rmse", $3); };
|
o_gsa_rmse : RMSE EQUAL INT_NUMBER { driver.option_num("rmse", $3); };
|
||||||
o_gsa_lik_only : LIK_ONLY EQUAL INT_NUMBER { driver.option_num("lik_only", $3); };
|
o_gsa_lik_only : LIK_ONLY EQUAL INT_NUMBER { driver.option_num("lik_only", $3); };
|
||||||
/*
|
o_gsa_var_rmse : VAR_RMSE EQUAL '(' tmp_var_list ')' { driver.option_str_lst("var_rmse"); };
|
||||||
o_gsa_var_rmse : VAR_RMSE tmp_var_list { driver.option_list("var_rmse", $3); };
|
|
||||||
*/
|
|
||||||
o_gsa_pfilt_rmse : PFILT_RMSE EQUAL number { driver.option_num("pfilt_rmse", $3); };
|
o_gsa_pfilt_rmse : PFILT_RMSE EQUAL number { driver.option_num("pfilt_rmse", $3); };
|
||||||
o_gsa_istart_rmse : ISTART_RMSE EQUAL INT_NUMBER { driver.option_num("istart_rmse", $3); };
|
o_gsa_istart_rmse : ISTART_RMSE EQUAL INT_NUMBER { driver.option_num("istart_rmse", $3); };
|
||||||
o_gsa_alpha_rmse : ALPHA_RMSE EQUAL number { driver.option_num("alpha_rmse", $3); };
|
o_gsa_alpha_rmse : ALPHA_RMSE EQUAL number { driver.option_num("alpha_rmse", $3); };
|
||||||
|
|
|
@ -654,6 +654,20 @@ ParsingDriver::option_str(const string &name_option, const string &opt)
|
||||||
options_list.string_options[name_option] = opt;
|
options_list.string_options[name_option] = opt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ParsingDriver::option_str_lst(const string &name_option)
|
||||||
|
{
|
||||||
|
if (options_list.string_list_options.find(name_option)
|
||||||
|
!= options_list.string_list_options.end())
|
||||||
|
error("option " + name_option + " declared twice");
|
||||||
|
|
||||||
|
options_list.string_list_options[name_option] = new TmpSymbolTable::TmpSymbolTable(*tmp_symbol_table);
|
||||||
|
tmp_symbol_table->clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
ParsingDriver::linear()
|
ParsingDriver::linear()
|
||||||
{
|
{
|
||||||
|
|
|
@ -67,6 +67,10 @@ OptionsList::writeOutput(ostream &output) const
|
||||||
for(string_options_type::const_iterator it = string_options.begin();
|
for(string_options_type::const_iterator it = string_options.begin();
|
||||||
it != string_options.end(); it++)
|
it != string_options.end(); it++)
|
||||||
output << "options_." << it->first << " = '" << it->second << "';" << endl;
|
output << "options_." << it->first << " = '" << it->second << "';" << endl;
|
||||||
|
|
||||||
|
for(string_list_options_type::const_iterator it = string_list_options.begin();
|
||||||
|
it != string_list_options.end(); it++)
|
||||||
|
it->second->writeOutput("options_."+it->first,output);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -264,6 +264,8 @@ public:
|
||||||
void option_str(const string &name_option, string *opt);
|
void option_str(const string &name_option, string *opt);
|
||||||
//! Sets an option to a string value
|
//! Sets an option to a string value
|
||||||
void option_str(const string &name_option, const string &opt);
|
void option_str(const string &name_option, const string &opt);
|
||||||
|
//! Sets an option to a list of strings
|
||||||
|
void option_str_lst(const string &name_option);
|
||||||
//! Indicates that the model is linear
|
//! Indicates that the model is linear
|
||||||
void linear();
|
void linear();
|
||||||
//! Adds a variable to temp symbol table and sets its value
|
//! Adds a variable to temp symbol table and sets its value
|
||||||
|
|
|
@ -26,6 +26,7 @@ using namespace std;
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
|
#include "TmpSymbolTable.hh"
|
||||||
class ModFileStructure
|
class ModFileStructure
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -71,9 +72,11 @@ public:
|
||||||
typedef map<string, string> num_options_type;
|
typedef map<string, string> num_options_type;
|
||||||
typedef map<string, pair<string, string> > paired_num_options_type;
|
typedef map<string, pair<string, string> > paired_num_options_type;
|
||||||
typedef map<string, string> string_options_type;
|
typedef map<string, string> string_options_type;
|
||||||
|
typedef map<string, TmpSymbolTable*> string_list_options_type;
|
||||||
num_options_type num_options;
|
num_options_type num_options;
|
||||||
paired_num_options_type paired_num_options;
|
paired_num_options_type paired_num_options;
|
||||||
string_options_type string_options;
|
string_options_type string_options;
|
||||||
|
string_list_options_type string_list_options;
|
||||||
void writeOutput(ostream &output) const;
|
void writeOutput(ostream &output) const;
|
||||||
void clear();
|
void clear();
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue