diff --git a/preprocessor/ComputingTasks.cc b/preprocessor/ComputingTasks.cc index c8fcd220247980cdb94bf9dcffb6d2d3b5d8e996..702649aa1ff51fc3d1b216f2912fc6328a41c8e1 100644 --- a/preprocessor/ComputingTasks.cc +++ b/preprocessor/ComputingTasks.cc @@ -1758,6 +1758,8 @@ PriorStatement::writeOutput(ostream &output, const string &basename) const writeOutputHelper(output, "date1", lhs_field); writeOutputHelper(output, "date2", lhs_field); writeOutputHelper(output, "domain", lhs_field); + writeOutputHelper(output, "median", lhs_field); + writeOutputHelper(output, "truncate", lhs_field); writeOutputHelper(output, "interval", lhs_field); writeVarianceOption(output, lhs_field); } @@ -1799,6 +1801,8 @@ StdPriorStatement::writeOutput(ostream &output, const string &basename) const writeOutputHelper(output, "shape", lhs_field); writeOutputHelper(output, "shift", lhs_field); writeOutputHelper(output, "domain", lhs_field); + writeOutputHelper(output, "median", lhs_field); + writeOutputHelper(output, "truncate", lhs_field); writeOutputHelper(output, "interval", lhs_field); writeVarianceOption(output, lhs_field); } @@ -1849,6 +1853,8 @@ CorrPriorStatement::writeOutput(ostream &output, const string &basename) const writeOutputHelper(output, "shape", lhs_field); writeOutputHelper(output, "shift", lhs_field); writeOutputHelper(output, "domain", lhs_field); + writeOutputHelper(output, "median", lhs_field); + writeOutputHelper(output, "truncate", lhs_field); writeOutputHelper(output, "interval", lhs_field); writeVarianceOption(output, lhs_field); } diff --git a/preprocessor/DynareBison.yy b/preprocessor/DynareBison.yy index f6b4ebf88da633efb453534cff435871a778be8e..119ddcdedc982d81e819976f8b6a428f85d557a3 100644 --- a/preprocessor/DynareBison.yy +++ b/preprocessor/DynareBison.yy @@ -121,7 +121,7 @@ class ParsingDriver; %token PARAMETERS PARAMETER_SET PARTIAL_INFORMATION PERIODS PLANNER_OBJECTIVE PLOT_CONDITIONAL_FORECAST PLOT_PRIORS PREFILTER PRESAMPLE %token PRINT PRIOR_MC PRIOR_TRUNC PRIOR_MODE PRIOR_MEAN POSTERIOR_MODE POSTERIOR_MEAN POSTERIOR_MEDIAN PRUNING %token <string_val> QUOTED_STRING -%token QZ_CRITERIUM FULL DSGE_VAR DSGE_VARLAG DSGE_PRIOR_WEIGHT +%token QZ_CRITERIUM FULL DSGE_VAR DSGE_VARLAG DSGE_PRIOR_WEIGHT TRUNCATE %token RELATIVE_IRF REPLIC RPLOT SAVE_PARAMS_AND_STEADY_STATE PARAMETER_UNCERTAINTY %token SHOCKS SHOCK_DECOMPOSITION SIGMA_E SIMUL SIMUL_ALGO SIMUL_SEED SMOOTHER STACK_SOLVE_ALGO STEADY_STATE_MODEL SOLVE_ALGO %token STDERR STEADY STOCH_SIMUL SYLVESTER REGIMES REGIME @@ -1244,7 +1244,9 @@ prior_options_list : prior_options_list COMMA prior_options prior_options : o_shift | o_mean + | o_median | o_stdev + | o_truncate | o_variance | o_mode | o_interval @@ -2008,6 +2010,7 @@ o_shift : SHIFT EQUAL signed_number { driver.option_num("shift", $3); }; o_shape : SHAPE EQUAL prior_distribution { driver.prior_shape = $3; }; o_mode : MODE EQUAL signed_number { driver.option_num("mode", $3); }; o_mean : MEAN EQUAL signed_number { driver.option_num("mean", $3); }; +o_truncate : TRUNCATE EQUAL vec_value { driver.option_num("truncate", $3); }; o_stdev : STDEV EQUAL non_negative_number { driver.option_num("stdev", $3); }; o_jscale : JSCALE EQUAL non_negative_number { driver.option_num("jscale", $3); }; o_init : INIT EQUAL signed_number { driver.option_num("init", $3); }; @@ -2332,7 +2335,8 @@ o_error_band_percentiles : ERROR_BAND_PERCENTILES EQUAL vec_value { driver.optio o_shock_draws : SHOCK_DRAWS EQUAL INT_NUMBER { driver.option_num("ms.shock_draws",$3); }; o_shocks_per_parameter : SHOCKS_PER_PARAMETER EQUAL INT_NUMBER { driver.option_num("ms.shocks_per_parameter",$3); }; o_free_parameters : FREE_PARAMETERS EQUAL vec_value { driver.option_num("ms.free_parameters",$3); }; -o_median : MEDIAN { driver.option_num("ms.median","1"); }; +o_median : MEDIAN { driver.option_num("ms.median","1"); } + | MEDIAN EQUAL signed_number { driver.option_num("median", $3); }; o_regimes : REGIMES { driver.option_num("ms.regimes","1"); }; o_regime : REGIME EQUAL INT_NUMBER { driver.option_num("ms.regime",$3); }; o_data_obs_nbr : DATA_OBS_NBR EQUAL INT_NUMBER { driver.option_num("ms.forecast_data_obs",$3); }; diff --git a/preprocessor/DynareFlex.ll b/preprocessor/DynareFlex.ll index 54c42442fde7f4f889b44535804eba50914dfdc5..83a03439e66b7bf24ba910dee4ae636ed6f78a0b 100644 --- a/preprocessor/DynareFlex.ll +++ b/preprocessor/DynareFlex.ll @@ -203,6 +203,7 @@ string eofbuff; <DYNARE_STATEMENT>first_obs {return token::FIRST_OBS;} <DYNARE_STATEMENT>mean {return token::MEAN;} <DYNARE_STATEMENT>stdev {return token::STDEV;} +<DYNARE_STATEMENT>truncate {return token::TRUNCATE;} <DYNARE_STATEMENT>domain {return token::DOMAINN;} <DYNARE_STATEMENT>variance {return token::VARIANCE;} <DYNARE_STATEMENT>mode {return token::MODE;}