From 21cecee5990e1541d0721c2a7a554da15b5e8011 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org>
Date: Fri, 22 Jul 2022 13:43:41 +0200
Subject: [PATCH] =?UTF-8?q?Add=20=E2=80=9Cfsolve=5Foptions=E2=80=9D=20opti?=
 =?UTF-8?q?on=20to=20=E2=80=9Csteady=E2=80=9D=20command?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Ref. dynare#1856
---
 src/DynareBison.yy | 3 +++
 src/DynareFlex.ll  | 1 +
 2 files changed, 4 insertions(+)

diff --git a/src/DynareBison.yy b/src/DynareBison.yy
index f977818b..8adb0f85 100644
--- a/src/DynareBison.yy
+++ b/src/DynareBison.yy
@@ -187,6 +187,7 @@ class ParsingDriver;
 %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 MODEL_REMOVE MODEL_REPLACE MODEL_OPTIONS
 %token VAR_REMOVE ESTIMATED_PARAMS_REMOVE STATIC INCIDENCE RESID NON_ZERO LEARNT_IN PLUS_EQUAL TIMES_EQUAL
+%token FSOLVE_OPTIONS
 
 %token <vector<string>> SYMBOL_VEC
 
@@ -1401,6 +1402,7 @@ steady_options : o_solve_algo
                | o_nocheck
                | o_steady_tolf
                | o_steady_tolx
+               | o_fsolve_options
                ;
 
 check : CHECK ';'
@@ -4078,6 +4080,7 @@ o_no_init_estimation_check_first_obs : NO_INIT_ESTIMATION_CHECK_FIRST_OBS { driv
 o_heteroskedastic_filter : HETEROSKEDASTIC_FILTER { driver.option_num("heteroskedastic_filter", "true"); };
 o_pfwee_terminal_steady_state_as_guess_value : TERMINAL_STEADY_STATE_AS_GUESS_VALUE { driver.option_num("pfwee.terminal_steady_state_as_guess_value", "true"); };
 o_pfwee_constant_simulation_length : CONSTANT_SIMULATION_LENGTH { driver.option_num("pfwee.constant_simulation_length", "true"); };
+o_fsolve_options : FSOLVE_OPTIONS EQUAL '(' name_value_pair_with_boolean_list ')' { driver.option_str("fsolve_options", $4); };
 
 // Some options to "method_of_moments"
 o_bartlett_kernel_lag : BARTLETT_KERNEL_LAG EQUAL INT_NUMBER { driver.option_num("mom.bartlett_kernel_lag", $3); };
diff --git a/src/DynareFlex.ll b/src/DynareFlex.ll
index 3b6688c7..fa090742 100644
--- a/src/DynareFlex.ll
+++ b/src/DynareFlex.ll
@@ -451,6 +451,7 @@ DATE -?[0-9]+([ya]|m([1-9]|1[0-2])|q[1-4])
 <DYNARE_STATEMENT>first_simulation_period {return token::FIRST_SIMULATION_PERIOD;}
 <DYNARE_STATEMENT>last_simulation_period {return token::LAST_SIMULATION_PERIOD;}
 <DYNARE_STATEMENT>no_init_estimation_check_first_obs {return token::NO_INIT_ESTIMATION_CHECK_FIRST_OBS;}
+<DYNARE_STATEMENT>fsolve_options {return token::FSOLVE_OPTIONS;}
 
 <DYNARE_STATEMENT>alpha {
   yylval->build<string>(yytext);
-- 
GitLab