diff options
author | Joel E. Denny <joeldenny@joeldenny.org> | 2011-03-06 12:46:27 -0500 |
---|---|---|
committer | Joel E. Denny <joeldenny@joeldenny.org> | 2011-03-06 16:42:39 -0500 |
commit | 32493bc84db0c69e6e1d9d5c5c7505ab4f698f7b (patch) | |
tree | 51f28c1097538715881548b5dbaa88521a31432e | |
parent | 7fceb615a5c1a2a9445ac85faa0a2a1618b5ab54 (diff) | |
download | bison-32493bc84db0c69e6e1d9d5c5c7505ab4f698f7b.tar.gz |
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.
(cherry picked from commit d815ec4a6290e18fac9220438622f6dd27b3227f)
-rw-r--r-- | ChangeLog | 14 | ||||
-rw-r--r-- | doc/bison.texinfo | 9 | ||||
-rw-r--r-- | src/print.c | 2 | ||||
-rw-r--r-- | src/reader.c | 4 | ||||
-rw-r--r-- | src/tables.c | 2 | ||||
-rw-r--r-- | tests/input.at | 2 | ||||
-rw-r--r-- | tests/reduce.at | 13 |
7 files changed, 29 insertions, 17 deletions
@@ -1,5 +1,19 @@ 2011-03-06 Joel E. Denny <joeldenny@joeldenny.org> + 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 <joeldenny@joeldenny.org> + doc: create a new Tuning LR section in the manual. And clean up all other documentation of the features described there. diff --git a/doc/bison.texinfo b/doc/bison.texinfo index ef25f6cc..6408e2d1 100644 --- a/doc/bison.texinfo +++ b/doc/bison.texinfo @@ -5368,11 +5368,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 @@ -7449,7 +7449,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 @@ -7458,9 +7458,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 a9882073..78228054 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 ac95a215..6fc14a3e 100644 --- a/src/reader.c +++ b/src/reader.c @@ -632,7 +632,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); @@ -642,7 +642,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 8a71ff6f..3687cf9d 100644 --- a/tests/input.at +++ b/tests/input.at @@ -1029,7 +1029,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 |