* src/parse-gram.y (version_check): Exit 63 to please missing

(stands for "version mismatch).
* tests/input.at, doc/bison.texinfo: Adjust.
This commit is contained in:
Akim Demaille
2005-10-12 10:15:12 +00:00
parent 52d9d4112f
commit 9b8a5ce03b
6 changed files with 134 additions and 123 deletions

View File

@@ -1,3 +1,9 @@
2005-10-12 Akim Demaille <akim@epita.fr>
* src/parse-gram.y (version_check): Exit 63 to please missing
(stands for "version mismatch).
* tests/input.at, doc/bison.texinfo: Adjust.
2005-10-10 Paul Eggert <eggert@cs.ucla.edu> 2005-10-10 Paul Eggert <eggert@cs.ucla.edu>
Work around portability problems with Visual Age C compiler Work around portability problems with Visual Age C compiler

View File

@@ -3569,7 +3569,8 @@ Grammars}).
@findex %require @findex %require
You may require the minimum version of Bison to process the grammar. If You may require the minimum version of Bison to process the grammar. If
the requirement is not met, @command{bison} exits with an error. the requirement is not met, @command{bison} exits with an error (exit
status 63).
@example @example
%require "@var{version}" %require "@var{version}"
@@ -4173,9 +4174,8 @@ Request a pure (reentrant) parser program (@pxref{Pure Decl, ,A Pure
@end deffn @end deffn
@deffn {Directive} %require "@var{version}" @deffn {Directive} %require "@var{version}"
Specify that version @var{version} or higher of Bison required for the Require version @var{version} or higher of Bison. @xref{Require Decl, ,
grammar. Require a Version of Bison}.
@xref{Require Decl, , Require a Version of Bison}.
@end deffn @end deffn
@deffn {Directive} %token-table @deffn {Directive} %token-table
@@ -7993,9 +7993,8 @@ Bison declaration to request a pure (reentrant) parser.
@end deffn @end deffn
@deffn {Directive} %require "@var{version}" @deffn {Directive} %require "@var{version}"
Specify that version @var{version} or higher of Bison required for the Require version @var{version} or higher of Bison. @xref{Require Decl, ,
grammar. Require a Version of Bison}.
@xref{Require Decl, , Require a Version of Bison}.
@end deffn @end deffn
@deffn {Directive} %right @deffn {Directive} %right

View File

@@ -172,7 +172,7 @@
/* Copy the first part of user declarations. */ /* Copy the first part of user declarations. */
#line 1 "parse-gram.y" #line 1 "../../src/parse-gram.y"
/* Bison Grammar Parser -*- C -*- /* Bison Grammar Parser -*- C -*-
Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@@ -253,7 +253,7 @@ static int current_prec = 0;
#endif #endif
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
#line 82 "parse-gram.y" #line 82 "../../src/parse-gram.y"
typedef union YYSTYPE { typedef union YYSTYPE {
symbol *symbol; symbol *symbol;
symbol_list *list; symbol_list *list;
@@ -263,7 +263,7 @@ typedef union YYSTYPE {
uniqstr uniqstr; uniqstr uniqstr;
} YYSTYPE; } YYSTYPE;
/* Line 196 of yacc.c. */ /* Line 196 of yacc.c. */
#line 267 "parse-gram.c" #line 267 "../../src/parse-gram.c"
# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_TRIVIAL 1
@@ -287,7 +287,7 @@ typedef struct YYLTYPE
/* Line 219 of yacc.c. */ /* Line 219 of yacc.c. */
#line 291 "parse-gram.c" #line 291 "../../src/parse-gram.c"
/* Define YYMODERN_C if this compiler supports C89 or better. Some /* Define YYMODERN_C if this compiler supports C89 or better. Some
modern compilers (e.g., IBM xlc 7.0) don't define __STDC__ for modern compilers (e.g., IBM xlc 7.0) don't define __STDC__ for
@@ -1203,94 +1203,94 @@ yysymprint (yyoutput, yytype, yyvaluep, yylocationp)
switch (yytype) switch (yytype)
{ {
case 3: /* "\"string\"" */ case 3: /* "\"string\"" */
#line 169 "parse-gram.y" #line 169 "../../src/parse-gram.y"
{ fprintf (stderr, "\"%s\"", (yyvaluep->chars)); }; { fprintf (stderr, "\"%s\"", (yyvaluep->chars)); };
#line 1209 "parse-gram.c" #line 1209 "../../src/parse-gram.c"
break; break;
case 4: /* "\"integer\"" */ case 4: /* "\"integer\"" */
#line 182 "parse-gram.y" #line 182 "../../src/parse-gram.y"
{ fprintf (stderr, "%d", (yyvaluep->integer)); }; { fprintf (stderr, "%d", (yyvaluep->integer)); };
#line 1214 "parse-gram.c" #line 1214 "../../src/parse-gram.c"
break; break;
case 8: /* "\"%destructor {...}\"" */ case 8: /* "\"%destructor {...}\"" */
#line 171 "parse-gram.y" #line 171 "../../src/parse-gram.y"
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); }; { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
#line 1219 "parse-gram.c" #line 1219 "../../src/parse-gram.c"
break; break;
case 9: /* "\"%printer {...}\"" */ case 9: /* "\"%printer {...}\"" */
#line 175 "parse-gram.y" #line 175 "../../src/parse-gram.y"
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); }; { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
#line 1224 "parse-gram.c" #line 1224 "../../src/parse-gram.c"
break; break;
case 10: /* "\"%union {...}\"" */ case 10: /* "\"%union {...}\"" */
#line 176 "parse-gram.y" #line 176 "../../src/parse-gram.y"
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); }; { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
#line 1229 "parse-gram.c" #line 1229 "../../src/parse-gram.c"
break; break;
case 26: /* "\"%initial-action {...}\"" */ case 26: /* "\"%initial-action {...}\"" */
#line 172 "parse-gram.y" #line 172 "../../src/parse-gram.y"
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); }; { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
#line 1234 "parse-gram.c" #line 1234 "../../src/parse-gram.c"
break; break;
case 27: /* "\"%lex-param {...}\"" */ case 27: /* "\"%lex-param {...}\"" */
#line 173 "parse-gram.y" #line 173 "../../src/parse-gram.y"
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); }; { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
#line 1239 "parse-gram.c" #line 1239 "../../src/parse-gram.c"
break; break;
case 34: /* "\"%parse-param {...}\"" */ case 34: /* "\"%parse-param {...}\"" */
#line 174 "parse-gram.y" #line 174 "../../src/parse-gram.y"
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); }; { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
#line 1244 "parse-gram.c" #line 1244 "../../src/parse-gram.c"
break; break;
case 42: /* "\"type\"" */ case 42: /* "\"type\"" */
#line 180 "parse-gram.y" #line 180 "../../src/parse-gram.y"
{ fprintf (stderr, "<%s>", (yyvaluep->uniqstr)); }; { fprintf (stderr, "<%s>", (yyvaluep->uniqstr)); };
#line 1249 "parse-gram.c" #line 1249 "../../src/parse-gram.c"
break; break;
case 46: /* "\"identifier\"" */ case 46: /* "\"identifier\"" */
#line 184 "parse-gram.y" #line 184 "../../src/parse-gram.y"
{ fprintf (stderr, "%s", (yyvaluep->symbol)->tag); }; { fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
#line 1254 "parse-gram.c" #line 1254 "../../src/parse-gram.c"
break; break;
case 47: /* "\"identifier:\"" */ case 47: /* "\"identifier:\"" */
#line 186 "parse-gram.y" #line 186 "../../src/parse-gram.y"
{ fprintf (stderr, "%s:", (yyvaluep->symbol)->tag); }; { fprintf (stderr, "%s:", (yyvaluep->symbol)->tag); };
#line 1259 "parse-gram.c" #line 1259 "../../src/parse-gram.c"
break; break;
case 49: /* "\"%{...%}\"" */ case 49: /* "\"%{...%}\"" */
#line 178 "parse-gram.y" #line 178 "../../src/parse-gram.y"
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); }; { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
#line 1264 "parse-gram.c" #line 1264 "../../src/parse-gram.c"
break; break;
case 50: /* "\"epilogue\"" */ case 50: /* "\"epilogue\"" */
#line 178 "parse-gram.y" #line 178 "../../src/parse-gram.y"
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); }; { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
#line 1269 "parse-gram.c" #line 1269 "../../src/parse-gram.c"
break; break;
case 51: /* "\"{...}\"" */ case 51: /* "\"{...}\"" */
#line 177 "parse-gram.y" #line 177 "../../src/parse-gram.y"
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); }; { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
#line 1274 "parse-gram.c" #line 1274 "../../src/parse-gram.c"
break; break;
case 72: /* "symbol" */ case 72: /* "symbol" */
#line 184 "parse-gram.y" #line 184 "../../src/parse-gram.y"
{ fprintf (stderr, "%s", (yyvaluep->symbol)->tag); }; { fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
#line 1279 "parse-gram.c" #line 1279 "../../src/parse-gram.c"
break; break;
case 73: /* "action" */ case 73: /* "action" */
#line 177 "parse-gram.y" #line 177 "../../src/parse-gram.y"
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); }; { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
#line 1284 "parse-gram.c" #line 1284 "../../src/parse-gram.c"
break; break;
case 74: /* "string_as_id" */ case 74: /* "string_as_id" */
#line 184 "parse-gram.y" #line 184 "../../src/parse-gram.y"
{ fprintf (stderr, "%s", (yyvaluep->symbol)->tag); }; { fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
#line 1289 "parse-gram.c" #line 1289 "../../src/parse-gram.c"
break; break;
case 75: /* "string_content" */ case 75: /* "string_content" */
#line 169 "parse-gram.y" #line 169 "../../src/parse-gram.y"
{ fprintf (stderr, "\"%s\"", (yyvaluep->chars)); }; { fprintf (stderr, "\"%s\"", (yyvaluep->chars)); };
#line 1294 "parse-gram.c" #line 1294 "../../src/parse-gram.c"
break; break;
default: default:
break; break;
@@ -1460,7 +1460,7 @@ YYLTYPE yylloc;
/* User initialization code. */ /* User initialization code. */
#line 72 "parse-gram.y" #line 72 "../../src/parse-gram.y"
{ {
/* Bison's grammar can initial empty locations, hence a default /* Bison's grammar can initial empty locations, hence a default
location is needed. */ location is needed. */
@@ -1469,7 +1469,7 @@ YYLTYPE yylloc;
yylloc.start.column = yylloc.end.column = 0; yylloc.start.column = yylloc.end.column = 0;
} }
/* Line 1064 of yacc.c. */ /* Line 1064 of yacc.c. */
#line 1473 "parse-gram.c" #line 1473 "../../src/parse-gram.c"
yylsp[0] = yylloc; yylsp[0] = yylloc;
goto yysetstate; goto yysetstate;
@@ -1658,52 +1658,52 @@ yyreduce:
switch (yyn) switch (yyn)
{ {
case 6: case 6:
#line 207 "parse-gram.y" #line 207 "../../src/parse-gram.y"
{ prologue_augment ((yyvsp[0].chars), (yylsp[0])); } { prologue_augment ((yyvsp[0].chars), (yylsp[0])); }
break; break;
case 7: case 7:
#line 208 "parse-gram.y" #line 208 "../../src/parse-gram.y"
{ debug_flag = true; } { debug_flag = true; }
break; break;
case 8: case 8:
#line 209 "parse-gram.y" #line 209 "../../src/parse-gram.y"
{ muscle_insert ((yyvsp[0].chars), "1"); } { muscle_insert ((yyvsp[0].chars), "1"); }
break; break;
case 9: case 9:
#line 210 "parse-gram.y" #line 210 "../../src/parse-gram.y"
{ muscle_insert ((yyvsp[-1].chars), (yyvsp[0].chars)); } { muscle_insert ((yyvsp[-1].chars), (yyvsp[0].chars)); }
break; break;
case 10: case 10:
#line 211 "parse-gram.y" #line 211 "../../src/parse-gram.y"
{ defines_flag = true; } { defines_flag = true; }
break; break;
case 11: case 11:
#line 212 "parse-gram.y" #line 212 "../../src/parse-gram.y"
{ error_verbose = true; } { error_verbose = true; }
break; break;
case 12: case 12:
#line 213 "parse-gram.y" #line 213 "../../src/parse-gram.y"
{ expected_sr_conflicts = (yyvsp[0].integer); } { expected_sr_conflicts = (yyvsp[0].integer); }
break; break;
case 13: case 13:
#line 214 "parse-gram.y" #line 214 "../../src/parse-gram.y"
{ expected_rr_conflicts = (yyvsp[0].integer); } { expected_rr_conflicts = (yyvsp[0].integer); }
break; break;
case 14: case 14:
#line 215 "parse-gram.y" #line 215 "../../src/parse-gram.y"
{ spec_file_prefix = (yyvsp[0].chars); } { spec_file_prefix = (yyvsp[0].chars); }
break; break;
case 15: case 15:
#line 217 "parse-gram.y" #line 217 "../../src/parse-gram.y"
{ {
nondeterministic_parser = true; nondeterministic_parser = true;
glr_parser = true; glr_parser = true;
@@ -1711,86 +1711,86 @@ yyreduce:
break; break;
case 16: case 16:
#line 222 "parse-gram.y" #line 222 "../../src/parse-gram.y"
{ {
muscle_code_grow ("initial_action", (yyvsp[0].chars), (yylsp[0])); muscle_code_grow ("initial_action", (yyvsp[0].chars), (yylsp[0]));
} }
break; break;
case 17: case 17:
#line 225 "parse-gram.y" #line 225 "../../src/parse-gram.y"
{ add_param ("lex_param", (yyvsp[0].chars), (yylsp[0])); } { add_param ("lex_param", (yyvsp[0].chars), (yylsp[0])); }
break; break;
case 18: case 18:
#line 226 "parse-gram.y" #line 226 "../../src/parse-gram.y"
{ locations_flag = true; } { locations_flag = true; }
break; break;
case 19: case 19:
#line 227 "parse-gram.y" #line 227 "../../src/parse-gram.y"
{ spec_name_prefix = (yyvsp[0].chars); } { spec_name_prefix = (yyvsp[0].chars); }
break; break;
case 20: case 20:
#line 228 "parse-gram.y" #line 228 "../../src/parse-gram.y"
{ no_lines_flag = true; } { no_lines_flag = true; }
break; break;
case 21: case 21:
#line 229 "parse-gram.y" #line 229 "../../src/parse-gram.y"
{ nondeterministic_parser = true; } { nondeterministic_parser = true; }
break; break;
case 22: case 22:
#line 230 "parse-gram.y" #line 230 "../../src/parse-gram.y"
{ spec_outfile = (yyvsp[0].chars); } { spec_outfile = (yyvsp[0].chars); }
break; break;
case 23: case 23:
#line 231 "parse-gram.y" #line 231 "../../src/parse-gram.y"
{ add_param ("parse_param", (yyvsp[0].chars), (yylsp[0])); } { add_param ("parse_param", (yyvsp[0].chars), (yylsp[0])); }
break; break;
case 24: case 24:
#line 232 "parse-gram.y" #line 232 "../../src/parse-gram.y"
{ pure_parser = true; } { pure_parser = true; }
break; break;
case 25: case 25:
#line 233 "parse-gram.y" #line 233 "../../src/parse-gram.y"
{ version_check (&(yylsp[0]), (yyvsp[0].chars)); } { version_check (&(yylsp[0]), (yyvsp[0].chars)); }
break; break;
case 26: case 26:
#line 234 "parse-gram.y" #line 234 "../../src/parse-gram.y"
{ skeleton = (yyvsp[0].chars); } { skeleton = (yyvsp[0].chars); }
break; break;
case 27: case 27:
#line 235 "parse-gram.y" #line 235 "../../src/parse-gram.y"
{ token_table_flag = true; } { token_table_flag = true; }
break; break;
case 28: case 28:
#line 236 "parse-gram.y" #line 236 "../../src/parse-gram.y"
{ report_flag = report_states; } { report_flag = report_states; }
break; break;
case 29: case 29:
#line 237 "parse-gram.y" #line 237 "../../src/parse-gram.y"
{ yacc_flag = true; } { yacc_flag = true; }
break; break;
case 33: case 33:
#line 245 "parse-gram.y" #line 245 "../../src/parse-gram.y"
{ {
grammar_start_symbol_set ((yyvsp[0].symbol), (yylsp[0])); grammar_start_symbol_set ((yyvsp[0].symbol), (yylsp[0]));
} }
break; break;
case 34: case 34:
#line 249 "parse-gram.y" #line 249 "../../src/parse-gram.y"
{ {
typed = true; typed = true;
MUSCLE_INSERT_INT ("stype_line", (yylsp[0]).start.line); MUSCLE_INSERT_INT ("stype_line", (yylsp[0]).start.line);
@@ -1799,7 +1799,7 @@ yyreduce:
break; break;
case 35: case 35:
#line 255 "parse-gram.y" #line 255 "../../src/parse-gram.y"
{ {
symbol_list *list; symbol_list *list;
for (list = (yyvsp[0].list); list; list = list->next) for (list = (yyvsp[0].list); list; list = list->next)
@@ -1809,7 +1809,7 @@ yyreduce:
break; break;
case 36: case 36:
#line 262 "parse-gram.y" #line 262 "../../src/parse-gram.y"
{ {
symbol_list *list; symbol_list *list;
for (list = (yyvsp[0].list); list; list = list->next) for (list = (yyvsp[0].list); list; list = list->next)
@@ -1819,26 +1819,26 @@ yyreduce:
break; break;
case 37: case 37:
#line 269 "parse-gram.y" #line 269 "../../src/parse-gram.y"
{ {
default_prec = true; default_prec = true;
} }
break; break;
case 38: case 38:
#line 273 "parse-gram.y" #line 273 "../../src/parse-gram.y"
{ {
default_prec = false; default_prec = false;
} }
break; break;
case 39: case 39:
#line 279 "parse-gram.y" #line 279 "../../src/parse-gram.y"
{ current_class = nterm_sym; } { current_class = nterm_sym; }
break; break;
case 40: case 40:
#line 280 "parse-gram.y" #line 280 "../../src/parse-gram.y"
{ {
current_class = unknown_sym; current_class = unknown_sym;
current_type = NULL; current_type = NULL;
@@ -1846,12 +1846,12 @@ yyreduce:
break; break;
case 41: case 41:
#line 284 "parse-gram.y" #line 284 "../../src/parse-gram.y"
{ current_class = token_sym; } { current_class = token_sym; }
break; break;
case 42: case 42:
#line 285 "parse-gram.y" #line 285 "../../src/parse-gram.y"
{ {
current_class = unknown_sym; current_class = unknown_sym;
current_type = NULL; current_type = NULL;
@@ -1859,7 +1859,7 @@ yyreduce:
break; break;
case 43: case 43:
#line 290 "parse-gram.y" #line 290 "../../src/parse-gram.y"
{ {
symbol_list *list; symbol_list *list;
for (list = (yyvsp[0].list); list; list = list->next) for (list = (yyvsp[0].list); list; list = list->next)
@@ -1869,7 +1869,7 @@ yyreduce:
break; break;
case 44: case 44:
#line 300 "parse-gram.y" #line 300 "../../src/parse-gram.y"
{ {
symbol_list *list; symbol_list *list;
++current_prec; ++current_prec;
@@ -1884,49 +1884,49 @@ yyreduce:
break; break;
case 45: case 45:
#line 314 "parse-gram.y" #line 314 "../../src/parse-gram.y"
{ (yyval.assoc) = left_assoc; } { (yyval.assoc) = left_assoc; }
break; break;
case 46: case 46:
#line 315 "parse-gram.y" #line 315 "../../src/parse-gram.y"
{ (yyval.assoc) = right_assoc; } { (yyval.assoc) = right_assoc; }
break; break;
case 47: case 47:
#line 316 "parse-gram.y" #line 316 "../../src/parse-gram.y"
{ (yyval.assoc) = non_assoc; } { (yyval.assoc) = non_assoc; }
break; break;
case 48: case 48:
#line 320 "parse-gram.y" #line 320 "../../src/parse-gram.y"
{ current_type = NULL; } { current_type = NULL; }
break; break;
case 49: case 49:
#line 321 "parse-gram.y" #line 321 "../../src/parse-gram.y"
{ current_type = (yyvsp[0].uniqstr); } { current_type = (yyvsp[0].uniqstr); }
break; break;
case 50: case 50:
#line 327 "parse-gram.y" #line 327 "../../src/parse-gram.y"
{ (yyval.list) = symbol_list_new ((yyvsp[0].symbol), (yylsp[0])); } { (yyval.list) = symbol_list_new ((yyvsp[0].symbol), (yylsp[0])); }
break; break;
case 51: case 51:
#line 328 "parse-gram.y" #line 328 "../../src/parse-gram.y"
{ (yyval.list) = symbol_list_prepend ((yyvsp[-1].list), (yyvsp[0].symbol), (yylsp[0])); } { (yyval.list) = symbol_list_prepend ((yyvsp[-1].list), (yyvsp[0].symbol), (yylsp[0])); }
break; break;
case 52: case 52:
#line 334 "parse-gram.y" #line 334 "../../src/parse-gram.y"
{ {
current_type = (yyvsp[0].uniqstr); current_type = (yyvsp[0].uniqstr);
} }
break; break;
case 53: case 53:
#line 338 "parse-gram.y" #line 338 "../../src/parse-gram.y"
{ {
symbol_class_set ((yyvsp[0].symbol), current_class, (yylsp[0])); symbol_class_set ((yyvsp[0].symbol), current_class, (yylsp[0]));
symbol_type_set ((yyvsp[0].symbol), current_type, (yylsp[0])); symbol_type_set ((yyvsp[0].symbol), current_type, (yylsp[0]));
@@ -1934,7 +1934,7 @@ yyreduce:
break; break;
case 54: case 54:
#line 343 "parse-gram.y" #line 343 "../../src/parse-gram.y"
{ {
symbol_class_set ((yyvsp[-1].symbol), current_class, (yylsp[-1])); symbol_class_set ((yyvsp[-1].symbol), current_class, (yylsp[-1]));
symbol_type_set ((yyvsp[-1].symbol), current_type, (yylsp[-1])); symbol_type_set ((yyvsp[-1].symbol), current_type, (yylsp[-1]));
@@ -1943,7 +1943,7 @@ yyreduce:
break; break;
case 55: case 55:
#line 349 "parse-gram.y" #line 349 "../../src/parse-gram.y"
{ {
symbol_class_set ((yyvsp[-1].symbol), current_class, (yylsp[-1])); symbol_class_set ((yyvsp[-1].symbol), current_class, (yylsp[-1]));
symbol_type_set ((yyvsp[-1].symbol), current_type, (yylsp[-1])); symbol_type_set ((yyvsp[-1].symbol), current_type, (yylsp[-1]));
@@ -1952,7 +1952,7 @@ yyreduce:
break; break;
case 56: case 56:
#line 355 "parse-gram.y" #line 355 "../../src/parse-gram.y"
{ {
symbol_class_set ((yyvsp[-2].symbol), current_class, (yylsp[-2])); symbol_class_set ((yyvsp[-2].symbol), current_class, (yylsp[-2]));
symbol_type_set ((yyvsp[-2].symbol), current_type, (yylsp[-2])); symbol_type_set ((yyvsp[-2].symbol), current_type, (yylsp[-2]));
@@ -1962,7 +1962,7 @@ yyreduce:
break; break;
case 62: case 62:
#line 384 "parse-gram.y" #line 384 "../../src/parse-gram.y"
{ {
if (yacc_flag) if (yacc_flag)
complain_at ((yyloc), _("POSIX forbids declarations in the grammar")); complain_at ((yyloc), _("POSIX forbids declarations in the grammar"));
@@ -1970,74 +1970,74 @@ yyreduce:
break; break;
case 63: case 63:
#line 389 "parse-gram.y" #line 389 "../../src/parse-gram.y"
{ {
yyerrok; yyerrok;
} }
break; break;
case 64: case 64:
#line 395 "parse-gram.y" #line 395 "../../src/parse-gram.y"
{ current_lhs = (yyvsp[0].symbol); current_lhs_location = (yylsp[0]); } { current_lhs = (yyvsp[0].symbol); current_lhs_location = (yylsp[0]); }
break; break;
case 66: case 66:
#line 399 "parse-gram.y" #line 399 "../../src/parse-gram.y"
{ grammar_rule_end ((yylsp[0])); } { grammar_rule_end ((yylsp[0])); }
break; break;
case 67: case 67:
#line 400 "parse-gram.y" #line 400 "../../src/parse-gram.y"
{ grammar_rule_end ((yylsp[0])); } { grammar_rule_end ((yylsp[0])); }
break; break;
case 69: case 69:
#line 406 "parse-gram.y" #line 406 "../../src/parse-gram.y"
{ grammar_rule_begin (current_lhs, current_lhs_location); } { grammar_rule_begin (current_lhs, current_lhs_location); }
break; break;
case 70: case 70:
#line 408 "parse-gram.y" #line 408 "../../src/parse-gram.y"
{ grammar_current_rule_symbol_append ((yyvsp[0].symbol), (yylsp[0])); } { grammar_current_rule_symbol_append ((yyvsp[0].symbol), (yylsp[0])); }
break; break;
case 71: case 71:
#line 410 "parse-gram.y" #line 410 "../../src/parse-gram.y"
{ grammar_current_rule_action_append ((yyvsp[0].chars), (yylsp[0])); } { grammar_current_rule_action_append ((yyvsp[0].chars), (yylsp[0])); }
break; break;
case 72: case 72:
#line 412 "parse-gram.y" #line 412 "../../src/parse-gram.y"
{ grammar_current_rule_prec_set ((yyvsp[0].symbol), (yylsp[0])); } { grammar_current_rule_prec_set ((yyvsp[0].symbol), (yylsp[0])); }
break; break;
case 73: case 73:
#line 414 "parse-gram.y" #line 414 "../../src/parse-gram.y"
{ grammar_current_rule_dprec_set ((yyvsp[0].integer), (yylsp[0])); } { grammar_current_rule_dprec_set ((yyvsp[0].integer), (yylsp[0])); }
break; break;
case 74: case 74:
#line 416 "parse-gram.y" #line 416 "../../src/parse-gram.y"
{ grammar_current_rule_merge_set ((yyvsp[0].uniqstr), (yylsp[0])); } { grammar_current_rule_merge_set ((yyvsp[0].uniqstr), (yylsp[0])); }
break; break;
case 75: case 75:
#line 420 "parse-gram.y" #line 420 "../../src/parse-gram.y"
{ (yyval.symbol) = (yyvsp[0].symbol); } { (yyval.symbol) = (yyvsp[0].symbol); }
break; break;
case 76: case 76:
#line 421 "parse-gram.y" #line 421 "../../src/parse-gram.y"
{ (yyval.symbol) = (yyvsp[0].symbol); } { (yyval.symbol) = (yyvsp[0].symbol); }
break; break;
case 77: case 77:
#line 426 "parse-gram.y" #line 426 "../../src/parse-gram.y"
{ (yyval.chars) = (yyvsp[0].chars); } { (yyval.chars) = (yyvsp[0].chars); }
break; break;
case 78: case 78:
#line 432 "parse-gram.y" #line 432 "../../src/parse-gram.y"
{ {
(yyval.symbol) = symbol_get (quotearg_style (c_quoting_style, (yyvsp[0].chars)), (yylsp[0])); (yyval.symbol) = symbol_get (quotearg_style (c_quoting_style, (yyvsp[0].chars)), (yylsp[0]));
symbol_class_set ((yyval.symbol), token_sym, (yylsp[0])); symbol_class_set ((yyval.symbol), token_sym, (yylsp[0]));
@@ -2045,12 +2045,12 @@ yyreduce:
break; break;
case 79: case 79:
#line 441 "parse-gram.y" #line 441 "../../src/parse-gram.y"
{ (yyval.chars) = (yyvsp[0].chars); } { (yyval.chars) = (yyvsp[0].chars); }
break; break;
case 81: case 81:
#line 448 "parse-gram.y" #line 448 "../../src/parse-gram.y"
{ {
muscle_code_grow ("epilogue", (yyvsp[0].chars), (yylsp[0])); muscle_code_grow ("epilogue", (yyvsp[0].chars), (yylsp[0]));
scanner_last_string_free (); scanner_last_string_free ();
@@ -2062,7 +2062,7 @@ yyreduce:
} }
/* Line 1260 of yacc.c. */ /* Line 1260 of yacc.c. */
#line 2066 "parse-gram.c" #line 2066 "../../src/parse-gram.c"
yyvsp -= yylen; yyvsp -= yylen;
yyssp -= yylen; yyssp -= yylen;
@@ -2272,7 +2272,7 @@ yyreturn:
} }
#line 454 "parse-gram.y" #line 454 "../../src/parse-gram.y"
@@ -2361,8 +2361,11 @@ static void
version_check (location const *loc, char const *version) version_check (location const *loc, char const *version)
{ {
if (strverscmp (version, PACKAGE_VERSION) > 0) if (strverscmp (version, PACKAGE_VERSION) > 0)
complain_at (*loc, "require bison %s, but have %s", {
version, PACKAGE_VERSION); complain_at (*loc, "require bison %s, but have %s",
version, PACKAGE_VERSION);
exit (63);
}
} }
static void static void

View File

@@ -137,7 +137,7 @@
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
#line 82 "parse-gram.y" #line 82 "../../src/parse-gram.y"
typedef union YYSTYPE { typedef union YYSTYPE {
symbol *symbol; symbol *symbol;
symbol_list *list; symbol_list *list;
@@ -147,7 +147,7 @@ typedef union YYSTYPE {
uniqstr uniqstr; uniqstr uniqstr;
} YYSTYPE; } YYSTYPE;
/* Line 1516 of yacc.c. */ /* Line 1516 of yacc.c. */
#line 151 "parse-gram.h" #line 151 "../../src/parse-gram.h"
# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_TRIVIAL 1

View File

@@ -539,8 +539,11 @@ static void
version_check (location const *loc, char const *version) version_check (location const *loc, char const *version)
{ {
if (strverscmp (version, PACKAGE_VERSION) > 0) if (strverscmp (version, PACKAGE_VERSION) > 0)
complain_at (*loc, "require bison %s, but have %s", {
version, PACKAGE_VERSION); complain_at (*loc, "require bison %s, but have %s",
version, PACKAGE_VERSION);
exit (63);
}
} }
static void static void

View File

@@ -317,4 +317,4 @@ AT_CLEANUP
AT_CHECK_REQUIRE(1.0, 0) AT_CHECK_REQUIRE(1.0, 0)
AT_CHECK_REQUIRE(AT_PACKAGE_VERSION, 0) AT_CHECK_REQUIRE(AT_PACKAGE_VERSION, 0)
## FIXME: Some day augment this version number. ## FIXME: Some day augment this version number.
AT_CHECK_REQUIRE(100.0, 1) AT_CHECK_REQUIRE(100.0, 63)