From d815ec4a6290e18fac9220438622f6dd27b3227f Mon Sep 17 00:00:00 2001 From: "Joel E. Denny" Date: Sun, 6 Mar 2011 12:46:27 -0500 Subject: [PATCH] lr.default-reductions: rename "all" value to "full". States that shift the error token do not have default reductions, and GLR disables some default reductions, so "all" was a misnomer. * doc/bison.texinfo (%define Summary): Update. (Default Reductions): Update. * src/print.c (print_reductions): Update. * src/reader.c (prepare_percent_define_front_end_variables): Update. * src/tables.c (action_row): Update. * tests/input.at (%define enum variables): Update. * tests/reduce.at (%define lr.default-reductions): Update. --- ChangeLog | 14 ++++++++++++++ doc/bison.texinfo | 9 +++------ src/print.c | 2 +- src/reader.c | 4 ++-- src/tables.c | 2 +- tests/input.at | 2 +- tests/reduce.at | 13 +++++++------ 7 files changed, 29 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index dacfddc3..670853a5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2011-03-06 Joel E. Denny + + lr.default-reductions: rename "all" value to "full". + States that shift the error token do not have default reductions, + and GLR disables some default reductions, so "all" was a misnomer. + * doc/bison.texinfo (%define Summary): Update. + (Default Reductions): Update. + * src/print.c (print_reductions): Update. + * src/reader.c (prepare_percent_define_front_end_variables): + Update. + * src/tables.c (action_row): Update. + * tests/input.at (%define enum variables): Update. + * tests/reduce.at (%define lr.default-reductions): Update. + 2011-03-06 Joel E. Denny doc: create a new Tuning LR section in the manual. diff --git a/doc/bison.texinfo b/doc/bison.texinfo index b226726e..8d1ba68f 100644 --- a/doc/bison.texinfo +++ b/doc/bison.texinfo @@ -5166,11 +5166,11 @@ contain default reductions. @xref{Default Reductions}. (The ability to specify where default reductions should be used is experimental. More user feedback will help to stabilize it.) -@item Accepted Values: @code{all}, @code{consistent}, @code{accepting} +@item Accepted Values: @code{full}, @code{consistent}, @code{accepting} @item Default Value: @itemize @item @code{accepting} if @code{lr.type} is @code{canonical-lr}. -@item @code{all} otherwise. +@item @code{full} otherwise. @end itemize @end itemize @@ -7143,7 +7143,7 @@ To adjust which states have default reductions enabled, use the Specify the kind of states that are permitted to contain default reductions. The accepted values of @var{WHERE} are: @itemize -@item @code{all} (default for LALR and IELR) +@item @code{full} (default for LALR and IELR) @item @code{consistent} @item @code{accepting} (default for canonical LR) @end itemize @@ -7152,9 +7152,6 @@ The accepted values of @var{WHERE} are: experimental. More user feedback will help to stabilize it.) @end deffn -FIXME: Because of the exceptions described above, @code{all} is a misnomer. -Rename to @code{full}. - @node LAC @subsection LAC @findex %define parse.lac diff --git a/src/print.c b/src/print.c index 0012a4f2..b117e752 100644 --- a/src/print.c +++ b/src/print.c @@ -337,7 +337,7 @@ print_reductions (FILE *out, state *s) char *default_reductions = muscle_percent_define_get ("lr.default-reductions"); print_reduction (out, width, _("$default"), default_reduction, true); - aver (0 == strcmp (default_reductions, "all") + aver (0 == strcmp (default_reductions, "full") || (0 == strcmp (default_reductions, "consistent") && default_reduction_only) || (reds->num == 1 && reds->rules[0]->number == 0)); diff --git a/src/reader.c b/src/reader.c index 852d3e10..9153f210 100644 --- a/src/reader.c +++ b/src/reader.c @@ -630,7 +630,7 @@ prepare_percent_define_front_end_variables (void) muscle_percent_define_default ("lr.type", "lalr"); lr_type = muscle_percent_define_get ("lr.type"); if (0 != strcmp (lr_type, "canonical-lr")) - muscle_percent_define_default ("lr.default-reductions", "all"); + muscle_percent_define_default ("lr.default-reductions", "full"); else muscle_percent_define_default ("lr.default-reductions", "accepting"); free (lr_type); @@ -640,7 +640,7 @@ prepare_percent_define_front_end_variables (void) { static char const * const values[] = { "lr.type", "lalr", "ielr", "canonical-lr", NULL, - "lr.default-reductions", "all", "consistent", "accepting", NULL, + "lr.default-reductions", "full", "consistent", "accepting", NULL, NULL }; muscle_percent_define_check_values (values); diff --git a/src/tables.c b/src/tables.c index ef37fbab..930a6a5f 100644 --- a/src/tables.c +++ b/src/tables.c @@ -310,7 +310,7 @@ action_row (state *s) { char *default_reductions = muscle_percent_define_get ("lr.default-reductions"); - if (0 != strcmp (default_reductions, "all") && !s->consistent) + if (0 != strcmp (default_reductions, "full") && !s->consistent) nodefault = true; free (default_reductions); } diff --git a/tests/input.at b/tests/input.at index 90b6b0b1..9c5db8d9 100644 --- a/tests/input.at +++ b/tests/input.at @@ -1034,7 +1034,7 @@ start: ; ]]) AT_BISON_CHECK([[input.y]], [[1]], [[]], [[input.y:1.9-29: invalid value for %define variable `lr.default-reductions': `bogus' -input.y:1.9-29: accepted value: `all' +input.y:1.9-29: accepted value: `full' input.y:1.9-29: accepted value: `consistent' input.y:1.9-29: accepted value: `accepting' ]]) diff --git a/tests/reduce.at b/tests/reduce.at index 65ccf16d..ad4d329b 100644 --- a/tests/reduce.at +++ b/tests/reduce.at @@ -1451,12 +1451,12 @@ dnl PARSER-EXIT-VALUE, PARSER-STDOUT, PARSER-STDERR m4_define([AT_TEST_LR_DEFAULT_REDUCTIONS], [ AT_TEST_TABLES_AND_PARSE([[no %define lr.default-reductions]], - [[all]], [[]], + [[full]], [[]], [[]], [$1], [$2], [[]], [$3]) -AT_TEST_TABLES_AND_PARSE([[%define lr.default-reductions all]], - [[all]], [[]], - [[%define lr.default-reductions all]], +AT_TEST_TABLES_AND_PARSE([[%define lr.default-reductions full]], + [[full]], [[]], + [[%define lr.default-reductions full]], [$1], [$2], [[]], [$3]) AT_TEST_TABLES_AND_PARSE([[%define lr.default-reductions consistent]], [[consistent]], [[]], @@ -1529,7 +1529,7 @@ state 3 2 | a . b 'a' 3 | a . c 'b' 5 b: . [$end, 'a'] - 6 c: . ['b']]AT_COND_CASE([[all]], [[ + 6 c: . ['b']]AT_COND_CASE([[full]], [[ 'b' reduce using rule 6 (c) $default reduce using rule 5 (b)]], [[ @@ -1556,7 +1556,8 @@ state 5 'a' shift, and go to state 7 - ]AT_COND_CASE([[all]], [[$default]], [[$end]])[ reduce using rule 1 (start) + ]AT_COND_CASE([[full]], [[$default]], + [[$end]])[ reduce using rule 1 (start) state 6 -- 2.45.2