diff --git a/src/DynareBison.yy b/src/DynareBison.yy index 1daf7f1b093305f7c89b9af86ea88c4667598539..4ed6092d060b4d6104db7420af959c4c3ddba4c3 100644 --- a/src/DynareBison.yy +++ b/src/DynareBison.yy @@ -92,7 +92,7 @@ class ParsingDriver; %token BVAR_PRIOR_MU BVAR_PRIOR_OMEGA BVAR_PRIOR_TAU BVAR_PRIOR_TRAIN DETAIL_PLOT TYPE %token BVAR_REPLIC BYTECODE ALL_VALUES_REQUIRED PROPOSAL_DISTRIBUTION REALTIME VINTAGE %token CALIB_SMOOTHER CHANGE_TYPE CHECK CONDITIONAL_FORECAST CONDITIONAL_FORECAST_PATHS CONF_SIG CONSTANT CONTROLLED_VAREXO CORR COVAR CUTOFF CYCLE_REDUCTION LOGARITHMIC_REDUCTION -%token CONSIDER_ALL_ENDOGENOUS CONSIDER_ONLY_OBSERVED INITIAL_CONDITION_DECOMPOSITION +%token COMMA CONSIDER_ALL_ENDOGENOUS CONSIDER_ONLY_OBSERVED INITIAL_CONDITION_DECOMPOSITION %token DATAFILE FILE SERIES DOUBLING DR_CYCLE_REDUCTION_TOL DR_LOGARITHMIC_REDUCTION_TOL DR_LOGARITHMIC_REDUCTION_MAXITER DR_ALGO DROP DSAMPLE DYNASAVE DYNATYPE CALIBRATION DIFFERENTIATE_FORWARD_VARS %token END ENDVAL EQUAL ESTIMATION ESTIMATED_PARAMS ESTIMATED_PARAMS_BOUNDS ESTIMATED_PARAMS_INIT EXTENDED_PATH ENDOGENOUS_PRIOR %token FILENAME DIRNAME FILTER_STEP_AHEAD FILTERED_VARS FIRST_OBS LAST_OBS SET_TIME OSR_PARAMS_BOUNDS KEEP_KALMAN_ALGO_IF_SINGULARITY_IS_DETECTED @@ -133,12 +133,11 @@ class ParsingDriver; %token VALUES VAR VAREXO VAREXO_DET VAROBS VAREXOBS PREDETERMINED_VARIABLES VAR_EXPECTATION PLOT_SHOCK_DECOMPOSITION MODEL_LOCAL_VARIABLE %token WRITE_LATEX_DYNAMIC_MODEL WRITE_LATEX_STATIC_MODEL WRITE_LATEX_ORIGINAL_MODEL CROSSEQUATIONS COVARIANCE WRITE_LATEX_STEADY_STATE_MODEL %token XLS_SHEET XLS_RANGE LMMCP OCCBIN BANDPASS_FILTER COLORMAP VAR_MODEL PAC_MODEL QOQ YOY AOA UNDIFF PAC_EXPECTATION -%left COMMA %left EQUAL_EQUAL EXCLAMATION_EQUAL %left LESS GREATER LESS_EQUAL GREATER_EQUAL %left PLUS MINUS %left TIMES DIVIDE -%left UMINUS UPLUS +%precedence UMINUS UPLUS %nonassoc POWER %token EXP LOG LN LOG10 SIN COS TAN ASIN ACOS ATAN SINH COSH TANH ERF DIFF ADL %token ASINH ACOSH ATANH SQRT NORMCDF NORMPDF STEADY_STATE EXPECTATION VAR_ESTIMATION @@ -799,7 +798,8 @@ comma_expression : expression { driver.add_external_function_arg($3); } ; -expression_or_empty : {$$ = driver.add_nan_constant();} +expression_or_empty : %empty + { $$ = driver.add_nan_constant(); } | expression ; @@ -1209,7 +1209,7 @@ model_info : MODEL_INFO ';' model_info_options_list : model_info_options_list COMMA model_info_options | model_info_options ; -model_info_options : +model_info_options : %empty perfect_foresight_setup : PERFECT_FORESIGHT_SETUP ';' { driver.perfect_foresight_setup(); } diff --git a/src/Makefile.am b/src/Makefile.am index a9efbb0ef4a04b47720238e47ff2ea3ad46e57ad..35da494fa38645a90626d6e36fbc4f954e3e239c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -71,7 +71,7 @@ DynareFlex.cc FlexLexer.h: DynareFlex.ll cp $(LEXINC)/FlexLexer.h . || test -f ./FlexLexer.h DynareBison.cc DynareBison.hh location.hh stack.hh position.hh: DynareBison.yy - $(YACC) -o DynareBison.cc DynareBison.yy + $(YACC) -W -o DynareBison.cc DynareBison.yy all-local: $(PROGRAMS) diff --git a/src/macro/MacroBison.yy b/src/macro/MacroBison.yy index 84a4a36ef7af26bcc8091afc6d6e81f700e7c86c..07ff4daa509d32b92f9c10feb63d24207aa04c4f 100644 --- a/src/macro/MacroBison.yy +++ b/src/macro/MacroBison.yy @@ -67,13 +67,12 @@ class MacroDriver; } -%token DEFINE LINE FOR IN IF ELSE ENDIF ECHO_DIR ERROR IFDEF IFNDEF +%token COMMA DEFINE LINE FOR IN IF ELSE ENDIF ECHO_DIR ERROR IFDEF IFNDEF %token LPAREN RPAREN LBRACKET RBRACKET EQUAL EOL LENGTH ECHOMACROVARS SAVE %token <int> INTEGER %token <string> NAME STRING -%left COMMA %left LOGICAL_OR %left LOGICAL_AND %left LESS GREATER LESS_EQUAL GREATER_EQUAL EQUAL_EQUAL EXCLAMATION_EQUAL @@ -81,8 +80,8 @@ class MacroDriver; %nonassoc COLON %left PLUS MINUS %left TIMES DIVIDE -%left UMINUS UPLUS EXCLAMATION -%left LBRACKET +%precedence UMINUS UPLUS EXCLAMATION +%precedence LBRACKET %type <vector<string>> func_args %type <MacroValuePtr> expr @@ -91,7 +90,7 @@ class MacroDriver; %start statement_list_or_nothing; -statement_list_or_nothing : /* empty */ +statement_list_or_nothing : %empty | statement_list ; @@ -207,7 +206,8 @@ expr : INTEGER { TYPERR_CATCH($$ = $3->in($1), @$); } ; -comma_expr : { $$ = vector<MacroValuePtr>{}; } // Empty array +comma_expr : %empty + { $$ = vector<MacroValuePtr>{}; } // Empty array | expr { $$ = vector<MacroValuePtr>{$1}; } | comma_expr COMMA expr diff --git a/src/macro/Makefile.am b/src/macro/Makefile.am index 08a93d58333d25038d999d342a12c789d5619e07..ad1b0685bf7b3e2a417993bb603448aa5e6e8d1d 100644 --- a/src/macro/Makefile.am +++ b/src/macro/Makefile.am @@ -20,4 +20,4 @@ MacroFlex.cc: MacroFlex.ll $(LEX) -o MacroFlex.cc MacroFlex.ll MacroBison.cc MacroBison.hh location.hh stack.hh position.hh: MacroBison.yy - $(YACC) -o MacroBison.cc MacroBison.yy + $(YACC) -W -o MacroBison.cc MacroBison.yy