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>
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
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

View File

@@ -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));

View File

@@ -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);

View File

@@ -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);
}

View File

@@ -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'
]])

View File

@@ -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