From 5c71288637e8818d08b86773d347b3cbecd5aa80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org> Date: Wed, 9 Feb 2022 12:26:00 +0100 Subject: [PATCH] =?UTF-8?q?Add=20interface=20for=20=E2=80=9Cstatic?= =?UTF-8?q?=E2=80=9D=20and=20=E2=80=9Cincidence=E2=80=9D=20options=20of=20?= =?UTF-8?q?=E2=80=9Cmodel=5Finfo=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (manually cherry picked from commit 7df67819821ac5946e1b4ace3e974752ce533827) --- src/ComputingTasks.cc | 4 ++-- src/DynareBison.yy | 10 ++++++++-- src/DynareFlex.ll | 2 ++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/ComputingTasks.cc b/src/ComputingTasks.cc index 74918eeb..162d28fe 100644 --- a/src/ComputingTasks.cc +++ b/src/ComputingTasks.cc @@ -113,8 +113,8 @@ ModelInfoStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolid void ModelInfoStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { - options_list.writeOutput(output); - output << "model_info();" << endl; + options_list.writeOutput(output, "options_model_info_"); + output << "model_info(options_model_info_);" << endl; } void diff --git a/src/DynareBison.yy b/src/DynareBison.yy index 1da8d499..71de02c9 100644 --- a/src/DynareBison.yy +++ b/src/DynareBison.yy @@ -1,6 +1,6 @@ // -*- C++ -*- /* - * Copyright © 2003-2021 Dynare Team + * Copyright © 2003-2022 Dynare Team * * This file is part of Dynare. * @@ -184,6 +184,7 @@ class ParsingDriver; %token NO_IDENTIFICATION_MINIMAL NO_IDENTIFICATION_SPECTRUM NORMALIZE_JACOBIANS GRID_NBR %token TOL_RANK TOL_DERIV TOL_SV CHECKS_VIA_SUBSETS MAX_DIM_SUBSETS_GROUPS ZERO_MOMENTS_TOLERANCE %token MAX_NROWS SQUEEZE_SHOCK_DECOMPOSITION WITH_EPILOGUE +%token STATIC INCIDENCE %token <vector<string>> SYMBOL_VEC @@ -1366,7 +1367,10 @@ model_info : MODEL_INFO ';' model_info_options_list : model_info_options_list COMMA model_info_options | model_info_options ; -model_info_options : %empty + +model_info_options : o_static + | o_incidence + ; perfect_foresight_setup : PERFECT_FORESIGHT_SETUP ';' { driver.perfect_foresight_setup(); } @@ -4033,6 +4037,8 @@ o_tol_sv : TOL_SV EQUAL non_negative_number { driver.option_num("tol_sv", $3); } o_checks_via_subsets : CHECKS_VIA_SUBSETS EQUAL INT_NUMBER { driver.option_num("checks_via_subsets", $3); }; o_max_dim_subsets_groups : MAX_DIM_SUBSETS_GROUPS EQUAL INT_NUMBER { driver.option_num("max_dim_subsets_groups", $3); }; o_zero_moments_tolerance : ZERO_MOMENTS_TOLERANCE EQUAL non_negative_number { driver.option_num("zero_moments_tolerance", $3); }; +o_static : STATIC { driver.option_num("static","true"); }; +o_incidence : INCIDENCE { driver.option_num("incidence","true"); }; // Some options to "occbin_solver" diff --git a/src/DynareFlex.ll b/src/DynareFlex.ll index 5fbd6741..a206a401 100644 --- a/src/DynareFlex.ll +++ b/src/DynareFlex.ll @@ -846,6 +846,8 @@ DATE -?[0-9]+([ya]|m([1-9]|1[0-2])|q[1-4]) <DYNARE_STATEMENT>no_homotopy {return token::NO_HOMOTOPY;} <DYNARE_STATEMENT>particle_filter_options {return token::PARTICLE_FILTER_OPTIONS;} <DYNARE_STATEMENT>terminal_steady_state_as_guess_value {return token::TERMINAL_STEADY_STATE_AS_GUESS_VALUE;} +<DYNARE_STATEMENT>static { return token::STATIC; } +<DYNARE_STATEMENT>incidence { return token::INCIDENCE; } <DYNARE_BLOCK>stderr_multiples {return token::STDERR_MULTIPLES;} <DYNARE_BLOCK>diagonal_only {return token::DIAGONAL_ONLY;} -- GitLab