Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
P
preprocessor
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Willi Mutschler
preprocessor
Commits
abbddd58
Commit
abbddd58
authored
7 years ago
by
Johannes Pfeifer
Browse files
Options
Downloads
Patches
Plain Diff
Add preprocessor options for GMM, SMM, IRFs
parent
51ee883f
No related branches found
No related tags found
No related merge requests found
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
DynareBison.yy
+160
-5
160 additions, 5 deletions
DynareBison.yy
DynareFlex.ll
+24
-0
24 additions, 0 deletions
DynareFlex.ll
with
184 additions
and
5 deletions
DynareBison.yy
+
160
−
5
View file @
abbddd58
...
@@ -151,7 +151,7 @@ class ParsingDriver;
...
@@ -151,7 +151,7 @@ class ParsingDriver;
%token VLISTLOG VLISTPER SPECTRAL_DENSITY
%token VLISTLOG VLISTPER SPECTRAL_DENSITY
%token RESTRICTION RESTRICTION_FNAME CROSS_RESTRICTIONS NLAGS CONTEMP_REDUCED_FORM REAL_PSEUDO_FORECAST
%token RESTRICTION RESTRICTION_FNAME CROSS_RESTRICTIONS NLAGS CONTEMP_REDUCED_FORM REAL_PSEUDO_FORECAST
%token DUMMY_OBS NSTATES INDXSCALESSTATES NO_BAYESIAN_PRIOR SPECIFICATION SIMS_ZHA
%token DUMMY_OBS NSTATES INDXSCALESSTATES NO_BAYESIAN_PRIOR SPECIFICATION SIMS_ZHA
%token <string_val> 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
%token <string_val> 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
%token GSIG2_LMDM Q_DIAG FLAT_PRIOR NCSK NSTD WEIBULL WEIBULL_PDF
%token INDXPARR INDXOVR INDXAP APBAND INDXIMF IMFBAND INDXFORE FOREBAND INDXGFOREHAT INDXGIMFHAT
%token INDXPARR INDXOVR INDXAP APBAND INDXIMF IMFBAND INDXFORE FOREBAND INDXGFOREHAT INDXGIMFHAT
%token INDXESTIMA INDXGDLS EQ_MS FILTER_COVARIANCE FILTER_DECOMPOSITION SMOOTHED_STATE_UNCERTAINTY
%token INDXESTIMA INDXGDLS EQ_MS FILTER_COVARIANCE FILTER_DECOMPOSITION SMOOTHED_STATE_UNCERTAINTY
...
@@ -175,6 +175,10 @@ class ParsingDriver;
...
@@ -175,6 +175,10 @@ class ParsingDriver;
%token PARAMETER_CONVERGENCE_CRITERION NUMBER_OF_LARGE_PERTURBATIONS NUMBER_OF_SMALL_PERTURBATIONS
%token PARAMETER_CONVERGENCE_CRITERION NUMBER_OF_LARGE_PERTURBATIONS NUMBER_OF_SMALL_PERTURBATIONS
%token NUMBER_OF_POSTERIOR_DRAWS_AFTER_PERTURBATION MAX_NUMBER_OF_STAGES
%token NUMBER_OF_POSTERIOR_DRAWS_AFTER_PERTURBATION MAX_NUMBER_OF_STAGES
%token RANDOM_FUNCTION_CONVERGENCE_CRITERION RANDOM_PARAMETER_CONVERGENCE_CRITERION
%token RANDOM_FUNCTION_CONVERGENCE_CRITERION RANDOM_PARAMETER_CONVERGENCE_CRITERION
%token CENTERED_MOMENTS AUTOLAG RECURSIVE_ORDER_ESTIMATION BARTLETT_KERNEL_LAG WEIGHTING_MATRIX PENALIZED_ESTIMATOR VERBOSE
%token SIMULATION_MULTIPLE SEED BOUNDED_SHOCK_SUPPORT
%token ANALYTICAL_GIRF IRF_IN_PERCENT EMAS_GIRF EMAS_DROP EMAS_TOLF EMAS_MAX_ITER
%token <vector_string_val> SYMBOL_VEC
%token <vector_string_val> SYMBOL_VEC
%type <node_val> expression expression_or_empty
%type <node_val> expression expression_or_empty
...
@@ -1092,18 +1096,100 @@ perfect_foresight_solver_options : o_stack_solve_algo
...
@@ -1092,18 +1096,100 @@ perfect_foresight_solver_options : o_stack_solve_algo
| o_pf_tolx
| o_pf_tolx
;
;
gmm_estimation : GMM_ESTIMATION '(' ')' ';'
gmm_smm_common_option : o_datafile
| o_nobs
| o_first_obs
| o_optim
| o_mode_file
| o_mode_compute
| o_prior_trunc
| o_loglinear
| o_logdata
| o_relative_irf
| o_irf
| o_tex
| o_xls_sheet
| o_xls_range
| o_solve_algo
| o_plot_priors
| o_aim_solver
| o_selected_variables_only
| o_irf_shocks
| o_sylvester
| o_sylvester_fixed_point_tol
| o_lyapunov
| o_lyapunov_fixed_point_tol
| o_lyapunov_doubling_tol
| o_dr
| o_dr_cycle_reduction_tol
| o_dr_logarithmic_reduction_tol
| o_dr_logarithmic_reduction_maxiter
| o_qz_zero_threshold
| o_irf_plot_threshold
| o_consider_all_endogenous
| o_consider_only_observed
| o_dirname
| o_huge_number
| o_silent_optimizer
| o_nograph
| o_nodisplay
| o_graph_format
| o_analytical_girf
| o_irf_in_percent
| o_emas_girf
| o_emas_drop
| o_emas_tolf
| o_emas_max_iter
| o_stderr_multiples
| o_diagonal_only
;
gmm_estimation : GMM_ESTIMATION '(' gmm_estimation_options_list ')' ';'
{ driver.gmm_estimation(); }
{ driver.gmm_estimation(); }
| GMM_ESTIMATION '(' ')' symbol_list ';'
| GMM_ESTIMATION '('
gmm_estimation_options_list
')' symbol_list ';'
{ driver.gmm_estimation(); }
{ driver.gmm_estimation(); }
;
;
smm_estimation : SMM_ESTIMATION '(' ')' ';'
gmm_estimation_options_list : gmm_estimation_option COMMA gmm_estimation_options_list
| gmm_estimation_option
;
gmm_estimation_option : gmm_smm_common_option
| o_gmm_order
| o_gmm_centered_moments
| o_gmm_autolag
| o_gmm_recursive_order_estimation
| o_gmm_bartlett_kernel_lag
| o_gmm_weighting_matrix
| o_gmm_penalized_estimator
| o_gmm_verbose
;
smm_estimation : SMM_ESTIMATION '(' smm_estimation_options_list ')' ';'
{ driver.smm_estimation(); }
{ driver.smm_estimation(); }
| SMM_ESTIMATION '(' ')' symbol_list ';'
| SMM_ESTIMATION '('
smm_estimation_options_list
')' symbol_list ';'
{ driver.smm_estimation(); }
{ driver.smm_estimation(); }
;
;
smm_estimation_options_list : smm_estimation_option COMMA smm_estimation_options_list
| smm_estimation_option
;
smm_estimation_option : gmm_smm_common_option
| o_smm_order
| o_smm_centered_moments
| o_smm_autolag
| o_smm_recursive_order_estimation
| o_smm_bartlett_kernel_lag
| o_smm_weighting_matrix
| o_smm_penalized_estimator
| o_smm_verbose
| o_smm_simulation_multiple
| o_smm_drop
| o_smm_seed
| o_smm_bounded_shock_support
;
prior_function : PRIOR_FUNCTION '(' prior_posterior_function_options_list ')' ';'
prior_function : PRIOR_FUNCTION '(' prior_posterior_function_options_list ')' ';'
{ driver.prior_posterior_function(true); }
{ driver.prior_posterior_function(true); }
;
;
...
@@ -1180,6 +1266,14 @@ stoch_simul_primary_options : o_dr_algo
...
@@ -1180,6 +1266,14 @@ stoch_simul_primary_options : o_dr_algo
| o_irf
| o_irf
| o_irf_shocks
| o_irf_shocks
| o_relative_irf
| o_relative_irf
| o_analytical_girf
| o_irf_in_percent
| o_emas_girf
| o_emas_drop
| o_emas_tolf
| o_emas_max_iter
| o_stderr_multiples
| o_diagonal_only
| o_hp_filter
| o_hp_filter
| o_hp_ngrid
| o_hp_ngrid
| o_periods
| o_periods
...
@@ -1864,6 +1958,14 @@ estimation_options : o_datafile
...
@@ -1864,6 +1958,14 @@ estimation_options : o_datafile
| o_keep_kalman_algo_if_singularity_is_detected
| o_keep_kalman_algo_if_singularity_is_detected
| o_use_penalized_objective_for_hessian
| o_use_penalized_objective_for_hessian
| o_rescale_prediction_error_covariance
| o_rescale_prediction_error_covariance
| o_analytical_girf
| o_irf_in_percent
| o_emas_girf
| o_emas_drop
| o_emas_tolf
| o_emas_max_iter
| o_stderr_multiples
| o_diagonal_only
;
;
list_optim_option : QUOTED_STRING COMMA QUOTED_STRING
list_optim_option : QUOTED_STRING COMMA QUOTED_STRING
...
@@ -3417,6 +3519,59 @@ o_use_shock_groups : USE_SHOCK_GROUPS { driver.option_str("plot_shock_decomp.use
...
@@ -3417,6 +3519,59 @@ o_use_shock_groups : USE_SHOCK_GROUPS { driver.option_str("plot_shock_decomp.use
;
;
o_colormap : COLORMAP EQUAL symbol { driver.option_num("plot_shock_decomp.colormap",$3); };
o_colormap : COLORMAP EQUAL symbol { driver.option_num("plot_shock_decomp.colormap",$3); };
o_gmm_order : ORDER EQUAL INT_NUMBER { driver.option_num("gmm.order", $3); };
o_smm_order : ORDER EQUAL INT_NUMBER { driver.option_num("smm.order", $3); };
o_gmm_centered_moments : CENTERED_MOMENTS { driver.option_num("gmm.centered_moments", "1"); };
o_smm_centered_moments : CENTERED_MOMENTS { driver.option_num("smm.centered_moments", "1"); };
o_gmm_autolag : AUTOLAG EQUAL vec_int
{ driver.option_vec_int("gmm.autolag", $3); }
| AUTOLAG EQUAL vec_int_number
{ driver.option_vec_int("gmm.autolag", $3); }
;
o_smm_autolag : AUTOLAG EQUAL vec_int
{ driver.option_vec_int("smm.autolag", $3); }
| AUTOLAG EQUAL vec_int_number
{ driver.option_vec_int("smm.autolag", $3); }
;
o_gmm_recursive_order_estimation : RECURSIVE_ORDER_ESTIMATION { driver.option_num("gmm.recursive_estimation", "1"); };
o_smm_recursive_order_estimation : RECURSIVE_ORDER_ESTIMATION { driver.option_num("smm.recursive_estimation", "1"); };
o_gmm_bartlett_kernel_lag : BARTLETT_KERNEL_LAG EQUAL INT_NUMBER { driver.option_num("gmm.qLag", $3); };
o_smm_bartlett_kernel_lag : BARTLETT_KERNEL_LAG EQUAL INT_NUMBER { driver.option_num("smm.qLag", $3); };
o_gmm_weighting_matrix : WEIGHTING_MATRIX EQUAL OPTIMAL
{ driver.option_str("gmm.weighting_matrix", $3); }
| WEIGHTING_MATRIX EQUAL IDENTITY_MATRIX
{ driver.option_str("gmm.weighting_matrix", $3); }
| WEIGHTING_MATRIX EQUAL DIAGONAL
{ driver.option_str("gmm.weighting_matrix", $3); }
| WEIGHTING_MATRIX EQUAL filename
{ driver.option_str("gmm.weighting_matrix", $3); }
;
o_smm_weighting_matrix : WEIGHTING_MATRIX EQUAL OPTIMAL
{ driver.option_str("smm.weighting_matrix", $3); }
| WEIGHTING_MATRIX EQUAL IDENTITY_MATRIX
{ driver.option_str("smm.weighting_matrix", $3); }
| WEIGHTING_MATRIX EQUAL DIAGONAL
{ driver.option_str("smm.weighting_matrix", $3); }
| WEIGHTING_MATRIX EQUAL filename
{ driver.option_str("smm.weighting_matrix", $3); }
;
o_gmm_penalized_estimator : PENALIZED_ESTIMATOR { driver.option_num("gmm.penalized_estimator", "1"); };
o_smm_penalized_estimator : PENALIZED_ESTIMATOR { driver.option_num("smm.penalized_estimator", "1"); };
o_gmm_verbose : VERBOSE { driver.option_num("gmm.verbose", "1"); };
o_smm_verbose : VERBOSE { driver.option_num("smm.verbose", "1"); };
o_smm_simulation_multiple : SIMULATION_MULTIPLE EQUAL INT_NUMBER { driver.option_num("smm.simulation_multiple", $3); };
o_smm_drop : DROP EQUAL INT_NUMBER { driver.option_num("smm.drop", $3); };
o_smm_seed : SEED EQUAL INT_NUMBER { driver.option_num("smm.seed", $3); };
o_smm_bounded_shock_support : BOUNDED_SHOCK_SUPPORT { driver.option_num("smm.bounded_support", "1"); };
o_analytical_girf : ANALYTICAL_GIRF { driver.option_num("irf_opt.analytical_GIRF", "1"); };
o_irf_in_percent : IRF_IN_PERCENT { driver.option_num("irf_opt.percent", "1"); };
o_emas_girf : EMAS_GIRF { driver.option_num("irf_opt.ergodic_mean_irf", "1"); };
o_emas_drop : EMAS_DROP EQUAL INT_NUMBER { driver.option_num("irf_opt.EM.drop", $3); };
o_emas_tolf : EMAS_TOLF EQUAL non_negative_number { driver.option_num("irf_opt.EM.tolf", $3); };
o_emas_max_iter : EMAS_MAX_ITER EQUAL INT_NUMBER { driver.option_num("irf_opt.EM.iter", $3); };
range : symbol ':' symbol
range : symbol ':' symbol
{
{
$1->append(":");
$1->append(":");
...
...
This diff is collapsed.
Click to expand it.
DynareFlex.ll
+
24
−
0
View file @
abbddd58
...
@@ -633,6 +633,30 @@ DATE -?[0-9]+([YyAa]|[Mm]([1-9]|1[0-2])|[Qq][1-4]|[Ww]([1-9]{1}|[1-4][0-9]|5[0-2
...
@@ -633,6 +633,30 @@ DATE -?[0-9]+([YyAa]|[Mm]([1-9]|1[0-2])|[Qq][1-4]|[Ww]([1-9]{1}|[1-4][0-9]|5[0-2
<DYNARE_STATEMENT>silent_optimizer {return token::SILENT_OPTIMIZER;}
<DYNARE_STATEMENT>silent_optimizer {return token::SILENT_OPTIMIZER;}
<DYNARE_STATEMENT>lmmcp {return token::LMMCP;}
<DYNARE_STATEMENT>lmmcp {return token::LMMCP;}
<DYNARE_STATEMENT>occbin {return token::OCCBIN;}
<DYNARE_STATEMENT>occbin {return token::OCCBIN;}
<DYNARE_STATEMENT>centered_moments {return token::CENTERED_MOMENTS; }
<DYNARE_STATEMENT>autolag {return token::AUTOLAG; }
<DYNARE_STATEMENT>recursive_order_estimation {return token::RECURSIVE_ORDER_ESTIMATION; }
<DYNARE_STATEMENT>bartlett_kernel_lag {return token::BARTLETT_KERNEL_LAG; }
<DYNARE_STATEMENT>optimal {
yylval->string_val = new string(yytext);
return token::OPTIMAL;
}
<DYNARE_STATEMENT>diagonal {
yylval->string_val = new string(yytext);
return token::DIAGONAL;
}
<DYNARE_STATEMENT>weighting_matrix {return token::WEIGHTING_MATRIX; }
<DYNARE_STATEMENT>penalized_estimator {return token::PENALIZED_ESTIMATOR; }
<DYNARE_STATEMENT>verbose {return token::VERBOSE; }
<DYNARE_STATEMENT>simulation_multiple {return token::SIMULATION_MULTIPLE; }
<DYNARE_STATEMENT>seed {return token::SEED; }
<DYNARE_STATEMENT>bounded_shock_support {return token::BOUNDED_SHOCK_SUPPORT; }
<DYNARE_STATEMENT>analytical_girf {return token::ANALYTICAL_GIRF; }
<DYNARE_STATEMENT>irf_in_percent {return token::IRF_IN_PERCENT; }
<DYNARE_STATEMENT>emas_girf {return token::EMAS_GIRF; }
<DYNARE_STATEMENT>emas_drop {return token::EMAS_DROP; }
<DYNARE_STATEMENT>emas_tolf {return token::EMAS_TOLF; }
<DYNARE_STATEMENT>emas_max_iter {return token::EMAS_MAX_ITER; }
<DYNARE_STATEMENT>[\$][^$]*[\$] {
<DYNARE_STATEMENT>[\$][^$]*[\$] {
strtok(yytext+1, "
$
");
strtok(yytext+1, "
$
");
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment