From b6adff7de74042275e439a7d0603195aaa85b219 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org>
Date: Thu, 30 Nov 2023 16:11:28 +0100
Subject: [PATCH] Manually reformat Flex and Bison files to be closer to
 clang-format style

---
 src/DynareBison.yy     | 572 +++++++++++++++++++++--------------------
 src/DynareFlex.ll      |  18 +-
 src/macro/Parser.yy    |  27 +-
 src/macro/Tokenizer.ll |  10 +-
 4 files changed, 322 insertions(+), 305 deletions(-)

diff --git a/src/DynareBison.yy b/src/DynareBison.yy
index 5ac6f632..0a5792fe 100644
--- a/src/DynareBison.yy
+++ b/src/DynareBison.yy
@@ -57,19 +57,21 @@ class ParsingDriver;
 /* Little hack: we redefine the macro which computes the locations, because
    we need to access the location from within the parsing driver for error
    and warning messages. */
-#define YYLLOC_DEFAULT(Current, Rhs, N)                         \
-  do {                                                          \
-    if (N)                                                      \
-      {                                                         \
-        (Current).begin = YYRHSLOC(Rhs, 1).begin;               \
-        (Current).end   = YYRHSLOC(Rhs, N).end;                 \
-      }                                                         \
-    else                                                        \
-      {                                                         \
-        (Current).begin = (Current).end = YYRHSLOC(Rhs, 0).end;	\
-      }                                                         \
-    driver.location = (Current);                                \
-  } while(false)
+#define YYLLOC_DEFAULT(Current, Rhs, N)                           \
+  do                                                              \
+    {                                                             \
+      if (N)                                                      \
+        {                                                         \
+          (Current).begin = YYRHSLOC(Rhs, 1).begin;               \
+          (Current).end   = YYRHSLOC(Rhs, N).end;                 \
+        }                                                         \
+      else                                                        \
+        {                                                         \
+          (Current).begin = (Current).end = YYRHSLOC(Rhs, 0).end; \
+        }                                                         \
+      driver.location = (Current);                                \
+    }                                                             \
+  while (false)
 
 #include "ParsingDriver.hh"
 
@@ -422,7 +424,7 @@ symbol_list_with_tex : symbol_list_with_tex symbol
                          $$.emplace_back($3, "");
                        }
                      | symbol
-                       { $$ = { { $1, "" }}; }
+                       { $$ = {{$1, ""}}; }
                      | symbol_list_with_tex symbol TEX_NAME
                        {
                          $$ = $1;
@@ -434,16 +436,16 @@ symbol_list_with_tex : symbol_list_with_tex symbol
                          $$.emplace_back($3, $4);
                        }
                      | symbol TEX_NAME
-                       { $$ = { { $1, $2 } }; }
+                       { $$ = {{$1, $2}}; }
                      ;
 
 partition_elem : symbol EQUAL QUOTED_STRING
-                 { $$ = { $1, $3 }; }
+                 { $$ = {$1, $3}; }
 
 partition_1 : '(' partition_elem
-              { $$ = { $2 }; }
+              { $$ = {$2}; }
             | '(' COMMA partition_elem
-              { $$ = { $3 }; }
+              { $$ = {$3}; }
             | partition_1 partition_elem
               {
                 $$ = $1;
@@ -471,7 +473,7 @@ symbol_list_with_tex_and_partition : symbol_list_with_tex_and_partition symbol
                                        $$.emplace_back($3, "", vector<pair<string,string>>{});
                                      }
                                    | symbol
-                                     { $$ = { { $1, "", {} }}; }
+                                     { $$ = {{$1, "", {}}}; }
                                    | symbol_list_with_tex_and_partition symbol partition
                                      {
                                        $$ = $1;
@@ -483,7 +485,7 @@ symbol_list_with_tex_and_partition : symbol_list_with_tex_and_partition symbol
                                        $$.emplace_back($3, "", $4);
                                      }
                                    | symbol partition
-                                     { $$ = { { $1, "", $2 }}; }
+                                     { $$ = {{$1, "", $2}}; }
                                    | symbol_list_with_tex_and_partition symbol TEX_NAME
                                      {
                                        $$ = $1;
@@ -495,7 +497,7 @@ symbol_list_with_tex_and_partition : symbol_list_with_tex_and_partition symbol
                                        $$.emplace_back($3, $4, vector<pair<string,string>>{});
                                      }
                                    | symbol TEX_NAME
-                                     { $$ = { { $1, $2, {} }}; }
+                                     { $$ = {{$1, $2, {}}}; }
                                    | symbol_list_with_tex_and_partition symbol TEX_NAME partition
                                      {
                                        $$ = $1;
@@ -507,7 +509,7 @@ symbol_list_with_tex_and_partition : symbol_list_with_tex_and_partition symbol
                                        $$.emplace_back($3, $4, $5);
                                      }
                                    | symbol TEX_NAME partition
-                                     { $$ = { { $1, $2, $3 }}; }
+                                     { $$ = {{$1, $2, $3}}; }
                                    ;
 
 rplot : RPLOT symbol_list ';' { driver.rplot($2); };
@@ -641,7 +643,7 @@ change_type_arg : PARAMETERS
 init_param : symbol EQUAL expression ';' { driver.init_param($1, $3); };
 
 expression : '(' expression ')'
-             { $$ = $2;}
+             { $$ = $2; }
            | namespace_qualified_symbol
              { $$ = driver.add_expression_variable($1); }
            | non_negative_number
@@ -760,10 +762,10 @@ initval_list : initval_list initval_elem
 initval_elem : symbol EQUAL expression ';' { driver.init_val($1, $3); };
 
 histval_file : HISTVAL_FILE '(' h_options_list ')' ';'
-              { driver.histval_file();};
+              { driver.histval_file(); };
 
 initval_file : INITVAL_FILE '(' h_options_list ')' ';'
-              { driver.initval_file();};
+              { driver.initval_file(); };
 
 h_options_list: h_options_list COMMA h_options
                | h_options
@@ -850,7 +852,7 @@ matched_moments : MATCHED_MOMENTS ';' { driver.begin_matched_moments(); }
                 ;
 
 matched_moments_list : hand_side ';'
-                       { $$ = { $1 }; }
+                       { $$ = {$1}; }
                      | matched_moments_list hand_side ';'
                        {
                          $$ = $1;
@@ -864,7 +866,7 @@ occbin_constraints : OCCBIN_CONSTRAINTS ';' { driver.begin_occbin_constraints();
 
 
 occbin_constraints_regimes_list : occbin_constraints_regime
-                                  { $$ = { $1 }; }
+                                  { $$ = {$1}; }
                                 | occbin_constraints_regimes_list occbin_constraints_regime
                                   {
                                     $$ = $1;
@@ -886,12 +888,12 @@ occbin_constraints_regime : NAME QUOTED_STRING ';' occbin_constraints_regime_opt
                                              || relax->op_code == BinaryOpcode::lessEqual
                                              || relax->op_code == BinaryOpcode::greaterEqual))
                                 driver.error("The 'relax' expression must be an inequality constraint");
-                              $$ = { $2, bind, relax, $4["error_bind"], $4["error_relax"] };
+                              $$ = {$2, bind, relax, $4["error_bind"], $4["error_relax"]};
                             }
                           ;
 
 occbin_constraints_regime_options_list : occbin_constraints_regime_option
-                                         { $$ = { $1 }; }
+                                         { $$ = {$1}; }
                                        | occbin_constraints_regime_options_list occbin_constraints_regime_option
                                          {
                                            $$ = $1;
@@ -902,13 +904,13 @@ occbin_constraints_regime_options_list : occbin_constraints_regime_option
                                        ;
 
 occbin_constraints_regime_option : BIND hand_side ';'
-                                   { $$ = { "bind", $2 }; }
+                                   { $$ = {"bind", $2}; }
                                  | RELAX hand_side ';'
-                                   { $$ = { "relax", $2 }; }
+                                   { $$ = {"relax", $2}; }
                                  | ERROR_BIND hand_side ';'
-                                   { $$ = { "error_bind", $2 }; }
+                                   { $$ = {"error_bind", $2}; }
                                  | ERROR_RELAX hand_side ';'
-                                   { $$ = { "error_relax", $2 }; }
+                                   { $$ = {"error_relax", $2}; }
                                  ;
 
 pac_target_info : PAC_TARGET_INFO '(' symbol ')' ';'
@@ -969,7 +971,7 @@ model_option : BLOCK { driver.block(); }
              | STATIC_MFS EQUAL INT_NUMBER { driver.static_mfs($3); };
              | BYTECODE { driver.bytecode(); }
              | USE_DLL { driver.use_dll(); }
-             | NO_STATIC { driver.no_static();}
+             | NO_STATIC { driver.no_static(); }
              | DIFFERENTIATE_FORWARD_VARS { driver.differentiate_forward_vars_all(); }
              | DIFFERENTIATE_FORWARD_VARS EQUAL '(' symbol_list ')' { driver.differentiate_forward_vars_some($4); }
              | LINEAR { driver.linear(); };
@@ -1011,17 +1013,17 @@ tag_pair_list : tag_pair_list COMMA tag_pair
                     driver.error("Tag '" + $3.first + "' cannot be used twice for the same equation");
                 }
               | tag_pair
-                { $$ = { $1 }; }
+                { $$ = {$1}; }
               ;
 
 tag_pair : symbol EQUAL QUOTED_STRING
-           { $$ = { str_tolower($1), $3 }; }
+           { $$ = {str_tolower($1), $3}; }
          | symbol
-           { $$ = { str_tolower($1), "" }; }
+           { $$ = {str_tolower($1), ""}; }
          ;
 
 hand_side : '(' hand_side ')'
-            { $$ = $2;}
+            { $$ = $2; }
           | namespace_qualified_symbol
             { $$ = driver.add_model_variable($1); }
           | symbol PIPE_E
@@ -1156,20 +1158,20 @@ model_replace : MODEL_REPLACE '(' tag_pair_list_for_selection ')' ';'
 model_options : MODEL_OPTIONS '(' model_options_list ')' ';'
 
 tag_pair_list_for_selection : QUOTED_STRING
-                              { $$ = { { { "name", $1 } } }; }
+                              { $$ = {{{"name", $1}}}; }
                             | tag_pair
-                              { $$ = { { $1 } }; }
+                              { $$ = {{$1}}; }
                             | '[' tag_pair_list ']'
-                              { $$ = { $2 }; }
+                              { $$ = {$2}; }
                             | tag_pair_list_for_selection COMMA QUOTED_STRING
                               {
                                 $$ = $1;
-                                $$.push_back({ { "name", $3 } });
+                                $$.push_back({{"name", $3}});
                               }
                             | tag_pair_list_for_selection COMMA tag_pair
                               {
                                 $$ = $1;
-                                $$.push_back({ $3 });
+                                $$.push_back({$3});
                               }
                             | tag_pair_list_for_selection COMMA '[' tag_pair_list ']'
                               {
@@ -1234,7 +1236,7 @@ heteroskedastic_shock_elem : VAR symbol ';' PERIODS period_list ';' VALUES value
                              { driver.add_heteroskedastic_shock($2, $5, $8, true); }
                            ;
 
-svar_identification : SVAR_IDENTIFICATION {driver.begin_svar_identification();} ';' svar_identification_list END ';'
+svar_identification : SVAR_IDENTIFICATION { driver.begin_svar_identification(); } ';' svar_identification_list END ';'
                       { driver.end_svar_identification(); }
                     ;
 
@@ -1247,9 +1249,9 @@ svar_identification_elem : EXCLUSION LAG INT_NUMBER ';' svar_equation_list
                          | EXCLUSION CONSTANTS ';'
                            { driver.add_constants_exclusion(); }
                          | RESTRICTION EQUATION INT_NUMBER COMMA
-			 { driver.add_restriction_equation_nbr($3);}
+			 { driver.add_restriction_equation_nbr($3); }
                            restriction_expression EQUAL
-                                {driver.add_restriction_equal();}
+                                { driver.add_restriction_equal(); }
                            restriction_expression ';'
                          | UPPER_CHOLESKY ';'
                            { driver.add_upper_cholesky(); }
@@ -1263,7 +1265,7 @@ svar_equation_list : svar_equation_list EQUATION INT_NUMBER COMMA symbol_list ';
                      { driver.add_restriction_in_equation($2, $4); }
                    ;
 
-restriction_expression : expression {driver.check_restriction_expression_constant($1);}
+restriction_expression : expression { driver.check_restriction_expression_constant($1); }
                        | restriction_expression_1
                        ;
 
@@ -1272,13 +1274,13 @@ restriction_expression_1 : restriction_elem_expression
                          ;
 
 restriction_elem_expression : COEFF '(' symbol COMMA INT_NUMBER ')'
-                                 { driver.add_positive_restriction_element($3,$5);}
+                                 { driver.add_positive_restriction_element($3, $5); }
                             | PLUS COEFF '(' symbol COMMA INT_NUMBER ')'
-		                 { driver.add_positive_restriction_element($4,$6);}
+		                 { driver.add_positive_restriction_element($4, $6); }
                             | MINUS COEFF '(' symbol COMMA INT_NUMBER ')'
-		                 { driver.add_negative_restriction_element($4,$6);}
+		                 { driver.add_negative_restriction_element($4, $6); }
                             | expression TIMES COEFF '(' symbol COMMA INT_NUMBER ')'
-                                 { driver.add_positive_restriction_element($1,$5,$7);}
+                                 { driver.add_positive_restriction_element($1, $5, $7); }
                             ;
 
 svar_global_identification_check: SVAR_GLOBAL_IDENTIFICATION_CHECK ';'
@@ -1323,14 +1325,16 @@ mshocks : MSHOCKS ';' mshock_list END ';'
                alternative in the variant, so that default initialization of the
                variant by the [] operator will give false */
             if ($3.contains("learnt_in"))
-              driver.end_mshocks_learnt_in(get<string>($3.at("learnt_in")), get<bool>($3["overwrite"]), get<bool>($3["relative_to_initval"]));
+              driver.end_mshocks_learnt_in(get<string>($3.at("learnt_in")),
+                                           get<bool>($3["overwrite"]),
+                                           get<bool>($3["relative_to_initval"]));
             else
               driver.end_mshocks(get<bool>($3["overwrite"]), get<bool>($3["relative_to_initval"]));
           }
         ;
 
 mshocks_options_list : mshocks_option
-                       { $$ = { $1 }; }
+                       { $$ = {$1}; }
                      | mshocks_options_list mshocks_option
                        {
                          $$ = $1;
@@ -1341,11 +1345,11 @@ mshocks_options_list : mshocks_option
                      ;
 
 mshocks_option : OVERWRITE
-                 { $$ = { "overwrite", true }; }
+                 { $$ = {"overwrite", true}; }
                | LEARNT_IN EQUAL INT_NUMBER
-                 { $$ = { "learnt_in", $3 }; }
+                 { $$ = {"learnt_in", $3}; }
                | RELATIVE_TO_INITVAL
-                 { $$ = { "relative_to_initval", true }; }
+                 { $$ = {"relative_to_initval", true}; }
                ;
 
 mshock_list : mshock_list det_shock_elem
@@ -1385,12 +1389,12 @@ period_list : period_list COMMA INT_NUMBER
                 int p1 = stoi($1), p2 = stoi($3);
                 if (p1 > p2)
                   driver.error("Can't have first period index greater than second index in range specification");
-                $$ = { { p1, p2 } };
+                $$ = {{p1, p2}};
               }
             | INT_NUMBER
               {
                 int p = stoi($1);
-                $$ = { { p, p } };
+                $$ = {{p, p}};
               }
             ;
 
@@ -1405,26 +1409,26 @@ value_list : value_list COMMA '(' expression ')'
                $$.push_back($3);
              }
            | '(' expression ')'
-             { $$ = { $2 }; }
+             { $$ = {$2}; }
            | value_list COMMA signed_number
              {
                $$ = $1;
-               $$.push_back($3.at(0) == '-' ?
-                            driver.add_uminus(driver.add_non_negative_constant($3.substr(1))) :
-                            driver.add_non_negative_constant($3));
+               $$.push_back($3.at(0) == '-'
+                            ? driver.add_uminus(driver.add_non_negative_constant($3.substr(1)))
+                            : driver.add_non_negative_constant($3));
              }
            | value_list signed_number
              {
                $$ = $1;
-               $$.push_back($2.at(0) == '-' ?
-                            driver.add_uminus(driver.add_non_negative_constant($2.substr(1))) :
-                            driver.add_non_negative_constant($2));
+               $$.push_back($2.at(0) == '-'
+                            ? driver.add_uminus(driver.add_non_negative_constant($2.substr(1)))
+                            : driver.add_non_negative_constant($2));
              }
            | signed_number
              {
-               $$ = { $1.at(0) == '-' ?
-                      driver.add_uminus(driver.add_non_negative_constant($1.substr(1))) :
-                      driver.add_non_negative_constant($1) };
+               $$ = {$1.at(0) == '-'
+                     ? driver.add_uminus(driver.add_non_negative_constant($1.substr(1)))
+                     : driver.add_non_negative_constant($1)};
              }
            ;
 
@@ -1501,8 +1505,8 @@ perfect_foresight_solver : PERFECT_FORESIGHT_SOLVER ';'
                          ;
 
 perfect_foresight_solver_options_list : perfect_foresight_solver_options_list COMMA perfect_foresight_solver_options
-                                     | perfect_foresight_solver_options
-                                     ;
+                                      | perfect_foresight_solver_options
+                                      ;
 
 perfect_foresight_solver_options : o_stack_solve_algo
                                  | o_markowitz
@@ -1663,11 +1667,11 @@ method_of_moments_option : o_add_tiny_number_to_cholesky
                          ;
 
 prior_function : PRIOR_FUNCTION '(' prior_posterior_function_options_list ')' ';'
-                { driver.prior_posterior_function(true); }
+                 { driver.prior_posterior_function(true); }
                ;
 
 posterior_function : POSTERIOR_FUNCTION '(' prior_posterior_function_options_list ')' ';'
-                    { driver.prior_posterior_function(false); }
+                     { driver.prior_posterior_function(false); }
                    ;
 
 prior_posterior_function_options_list : prior_posterior_function_options_list COMMA prior_posterior_function_options
@@ -2081,11 +2085,11 @@ subsamples_eq : subsamples_eq_opt EQUAL subsamples_eq_opt ';'
               ;
 
 subsamples_eq_opt : symbol '.' SUBSAMPLES
-                    { $$ = { $1, "" }; }
+                    { $$ = {$1, ""}; }
                   | STD '(' symbol ')' '.' SUBSAMPLES
-                    { $$ = { $3, "" }; }
+                    { $$ = {$3, ""}; }
                   | CORR '(' symbol COMMA symbol ')' '.' SUBSAMPLES
-                    { $$ = { $3, $5 }; }
+                    { $$ = {$3, $5}; }
                   ;
 
 subsamples_name_list : subsamples_name_list COMMA o_subsample_name
@@ -2146,17 +2150,17 @@ prior_eq : prior_eq_opt EQUAL prior_eq_opt ';'
          ;
 
 prior_eq_opt : symbol '.' PRIOR
-               { $$ = { "par", $1, "", "" }; }
+               { $$ = {"par", $1, "", ""}; }
              | symbol '.' symbol '.' PRIOR
-               { $$ = { "par", $1, "", $3 }; }
+               { $$ = {"par", $1, "", $3}; }
              | STD '(' symbol ')' '.'  PRIOR
-               { $$ = { "std", $3, "", "" }; }
+               { $$ = {"std", $3, "", ""}; }
              | STD '(' symbol ')' '.' symbol '.' PRIOR
-               { $$ = { "std", $3, "", $6 }; }
+               { $$ = {"std", $3, "", $6}; }
              | CORR '(' symbol COMMA symbol ')' '.'  PRIOR
-               { $$ = { "corr", $3, $5, "" }; }
+               { $$ = {"corr", $3, $5, ""}; }
              | CORR '(' symbol COMMA symbol ')' '.' symbol '.' PRIOR
-               { $$ = { "corr", $3, $5, $8 }; }
+               { $$ = {"corr", $3, $5, $8}; }
              ;
 
 options : symbol '.' OPTIONS '(' options_options_list ')' ';'
@@ -2188,17 +2192,17 @@ options_eq : options_eq_opt EQUAL options_eq_opt ';'
            ;
 
 options_eq_opt : symbol '.' OPTIONS
-                 { $$ = { "par", $1, "", "" }; }
+                 { $$ = {"par", $1, "", ""}; }
                | symbol '.' symbol '.' OPTIONS
-                 { $$ = { "par", $1, "", $3 }; }
+                 { $$ = {"par", $1, "", $3}; }
                | STD '(' symbol ')' '.'  OPTIONS
-                 { $$ = { "std", $3, "", "" }; }
+                 { $$ = {"std", $3, "", ""}; }
                | STD '(' symbol ')' '.' symbol '.' OPTIONS
-                 { $$ = { "std", $3, "", $6 }; }
+                 { $$ = {"std", $3, "", $6}; }
                | CORR '(' symbol COMMA symbol ')' '.'  OPTIONS
-                 { $$ = { "corr", $3, $5, "" }; }
+                 { $$ = {"corr", $3, $5, ""}; }
                | CORR '(' symbol COMMA symbol ')' '.' symbol '.' OPTIONS
-                 { $$ = { "corr", $3, $5, $8 }; }
+                 { $$ = {"corr", $3, $5, $8}; }
                ;
 
 estimation : ESTIMATION ';'
@@ -2422,13 +2426,17 @@ trend_list : trend_list trend_element
 
 trend_element :  symbol '(' expression ')' ';' { driver.set_trend_element($1, $3); };
 
-filter_initial_state : FILTER_INITIAL_STATE ';' filter_initial_state_list END ';' { driver.set_filter_initial_state(); };
+filter_initial_state : FILTER_INITIAL_STATE ';' filter_initial_state_list END ';'
+                       { driver.set_filter_initial_state(); }
+                     ;
 
 filter_initial_state_list : filter_initial_state_list filter_initial_state_element
                           | filter_initial_state_element
                           ;
 
-filter_initial_state_element : symbol '(' signed_integer ')' EQUAL expression ';' { driver.set_filter_initial_state_element($1, $3, $6); };
+filter_initial_state_element : symbol '(' signed_integer ')' EQUAL expression ';'
+                               { driver.set_filter_initial_state_element($1, $3, $6); }
+                             ;
 
 unit_root_vars : UNIT_ROOT_VARS symbol_list ';' { driver.set_unit_root_vars(); };
 
@@ -2469,7 +2477,7 @@ osr : OSR ';'
     | OSR symbol_list ';'
       { driver.run_osr($2); }
     | OSR '(' osr_options_list ')' symbol_list ';'
-      {driver.run_osr($5); }
+      { driver.run_osr($5); }
     ;
 
 dynatype : DYNATYPE '(' filename ')' ';'
@@ -2606,13 +2614,13 @@ ramsey_constraints_list : ramsey_constraints_list ramsey_constraint
 		 ;
 
 ramsey_constraint : NAME  LESS expression ';'
-                    { driver.ramsey_constraint_add_less($1,$3); }
+                    { driver.ramsey_constraint_add_less($1, $3); }
 		  | NAME  GREATER  expression ';'
-                    { driver.ramsey_constraint_add_greater($1,$3); }
+                    { driver.ramsey_constraint_add_greater($1, $3); }
 		  | NAME  LESS_EQUAL expression ';'
-                    { driver.ramsey_constraint_add_less_equal($1,$3); }
+                    { driver.ramsey_constraint_add_less_equal($1, $3); }
 		  | NAME  GREATER_EQUAL  expression ';'
-                    { driver.ramsey_constraint_add_greater_equal($1,$3); }
+                    { driver.ramsey_constraint_add_greater_equal($1, $3); }
 		  ;
 
 evaluate_planner_objective : EVALUATE_PLANNER_OBJECTIVE ';'
@@ -3280,9 +3288,9 @@ homotopy_list : homotopy_item
               ;
 
 homotopy_item : symbol COMMA expression COMMA expression ';'
-                { driver.homotopy_val($1, $3, $5);}
+                { driver.homotopy_val($1, $3, $5); }
               | symbol COMMA expression ';'
-                { driver.homotopy_val($1, nullptr, $3);}
+                { driver.homotopy_val($1, nullptr, $3); }
               ;
 
 forecast: FORECAST ';'
@@ -3336,7 +3344,9 @@ conditional_forecast_paths_shock_list : conditional_forecast_paths_shock_elem
                                       ;
 
 conditional_forecast_paths_shock_elem : VAR symbol ';' PERIODS period_list ';' VALUES value_list ';'
-                                        { driver.add_det_shock($2, $5, $8, ParsingDriver::DetShockType::conditional_forecast); }
+                                        { driver.add_det_shock(
+                                              $2, $5, $8,
+                                              ParsingDriver::DetShockType::conditional_forecast); }
                                       ;
 
 steady_state_model : STEADY_STATE_MODEL ';' { driver.begin_steady_state_model(); }
@@ -3442,11 +3452,12 @@ model_diagnostics : MODEL_DIAGNOSTICS ';'
                   ;
 
 calibration_range : '[' expression COMMA expression ']'
-                    { $$ = { $2, $4 }; }
+                    { $$ = {$2, $4}; }
                   | PLUS
-                    { $$ = { driver.add_non_negative_constant("0"), driver.add_inf_constant() }; }
+                    { $$ = {driver.add_non_negative_constant("0"), driver.add_inf_constant()}; }
                   | MINUS
-                    { $$ = { driver.add_uminus(driver.add_inf_constant()), driver.add_non_negative_constant("0") }; }
+                    { $$ = {driver.add_uminus(driver.add_inf_constant()),
+                            driver.add_non_negative_constant("0")}; }
                   ;
 
 moment_calibration : MOMENT_CALIBRATION ';' moment_calibration_list END ';'
@@ -3503,7 +3514,7 @@ smoother2histval_option : o_infile
 shock_groups : SHOCK_GROUPS ';' shock_group_list END ';'
                { driver.end_shock_groups("default"); }
              | SHOCK_GROUPS '(' NAME EQUAL symbol ')' ';' shock_group_list END ';'
-               {driver.end_shock_groups($5);}
+               { driver.end_shock_groups($5); }
              ;
 
 shock_group_list : shock_group_list shock_group_element
@@ -3514,15 +3525,15 @@ shock_group_element : symbol EQUAL shock_name_list ';' { driver.add_shock_group(
                     | QUOTED_STRING EQUAL shock_name_list ';' { driver.add_shock_group($1); }
                     ;
 
-shock_name_list : shock_name_list COMMA symbol {driver.add_shock_group_element($3);}
-                | shock_name_list symbol {driver.add_shock_group_element($2);}
-                | symbol {driver.add_shock_group_element($1);}
+shock_name_list : shock_name_list COMMA symbol { driver.add_shock_group_element($3); }
+                | shock_name_list symbol { driver.add_shock_group_element($2); }
+                | symbol { driver.add_shock_group_element($1); }
                 ;
 
 init2shocks : INIT2SHOCKS ';' init2shocks_list END ';'
               { driver.end_init2shocks("default"); }
             | INIT2SHOCKS '(' NAME EQUAL symbol ')' ';' init2shocks_list END ';'
-              {driver.end_init2shocks($5);}
+              { driver.end_init2shocks($5); }
             ;
 
 init2shocks_list : init2shocks_list init2shocks_element
@@ -3648,7 +3659,7 @@ o_bounds : BOUNDS EQUAL vec_value_w_inf { driver.option_vec_value("bounds", $3);
 o_domain : DOMAINN EQUAL vec_value { driver.option_vec_value("domain", $3); };
 o_interval : INTERVAL EQUAL vec_value { driver.option_vec_value("interval", $3); };
 o_variance : VARIANCE EQUAL expression { driver.set_prior_variance($3); }
-o_variance_mat : VARIANCE EQUAL vec_of_vec_value { driver.option_vec_of_vec_value("variance",$3); }
+o_variance_mat : VARIANCE EQUAL vec_of_vec_value { driver.option_vec_of_vec_value("variance", $3); }
 o_prefilter : PREFILTER EQUAL INT_NUMBER { driver.option_num("prefilter", $3); };
 o_presample : PRESAMPLE EQUAL INT_NUMBER { driver.option_num("presample", $3); };
 o_lik_init : LIK_INIT EQUAL INT_NUMBER { driver.option_num("lik_init", $3); };
@@ -3727,8 +3738,8 @@ o_posterior_max_subsample_draws : POSTERIOR_MAX_SUBSAMPLE_DRAWS EQUAL INT_NUMBER
 o_mh_drop : MH_DROP EQUAL non_negative_number { driver.option_num("mh_drop", $3); };
 o_mh_jscale : MH_JSCALE EQUAL non_negative_number { driver.option_num("mh_jscale", $3); };
 o_mh_tune_jscale : MH_TUNE_JSCALE EQUAL non_negative_number
-                 { driver.option_num("mh_tune_jscale.target", $3); driver.option_num("mh_tune_jscale.status", "true");}
-                 | MH_TUNE_JSCALE {driver.option_num("mh_tune_jscale.status", "true");};
+                 { driver.option_num("mh_tune_jscale.target", $3); driver.option_num("mh_tune_jscale.status", "true"); }
+                 | MH_TUNE_JSCALE { driver.option_num("mh_tune_jscale.status", "true"); };
 o_mh_tune_guess : MH_TUNE_GUESS EQUAL non_negative_number { driver.option_num("mh_tune_jscale.guess", $3); };
 o_optim : OPTIM  EQUAL '(' name_value_pair_with_boolean_list ')' { driver.option_str("optim_opt", $4); };
 o_posterior_sampler_options : POSTERIOR_SAMPLER_OPTIONS EQUAL '(' name_value_pair_with_suboptions_list ')' { driver.option_str("posterior_sampler_options.sampling_opt", $4); };
@@ -3753,7 +3764,7 @@ o_load_results_after_load_mh : LOAD_RESULTS_AFTER_LOAD_MH { driver.option_num("l
 o_loglinear : LOGLINEAR { driver.option_num("loglinear", "true"); };
 o_linear_approximation : LINEAR_APPROXIMATION { driver.option_num("linear_approximation", "true"); };
 o_logdata : LOGDATA { driver.option_num("logdata", "true"); };
-o_conditional_likelihood : CONDITIONAL_LIKELIHOOD {driver.option_num("conditional_likelihood.status", "true"); };
+o_conditional_likelihood : CONDITIONAL_LIKELIHOOD { driver.option_num("conditional_likelihood.status", "true"); };
 o_nodiagnostic : NODIAGNOSTIC { driver.option_num("nodiagnostic", "true"); };
 o_bayesian_irf : BAYESIAN_IRF { driver.option_num("bayesian_irf", "true"); };
 o_dsge_var : DSGE_VAR EQUAL non_negative_number
@@ -3789,9 +3800,9 @@ o_xls_sheet : XLS_SHEET EQUAL symbol { driver.option_str("xls_sheet", $3); } //
 o_xls_range : XLS_RANGE EQUAL range { driver.option_str("xls_range", $3); };
 o_filter_step_ahead : FILTER_STEP_AHEAD EQUAL vec_int { driver.option_vec_int("filter_step_ahead", $3); };
 o_taper_steps : TAPER_STEPS EQUAL vec_int { driver.option_vec_int("convergence.geweke.taper_steps", $3); };
-o_geweke_interval : GEWEKE_INTERVAL EQUAL vec_value { driver.option_vec_value("convergence.geweke.geweke_interval",$3); };
+o_geweke_interval : GEWEKE_INTERVAL EQUAL vec_value { driver.option_vec_value("convergence.geweke.geweke_interval", $3); };
 o_raftery_lewis_diagnostics : RAFTERY_LEWIS_DIAGNOSTICS { driver.option_num("convergence.rafterylewis.indicator", "true"); };
-o_raftery_lewis_qrs : RAFTERY_LEWIS_QRS EQUAL vec_value { driver.option_vec_value("convergence.rafterylewis.qrs",$3); };
+o_raftery_lewis_qrs : RAFTERY_LEWIS_QRS EQUAL vec_value { driver.option_vec_value("convergence.rafterylewis.qrs", $3); };
 o_brooks_gelman_plotrows: BROOKS_GELMAN_PLOTROWS EQUAL INT_NUMBER { driver.option_num("convergence.brooksgelman.plotrows", $3); };
 o_constant : CONSTANT { driver.option_num("noconstant", "false"); };
 o_noconstant : NOCONSTANT { driver.option_num("noconstant", "true"); };
@@ -3800,29 +3811,29 @@ o_mh_initialize_from_previous_mcmc : MH_INITIALIZE_FROM_PREVIOUS_MCMC { driver.o
 o_mh_initialize_from_previous_mcmc_directory : MH_INITIALIZE_FROM_PREVIOUS_MCMC_DIRECTORY EQUAL filename { driver.option_str("mh_initialize_from_previous_mcmc.directory", $3); };
 o_mh_initialize_from_previous_mcmc_record : MH_INITIALIZE_FROM_PREVIOUS_MCMC_RECORD EQUAL filename { driver.option_str("mh_initialize_from_previous_mcmc.record", $3); };
 o_mh_initialize_from_previous_mcmc_prior : MH_INITIALIZE_FROM_PREVIOUS_MCMC_PRIOR EQUAL filename { driver.option_str("mh_initialize_from_previous_mcmc.prior", $3); };
-o_diffuse_filter: DIFFUSE_FILTER {driver.option_num("diffuse_filter", "true"); };
-o_plot_priors: PLOT_PRIORS EQUAL INT_NUMBER {driver.option_num("plot_priors", $3); };
-o_aim_solver: AIM_SOLVER {driver.option_num("aim_solver", "true"); };
-o_partial_information : PARTIAL_INFORMATION {driver.option_num("partial_information", "true"); };
-o_sub_draws: SUB_DRAWS EQUAL INT_NUMBER {driver.option_num("sub_draws",$3);};
+o_diffuse_filter: DIFFUSE_FILTER { driver.option_num("diffuse_filter", "true"); };
+o_plot_priors: PLOT_PRIORS EQUAL INT_NUMBER { driver.option_num("plot_priors", $3); };
+o_aim_solver: AIM_SOLVER { driver.option_num("aim_solver", "true"); };
+o_partial_information : PARTIAL_INFORMATION { driver.option_num("partial_information", "true"); };
+o_sub_draws: SUB_DRAWS EQUAL INT_NUMBER { driver.option_num("sub_draws", $3); };
 o_planner_discount : PLANNER_DISCOUNT EQUAL expression { driver.set_planner_discount($3); };
 o_planner_discount_latex_name : PLANNER_DISCOUNT_LATEX_NAME EQUAL TEX_NAME { driver.set_planner_discount_latex_name($3); };
-o_sylvester : SYLVESTER EQUAL FIXED_POINT {driver.option_num("sylvester_fp", "true"); }
-               | SYLVESTER EQUAL DEFAULT {driver.option_num("sylvester_fp", "false"); };
-o_sylvester_fixed_point_tol : SYLVESTER_FIXED_POINT_TOL EQUAL non_negative_number {driver.option_num("sylvester_fixed_point_tol",$3);};
-o_lyapunov : LYAPUNOV EQUAL FIXED_POINT {driver.option_num("lyapunov_fp", "true"); }
-              | LYAPUNOV EQUAL DOUBLING {driver.option_num("lyapunov_db", "true"); }
-              | LYAPUNOV EQUAL SQUARE_ROOT_SOLVER {driver.option_num("lyapunov_srs", "true"); }
-              | LYAPUNOV EQUAL DEFAULT {driver.option_num("lyapunov_fp", "false"); driver.option_num("lyapunov_db", "false"); driver.option_num("lyapunov_srs", "false");};
-o_lyapunov_complex_threshold : LYAPUNOV_COMPLEX_THRESHOLD EQUAL non_negative_number {driver.option_num("lyapunov_complex_threshold",$3);};
-o_lyapunov_fixed_point_tol : LYAPUNOV_FIXED_POINT_TOL EQUAL non_negative_number {driver.option_num("lyapunov_fixed_point_tol",$3);};
-o_lyapunov_doubling_tol : LYAPUNOV_DOUBLING_TOL EQUAL non_negative_number {driver.option_num("lyapunov_doubling_tol",$3);};
-o_dr : DR EQUAL CYCLE_REDUCTION {driver.option_num("dr_cycle_reduction", "true"); }
-       | DR EQUAL LOGARITHMIC_REDUCTION {driver.option_num("dr_logarithmic_reduction", "true"); }
-       | DR EQUAL DEFAULT {driver.option_num("dr_cycle_reduction", "false"); driver.option_num("dr_logarithmic_reduction", "false");};
-o_dr_cycle_reduction_tol : DR_CYCLE_REDUCTION_TOL EQUAL non_negative_number {driver.option_num("dr_cycle_reduction_tol",$3);};
-o_dr_logarithmic_reduction_tol : DR_LOGARITHMIC_REDUCTION_TOL EQUAL non_negative_number {driver.option_num("dr_logarithmic_reduction_tol",$3);};
-o_dr_logarithmic_reduction_maxiter : DR_LOGARITHMIC_REDUCTION_MAXITER EQUAL INT_NUMBER {driver.option_num("dr_logarithmic_reduction_maxiter",$3);};
+o_sylvester : SYLVESTER EQUAL FIXED_POINT { driver.option_num("sylvester_fp", "true"); }
+               | SYLVESTER EQUAL DEFAULT { driver.option_num("sylvester_fp", "false"); };
+o_sylvester_fixed_point_tol : SYLVESTER_FIXED_POINT_TOL EQUAL non_negative_number { driver.option_num("sylvester_fixed_point_tol", $3); };
+o_lyapunov : LYAPUNOV EQUAL FIXED_POINT { driver.option_num("lyapunov_fp", "true"); }
+              | LYAPUNOV EQUAL DOUBLING { driver.option_num("lyapunov_db", "true"); }
+              | LYAPUNOV EQUAL SQUARE_ROOT_SOLVER { driver.option_num("lyapunov_srs", "true"); }
+              | LYAPUNOV EQUAL DEFAULT { driver.option_num("lyapunov_fp", "false"); driver.option_num("lyapunov_db", "false"); driver.option_num("lyapunov_srs", "false"); };
+o_lyapunov_complex_threshold : LYAPUNOV_COMPLEX_THRESHOLD EQUAL non_negative_number { driver.option_num("lyapunov_complex_threshold", $3); };
+o_lyapunov_fixed_point_tol : LYAPUNOV_FIXED_POINT_TOL EQUAL non_negative_number { driver.option_num("lyapunov_fixed_point_tol", $3); };
+o_lyapunov_doubling_tol : LYAPUNOV_DOUBLING_TOL EQUAL non_negative_number { driver.option_num("lyapunov_doubling_tol", $3); };
+o_dr : DR EQUAL CYCLE_REDUCTION { driver.option_num("dr_cycle_reduction", "true"); }
+       | DR EQUAL LOGARITHMIC_REDUCTION { driver.option_num("dr_logarithmic_reduction", "true"); }
+       | DR EQUAL DEFAULT { driver.option_num("dr_cycle_reduction", "false"); driver.option_num("dr_logarithmic_reduction", "false"); };
+o_dr_cycle_reduction_tol : DR_CYCLE_REDUCTION_TOL EQUAL non_negative_number { driver.option_num("dr_cycle_reduction_tol", $3); };
+o_dr_logarithmic_reduction_tol : DR_LOGARITHMIC_REDUCTION_TOL EQUAL non_negative_number { driver.option_num("dr_logarithmic_reduction_tol", $3); };
+o_dr_logarithmic_reduction_maxiter : DR_LOGARITHMIC_REDUCTION_MAXITER EQUAL INT_NUMBER { driver.option_num("dr_logarithmic_reduction_maxiter", $3); };
 o_psd_detail_plot : DETAIL_PLOT { driver.option_num("plot_shock_decomp.detail_plot", "true"); };
 o_icd_detail_plot : DETAIL_PLOT { driver.option_num("initial_condition_decomp.detail_plot", "true"); };
 o_psd_interactive : INTERACTIVE { driver.option_num("plot_shock_decomp.interactive", "true"); };
@@ -3870,22 +3881,22 @@ o_diagonal_only : DIAGONAL_ONLY { driver.option_num("irf_opt.diagonal_only", "tr
 o_number_of_particles : NUMBER_OF_PARTICLES EQUAL INT_NUMBER { driver.option_num("particle.number_of_particles", $3); };
 o_particle_filter_options : PARTICLE_FILTER_OPTIONS EQUAL '(' name_value_pair_with_boolean_list ')' { driver.option_str("particle.particle_filter_options", $4); }
 o_resampling : RESAMPLING EQUAL SYSTEMATIC
-              | RESAMPLING EQUAL NONE {driver.option_num("particle.resampling.status.systematic", "false"); driver.option_num("particle.resampling.status.none", "true"); }
-              | RESAMPLING EQUAL GENERIC {driver.option_num("particle.resampling.status.systematic", "false"); driver.option_num("particle.resampling.status.generic", "true"); };
+              | RESAMPLING EQUAL NONE { driver.option_num("particle.resampling.status.systematic", "false"); driver.option_num("particle.resampling.status.none", "true"); }
+              | RESAMPLING EQUAL GENERIC { driver.option_num("particle.resampling.status.systematic", "false"); driver.option_num("particle.resampling.status.generic", "true"); };
 o_resampling_threshold : RESAMPLING_THRESHOLD EQUAL non_negative_number { driver.option_num("particle.resampling.threshold", $3); };
-o_resampling_method : RESAMPLING_METHOD EQUAL KITAGAWA {driver.option_num("particle.resampling.method.kitagawa", "true"); driver.option_num("particle.resampling.method.smooth", "false"); driver.option_num("particle.resampling.smethod.stratified", "false"); }
-              | RESAMPLING_METHOD EQUAL SMOOTH {driver.option_num("particle.resampling.method.kitagawa", "false"); driver.option_num("particle.resampling.method.smooth", "true"); driver.option_num("particle.resampling.smethod.stratified", "false"); }
-              | RESAMPLING_METHOD EQUAL STRATIFIED {driver.option_num("particle.resampling.method.kitagawa", "false"); driver.option_num("particle.resampling.method.smooth", "false"); driver.option_num("particle.resampling.method.stratified", "true"); };
-o_cpf_weights : CPF_WEIGHTS EQUAL AMISANOTRISTANI {driver.option_num("particle.cpf_weights_method.amisanotristani", "true"); driver.option_num("particle.cpf_weights_method.murrayjonesparslow", "false"); }
-              | CPF_WEIGHTS EQUAL MURRAYJONESPARSLOW {driver.option_num("particle.cpf_weights_method.amisanotristani", "false"); driver.option_num("particle.cpf_weights_method.murrayjonesparslow", "true"); };
+o_resampling_method : RESAMPLING_METHOD EQUAL KITAGAWA { driver.option_num("particle.resampling.method.kitagawa", "true"); driver.option_num("particle.resampling.method.smooth", "false"); driver.option_num("particle.resampling.smethod.stratified", "false"); }
+              | RESAMPLING_METHOD EQUAL SMOOTH { driver.option_num("particle.resampling.method.kitagawa", "false"); driver.option_num("particle.resampling.method.smooth", "true"); driver.option_num("particle.resampling.smethod.stratified", "false"); }
+              | RESAMPLING_METHOD EQUAL STRATIFIED { driver.option_num("particle.resampling.method.kitagawa", "false"); driver.option_num("particle.resampling.method.smooth", "false"); driver.option_num("particle.resampling.method.stratified", "true"); };
+o_cpf_weights : CPF_WEIGHTS EQUAL AMISANOTRISTANI { driver.option_num("particle.cpf_weights_method.amisanotristani", "true"); driver.option_num("particle.cpf_weights_method.murrayjonesparslow", "false"); }
+              | CPF_WEIGHTS EQUAL MURRAYJONESPARSLOW { driver.option_num("particle.cpf_weights_method.amisanotristani", "false"); driver.option_num("particle.cpf_weights_method.murrayjonesparslow", "true"); };
 o_filter_algorithm : FILTER_ALGORITHM EQUAL symbol { driver.option_str("particle.filter_algorithm", $3); };
 o_nonlinear_filter_initialization : NONLINEAR_FILTER_INITIALIZATION EQUAL INT_NUMBER { driver.option_num("particle.initialization", $3); };
-o_proposal_approximation : PROPOSAL_APPROXIMATION EQUAL CUBATURE {driver.option_num("particle.proposal_approximation.cubature", "true"); driver.option_num("particle.proposal_approximation.unscented", "false"); driver.option_num("particle.proposal_approximation.montecarlo", "false");}
-		| PROPOSAL_APPROXIMATION EQUAL UNSCENTED {driver.option_num("particle.proposal_approximation.cubature", "false"); driver.option_num("particle.proposal_approximation.unscented", "true"); driver.option_num("particle.proposal_approximation.montecarlo", "false");}
-		| PROPOSAL_APPROXIMATION EQUAL MONTECARLO {driver.option_num("particle.proposal_approximation.cubature", "false"); driver.option_num("particle.proposal_approximation.unscented", "false"); driver.option_num("particle.proposal_approximation.montecarlo", "true");} ;
-o_distribution_approximation : DISTRIBUTION_APPROXIMATION EQUAL CUBATURE {driver.option_num("particle.distribution_approximation.cubature", "true"); driver.option_num("particle.distribution_approximation.unscented", "false"); driver.option_num("particle.distribution_approximation.montecarlo", "false");}
-		| DISTRIBUTION_APPROXIMATION EQUAL UNSCENTED {driver.option_num("particle.distribution_approximation.cubature", "false"); driver.option_num("particle.distribution_approximation.unscented", "true"); driver.option_num("particle.distribution_approximation.montecarlo", "false");}
-		| DISTRIBUTION_APPROXIMATION EQUAL MONTECARLO {driver.option_num("particle.distribution_approximation.cubature", "false"); driver.option_num("particle.distribution_approximation.unscented", "false"); driver.option_num("particle.distribution_approximation.montecarlo", "true");} ;
+o_proposal_approximation : PROPOSAL_APPROXIMATION EQUAL CUBATURE { driver.option_num("particle.proposal_approximation.cubature", "true"); driver.option_num("particle.proposal_approximation.unscented", "false"); driver.option_num("particle.proposal_approximation.montecarlo", "false"); }
+		| PROPOSAL_APPROXIMATION EQUAL UNSCENTED { driver.option_num("particle.proposal_approximation.cubature", "false"); driver.option_num("particle.proposal_approximation.unscented", "true"); driver.option_num("particle.proposal_approximation.montecarlo", "false"); }
+		| PROPOSAL_APPROXIMATION EQUAL MONTECARLO { driver.option_num("particle.proposal_approximation.cubature", "false"); driver.option_num("particle.proposal_approximation.unscented", "false"); driver.option_num("particle.proposal_approximation.montecarlo", "true"); } ;
+o_distribution_approximation : DISTRIBUTION_APPROXIMATION EQUAL CUBATURE { driver.option_num("particle.distribution_approximation.cubature", "true"); driver.option_num("particle.distribution_approximation.unscented", "false"); driver.option_num("particle.distribution_approximation.montecarlo", "false"); }
+		| DISTRIBUTION_APPROXIMATION EQUAL UNSCENTED { driver.option_num("particle.distribution_approximation.cubature", "false"); driver.option_num("particle.distribution_approximation.unscented", "true"); driver.option_num("particle.distribution_approximation.montecarlo", "false"); }
+		| DISTRIBUTION_APPROXIMATION EQUAL MONTECARLO { driver.option_num("particle.distribution_approximation.cubature", "false"); driver.option_num("particle.distribution_approximation.unscented", "false"); driver.option_num("particle.distribution_approximation.montecarlo", "true"); } ;
 o_gsa_identification : IDENTIFICATION EQUAL INT_NUMBER { driver.option_num("identification", $3); }; /*not in doc */
 o_gsa_morris : MORRIS EQUAL INT_NUMBER { driver.option_num("morris", $3); };
 o_gsa_stab : STAB  EQUAL INT_NUMBER { driver.option_num("stab", $3); };
@@ -3902,7 +3913,7 @@ 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_alpha2_stab : ALPHA2_STAB EQUAL non_negative_number { driver.option_num("alpha2_stab", $3); };
 o_gsa_logtrans_redform : LOGTRANS_REDFORM EQUAL INT_NUMBER { driver.option_num("logtrans_redform", $3); };
-o_gsa_threshold_redform : THRESHOLD_REDFORM EQUAL vec_value_w_inf { driver.option_vec_value("threshold_redform",$3); };
+o_gsa_threshold_redform : THRESHOLD_REDFORM EQUAL vec_value_w_inf { driver.option_vec_value("threshold_redform", $3); };
 o_gsa_ksstat_redform : KSSTAT_REDFORM EQUAL non_negative_number { driver.option_num("ksstat_redform", $3); };
 o_gsa_alpha2_redform : ALPHA2_REDFORM EQUAL non_negative_number { driver.option_num("alpha2_redform", $3); };
 o_gsa_namendo : NAMENDO EQUAL '(' symbol_list_or_wildcard ')' { driver.option_symbol_list("namendo", $4); };
@@ -3929,10 +3940,10 @@ o_prior_mc : PRIOR_MC EQUAL INT_NUMBER { driver.option_num("prior_mc", $3); }
 o_advanced : ADVANCED EQUAL signed_integer { driver.option_num("advanced", $3); }
 o_max_dim_cova_group : MAX_DIM_COVA_GROUP EQUAL INT_NUMBER { driver.option_num("max_dim_cova_group", $3); }
 
-o_homotopy_mode : HOMOTOPY_MODE EQUAL INT_NUMBER {driver.option_num("homotopy_mode",$3); };
-o_homotopy_steps : HOMOTOPY_STEPS EQUAL INT_NUMBER {driver.option_num("homotopy_steps",$3); };
-o_homotopy_force_continue: HOMOTOPY_FORCE_CONTINUE EQUAL INT_NUMBER { driver.option_num("homotopy_force_continue",$3); };
-o_nocheck : NOCHECK {driver.option_num("steadystate.nocheck","true"); };
+o_homotopy_mode : HOMOTOPY_MODE EQUAL INT_NUMBER { driver.option_num("homotopy_mode", $3); };
+o_homotopy_steps : HOMOTOPY_STEPS EQUAL INT_NUMBER { driver.option_num("homotopy_steps", $3); };
+o_homotopy_force_continue: HOMOTOPY_FORCE_CONTINUE EQUAL INT_NUMBER { driver.option_num("homotopy_force_continue", $3); };
+o_nocheck : NOCHECK { driver.option_num("steadystate.nocheck", "true"); };
 
 o_controlled_varexo : CONTROLLED_VAREXO EQUAL '(' symbol_list ')' { driver.option_symbol_list("controlled_varexo", $4); };
 o_parameter_set : PARAMETER_SET EQUAL PRIOR_MODE
@@ -3955,102 +3966,102 @@ o_spectral_density : SPECTRAL_DENSITY { driver.option_num("SpectralDensity.trigg
 o_ms_drop : DROP EQUAL INT_NUMBER { driver.option_num("ms.drop", $3); };
 o_ms_mh_replic : MH_REPLIC EQUAL INT_NUMBER { driver.option_num("ms.mh_replic", $3); };
 o_freq : FREQ EQUAL INT_NUMBER
-         { driver.option_num("ms.freq",$3); }
+         { driver.option_num("ms.freq", $3); }
        | FREQ EQUAL MONTHLY
-         { driver.option_num("ms.freq","12"); }
+         { driver.option_num("ms.freq", "12"); }
        | FREQ EQUAL QUARTERLY
-         { driver.option_num("ms.freq","4"); }
+         { driver.option_num("ms.freq", "4"); }
        ;
-o_initial_year : INITIAL_YEAR EQUAL INT_NUMBER {driver.option_num("ms.initial_year",$3); };
-o_initial_subperiod : INITIAL_SUBPERIOD EQUAL INT_NUMBER {driver.option_num("ms.initial_subperiod",$3); };
-o_final_year : FINAL_YEAR EQUAL INT_NUMBER {driver.option_num("ms.final_year",$3); };
-o_final_subperiod : FINAL_SUBPERIOD EQUAL INT_NUMBER {driver.option_num("ms.final_subperiod",$3); };
+o_initial_year : INITIAL_YEAR EQUAL INT_NUMBER { driver.option_num("ms.initial_year", $3); };
+o_initial_subperiod : INITIAL_SUBPERIOD EQUAL INT_NUMBER { driver.option_num("ms.initial_subperiod", $3); };
+o_final_year : FINAL_YEAR EQUAL INT_NUMBER { driver.option_num("ms.final_year", $3); };
+o_final_subperiod : FINAL_SUBPERIOD EQUAL INT_NUMBER { driver.option_num("ms.final_subperiod", $3); };
 o_data : DATA EQUAL filename { driver.option_str("ms.data", $3); };
-o_vlist : VLIST EQUAL INT_NUMBER {driver.option_num("ms.vlist",$3); };
-o_vlistlog : VLISTLOG EQUAL '(' symbol_list ')' {driver.option_symbol_list("ms.vlistlog", $4); };
-o_vlistper : VLISTPER EQUAL INT_NUMBER {driver.option_num("ms.vlistper",$3); };
+o_vlist : VLIST EQUAL INT_NUMBER { driver.option_num("ms.vlist", $3); };
+o_vlistlog : VLISTLOG EQUAL '(' symbol_list ')' { driver.option_symbol_list("ms.vlistlog", $4); };
+o_vlistper : VLISTPER EQUAL INT_NUMBER { driver.option_num("ms.vlistper", $3); };
 o_restriction_fname : RESTRICTION_FNAME EQUAL NAME
                       {
                         driver.warning("restriction_fname is now deprecated, and may be removed in a future version of Dynare. Use svar_identification instead.");
-                        driver.option_str("ms.restriction_fname",$3);
+                        driver.option_str("ms.restriction_fname", $3);
                       }
                     | RESTRICTION_FNAME EQUAL UPPER_CHOLESKY
                       {
                         driver.warning("restriction_fname is now deprecated, and may be removed in a future version of Dynare. Use svar_identification instead.");
-                        driver.option_str("ms.restriction_fname","upper_cholesky");
+                        driver.option_str("ms.restriction_fname", "upper_cholesky");
                       }
                     | RESTRICTION_FNAME EQUAL LOWER_CHOLESKY
                       {
                         driver.warning("restriction_fname is now deprecated, and may be removed in a future version of Dynare. Use svar_identification instead.");
-                        driver.option_str("ms.restriction_fname","lower_cholesky");
+                        driver.option_str("ms.restriction_fname", "lower_cholesky");
                       }
                     ;
-o_nlags : NLAGS EQUAL INT_NUMBER {driver.option_num("ms.nlags",$3); };
-o_cross_restrictions : CROSS_RESTRICTIONS {driver.option_num("ms.cross_restrictions","true"); };
-o_contemp_reduced_form : CONTEMP_REDUCED_FORM {driver.option_num("ms.contemp_reduced_form","true"); };
-o_real_pseudo_forecast : REAL_PSEUDO_FORECAST EQUAL INT_NUMBER {driver.option_num("ms.real_pseudo_forecast",$3); };
-o_no_bayesian_prior : NO_BAYESIAN_PRIOR {driver.option_num("ms.bayesian_prior","false"); };
-o_dummy_obs : DUMMY_OBS EQUAL INT_NUMBER {driver.option_num("ms.dummy_obs",$3); };
-o_nstates : NSTATES EQUAL INT_NUMBER {driver.option_num("ms.nstates",$3); };
-o_indxscalesstates : INDXSCALESSTATES EQUAL INT_NUMBER {driver.option_num("ms.indxscalesstates",$3); };
-o_alpha : ALPHA EQUAL non_negative_number {driver.option_num("ms.alpha",$3); };
-o_beta : BETA EQUAL non_negative_number {driver.option_num("ms.beta",$3); };
-o_gsig2_lmdm : GSIG2_LMDM EQUAL INT_NUMBER {driver.option_num("ms.gsig2_lmdm",$3); };
+o_nlags : NLAGS EQUAL INT_NUMBER { driver.option_num("ms.nlags", $3); };
+o_cross_restrictions : CROSS_RESTRICTIONS { driver.option_num("ms.cross_restrictions", "true"); };
+o_contemp_reduced_form : CONTEMP_REDUCED_FORM { driver.option_num("ms.contemp_reduced_form", "true"); };
+o_real_pseudo_forecast : REAL_PSEUDO_FORECAST EQUAL INT_NUMBER { driver.option_num("ms.real_pseudo_forecast", $3); };
+o_no_bayesian_prior : NO_BAYESIAN_PRIOR { driver.option_num("ms.bayesian_prior", "false"); };
+o_dummy_obs : DUMMY_OBS EQUAL INT_NUMBER { driver.option_num("ms.dummy_obs", $3); };
+o_nstates : NSTATES EQUAL INT_NUMBER { driver.option_num("ms.nstates", $3); };
+o_indxscalesstates : INDXSCALESSTATES EQUAL INT_NUMBER { driver.option_num("ms.indxscalesstates", $3); };
+o_alpha : ALPHA EQUAL non_negative_number { driver.option_num("ms.alpha", $3); };
+o_beta : BETA EQUAL non_negative_number { driver.option_num("ms.beta", $3); };
+o_gsig2_lmdm : GSIG2_LMDM EQUAL INT_NUMBER { driver.option_num("ms.gsig2_lmdm", $3); };
 o_specification : SPECIFICATION EQUAL SIMS_ZHA
-                  {driver.option_num("ms.specification","1"); }
+                  { driver.option_num("ms.specification", "1"); }
                 | SPECIFICATION EQUAL NONE
-                  {driver.option_num("ms.specification","0"); }
+                  { driver.option_num("ms.specification", "0"); }
                 ;
-o_q_diag : Q_DIAG EQUAL non_negative_number {driver.option_num("ms.q_diag",$3); };
-o_flat_prior : FLAT_PRIOR EQUAL INT_NUMBER {driver.option_num("ms.flat_prior",$3); };
-o_ncsk : NCSK EQUAL INT_NUMBER {driver.option_num("ms.ncsk",$3); };
-o_nstd : NSTD EQUAL INT_NUMBER {driver.option_num("ms.nstd",$3); };
-o_ninv : NINV EQUAL INT_NUMBER {driver.option_num("ms.ninv",$3); };
-o_indxparr : INDXPARR EQUAL INT_NUMBER {driver.option_num("ms.indxparr",$3); };
-o_indxovr : INDXOVR EQUAL INT_NUMBER {driver.option_num("ms.indxovr",$3); };
-o_aband : ABAND EQUAL INT_NUMBER {driver.option_num("ms.aband",$3); };
-o_indxap : INDXAP EQUAL INT_NUMBER {driver.option_num("ms.indxap",$3); };
-o_apband : APBAND EQUAL INT_NUMBER {driver.option_num("ms.apband",$3); };
-o_indximf : INDXIMF EQUAL INT_NUMBER {driver.option_num("ms.indximf",$3); };
-o_indxfore : INDXFORE EQUAL INT_NUMBER {driver.option_num("ms.indxfore",$3); };
-o_foreband : FOREBAND EQUAL INT_NUMBER {driver.option_num("ms.foreband",$3); };
-o_indxgforhat : INDXGFOREHAT EQUAL INT_NUMBER {driver.option_num("ms.indxgforehat",$3); };
-o_indxgimfhat : INDXGIMFHAT EQUAL INT_NUMBER {driver.option_num("ms.indxgimfhat",$3); };
-o_indxestima : INDXESTIMA EQUAL INT_NUMBER {driver.option_num("ms.indxestima",$3); };
-o_indxgdls : INDXGDLS EQUAL INT_NUMBER {driver.option_num("ms.indxgdls",$3); };
-o_eq_ms : EQ_MS EQUAL INT_NUMBER {driver.option_num("ms.eq_ms",$3); };
-o_cms : CMS EQUAL INT_NUMBER {driver.option_num("ms.cms",$3); };
-o_ncms : NCMS EQUAL INT_NUMBER {driver.option_num("ms.ncms",$3); };
-o_eq_cms : EQ_CMS EQUAL INT_NUMBER {driver.option_num("ms.eq_cms",$3); };
-o_tlindx : TLINDX EQUAL INT_NUMBER {driver.option_num("ms.tlindx",$3); };
-o_tlnumber : TLNUMBER EQUAL INT_NUMBER {driver.option_num("ms.tlnumber",$3); };
-o_cnum : CNUM EQUAL INT_NUMBER {driver.option_num("ms.cnum",$3); };
-o_k_order_solver : K_ORDER_SOLVER {driver.option_num("k_order_solver","true"); };
+o_q_diag : Q_DIAG EQUAL non_negative_number { driver.option_num("ms.q_diag", $3); };
+o_flat_prior : FLAT_PRIOR EQUAL INT_NUMBER { driver.option_num("ms.flat_prior", $3); };
+o_ncsk : NCSK EQUAL INT_NUMBER { driver.option_num("ms.ncsk", $3); };
+o_nstd : NSTD EQUAL INT_NUMBER { driver.option_num("ms.nstd", $3); };
+o_ninv : NINV EQUAL INT_NUMBER { driver.option_num("ms.ninv", $3); };
+o_indxparr : INDXPARR EQUAL INT_NUMBER { driver.option_num("ms.indxparr", $3); };
+o_indxovr : INDXOVR EQUAL INT_NUMBER { driver.option_num("ms.indxovr", $3); };
+o_aband : ABAND EQUAL INT_NUMBER { driver.option_num("ms.aband", $3); };
+o_indxap : INDXAP EQUAL INT_NUMBER { driver.option_num("ms.indxap", $3); };
+o_apband : APBAND EQUAL INT_NUMBER { driver.option_num("ms.apband", $3); };
+o_indximf : INDXIMF EQUAL INT_NUMBER { driver.option_num("ms.indximf", $3); };
+o_indxfore : INDXFORE EQUAL INT_NUMBER { driver.option_num("ms.indxfore", $3); };
+o_foreband : FOREBAND EQUAL INT_NUMBER { driver.option_num("ms.foreband", $3); };
+o_indxgforhat : INDXGFOREHAT EQUAL INT_NUMBER { driver.option_num("ms.indxgforehat", $3); };
+o_indxgimfhat : INDXGIMFHAT EQUAL INT_NUMBER { driver.option_num("ms.indxgimfhat", $3); };
+o_indxestima : INDXESTIMA EQUAL INT_NUMBER { driver.option_num("ms.indxestima", $3); };
+o_indxgdls : INDXGDLS EQUAL INT_NUMBER { driver.option_num("ms.indxgdls", $3); };
+o_eq_ms : EQ_MS EQUAL INT_NUMBER { driver.option_num("ms.eq_ms", $3); };
+o_cms : CMS EQUAL INT_NUMBER { driver.option_num("ms.cms", $3); };
+o_ncms : NCMS EQUAL INT_NUMBER { driver.option_num("ms.ncms", $3); };
+o_eq_cms : EQ_CMS EQUAL INT_NUMBER { driver.option_num("ms.eq_cms", $3); };
+o_tlindx : TLINDX EQUAL INT_NUMBER { driver.option_num("ms.tlindx", $3); };
+o_tlnumber : TLNUMBER EQUAL INT_NUMBER { driver.option_num("ms.tlnumber", $3); };
+o_cnum : CNUM EQUAL INT_NUMBER { driver.option_num("ms.cnum", $3); };
+o_k_order_solver : K_ORDER_SOLVER { driver.option_num("k_order_solver", "true"); };
 o_pruning : PRUNING { driver.option_num("pruning", "true"); };
-o_chain : CHAIN EQUAL INT_NUMBER { driver.option_num("ms.chain",$3); };
+o_chain : CHAIN EQUAL INT_NUMBER { driver.option_num("ms.chain", $3); };
 o_restrictions : RESTRICTIONS EQUAL vec_of_vec_value
-                 { driver.option_vec_of_vec_value("ms.restrictions",$3); }
+                 { driver.option_vec_of_vec_value("ms.restrictions", $3); }
                ;
 o_duration : DURATION EQUAL non_negative_number
-             { driver.option_num("ms.duration",$3); }
+             { driver.option_num("ms.duration", $3); }
            | DURATION EQUAL vec_value_w_inf
-             { driver.option_vec_value("ms.duration",$3); }
+             { driver.option_vec_value("ms.duration", $3); }
            ;
-o_number_of_regimes : NUMBER_OF_REGIMES EQUAL INT_NUMBER { driver.option_num("ms.number_of_regimes",$3); };
-o_number_of_lags : NUMBER_OF_LAGS EQUAL INT_NUMBER { driver.option_num("ms.number_of_lags",$3); };
+o_number_of_regimes : NUMBER_OF_REGIMES EQUAL INT_NUMBER { driver.option_num("ms.number_of_regimes", $3); };
+o_number_of_lags : NUMBER_OF_LAGS EQUAL INT_NUMBER { driver.option_num("ms.number_of_lags", $3); };
 o_parameters : PARAMETERS EQUAL '[' symbol_list ']' { driver.option_symbol_list("ms.parameters", $4); };
-o_coefficients : COEFFICIENTS { driver.option_str("ms.coefficients","svar_coefficients"); };
-o_variances : VARIANCES { driver.option_str("ms.variances","svar_variances"); };
+o_coefficients : COEFFICIENTS { driver.option_str("ms.coefficients", "svar_coefficients"); };
+o_variances : VARIANCES { driver.option_str("ms.variances", "svar_variances"); };
 o_equations : EQUATIONS EQUAL vec_int
-              { driver.option_vec_int("ms.equations",$3); }
+              { driver.option_vec_int("ms.equations", $3); }
             | EQUATIONS EQUAL vec_int_number
-              { driver.option_vec_int("ms.equations",$3); }
+              { driver.option_vec_int("ms.equations", $3); }
             ;
 o_silent_optimizer : SILENT_OPTIMIZER { driver.option_num("silent_optimizer", "true"); };
-o_instruments : INSTRUMENTS EQUAL '(' symbol_list ')' {driver.option_symbol_list("instruments", $4); };
+o_instruments : INSTRUMENTS EQUAL '(' symbol_list ')' { driver.option_symbol_list("instruments", $4); };
 
 o_ext_func_name : EXT_FUNC_NAME EQUAL namespace_qualified_filename { driver.external_function_option("name", $3); };
-o_ext_func_nargs : EXT_FUNC_NARGS EQUAL INT_NUMBER { driver.external_function_option("nargs",$3); };
+o_ext_func_nargs : EXT_FUNC_NARGS EQUAL INT_NUMBER { driver.external_function_option("nargs", $3); };
 o_first_deriv_provided : FIRST_DERIV_PROVIDED EQUAL namespace_qualified_filename
                          { driver.external_function_option("first_deriv_provided", $3); }
                        | FIRST_DERIV_PROVIDED
@@ -4062,85 +4073,85 @@ o_second_deriv_provided : SECOND_DERIV_PROVIDED EQUAL namespace_qualified_filena
                           { driver.external_function_option("second_deriv_provided", ""); }
                         ;
 o_filter_covariance : FILTER_COVARIANCE
-                        { driver.option_num("filter_covariance","true");}
+                        { driver.option_num("filter_covariance", "true"); }
                       ;
 o_updated_covariance : UPDATED_COVARIANCE
-                        { driver.option_num("updated_covariance","true");}
+                        { driver.option_num("updated_covariance", "true"); }
 
 o_filter_decomposition : FILTER_DECOMPOSITION
-                           { driver.option_num("filter_decomposition","true");}
+                           { driver.option_num("filter_decomposition", "true"); }
                          ;
 o_smoothed_state_uncertainty : SMOOTHED_STATE_UNCERTAINTY
-                           { driver.option_num("smoothed_state_uncertainty","true");}
+                           { driver.option_num("smoothed_state_uncertainty", "true"); }
                          ;
 o_smoother_redux : SMOOTHER_REDUX
-                           { driver.option_num("smoother_redux","true");}
+                           { driver.option_num("smoother_redux", "true"); }
 
 o_selected_variables_only : SELECTED_VARIABLES_ONLY
-                           { driver.option_num("selected_variables_only","true");}
+                           { driver.option_num("selected_variables_only", "true"); }
                           ;
 o_cova_compute : COVA_COMPUTE EQUAL INT_NUMBER
-                 { driver.option_num("cova_compute",$3);}
+                 { driver.option_num("cova_compute", $3); }
                ;
-o_output_file_tag : OUTPUT_FILE_TAG EQUAL filename {driver.option_str("ms.output_file_tag", $3); };
+o_output_file_tag : OUTPUT_FILE_TAG EQUAL filename { driver.option_str("ms.output_file_tag", $3); };
 o_file_tag : FILE_TAG EQUAL filename { driver.option_str("ms.file_tag", $3); };
 o_no_create_init : NO_CREATE_INIT { driver.option_num("ms.create_init", "false"); };
 o_simulation_file_tag : SIMULATION_FILE_TAG EQUAL filename { driver.option_str("ms.simulation_file_tag", $3); };
 o_coefficients_prior_hyperparameters : COEFFICIENTS_PRIOR_HYPERPARAMETERS EQUAL vec_value
-                                       { driver.option_vec_value("ms.coefficients_prior_hyperparameters",$3); };
+                                       { driver.option_vec_value("ms.coefficients_prior_hyperparameters", $3); };
 o_convergence_starting_value : CONVERGENCE_STARTING_VALUE EQUAL non_negative_number
-                               { driver.option_num("ms.convergence_starting_value",$3); };
+                               { driver.option_num("ms.convergence_starting_value", $3); };
 o_convergence_ending_value : CONVERGENCE_ENDING_VALUE EQUAL non_negative_number
-                             { driver.option_num("ms.convergence_ending_value",$3); };
+                             { driver.option_num("ms.convergence_ending_value", $3); };
 o_convergence_increment_value : CONVERGENCE_INCREMENT_VALUE EQUAL non_negative_number
-                                { driver.option_num("ms.convergence_increment_value",$3); };
+                                { driver.option_num("ms.convergence_increment_value", $3); };
 o_max_iterations_starting_value : MAX_ITERATIONS_STARTING_VALUE EQUAL INT_NUMBER
-                                  { driver.option_num("ms.max_iterations_starting_value",$3); };
+                                  { driver.option_num("ms.max_iterations_starting_value", $3); };
 o_max_iterations_increment_value : MAX_ITERATIONS_INCREMENT_VALUE EQUAL non_negative_number
-                                   { driver.option_num("ms.max_iterations_increment_value",$3); };
+                                   { driver.option_num("ms.max_iterations_increment_value", $3); };
 o_max_block_iterations : MAX_BLOCK_ITERATIONS EQUAL INT_NUMBER
-                         { driver.option_num("ms.max_block_iterations",$3); };
+                         { driver.option_num("ms.max_block_iterations", $3); };
 o_max_repeated_optimization_runs : MAX_REPEATED_OPTIMIZATION_RUNS EQUAL INT_NUMBER
-                                   { driver.option_num("ms.max_repeated_optimization_runs",$3); };
+                                   { driver.option_num("ms.max_repeated_optimization_runs", $3); };
 o_function_convergence_criterion : FUNCTION_CONVERGENCE_CRITERION EQUAL non_negative_number
-                                   { driver.option_num("ms.function_convergence_criterion",$3); };
+                                   { driver.option_num("ms.function_convergence_criterion", $3); };
 o_parameter_convergence_criterion : PARAMETER_CONVERGENCE_CRITERION EQUAL non_negative_number
-                                    { driver.option_num("ms.parameter_convergence_criterion",$3); };
+                                    { driver.option_num("ms.parameter_convergence_criterion", $3); };
 o_number_of_large_perturbations : NUMBER_OF_LARGE_PERTURBATIONS EQUAL INT_NUMBER
-                                  { driver.option_num("ms.number_of_large_perturbations",$3); };
+                                  { driver.option_num("ms.number_of_large_perturbations", $3); };
 o_number_of_small_perturbations : NUMBER_OF_SMALL_PERTURBATIONS EQUAL INT_NUMBER
-                                  { driver.option_num("ms.number_of_small_perturbations",$3); };
+                                  { driver.option_num("ms.number_of_small_perturbations", $3); };
 o_number_of_posterior_draws_after_perturbation : NUMBER_OF_POSTERIOR_DRAWS_AFTER_PERTURBATION EQUAL INT_NUMBER
-                                                 { driver.option_num("ms.number_of_posterior_draws_after_perturbation",$3); };
+                                                 { driver.option_num("ms.number_of_posterior_draws_after_perturbation", $3); };
 o_max_number_of_stages : MAX_NUMBER_OF_STAGES EQUAL INT_NUMBER
-                         { driver.option_num("ms.max_number_of_stages",$3); };
+                         { driver.option_num("ms.max_number_of_stages", $3); };
 o_random_function_convergence_criterion : RANDOM_FUNCTION_CONVERGENCE_CRITERION EQUAL non_negative_number
-                                          { driver.option_num("ms.random_function_convergence_criterion",$3); };
+                                          { driver.option_num("ms.random_function_convergence_criterion", $3); };
 o_random_parameter_convergence_criterion : RANDOM_PARAMETER_CONVERGENCE_CRITERION EQUAL non_negative_number
-                                           { driver.option_num("ms.random_parameter_convergence_criterion",$3); };
-o_thinning_factor : THINNING_FACTOR EQUAL INT_NUMBER { driver.option_num("ms.thinning_factor",$3); };
-o_adaptive_mh_draws : ADAPTIVE_MH_DRAWS EQUAL INT_NUMBER { driver.option_num("ms.adaptive_mh_draws",$3); };
-o_save_draws : SAVE_DRAWS { driver.option_num("ms.save_draws","true"); };
-o_proposal_draws : PROPOSAL_DRAWS EQUAL INT_NUMBER { driver.option_num("ms.proposal_draws",$3); };
-o_use_mean_center : USE_MEAN_CENTER { driver.option_num("ms.use_mean_center","true"); };
-o_proposal_type : PROPOSAL_TYPE EQUAL INT_NUMBER { driver.option_num("ms.proposal_type",$3); }
-o_proposal_lower_bound : PROPOSAL_LOWER_BOUND EQUAL signed_number { driver.option_num("ms.proposal_lower_bound",$3); }
-o_proposal_upper_bound : PROPOSAL_UPPER_BOUND EQUAL signed_number { driver.option_num("ms.proposal_upper_bound",$3); }
-o_parameter_uncertainty : PARAMETER_UNCERTAINTY { driver.option_num("ms.parameter_uncertainty","true"); };
-o_horizon : HORIZON EQUAL INT_NUMBER { driver.option_num("ms.horizon",$3); };
-o_filtered_probabilities : FILTERED_PROBABILITIES { driver.option_num("ms.filtered_probabilities","true"); };
-o_real_time_smoothed : REAL_TIME_SMOOTHED { driver.option_num("ms.real_time_smoothed_probabilities","true"); };
-o_no_error_bands : NO_ERROR_BANDS { driver.option_num("ms.error_bands","false"); };
-o_error_band_percentiles : ERROR_BAND_PERCENTILES EQUAL vec_value { driver.option_vec_value("ms.percentiles",$3); };
-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_vec_value("ms.free_parameters",$3); };
-o_median : MEDIAN { driver.option_num("ms.median","1"); }
+                                           { driver.option_num("ms.random_parameter_convergence_criterion", $3); };
+o_thinning_factor : THINNING_FACTOR EQUAL INT_NUMBER { driver.option_num("ms.thinning_factor", $3); };
+o_adaptive_mh_draws : ADAPTIVE_MH_DRAWS EQUAL INT_NUMBER { driver.option_num("ms.adaptive_mh_draws", $3); };
+o_save_draws : SAVE_DRAWS { driver.option_num("ms.save_draws", "true"); };
+o_proposal_draws : PROPOSAL_DRAWS EQUAL INT_NUMBER { driver.option_num("ms.proposal_draws", $3); };
+o_use_mean_center : USE_MEAN_CENTER { driver.option_num("ms.use_mean_center", "true"); };
+o_proposal_type : PROPOSAL_TYPE EQUAL INT_NUMBER { driver.option_num("ms.proposal_type", $3); }
+o_proposal_lower_bound : PROPOSAL_LOWER_BOUND EQUAL signed_number { driver.option_num("ms.proposal_lower_bound", $3); }
+o_proposal_upper_bound : PROPOSAL_UPPER_BOUND EQUAL signed_number { driver.option_num("ms.proposal_upper_bound", $3); }
+o_parameter_uncertainty : PARAMETER_UNCERTAINTY { driver.option_num("ms.parameter_uncertainty", "true"); };
+o_horizon : HORIZON EQUAL INT_NUMBER { driver.option_num("ms.horizon", $3); };
+o_filtered_probabilities : FILTERED_PROBABILITIES { driver.option_num("ms.filtered_probabilities", "true"); };
+o_real_time_smoothed : REAL_TIME_SMOOTHED { driver.option_num("ms.real_time_smoothed_probabilities", "true"); };
+o_no_error_bands : NO_ERROR_BANDS { driver.option_num("ms.error_bands", "false"); };
+o_error_band_percentiles : ERROR_BAND_PERCENTILES EQUAL vec_value { driver.option_vec_value("ms.percentiles", $3); };
+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_vec_value("ms.free_parameters", $3); };
+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","true"); };
-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); };
-o_discretionary_tol: DISCRETIONARY_TOL EQUAL non_negative_number { driver.option_num("discretionary_tol",$3); };
+o_regimes : REGIMES { driver.option_num("ms.regimes", "true"); };
+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); };
+o_discretionary_tol: DISCRETIONARY_TOL EQUAL non_negative_number { driver.option_num("discretionary_tol", $3); };
 o_analytic_derivation : ANALYTIC_DERIVATION { driver.option_num("analytic_derivation", "1"); }
 o_analytic_derivation_mode : ANALYTIC_DERIVATION_MODE EQUAL signed_number { driver.option_num("analytic_derivation_mode", $3); }
 o_endogenous_prior : ENDOGENOUS_PRIOR { driver.option_num("endogenous_prior", "true"); }
@@ -4154,7 +4165,7 @@ o_mcmc_jumping_covariance : MCMC_JUMPING_COVARIANCE EQUAL HESSIAN
                             { driver.option_str("MCMC_jumping_covariance", $3); }
                           ;
 o_rescale_prediction_error_covariance : RESCALE_PREDICTION_ERROR_COVARIANCE { driver.option_num("rescale_prediction_error_covariance", "true"); };
-o_use_penalized_objective_for_hessian : USE_PENALIZED_OBJECTIVE_FOR_HESSIAN { driver.option_num("hessian.use_penalized_objective","true"); };
+o_use_penalized_objective_for_hessian : USE_PENALIZED_OBJECTIVE_FOR_HESSIAN { driver.option_num("hessian.use_penalized_objective", "true"); };
 o_irf_plot_threshold : IRF_PLOT_THRESHOLD EQUAL non_negative_number { driver.option_num("impulse_responses.plot_threshold", $3); };
 o_dr_display_tol : DR_DISPLAY_TOL EQUAL non_negative_number { driver.option_num("dr_display_tol", $3); };
 o_consider_all_endogenous : CONSIDER_ALL_ENDOGENOUS { driver.option_str("endo_vars_for_moment_computations_in_estimation", "all_endogenous_variables"); };
@@ -4175,14 +4186,14 @@ o_invars : INVARS EQUAL '(' symbol_list ')' { driver.option_symbol_list("invars"
 o_period : PERIOD EQUAL INT_NUMBER { driver.option_num("period", $3); };
 o_outfile : OUTFILE EQUAL filename { driver.option_str("outfile", $3); };
 o_outvars : OUTVARS EQUAL '(' symbol_list ')' { driver.option_symbol_list("outvars", $4); };
-o_lmmcp : LMMCP {driver.option_num("lmmcp.status", "true"); };
+o_lmmcp : LMMCP { driver.option_num("lmmcp.status", "true"); };
 o_function : FUNCTION EQUAL filename { driver.option_str("function", $3); };
-o_sampling_draws : SAMPLING_DRAWS EQUAL INT_NUMBER { driver.option_num("sampling_draws",$3); };
-o_use_shock_groups : USE_SHOCK_GROUPS { driver.option_str("plot_shock_decomp.use_shock_groups","default"); }
+o_sampling_draws : SAMPLING_DRAWS EQUAL INT_NUMBER { driver.option_num("sampling_draws", $3); };
+o_use_shock_groups : USE_SHOCK_GROUPS { driver.option_str("plot_shock_decomp.use_shock_groups", "default"); }
                    | USE_SHOCK_GROUPS EQUAL symbol { driver.option_str("plot_shock_decomp.use_shock_groups", $3); }
                    ;
-o_colormap : COLORMAP EQUAL symbol { driver.option_num("plot_shock_decomp.colormap",$3); };
-o_icd_colormap : COLORMAP EQUAL symbol { driver.option_num("initial_condition_decomp.colormap",$3); };
+o_colormap : COLORMAP EQUAL symbol { driver.option_num("plot_shock_decomp.colormap", $3); };
+o_icd_colormap : COLORMAP EQUAL symbol { driver.option_num("initial_condition_decomp.colormap", $3); };
 o_no_init_estimation_check_first_obs : NO_INIT_ESTIMATION_CHECK_FIRST_OBS { driver.option_num("no_init_estimation_check_first_obs", "true"); };
 o_heteroskedastic_filter : HETEROSKEDASTIC_FILTER { driver.option_num("heteroskedastic_filter", "true"); };
 o_pfwee_constant_simulation_length : CONSTANT_SIMULATION_LENGTH { driver.option_num("pfwee.constant_simulation_length", "true"); };
@@ -4234,9 +4245,9 @@ o_tol_deriv : TOL_DERIV EQUAL non_negative_number { driver.option_num("tol_deriv
 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_block_static : BLOCK_STATIC { driver.option_num("block_static","true"); };
-o_block_dynamic : BLOCK_DYNAMIC { driver.option_num("block_dynamic","true"); };
-o_incidence : INCIDENCE { driver.option_num("incidence","true"); };
+o_block_static : BLOCK_STATIC { driver.option_num("block_static", "true"); };
+o_block_dynamic : BLOCK_DYNAMIC { driver.option_num("block_dynamic", "true"); };
+o_incidence : INCIDENCE { driver.option_num("incidence", "true"); };
 
 // Some options to "evaluate_planner_objective"
 o_evaluate_planner_objective_periods : PERIODS EQUAL INT_NUMBER { driver.option_num("ramsey.periods", $3); };
@@ -4292,9 +4303,9 @@ integer_range : INT_NUMBER ':' INT_NUMBER
                 { $$ = $1 + ':' + $3; }
 
 integer_range_w_inf : INT_NUMBER ':' INT_NUMBER
-                      { $$ = { $1, $3 }; }
+                      { $$ = {$1, $3}; }
                     | INT_NUMBER ':' INF_CONSTANT
-                      { $$ = { $1, "Inf" }; }
+                      { $$ = {$1, "Inf"}; }
                     ;
 
 signed_integer_range : signed_integer ':' signed_integer
@@ -4303,7 +4314,7 @@ signed_integer_range : signed_integer ':' signed_integer
                        { $$ = "-(" + $3 + ':' + $5 + ")"; };
 
 vec_int_number : INT_NUMBER
-                 { $$ = { stoi($1) }; }
+                 { $$ = {stoi($1)}; }
                ;
 
 vec_int_elem : vec_int_number
@@ -4316,9 +4327,9 @@ vec_int_elem : vec_int_number
              ;
 
 vec_int_1 : '[' vec_int_elem
-            { $$ = $2;}
+            { $$ = $2; }
           | '[' COMMA vec_int_elem
-            { $$ = $3;}
+            { $$ = $3; }
           | vec_int_1 vec_int_elem
             {
               $$ = $1;
@@ -4336,9 +4347,9 @@ vec_int : vec_int_1 ']'
         ;
 
 vec_str_1 : '[' QUOTED_STRING
-            { $$ = { $2 }; }
+            { $$ = {$2}; }
           | '[' COMMA QUOTED_STRING
-            { $$ = { $3 }; }
+            { $$ = {$3}; }
           | vec_str_1 QUOTED_STRING
             {
               $$ = $1;
@@ -4356,9 +4367,9 @@ vec_str : vec_str_1 ']'
         ;
 
 vec_value_1 : '[' signed_number
-              { $$ = { $2 }; }
+              { $$ = {$2}; }
             | '[' COMMA signed_number
-              { $$ = { $3 }; }
+              { $$ = {$3}; }
             | vec_value_1 signed_number
               {
                 $$ = $1;
@@ -4376,7 +4387,7 @@ vec_value : vec_value_1 ']'
           ;
 
 vec_value_w_inf_1 : signed_number_w_inf
-                    { $$ = { $1 }; }
+                    { $$ = {$1}; }
                   | vec_value_w_inf_1 signed_number_w_inf
                     {
                       $$ = $1;
@@ -4399,7 +4410,7 @@ vec_of_vec_value_1 : vec_of_vec_value_1 COMMA vec_value
                        $$.push_back($3);
                      }
                    | vec_value
-                     { $$ = { $1 }; }
+                     { $$ = {$1}; }
                    ;
 
 vec_of_vec_value : '[' vec_of_vec_value_1 ']'
@@ -4443,8 +4454,7 @@ symbol : NAME
 %%
 
 void
-Dynare::parser::error(const Dynare::parser::location_type &l,
-                      const string &m)
+Dynare::parser::error(const Dynare::parser::location_type& l, const string& m)
 {
   driver.error(l, m);
 }
diff --git a/src/DynareFlex.ll b/src/DynareFlex.ll
index 092712bf..6d634adb 100644
--- a/src/DynareFlex.ll
+++ b/src/DynareFlex.ll
@@ -28,9 +28,9 @@ using namespace std;
 // Announce to Flex the prototype we want for lexing function
 #define YY_DECL                                                \
   Dynare::parser::token_type                                   \
-    DynareFlex::lex(Dynare::parser::semantic_type *yylval,     \
-                    Dynare::parser::location_type *yylloc,     \
-                    ParsingDriver &driver)
+    DynareFlex::lex(Dynare::parser::semantic_type* yylval,     \
+                    Dynare::parser::location_type* yylloc,     \
+                    ParsingDriver& driver)
 
 // Shortcut to access tokens defined by Bison
 using token = Dynare::parser::token;
@@ -38,7 +38,7 @@ using token = Dynare::parser::token;
 /* By default yylex returns int, we use token_type.
    Unfortunately yyterminate by default returns 0, which is
    not of token_type.  */
-#define yyterminate() return Dynare::parser::token_type (0);
+#define yyterminate() return Dynare::parser::token_type(0);
 
 int comment_caller, line_caller;
 string eofbuff;
@@ -254,8 +254,8 @@ DATE -?[0-9]+([ya]|m([1-9]|1[0-2])|q[1-4])
 
  /* Inside  of a Dynare statement */
 <DYNARE_STATEMENT>{DATE} {
-                           char *yycopy = strdup(yytext);
-                           char *uput = yycopy + yyleng;
+                           char* yycopy = strdup(yytext);
+                           char* uput = yycopy + yyleng;
                            unput(')');
                            unput('\'');
                            while (uput > yycopy)
@@ -779,7 +779,7 @@ DATE -?[0-9]+([ya]|m([1-9]|1[0-2])|q[1-4])
 <DYNARE_STATEMENT>non_zero {return token::NON_ZERO;}
 
 <DYNARE_STATEMENT>\$[^$]*\$ {
-  strtok(yytext+1, "$");
+  strtok(yytext + 1, "$");
   yylval->build<string>(yytext + 1);
   return token::TEX_NAME;
 }
@@ -1156,7 +1156,7 @@ DATE -?[0-9]+([ya]|m([1-9]|1[0-2])|q[1-4])
 
   bool dynare_statement = true;
 
-  while(getline(ss, token, ','))
+  while (getline(ss, token, ','))
     if (driver.symbol_exists_and_is_not_modfile_local_or_external_function(token))
       val.push_back(token);
     else
@@ -1227,7 +1227,7 @@ DynareFlex::DynareFlex(istream* in, ostream* out)
 }
 
 void
-DynareFlex::location_increment(Dynare::parser::location_type *yylloc, const char *yytext)
+DynareFlex::location_increment(Dynare::parser::location_type* yylloc, const char* yytext)
 {
   while (*yytext != 0)
     if (*yytext++ == '\n')
diff --git a/src/macro/Parser.yy b/src/macro/Parser.yy
index 4e04a33a..42ddd2d0 100644
--- a/src/macro/Parser.yy
+++ b/src/macro/Parser.yy
@@ -1,6 +1,6 @@
 // -*- C++ -*-
 /*
- * Copyright © 2019-2022 Dynare Team
+ * Copyright © 2019-2023 Dynare Team
  *
  * This file is part of Dynare.
  *
@@ -32,7 +32,7 @@
 namespace macro { class Driver; }
 }
 
-%param { macro::Driver &driver }
+%param { macro::Driver& driver }
 
 %locations
 %initial-action
@@ -190,7 +190,7 @@ for : FOR { driver.pushContext(); } expr IN expr for_when EOL statements ENDFOR
         if (tmpv)
           vvnp.emplace_back(tmpv);
         else if (tmpt)
-          for (const auto & it : tmpt->getValue())
+          for (const auto& it : tmpt->getValue())
             {
               auto vnp = dynamic_pointer_cast<Variable>(it);
               if (!vnp)
@@ -307,7 +307,10 @@ function : NAME LPAREN RPAREN
 function_args : symbol
                 { $$ = {$1}; }
               | function_args COMMA symbol
-                { $1.emplace_back($3); $$ = $1; }
+                {
+                  $1.emplace_back($3);
+                  $$ = $1;
+                }
               ;
 
 comma_expr : %empty
@@ -315,7 +318,10 @@ comma_expr : %empty
            | expr
              { $$ = {$1}; }
            | comma_expr COMMA expr
-             { $1.emplace_back($3); $$ = $1; }
+             {
+               $1.emplace_back($3);
+               $$ = $1;
+             }
            ;
 
 tuple_comma_expr : %empty
@@ -325,7 +331,10 @@ tuple_comma_expr : %empty
                  | expr COMMA expr
                    { $$ = {$1, $3}; }
                  | tuple_comma_expr COMMA expr
-                   { $1.emplace_back($3); $$ = $1; }
+                   {
+                     $1.emplace_back($3);
+                     $$ = $1;
+                   }
                  ;
 
 primary_expr : LPAREN expr RPAREN
@@ -333,9 +342,7 @@ primary_expr : LPAREN expr RPAREN
              | symbol
                { $$ = $1; } // Explicit rule needed for type conversion
              | NAME LBRACKET comma_expr RBRACKET
-               {
-                 $$ = make_shared<Variable>($1, make_shared<Array>($3, @3), @$);
-               }
+               { $$ = make_shared<Variable>($1, make_shared<Array>($3, @3), @$); }
              | NAME LPAREN comma_expr RPAREN
                { $$ = make_shared<Function>($1, $3, @$); }
              | TRUE
@@ -496,7 +503,7 @@ expr : oper_expr
 %%
 
 void
-Tokenizer::parser::error(const Tokenizer::parser::location_type &l, const string &m)
+Tokenizer::parser::error(const Tokenizer::parser::location_type& l, const string& m)
 {
   driver.error(l, m);
 }
diff --git a/src/macro/Tokenizer.ll b/src/macro/Tokenizer.ll
index a3ef9d1b..810e5042 100644
--- a/src/macro/Tokenizer.ll
+++ b/src/macro/Tokenizer.ll
@@ -24,9 +24,9 @@
 // Announce to Flex the prototype we want for lexing function
 #define YY_DECL                                                \
   Tokenizer::parser::token_type                                \
-  TokenizerFlex::lex(Tokenizer::parser::semantic_type *yylval, \
-                     Tokenizer::parser::location_type *yylloc, \
-                     macro::Driver &driver)
+  TokenizerFlex::lex(Tokenizer::parser::semantic_type* yylval, \
+                     Tokenizer::parser::location_type* yylloc, \
+                     macro::Driver& driver)
 
 // Shortcut to access tokens defined by Bison
 using token = Tokenizer::parser::token;
@@ -34,7 +34,7 @@ using token = Tokenizer::parser::token;
 /* By default yylex returns int, we use token_type.
    Unfortunately yyterminate by default returns 0, which is
    not of token_type.  */
-#define yyterminate() return Tokenizer::parser::token_type (0);
+#define yyterminate() return Tokenizer::parser::token_type(0);
 
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wold-style-cast"
@@ -199,7 +199,7 @@ CONT \\\\{SPC}*
 #pragma GCC diagnostic pop
 
 void
-TokenizerFlex::location_increment(Tokenizer::parser::location_type *yylloc, const char *yytext)
+TokenizerFlex::location_increment(Tokenizer::parser::location_type* yylloc, const char* yytext)
 {
   while (*yytext != 0)
     if (*yytext++ == '\n')
-- 
GitLab