X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/8ea6525e3a092b76256fbed7d6edbb0a1861aee1..b805eca764fa0a7f0b5693931a2289fc74689f40:/src/parse-gram.y diff --git a/src/parse-gram.y b/src/parse-gram.y index f0187fb3..0b420041 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. @@ -40,7 +40,7 @@ static YYLTYPE lloc_default (YYLTYPE const *, int); #define YY_LOCATION_PRINT(File, Loc) \ - location_print (File, Loc) + location_print (Loc, File) static void version_check (location const *loc, char const *version); @@ -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