From 38714a58c48ebae07def5da5d38a6e0d3151e080 Mon Sep 17 00:00:00 2001
From: Johannes Pfeifer <jpfeifer@gmx.de>
Date: Thu, 22 Jul 2021 17:12:02 +0200
Subject: [PATCH] Add updated_covariance option

Related to https://git.dynare.org/Dynare/dynare/-/issues/1784
---
 src/DynareBison.yy | 7 ++++++-
 src/DynareFlex.ll  | 1 +
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/DynareBison.yy b/src/DynareBison.yy
index aca834de..b7eae033 100644
--- a/src/DynareBison.yy
+++ b/src/DynareBison.yy
@@ -150,7 +150,7 @@ class ParsingDriver;
 %token <string> ALPHA BETA ABAND NINV CMS NCMS CNUM GAMMA INV_GAMMA INV_GAMMA1 INV_GAMMA2 NORMAL UNIFORM EPS PDF FIG DR NONE PRIOR PRIOR_VARIANCE HESSIAN IDENTITY_MATRIX DIRICHLET DIAGONAL OPTIMAL
 %token GSIG2_LMDM Q_DIAG FLAT_PRIOR NCSK NSTD WEIBULL WEIBULL_PDF GMM SMM
 %token INDXPARR INDXOVR INDXAP APBAND INDXIMF INDXFORE FOREBAND INDXGFOREHAT INDXGIMFHAT
-%token INDXESTIMA INDXGDLS EQ_MS FILTER_COVARIANCE FILTER_DECOMPOSITION SMOOTHED_STATE_UNCERTAINTY SMOOTHER_REDUX
+%token INDXESTIMA INDXGDLS EQ_MS FILTER_COVARIANCE UPDATED_COVARIANCE FILTER_DECOMPOSITION SMOOTHED_STATE_UNCERTAINTY SMOOTHER_REDUX
 %token EQ_CMS TLINDX TLNUMBER RESTRICTIONS POSTERIOR_SAMPLER_OPTIONS
 %token OUTPUT_FILE_TAG HORIZON
 %token SBVAR TREND_VAR DEFLATOR GROWTH_FACTOR MS_IRF MS_VARIANCE_DECOMPOSITION GROWTH
@@ -2125,6 +2125,7 @@ estimation_options : o_datafile
                    | o_aim_solver
                    | o_partial_information
                    | o_filter_covariance
+                   | o_updated_covariance
                    | o_filter_decomposition
                    | o_smoothed_state_uncertainty
                    | o_smoother_redux
@@ -3175,6 +3176,7 @@ calib_smoother_option : o_filtered_vars
                       | o_loglinear
                       | o_first_obs
                       | o_filter_covariance
+                      | o_updated_covariance
                       | o_filter_decomposition
                       | o_diffuse_kalman_tol
                       | o_diffuse_filter
@@ -3865,6 +3867,9 @@ o_second_deriv_provided : SECOND_DERIV_PROVIDED EQUAL namespace_qualified_filena
 o_filter_covariance : FILTER_COVARIANCE
                         { driver.option_num("filter_covariance","true");}
                       ;
+o_updated_covariance : UPDATED_COVARIANCE
+                        { driver.option_num("updated_covariance","true");}
+
 o_filter_decomposition : FILTER_DECOMPOSITION
                            { driver.option_num("filter_decomposition","true");}
                          ;
diff --git a/src/DynareFlex.ll b/src/DynareFlex.ll
index 32bb6460..83412e05 100644
--- a/src/DynareFlex.ll
+++ b/src/DynareFlex.ll
@@ -658,6 +658,7 @@ DATE -?[0-9]+([ya]|m([1-9]|1[0-2])|q[1-4])
 <DYNARE_STATEMENT>mle_mode {return token::MLE_MODE; }
 <DYNARE_STATEMENT>k_order_solver {return token::K_ORDER_SOLVER; }
 <DYNARE_STATEMENT>filter_covariance {return token::FILTER_COVARIANCE; }
+<DYNARE_STATEMENT>updated_covariance {return token::UPDATED_COVARIANCE; }
 <DYNARE_STATEMENT>filter_decomposition {return token::FILTER_DECOMPOSITION; }
 <DYNARE_STATEMENT>smoothed_state_uncertainty {return token::SMOOTHED_STATE_UNCERTAINTY; }
 <DYNARE_STATEMENT>smoother_redux {return token::SMOOTHER_REDUX; }
-- 
GitLab