X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/11b192127cac086338bfaa43f3bab3acda8e3a20..c13928073cfafa699b74338a2156b0d64a2fb8e7:/src/parse-gram.y?ds=sidebyside diff --git a/src/parse-gram.y b/src/parse-gram.y index 46500db0..8a2a04ea 100644 --- a/src/parse-gram.y +++ b/src/parse-gram.y @@ -1,6 +1,6 @@ %{/* Bison Grammar Parser -*- C -*- - Copyright (C) 2002-2012 Free Software Foundation, Inc. + Copyright (C) 2002-2013 Free Software Foundation, Inc. This file is part of Bison, the GNU Compiler Compiler. @@ -87,15 +87,15 @@ static char const *char_name (char); #define YYTYPE_UINT8 uint_fast8_t } -%verbose -%defines -%define locations +%define api.prefix "gram_" %define api.pure +%define locations %define parse.error verbose %define parse.lac full %define parse.trace -%name-prefix "gram_" +%defines %expect 0 +%verbose %initial-action { @@ -317,7 +317,6 @@ prologue_declaration: | "%expect" INT { expected_sr_conflicts = $2; } | "%expect-rr" INT { expected_rr_conflicts = $2; } | "%file-prefix" STRING { spec_file_prefix = $2; } -| "%file-prefix" "=" STRING { spec_file_prefix = $3; } /* deprecated */ | "%glr-parser" { nondeterministic_parser = true; @@ -334,11 +333,9 @@ prologue_declaration: } | "%language" STRING { language_argmatch ($2, grammar_prio, @1); } | "%name-prefix" STRING { spec_name_prefix = $2; } -| "%name-prefix" "=" STRING { spec_name_prefix = $3; } /* deprecated */ | "%no-lines" { no_lines_flag = true; } | "%nondeterministic-parser" { nondeterministic_parser = true; } | "%output" STRING { spec_outfile = $2; } -| "%output" "=" STRING { spec_outfile = $3; } /* deprecated */ | "%param" { current_param = $1; } params { current_param = param_none; } | "%require" STRING { version_check (&@2, $2); } | "%skeleton" STRING @@ -506,7 +503,7 @@ symbols.prec: symbol.prec { $$ = symbol_list_sym_new ($1, @1); } | symbols.prec symbol.prec - { $$ = symbol_list_prepend ($1, symbol_list_sym_new ($2, @2)); } + { $$ = symbol_list_append ($1, symbol_list_sym_new ($2, @2)); } ; symbol.prec: @@ -519,12 +516,12 @@ symbols.1: symbol { $$ = symbol_list_sym_new ($1, @1); } | symbols.1 symbol - { $$ = symbol_list_prepend ($1, symbol_list_sym_new ($2, @2)); } + { $$ = symbol_list_append ($1, symbol_list_sym_new ($2, @2)); } ; generic_symlist: generic_symlist_item { $$ = $1; } -| generic_symlist generic_symlist_item { $$ = symbol_list_prepend ($1, $2); } +| generic_symlist generic_symlist_item { $$ = symbol_list_append ($1, $2); } ; generic_symlist_item: @@ -541,15 +538,15 @@ tag: /* One token definition. */ symbol_def: TAG - { - current_type = $1; - tag_seen = true; - } + { + current_type = $1; + tag_seen = true; + } | id - { - symbol_class_set ($1, current_class, @1, true); - symbol_type_set ($1, current_type, @1); - } + { + symbol_class_set ($1, current_class, @1, true); + symbol_type_set ($1, current_type, @1); + } | id INT { symbol_class_set ($1, current_class, @1, true); @@ -724,7 +721,6 @@ epilogue.opt: %% - /* Return the location of the left-hand side of a rule whose right-hand side is RHS[1] ... RHS[N]. Ignore empty nonterminals in the right-hand side, and return an empty location equal to the end @@ -786,8 +782,7 @@ add_param (param_type type, char *decl, location loc) } if (! name_start) - complain_at (loc, complaint, - _("missing identifier in parameter declaration")); + complain (&loc, complaint, _("missing identifier in parameter declaration")); else { char *name = xmemdup0 (name_start, strspn (name_start, alphanum)); @@ -807,8 +802,8 @@ version_check (location const *loc, char const *version) { if (strverscmp (version, PACKAGE_VERSION) > 0) { - complain_at (*loc, complaint, "require bison %s, but have %s", - version, PACKAGE_VERSION); + complain (loc, complaint, "require bison %s, but have %s", + version, PACKAGE_VERSION); exit (EX_MISMATCH); } } @@ -816,7 +811,7 @@ version_check (location const *loc, char const *version) static void gram_error (location const *loc, char const *msg) { - complain_at (*loc, complaint, "%s", msg); + complain (loc, complaint, "%s", msg); } char const *