]> git.saurik.com Git - bison.git/blobdiff - tests/reduce.at
tables: scope reduction
[bison.git] / tests / reduce.at
index 2a594539d743a3fd3697aef94ffbbba9c13a4638..8ac894c0655f5cb67ccba9cfb98ebcf099d45dfe 100644 (file)
@@ -1,5 +1,6 @@
 # Exercising Bison Grammar Reduction.                      -*- Autotest -*-
-# Copyright (C) 2001-2002, 2007-2010 Free Software Foundation, Inc.
+
+# Copyright (C) 2001-2002, 2007-2012 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -87,16 +88,16 @@ exp: useful;
 ]])
 
 AT_BISON_CHECK([[input.y]], 0, [],
-[[input.y: warning: 9 nonterminals useless in grammar
-input.y:4.8-15: warning: nonterminal useless in grammar: useless1
-input.y:5.8-15: warning: nonterminal useless in grammar: useless2
-input.y:6.8-15: warning: nonterminal useless in grammar: useless3
-input.y:7.8-15: warning: nonterminal useless in grammar: useless4
-input.y:8.8-15: warning: nonterminal useless in grammar: useless5
-input.y:9.8-15: warning: nonterminal useless in grammar: useless6
-input.y:10.8-15: warning: nonterminal useless in grammar: useless7
-input.y:11.8-15: warning: nonterminal useless in grammar: useless8
-input.y:12.8-15: warning: nonterminal useless in grammar: useless9
+[[input.y: warning: 9 nonterminals useless in grammar [-Wother]
+input.y:4.8-15: warning: nonterminal useless in grammar: useless1 [-Wother]
+input.y:5.8-15: warning: nonterminal useless in grammar: useless2 [-Wother]
+input.y:6.8-15: warning: nonterminal useless in grammar: useless3 [-Wother]
+input.y:7.8-15: warning: nonterminal useless in grammar: useless4 [-Wother]
+input.y:8.8-15: warning: nonterminal useless in grammar: useless5 [-Wother]
+input.y:9.8-15: warning: nonterminal useless in grammar: useless6 [-Wother]
+input.y:10.8-15: warning: nonterminal useless in grammar: useless7 [-Wother]
+input.y:11.8-15: warning: nonterminal useless in grammar: useless8 [-Wother]
+input.y:12.8-15: warning: nonterminal useless in grammar: useless9 [-Wother]
 ]])
 
 AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' input.output]], 0,
@@ -141,27 +142,86 @@ useless8: '8';
 useless9: '9';
 ]])
 
+AT_BISON_CHECK([[-fcaret input.y]], 0, [],
+[[input.y: warning: 9 nonterminals useless in grammar [-Wother]
+input.y: warning: 9 rules useless in grammar [-Wother]
+input.y:6.1-8: warning: nonterminal useless in grammar: useless1 [-Wother]
+ useless1: '1';
+ ^^^^^^^^
+input.y:7.1-8: warning: nonterminal useless in grammar: useless2 [-Wother]
+ useless2: '2';
+ ^^^^^^^^
+input.y:8.1-8: warning: nonterminal useless in grammar: useless3 [-Wother]
+ useless3: '3';
+ ^^^^^^^^
+input.y:9.1-8: warning: nonterminal useless in grammar: useless4 [-Wother]
+ useless4: '4';
+ ^^^^^^^^
+input.y:10.1-8: warning: nonterminal useless in grammar: useless5 [-Wother]
+ useless5: '5';
+ ^^^^^^^^
+input.y:11.1-8: warning: nonterminal useless in grammar: useless6 [-Wother]
+ useless6: '6';
+ ^^^^^^^^
+input.y:12.1-8: warning: nonterminal useless in grammar: useless7 [-Wother]
+ useless7: '7';
+ ^^^^^^^^
+input.y:13.1-8: warning: nonterminal useless in grammar: useless8 [-Wother]
+ useless8: '8';
+ ^^^^^^^^
+input.y:14.1-8: warning: nonterminal useless in grammar: useless9 [-Wother]
+ useless9: '9';
+ ^^^^^^^^
+input.y:6.11-13: warning: rule useless in grammar [-Wother]
+ useless1: '1';
+           ^^^
+input.y:7.11-13: warning: rule useless in grammar [-Wother]
+ useless2: '2';
+           ^^^
+input.y:8.11-13: warning: rule useless in grammar [-Wother]
+ useless3: '3';
+           ^^^
+input.y:9.11-13: warning: rule useless in grammar [-Wother]
+ useless4: '4';
+           ^^^
+input.y:10.11-13: warning: rule useless in grammar [-Wother]
+ useless5: '5';
+           ^^^
+input.y:11.11-13: warning: rule useless in grammar [-Wother]
+ useless6: '6';
+           ^^^
+input.y:12.11-13: warning: rule useless in grammar [-Wother]
+ useless7: '7';
+           ^^^
+input.y:13.11-13: warning: rule useless in grammar [-Wother]
+ useless8: '8';
+           ^^^
+input.y:14.11-13: warning: rule useless in grammar [-Wother]
+ useless9: '9';
+           ^^^
+]])
+
 AT_BISON_CHECK([[input.y]], 0, [],
-[[input.y: warning: 9 nonterminals useless in grammar
-input.y: warning: 9 rules useless in grammar
-input.y:6.1-8: warning: nonterminal useless in grammar: useless1
-input.y:7.1-8: warning: nonterminal useless in grammar: useless2
-input.y:8.1-8: warning: nonterminal useless in grammar: useless3
-input.y:9.1-8: warning: nonterminal useless in grammar: useless4
-input.y:10.1-8: warning: nonterminal useless in grammar: useless5
-input.y:11.1-8: warning: nonterminal useless in grammar: useless6
-input.y:12.1-8: warning: nonterminal useless in grammar: useless7
-input.y:13.1-8: warning: nonterminal useless in grammar: useless8
-input.y:14.1-8: warning: nonterminal useless in grammar: useless9
-input.y:6.11-13: warning: rule useless in grammar: useless1: '1'
-input.y:7.11-13: warning: rule useless in grammar: useless2: '2'
-input.y:8.11-13: warning: rule useless in grammar: useless3: '3'
-input.y:9.11-13: warning: rule useless in grammar: useless4: '4'
-input.y:10.11-13: warning: rule useless in grammar: useless5: '5'
-input.y:11.11-13: warning: rule useless in grammar: useless6: '6'
-input.y:12.11-13: warning: rule useless in grammar: useless7: '7'
-input.y:13.11-13: warning: rule useless in grammar: useless8: '8'
-input.y:14.11-13: warning: rule useless in grammar: useless9: '9'
+[[input.y: warning: 9 nonterminals useless in grammar [-Wother]
+input.y: warning: 9 rules useless in grammar [-Wother]
+input.y:6.1-8: warning: nonterminal useless in grammar: useless1 [-Wother]
+input.y:7.1-8: warning: nonterminal useless in grammar: useless2 [-Wother]
+input.y:8.1-8: warning: nonterminal useless in grammar: useless3 [-Wother]
+input.y:9.1-8: warning: nonterminal useless in grammar: useless4 [-Wother]
+input.y:10.1-8: warning: nonterminal useless in grammar: useless5 [-Wother]
+input.y:11.1-8: warning: nonterminal useless in grammar: useless6 [-Wother]
+input.y:12.1-8: warning: nonterminal useless in grammar: useless7 [-Wother]
+input.y:13.1-8: warning: nonterminal useless in grammar: useless8 [-Wother]
+input.y:14.1-8: warning: nonterminal useless in grammar: useless9 [-Wother]
+input.y:6.11-13: warning: rule useless in grammar: useless1: '1' [-Wother]
+input.y:7.11-13: warning: rule useless in grammar: useless2: '2' [-Wother]
+input.y:8.11-13: warning: rule useless in grammar: useless3: '3' [-Wother]
+input.y:9.11-13: warning: rule useless in grammar: useless4: '4' [-Wother]
+input.y:10.11-13: warning: rule useless in grammar: useless5: '5' [-Wother]
+input.y:11.11-13: warning: rule useless in grammar: useless6: '6' [-Wother]
+input.y:12.11-13: warning: rule useless in grammar: useless7: '7' [-Wother]
+input.y:13.11-13: warning: rule useless in grammar: useless8: '8' [-Wother]
+input.y:14.11-13: warning: rule useless in grammar: useless9: '9' [-Wother]
 ]])
 
 AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' input.output]], 0,
@@ -237,14 +297,34 @@ non_productive: non_productive useless_token
 %%
 ]])
 
+AT_BISON_CHECK([[-fcaret not-reduced.y]], 0, [],
+[[not-reduced.y: warning: 2 nonterminals useless in grammar [-Wother]
+not-reduced.y: warning: 3 rules useless in grammar [-Wother]
+not-reduced.y:14.1-13: warning: nonterminal useless in grammar: not_reachable [-Wother]
+ not_reachable: useful  { /* A not reachable action. */ }
+ ^^^^^^^^^^^^^
+not-reduced.y:11.6-19: warning: nonterminal useless in grammar: non_productive [-Wother]
+    | non_productive    { /* A non productive action. */ }
+      ^^^^^^^^^^^^^^
+not-reduced.y:11.6-57: warning: rule useless in grammar [-Wother]
+    | non_productive    { /* A non productive action. */ }
+      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+not-reduced.y:14.16-56: warning: rule useless in grammar [-Wother]
+ not_reachable: useful  { /* A not reachable action. */ }
+                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+not-reduced.y:17.17-18.63: warning: rule useless in grammar [-Wother]
+ non_productive: non_productive useless_token
+                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+]])
+
 AT_BISON_CHECK([[not-reduced.y]], 0, [],
-[[not-reduced.y: warning: 2 nonterminals useless in grammar
-not-reduced.y: warning: 3 rules useless in grammar
-not-reduced.y:14.1-13: warning: nonterminal useless in grammar: not_reachable
-not-reduced.y:11.6-19: warning: nonterminal useless in grammar: non_productive
-not-reduced.y:11.6-57: warning: rule useless in grammar: exp: non_productive
-not-reduced.y:14.16-56: warning: rule useless in grammar: not_reachable: useful
-not-reduced.y:17.17-18.63: warning: rule useless in grammar: non_productive: non_productive useless_token
+[[not-reduced.y: warning: 2 nonterminals useless in grammar [-Wother]
+not-reduced.y: warning: 3 rules useless in grammar [-Wother]
+not-reduced.y:14.1-13: warning: nonterminal useless in grammar: not_reachable [-Wother]
+not-reduced.y:11.6-19: warning: nonterminal useless in grammar: non_productive [-Wother]
+not-reduced.y:11.6-57: warning: rule useless in grammar: exp: non_productive [-Wother]
+not-reduced.y:14.16-56: warning: rule useless in grammar: not_reachable: useful [-Wother]
+not-reduced.y:17.17-18.63: warning: rule useless in grammar: non_productive: non_productive useless_token [-Wother]
 ]])
 
 AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' not-reduced.output]], 0,
@@ -313,13 +393,13 @@ indirection: underivable;
 ]])
 
 AT_BISON_CHECK([[input.y]], 0, [],
-[[input.y: warning: 2 nonterminals useless in grammar
-input.y: warning: 3 rules useless in grammar
-input.y:5.15-25: warning: nonterminal useless in grammar: underivable
-input.y:6.14-24: warning: nonterminal useless in grammar: indirection
-input.y:5.15-25: warning: rule useless in grammar: exp: underivable
-input.y:6.14-24: warning: rule useless in grammar: underivable: indirection
-input.y:7.14-24: warning: rule useless in grammar: indirection: underivable
+[[input.y: warning: 2 nonterminals useless in grammar [-Wother]
+input.y: warning: 3 rules useless in grammar [-Wother]
+input.y:5.15-25: warning: nonterminal useless in grammar: underivable [-Wother]
+input.y:6.14-24: warning: nonterminal useless in grammar: indirection [-Wother]
+input.y:5.15-25: warning: rule useless in grammar: exp: underivable [-Wother]
+input.y:6.14-24: warning: rule useless in grammar: underivable: indirection [-Wother]
+input.y:7.14-24: warning: rule useless in grammar: indirection: underivable [-Wother]
 ]])
 
 AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' input.output]], 0,
@@ -349,8 +429,8 @@ exp: exp;
 ]])
 
 AT_BISON_CHECK([[input.y]], 1, [],
-[[input.y: warning: 2 nonterminals useless in grammar
-input.y: warning: 2 rules useless in grammar
+[[input.y: warning: 2 nonterminals useless in grammar [-Wother]
+input.y: warning: 2 rules useless in grammar [-Wother]
 input.y:3.1-3: fatal error: start symbol exp does not derive any sentence
 ]])
 
@@ -395,7 +475,7 @@ AT_TEST_LR_TYPE([[Single State Split]],
 [[%left 'a'
 // Conflict resolution renders state 12 unreachable for canonical LR(1).  We
 // keep it so that the paser table diff is easier to code.
-%define lr.keep-unreachable-states]],
+%define lr.keep-unreachable-state]],
 [[
 S: 'a' A 'a' /* rule 1 */
  | 'b' A 'b' /* rule 2 */
@@ -436,7 +516,7 @@ dnl BISON-STDERR
 [],
 
 dnl TABLES
-[[state 0
+[[State 0
 
     0 $accept: . S $end
     1 S: . 'a' A 'a'
@@ -450,7 +530,7 @@ dnl TABLES
     S  go to state 4
 
 
-state 1
+State 1
 
     1 S: 'a' . A 'a'
     4 A: . 'a' 'a'
@@ -461,7 +541,7 @@ state 1
     A  go to state 6
 
 
-state 2
+State 2
 
     2 S: 'b' . A 'b'
     4 A: . 'a' 'a'
@@ -472,7 +552,7 @@ state 2
     A  go to state 7
 
 
-state 3
+State 3
 
     3 S: 'c' . c
     4 A: . 'a' 'a'
@@ -486,14 +566,14 @@ state 3
     c  go to state 10
 
 
-state 4
+State 4
 
     0 $accept: S . $end
 
     $end  shift, and go to state 11
 
 
-state 5
+State 5
 
     4 A: 'a' . 'a'
     5  | 'a' .  ]AT_COND_CASE([[LALR]], [[['a', 'b']]], [[['a']]])[
@@ -504,21 +584,21 @@ state 5
     Conflict between rule 5 and token 'a' resolved as reduce (%left 'a').
 
 
-state 6
+State 6
 
     1 S: 'a' A . 'a'
 
     'a'  shift, and go to state 13
 
 
-state 7
+State 7
 
     2 S: 'b' A . 'b'
 
     'b'  shift, and go to state 14
 
 
-state 8
+State 8
 
     4 A: 'a' . 'a'
     5  | 'a' .  [$end]
@@ -532,7 +612,7 @@ state 8
                   [[$default]])[  reduce using rule 5 (A)
 
 
-state 9
+State 9
 
     7 c: A .]AT_COND_CASE([[canonical LR]], [[  [$end]]])[
 
@@ -540,7 +620,7 @@ state 9
                   [[$default]])[  reduce using rule 7 (c)
 
 
-state 10
+State 10
 
     3 S: 'c' c .]AT_COND_CASE([[canonical LR]], [[  [$end]]])[
 
@@ -548,14 +628,14 @@ state 10
                   [[$default]])[  reduce using rule 3 (S)
 
 
-state 11
+State 11
 
     0 $accept: S $end .
 
     $default  accept
 
 
-state 12
+State 12
 
     4 A: 'a' 'a' .]AT_COND_CASE([[canonical LR]], [[  ['a']]])[
 
@@ -563,7 +643,7 @@ state 12
                   [[$default]])[  reduce using rule 4 (A)
 
 
-state 13
+State 13
 
     1 S: 'a' A 'a' .]AT_COND_CASE([[canonical LR]], [[  [$end]]])[
 
@@ -571,7 +651,7 @@ state 13
                   [[$default]])[  reduce using rule 1 (S)
 
 
-state 14
+State 14
 
     2 S: 'b' A 'b' .]AT_COND_CASE([[canonical LR]], [[  [$end]]])[
 
@@ -579,7 +659,7 @@ state 14
                   [[$default]])[  reduce using rule 2 (S)
 
 
-state 15
+State 15
 
     6 c: 'a' 'b' .]AT_COND_CASE([[canonical LR]], [[  [$end]]])[
 
@@ -588,7 +668,7 @@ state 15
                                                                        [[]], [[
 
 
-state 16
+State 16
 
     4 A: 'a' . 'a'
     5  | 'a' .  ['b']
@@ -600,14 +680,14 @@ state 16
                   [[$default]])[  reduce using rule 5 (A)]AT_COND_CASE([[canonical LR]], [[
 
 
-state 17
+State 17
 
     4 A: 'a' 'a' .  [$end]
 
     $end  reduce using rule 4 (A)
 
 
-state 18
+State 18
 
     4 A: 'a' 'a' .  ['b']
 
@@ -628,7 +708,7 @@ AT_TEST_LR_TYPE([[Lane Split]],
 [[%left 'a'
 // Conflict resolution renders state 16 unreachable for canonical LR(1).  We
 // keep it so that the paser table diff is easier to code.
-%define lr.keep-unreachable-states]],
+%define lr.keep-unreachable-state]],
 [[
 /* Similar to the last test case set but two states must be split.  */
 S: 'a' A 'a' /* rule 1 */
@@ -652,7 +732,7 @@ dnl BISON-STDERR
 [],
 
 dnl TABLES
-[[state 0
+[[State 0
 
     0 $accept: . S $end
     1 S: . 'a' A 'a'
@@ -666,7 +746,7 @@ dnl TABLES
     S  go to state 4
 
 
-state 1
+State 1
 
     1 S: 'a' . A 'a'
     4 A: . 'a' 'a' 'a'
@@ -677,7 +757,7 @@ state 1
     A  go to state 6
 
 
-state 2
+State 2
 
     2 S: 'b' . A 'b'
     4 A: . 'a' 'a' 'a'
@@ -688,7 +768,7 @@ state 2
     A  go to state 7
 
 
-state 3
+State 3
 
     3 S: 'c' . c
     4 A: . 'a' 'a' 'a'
@@ -702,14 +782,14 @@ state 3
     c  go to state 10
 
 
-state 4
+State 4
 
     0 $accept: S . $end
 
     $end  shift, and go to state 11
 
 
-state 5
+State 5
 
     4 A: 'a' . 'a' 'a'
     5  | 'a' . 'a'
@@ -717,21 +797,21 @@ state 5
     'a'  shift, and go to state 12
 
 
-state 6
+State 6
 
     1 S: 'a' A . 'a'
 
     'a'  shift, and go to state 13
 
 
-state 7
+State 7
 
     2 S: 'b' A . 'b'
 
     'b'  shift, and go to state 14
 
 
-state 8
+State 8
 
     4 A: 'a' . 'a' 'a'
     5  | 'a' . 'a'
@@ -740,7 +820,7 @@ state 8
     'a'  shift, and go to state 15
 
 
-state 9
+State 9
 
     7 c: A .]AT_COND_CASE([[canonical LR]], [[  [$end]]])[
 
@@ -748,7 +828,7 @@ state 9
                   [[$default]])[  reduce using rule 7 (c)
 
 
-state 10
+State 10
 
     3 S: 'c' c .]AT_COND_CASE([[canonical LR]], [[  [$end]]])[
 
@@ -756,14 +836,14 @@ state 10
                   [[$default]])[  reduce using rule 3 (S)
 
 
-state 11
+State 11
 
     0 $accept: S $end .
 
     $default  accept
 
 
-state 12
+State 12
 
     4 A: 'a' 'a' . 'a'
     5  | 'a' 'a' .  ]AT_COND_CASE([[LALR]], [[['a', 'b']]], [[['a']]])[
@@ -774,7 +854,7 @@ state 12
     Conflict between rule 5 and token 'a' resolved as reduce (%left 'a').
 
 
-state 13
+State 13
 
     1 S: 'a' A 'a' .]AT_COND_CASE([[canonical LR]], [[  [$end]]])[
 
@@ -782,7 +862,7 @@ state 13
                   [[$default]])[  reduce using rule 1 (S)
 
 
-state 14
+State 14
 
     2 S: 'b' A 'b' .]AT_COND_CASE([[canonical LR]], [[  [$end]]])[
 
@@ -790,7 +870,7 @@ state 14
                   [[$default]])[  reduce using rule 2 (S)
 
 
-state 15
+State 15
 
     4 A: 'a' 'a' . 'a'
     5  | 'a' 'a' .  [$end]
@@ -804,7 +884,7 @@ state 15
                   [[$default]])[  reduce using rule 5 (A)
 
 
-state 16
+State 16
 
     4 A: 'a' 'a' 'a' .]AT_COND_CASE([[canonical LR]], [[  ['a']]])[
 
@@ -812,7 +892,7 @@ state 16
                   [[$default]])[  reduce using rule 4 (A)
 
 
-state 17
+State 17
 
     6 c: 'a' 'a' 'b' .]AT_COND_CASE([[canonical LR]], [[  [$end]]])[
 
@@ -821,7 +901,7 @@ state 17
                                                                        [[]], [[
 
 
-state 18
+State 18
 
     4 A: 'a' . 'a' 'a'
     5  | 'a' . 'a'
@@ -830,7 +910,7 @@ state 18
                                               [[19]])[
 
 
-state 19]AT_COND_CASE([[canonical LR]], [[
+State 19]AT_COND_CASE([[canonical LR]], [[
 
     4 A: 'a' 'a' 'a' .]AT_COND_CASE([[canonical LR]], [[  [$end]]])[
 
@@ -838,7 +918,7 @@ state 19]AT_COND_CASE([[canonical LR]], [[
                   [[$default]])[  reduce using rule 4 (A)
 
 
-state 20]])[
+State 20]])[
 
     4 A: 'a' 'a' . 'a'
     5  | 'a' 'a' .  ['b']
@@ -850,7 +930,7 @@ state 20]])[
                   [[$default]])[  reduce using rule 5 (A)]AT_COND_CASE([[canonical LR]], [[
 
 
-state 21
+State 21
 
     4 A: 'a' 'a' 'a' .]AT_COND_CASE([[canonical LR]], [[  ['b']]])[
 
@@ -872,7 +952,7 @@ AT_TEST_LR_TYPE([[Complex Lane Split]],
 [[%left 'a'
 // Conflict resolution renders state 16 unreachable for canonical LR(1).  We
 // keep it so that the paser table diff is easier to code.
-%define lr.keep-unreachable-states]],
+%define lr.keep-unreachable-state]],
 [[
 /* Similar to the last test case set but forseeing the S/R conflict from the
    first state that must be split is becoming difficult.  Imagine if B were
@@ -899,7 +979,7 @@ dnl BISON-STDERR
 [],
 
 dnl TABLES
-[[state 0
+[[State 0
 
     0 $accept: . S $end
     1 S: . 'a' A 'a'
@@ -913,7 +993,7 @@ dnl TABLES
     S  go to state 4
 
 
-state 1
+State 1
 
     1 S: 'a' . A 'a'
     4 A: . 'a' 'a' B
@@ -923,7 +1003,7 @@ state 1
     A  go to state 6
 
 
-state 2
+State 2
 
     2 S: 'b' . A 'b'
     4 A: . 'a' 'a' B
@@ -933,7 +1013,7 @@ state 2
     A  go to state 7
 
 
-state 3
+State 3
 
     3 S: 'c' . c
     4 A: . 'a' 'a' B
@@ -946,35 +1026,35 @@ state 3
     c  go to state 10
 
 
-state 4
+State 4
 
     0 $accept: S . $end
 
     $end  shift, and go to state 11
 
 
-state 5
+State 5
 
     4 A: 'a' . 'a' B
 
     'a'  shift, and go to state 12
 
 
-state 6
+State 6
 
     1 S: 'a' A . 'a'
 
     'a'  shift, and go to state 13
 
 
-state 7
+State 7
 
     2 S: 'b' A . 'b'
 
     'b'  shift, and go to state 14
 
 
-state 8
+State 8
 
     4 A: 'a' . 'a' B
     7 c: 'a' . 'a' 'b'
@@ -982,7 +1062,7 @@ state 8
     'a'  shift, and go to state 15
 
 
-state 9
+State 9
 
     8 c: A .]AT_COND_CASE([[canonical LR]], [[  [$end]]])[
 
@@ -990,7 +1070,7 @@ state 9
                   [[$default]])[  reduce using rule 8 (c)
 
 
-state 10
+State 10
 
     3 S: 'c' c .]AT_COND_CASE([[canonical LR]], [[  [$end]]])[
 
@@ -998,14 +1078,14 @@ state 10
                   [[$default]])[  reduce using rule 3 (S)
 
 
-state 11
+State 11
 
     0 $accept: S $end .
 
     $default  accept
 
 
-state 12
+State 12
 
     4 A: 'a' 'a' . B
     5 B: . 'a'
@@ -1019,7 +1099,7 @@ state 12
     Conflict between rule 6 and token 'a' resolved as reduce (%left 'a').
 
 
-state 13
+State 13
 
     1 S: 'a' A 'a' .]AT_COND_CASE([[canonical LR]], [[  [$end]]])[
 
@@ -1027,7 +1107,7 @@ state 13
                   [[$default]])[  reduce using rule 1 (S)
 
 
-state 14
+State 14
 
     2 S: 'b' A 'b' .]AT_COND_CASE([[canonical LR]], [[  [$end]]])[
 
@@ -1035,7 +1115,7 @@ state 14
                   [[$default]])[  reduce using rule 2 (S)
 
 
-state 15
+State 15
 
     4 A: 'a' 'a' . B
     5 B: . 'a'
@@ -1052,7 +1132,7 @@ state 15
     B  go to state ]AT_COND_CASE([[canonical LR]], [[21]], [[17]])[
 
 
-state 16
+State 16
 
     5 B: 'a' .]AT_COND_CASE([[canonical LR]], [[  ['a']]])[
 
@@ -1060,7 +1140,7 @@ state 16
                   [[$default]])[  reduce using rule 5 (B)
 
 
-state 17
+State 17
 
     4 A: 'a' 'a' B .]AT_COND_CASE([[canonical LR]], [[  ['a']]])[
 
@@ -1068,7 +1148,7 @@ state 17
                   [[$default]])[  reduce using rule 4 (A)
 
 
-state 18
+State 18
 
     7 c: 'a' 'a' 'b' .]AT_COND_CASE([[canonical LR]], [[  [$end]]])[
 
@@ -1076,7 +1156,7 @@ state 18
                   [[$default]])[  reduce using rule 7 (c)]AT_COND_CASE([[LALR]], [], [[
 
 
-state 19
+State 19
 
     4 A: 'a' . 'a' B
 
@@ -1084,21 +1164,21 @@ state 19
                                               [[20]])[
 
 
-state 20]AT_COND_CASE([[canonical LR]], [[
+State 20]AT_COND_CASE([[canonical LR]], [[
 
     5 B: 'a' .  [$end]
 
     $end  reduce using rule 5 (B)
 
 
-state 21
+State 21
 
     4 A: 'a' 'a' B .  [$end]
 
     $end  reduce using rule 4 (A)
 
 
-state 22]])[
+State 22]])[
 
     4 A: 'a' 'a' . B
     5 B: . 'a'
@@ -1113,14 +1193,14 @@ state 22]])[
     B  go to state ]AT_COND_CASE([[canonical LR]], [[24
 
 
-state 23
+State 23
 
     5 B: 'a' .  ['b']
 
     'b'  reduce using rule 5 (B)
 
 
-state 24
+State 24
 
     4 A: 'a' 'a' B .  ['b']
 
@@ -1138,7 +1218,7 @@ dnl PARSER-EXIT-VALUE, PARSER-STDOUT, PARSER-STDERR
 ]])])
 
 AT_TEST_LR_TYPE([[Split During Added Lookahead Propagation]],
-[[%define lr.keep-unreachable-states]],
+[[%define lr.keep-unreachable-state]],
 [[
 /* The partial state chart diagram below is for LALR(1).  State 0 is the start
    state.  States are iterated for successor construction in numerical order.
@@ -1190,11 +1270,11 @@ dnl INPUT
 
 dnl BISON-STDERR
 [AT_COND_CASE([[LALR]],
-[[input.y: conflicts: 1 reduce/reduce
+[[input.y: warning: 1 reduce/reduce conflict [-Wconflicts-rr]
 ]], [])],
 
 dnl TABLES
-[[state 0
+[[State 0
 
     0 $accept: . S $end
     1 S: . 'a' A 'f'
@@ -1212,7 +1292,7 @@ dnl TABLES
     S  go to state 4
 
 
-state 1
+State 1
 
     1 S: 'a' . A 'f'
     2  | 'a' . B
@@ -1225,7 +1305,7 @@ state 1
     B  go to state 7
 
 
-state 2
+State 2
 
     3 S: 'b' . A 'f'
     4  | 'b' . B 'g'
@@ -1239,7 +1319,7 @@ state 2
     B  go to state 10
 
 
-state 3
+State 3
 
     6 S: 'c' . 'c' A 'g'
     7  | 'c' . 'c' B
@@ -1247,14 +1327,14 @@ state 3
     'c'  shift, and go to state 11
 
 
-state 4
+State 4
 
     0 $accept: S . $end
 
     $end  shift, and go to state 12
 
 
-state 5
+State 5
 
     8 A: 'd' . 'e'
     9 B: 'd' . 'e'
@@ -1264,14 +1344,14 @@ state 5
                                                [[20]])[
 
 
-state 6
+State 6
 
     1 S: 'a' A . 'f'
 
     'f'  shift, and go to state 14
 
 
-state 7
+State 7
 
     2 S: 'a' B .]AT_COND_CASE([[canonical LR]], [[  [$end]]])[
 
@@ -1279,7 +1359,7 @@ state 7
                   [[$default]])[  reduce using rule 2 (S)
 
 
-state 8
+State 8
 
     5 S: 'b' 'd' .  [$end]
     8 A: 'd' . 'e'
@@ -1292,21 +1372,21 @@ state 8
                   [[$default]])[  reduce using rule 5 (S)
 
 
-state 9
+State 9
 
     3 S: 'b' A . 'f'
 
     'f'  shift, and go to state 15
 
 
-state 10
+State 10
 
     4 S: 'b' B . 'g'
 
     'g'  shift, and go to state 16
 
 
-state 11
+State 11
 
     6 S: 'c' 'c' . A 'g'
     7  | 'c' 'c' . B
@@ -1320,14 +1400,14 @@ state 11
     B  go to state 18
 
 
-state 12
+State 12
 
     0 $accept: S $end .
 
     $default  accept]AT_COND_CASE([[LALR]], [[
 
 
-state 13
+State 13
 
     8 A: 'd' 'e' .  ['f', 'g']
     9 B: 'd' 'e' .  [$end, 'g']
@@ -1338,7 +1418,7 @@ state 13
     $default  reduce using rule 8 (A)]], [[
 
 
-state 13
+State 13
 
     8 A: 'd' 'e' .  ['f']
     9 B: 'd' 'e' .  ]AT_COND_CASE([[canonical LR]], [[[$end]]], [[['g']]])[
@@ -1349,7 +1429,7 @@ state 13
                   [[$default]])[  reduce using rule 8 (A)]])[
 
 
-state 14
+State 14
 
     1 S: 'a' A 'f' .]AT_COND_CASE([[canonical LR]], [[  [$end]]])[
 
@@ -1357,7 +1437,7 @@ state 14
                   [[$default]])[  reduce using rule 1 (S)
 
 
-state 15
+State 15
 
     3 S: 'b' A 'f' .]AT_COND_CASE([[canonical LR]], [[  [$end]]])[
 
@@ -1365,7 +1445,7 @@ state 15
                   [[$default]])[  reduce using rule 3 (S)
 
 
-state 16
+State 16
 
     4 S: 'b' B 'g' .]AT_COND_CASE([[canonical LR]], [[  [$end]]])[
 
@@ -1373,14 +1453,14 @@ state 16
                   [[$default]])[  reduce using rule 4 (S)
 
 
-state 17
+State 17
 
     6 S: 'c' 'c' A . 'g'
 
     'g'  shift, and go to state 19
 
 
-state 18
+State 18
 
     7 S: 'c' 'c' B .]AT_COND_CASE([[canonical LR]], [[  [$end]]])[
 
@@ -1388,7 +1468,7 @@ state 18
                   [[$default]])[  reduce using rule 7 (S)
 
 
-state 19
+State 19
 
     6 S: 'c' 'c' A 'g' .]AT_COND_CASE([[canonical LR]], [[  [$end]]])[
 
@@ -1397,7 +1477,7 @@ state 19
                                                                        [[]], [[
 
 
-state 20]AT_COND_CASE([[canonical LR]], [[
+State 20]AT_COND_CASE([[canonical LR]], [[
 
     8 A: 'd' 'e' .  ['f']
     9 B: 'd' 'e' .  ['g']
@@ -1406,7 +1486,7 @@ state 20]AT_COND_CASE([[canonical LR]], [[
     'g'  reduce using rule 9 (B)
 
 
-state 21
+State 21
 
     8 A: 'd' . 'e'
     9 B: 'd' . 'e'
@@ -1414,7 +1494,7 @@ state 21
     'e'  shift, and go to state 22
 
 
-state 22
+State 22
 
     8 A: 'd' 'e' .  ['g']
     9 B: 'd' 'e' .  [$end]
@@ -1442,28 +1522,28 @@ dnl PARSER-EXIT-VALUE, PARSER-STDOUT, PARSER-STDERR
 
 
 ## ------------------------------- ##
-## %define lr.default-reductions.  ##
+## %define lr.default-reduction.  ##
 ## ------------------------------- ##
 
 # AT_TEST_LR_DEFAULT_REDUCTIONS(GRAMMAR, INPUT, TABLES)
 # -----------------------------------------------------
 m4_define([AT_TEST_LR_DEFAULT_REDUCTIONS],
 [
-AT_TEST_TABLES_AND_PARSE([[no %define lr.default-reductions]],
-                         [[all]], [[]],
+AT_TEST_TABLES_AND_PARSE([[no %define lr.default-reduction]],
+                         [[most]], [[]],
                          [[]],
                          [$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-reduction most]],
+                         [[most]], [[]],
+                         [[%define lr.default-reduction most]],
                          [$1], [$2], [[]], [$3])
-AT_TEST_TABLES_AND_PARSE([[%define lr.default-reductions consistent]],
+AT_TEST_TABLES_AND_PARSE([[%define lr.default-reduction consistent]],
                          [[consistent]], [[]],
-                         [[%define lr.default-reductions consistent]],
+                         [[%define lr.default-reduction consistent]],
                          [$1], [$2], [[]], [$3])
-AT_TEST_TABLES_AND_PARSE([[%define lr.default-reductions accepting]],
+AT_TEST_TABLES_AND_PARSE([[%define lr.default-reduction accepting]],
                          [[accepting]], [[]],
-                         [[%define lr.default-reductions accepting]],
+                         [[%define lr.default-reduction accepting]],
                          [$1], [$2], [[]], [$3])
 ])
 
@@ -1490,7 +1570,7 @@ c: ;
 ]],
 dnl Visit each state mentioned above.
 [['a', 'a']],
-[[state 0
+[[State 0
 
     0 $accept: . start $end
     1 start: . a b
@@ -1504,7 +1584,7 @@ dnl Visit each state mentioned above.
     a      go to state 3
 
 
-state 1
+State 1
 
     4 a: 'a' .]AT_COND_CASE([[accepting]], [[  [$end, 'a', 'b']
 
@@ -1515,20 +1595,20 @@ state 1
     $default  reduce using rule 4 (a)]])[
 
 
-state 2
+State 2
 
     0 $accept: start . $end
 
     $end  shift, and go to state 4
 
 
-state 3
+State 3
 
     1 start: a . b
     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([[most]], [[
 
     'b'       reduce using rule 6 (c)
     $default  reduce using rule 5 (b)]], [[
@@ -1541,31 +1621,32 @@ state 3
     c  go to state 6
 
 
-state 4
+State 4
 
     0 $accept: start $end .
 
     $default  accept
 
 
-state 5
+State 5
 
     1 start: a b .  [$end]
     2      | a b . 'a'
 
     'a'  shift, and go to state 7
 
-    ]AT_COND_CASE([[all]], [[$default]], [[$end]])[  reduce using rule 1 (start)
+    ]AT_COND_CASE([[most]], [[$default]],
+                  [[$end]])[  reduce using rule 1 (start)
 
 
-state 6
+State 6
 
     3 start: a c . 'b'
 
     'b'  shift, and go to state 8
 
 
-state 7
+State 7
 
     2 start: a b 'a' .]AT_COND_CASE([[accepting]], [[  [$end]
 
@@ -1574,7 +1655,7 @@ state 7
     $default  reduce using rule 2 (start)]])[
 
 
-state 8
+State 8
 
     3 start: a c 'b' .]AT_COND_CASE([[accepting]], [[  [$end]