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.
This commit is contained in:
Joel E. Denny
2011-03-06 12:46:27 -05:00
parent 6f04ee6c78
commit d815ec4a62
7 changed files with 29 additions and 17 deletions

View File

@@ -1,3 +1,17 @@
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> 2011-03-06 Joel E. Denny <joeldenny@joeldenny.org>
doc: create a new Tuning LR section in the manual. doc: create a new Tuning LR section in the manual.

View File

@@ -5166,11 +5166,11 @@ contain default reductions. @xref{Default Reductions}. (The ability to
specify where default reductions should be used is experimental. More user specify where default reductions should be used is experimental. More user
feedback will help to stabilize it.) 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: @item Default Value:
@itemize @itemize
@item @code{accepting} if @code{lr.type} is @code{canonical-lr}. @item @code{accepting} if @code{lr.type} is @code{canonical-lr}.
@item @code{all} otherwise. @item @code{full} otherwise.
@end itemize @end itemize
@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. Specify the kind of states that are permitted to contain default reductions.
The accepted values of @var{WHERE} are: The accepted values of @var{WHERE} are:
@itemize @itemize
@item @code{all} (default for LALR and IELR) @item @code{full} (default for LALR and IELR)
@item @code{consistent} @item @code{consistent}
@item @code{accepting} (default for canonical LR) @item @code{accepting} (default for canonical LR)
@end itemize @end itemize
@@ -7152,9 +7152,6 @@ The accepted values of @var{WHERE} are:
experimental. More user feedback will help to stabilize it.) experimental. More user feedback will help to stabilize it.)
@end deffn @end deffn
FIXME: Because of the exceptions described above, @code{all} is a misnomer.
Rename to @code{full}.
@node LAC @node LAC
@subsection LAC @subsection LAC
@findex %define parse.lac @findex %define parse.lac

View File

@@ -337,7 +337,7 @@ print_reductions (FILE *out, state *s)
char *default_reductions = char *default_reductions =
muscle_percent_define_get ("lr.default-reductions"); muscle_percent_define_get ("lr.default-reductions");
print_reduction (out, width, _("$default"), default_reduction, true); 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") || (0 == strcmp (default_reductions, "consistent")
&& default_reduction_only) && default_reduction_only)
|| (reds->num == 1 && reds->rules[0]->number == 0)); || (reds->num == 1 && reds->rules[0]->number == 0));

View File

@@ -630,7 +630,7 @@ prepare_percent_define_front_end_variables (void)
muscle_percent_define_default ("lr.type", "lalr"); muscle_percent_define_default ("lr.type", "lalr");
lr_type = muscle_percent_define_get ("lr.type"); lr_type = muscle_percent_define_get ("lr.type");
if (0 != strcmp (lr_type, "canonical-lr")) if (0 != strcmp (lr_type, "canonical-lr"))
muscle_percent_define_default ("lr.default-reductions", "all"); muscle_percent_define_default ("lr.default-reductions", "full");
else else
muscle_percent_define_default ("lr.default-reductions", "accepting"); muscle_percent_define_default ("lr.default-reductions", "accepting");
free (lr_type); free (lr_type);
@@ -640,7 +640,7 @@ prepare_percent_define_front_end_variables (void)
{ {
static char const * const values[] = { static char const * const values[] = {
"lr.type", "lalr", "ielr", "canonical-lr", NULL, "lr.type", "lalr", "ielr", "canonical-lr", NULL,
"lr.default-reductions", "all", "consistent", "accepting", NULL, "lr.default-reductions", "full", "consistent", "accepting", NULL,
NULL NULL
}; };
muscle_percent_define_check_values (values); muscle_percent_define_check_values (values);

View File

@@ -310,7 +310,7 @@ action_row (state *s)
{ {
char *default_reductions = char *default_reductions =
muscle_percent_define_get ("lr.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; nodefault = true;
free (default_reductions); free (default_reductions);
} }

View File

@@ -1034,7 +1034,7 @@ start: ;
]]) ]])
AT_BISON_CHECK([[input.y]], [[1]], [[]], 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: 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: `consistent'
input.y:1.9-29: accepted value: `accepting' input.y:1.9-29: accepted value: `accepting'
]]) ]])

View File

@@ -1451,12 +1451,12 @@ dnl PARSER-EXIT-VALUE, PARSER-STDOUT, PARSER-STDERR
m4_define([AT_TEST_LR_DEFAULT_REDUCTIONS], m4_define([AT_TEST_LR_DEFAULT_REDUCTIONS],
[ [
AT_TEST_TABLES_AND_PARSE([[no %define lr.default-reductions]], AT_TEST_TABLES_AND_PARSE([[no %define lr.default-reductions]],
[[all]], [[]], [[full]], [[]],
[[]], [[]],
[$1], [$2], [[]], [$3]) [$1], [$2], [[]], [$3])
AT_TEST_TABLES_AND_PARSE([[%define lr.default-reductions all]], AT_TEST_TABLES_AND_PARSE([[%define lr.default-reductions full]],
[[all]], [[]], [[full]], [[]],
[[%define lr.default-reductions all]], [[%define lr.default-reductions full]],
[$1], [$2], [[]], [$3]) [$1], [$2], [[]], [$3])
AT_TEST_TABLES_AND_PARSE([[%define lr.default-reductions consistent]], AT_TEST_TABLES_AND_PARSE([[%define lr.default-reductions consistent]],
[[consistent]], [[]], [[consistent]], [[]],
@@ -1529,7 +1529,7 @@ state 3
2 | a . b 'a' 2 | a . b 'a'
3 | a . c 'b' 3 | a . c 'b'
5 b: . [$end, 'a'] 5 b: . [$end, 'a']
6 c: . ['b']]AT_COND_CASE([[all]], [[ 6 c: . ['b']]AT_COND_CASE([[full]], [[
'b' reduce using rule 6 (c) 'b' reduce using rule 6 (c)
$default reduce using rule 5 (b)]], [[ $default reduce using rule 5 (b)]], [[
@@ -1556,7 +1556,8 @@ state 5
'a' shift, and go to state 7 '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 state 6