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