From: Akim Demaille Date: Thu, 27 Dec 2001 18:13:59 +0000 (+0000) Subject: * tests/regression.at (Unresolved SR Conflicts): X-Git-Tag: before-m4-back-end~80 X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/b365aa058967348e2161fe0e5c11d8943f13f4c2 * tests/regression.at (Unresolved SR Conflicts): (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes below. * src/LR0.c (new_state): Recognize the final state by the fact it is reached by eoftoken. (insert_start_shifting_state, insert_eof_shifting_state) (insert_accepting_state, augment_automaton): Remove, since now these states are automatically computed from the initial state. (generate_states): Adjust. * src/print.c: When reporting a rule number to the user, substract 1, so that the axiom rule is rule 0, and the first user rule is 1. * src/reduce.c: Likewise. * src/print_graph.c (print_core): For the time being, just as for the report, depend upon --trace-flags to dump the full set of items. * src/reader.c (readgram): Once the grammar read, insert the rule 0: `$axiom: START-SYMBOL $'. * tests/set.at: Adjust: rule 0 is now displayed, and since the number of the states has changed (the final state is no longer necessarily the last), catch up. * tests/regression.at: Partly catch up. --- diff --git a/ChangeLog b/ChangeLog index 71ca161b..984bbc97 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,30 @@ +2001-12-27 Akim Demaille + + * tests/regression.at (Unresolved SR Conflicts): + (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes + below. + + + * src/LR0.c (new_state): Recognize the final state by the fact it + is reached by eoftoken. + (insert_start_shifting_state, insert_eof_shifting_state) + (insert_accepting_state, augment_automaton): Remove, since now + these states are automatically computed from the initial state. + (generate_states): Adjust. + * src/print.c: When reporting a rule number to the user, substract + 1, so that the axiom rule is rule 0, and the first user rule is 1. + * src/reduce.c: Likewise. + * src/print_graph.c (print_core): For the time being, just as for + the report, depend upon --trace-flags to dump the full set of + items. + * src/reader.c (readgram): Once the grammar read, insert the rule + 0: `$axiom: START-SYMBOL $'. + * tests/set.at: Adjust: rule 0 is now displayed, and since the + number of the states has changed (the final state is no longer + necessarily the last), catch up. + * tests/regression.at: Partly catch up. + + 2001-12-27 Akim Demaille * src/LR0.c (new_state): Recognize the final state by the fact it diff --git a/tests/regression.at b/tests/regression.at index e9d2fd74..937e5985 100644 --- a/tests/regression.at +++ b/tests/regression.at @@ -61,19 +61,20 @@ AT_CHECK([bison input.y -o input.c -v], 0, [], # Check the contents of the report. AT_CHECK([cat input.output], [], -[[State 4 contains 1 shift/reduce conflict. +[[State 5 contains 1 shift/reduce conflict. Grammar Number, Line, Rule + 0 4 $axiom -> exp $ 1 3 exp -> exp OP exp 2 3 exp -> NUM Terminals, with rules where they appear -$ (0) +$ (0) 0 error (256) NUM (257) 2 OP (258) 1 @@ -81,8 +82,10 @@ OP (258) 1 Nonterminals, with rules where they appear -exp (5) - on left: 1 2, on right: 1 +$axiom (5) + on left: 0 +exp (6) + on left: 1 2, on right: 0 1 state 0 @@ -103,44 +106,41 @@ state 1 state 2 + $axiom -> exp . $ (rule 0) exp -> exp . OP exp (rule 1) - $ shift, and go to state 5 - OP shift, and go to state 3 + $ shift, and go to state 3 + OP shift, and go to state 4 state 3 - exp -> exp OP . exp (rule 1) - - NUM shift, and go to state 1 - - exp go to state 4 + $axiom -> exp $ . (rule 0) + $default accept state 4 - exp -> exp . OP exp (rule 1) - exp -> exp OP exp . (rule 1) + exp -> exp OP . exp (rule 1) - OP shift, and go to state 3 + NUM shift, and go to state 1 - OP [reduce using rule 1 (exp)] - $default reduce using rule 1 (exp) + exp go to state 5 state 5 - $ shift, and go to state 6 - + exp -> exp . OP exp (rule 1) + exp -> exp OP exp . (rule 1) + OP shift, and go to state 4 -state 6 + OP [reduce using rule 1 (exp)] + $default reduce using rule 1 (exp) - $default accept ]]) @@ -165,19 +165,20 @@ AT_CHECK([bison input.y -o input.c -v], 0, [], []) # Check the contents of the report. AT_CHECK([cat input.output], [], -[[Conflict in state 4 between rule 1 and token OP resolved as shift. +[[Conflict in state 5 between rule 2 and token OP resolved as shift. Grammar Number, Line, Rule + 0 5 $axiom -> exp $ 1 4 exp -> exp OP exp 2 4 exp -> NUM Terminals, with rules where they appear -$ (0) +$ (0) 0 error (256) NUM (257) 2 OP (258) 1 @@ -185,8 +186,10 @@ OP (258) 1 Nonterminals, with rules where they appear -exp (5) - on left: 1 2, on right: 1 +$axiom (5) + on left: 0 +exp (6) + on left: 1 2, on right: 0 1 state 0 @@ -207,43 +210,40 @@ state 1 state 2 + $axiom -> exp . $ (rule 0) exp -> exp . OP exp (rule 1) - $ shift, and go to state 5 - OP shift, and go to state 3 + $ shift, and go to state 3 + OP shift, and go to state 4 state 3 - exp -> exp OP . exp (rule 1) - - NUM shift, and go to state 1 - - exp go to state 4 + $axiom -> exp $ . (rule 0) + $default accept state 4 - exp -> exp . OP exp (rule 1) - exp -> exp OP exp . (rule 1) + exp -> exp OP . exp (rule 1) - OP shift, and go to state 3 + NUM shift, and go to state 1 - $default reduce using rule 1 (exp) + exp go to state 5 state 5 - $ shift, and go to state 6 - + exp -> exp . OP exp (rule 1) + exp -> exp OP exp . (rule 1) + OP shift, and go to state 4 -state 6 + $default reduce using rule 1 (exp) - $default accept ]]) @@ -296,6 +296,7 @@ AT_CHECK([cat input.output], [], [[Grammar Number, Line, Rule + 0 28 $axiom -> expr $ 1 2 @1 -> /* empty */ 2 2 expr -> 'a' @1 'b' 3 15 @2 -> /* empty */ @@ -304,7 +305,7 @@ AT_CHECK([cat input.output], [], Terminals, with rules where they appear -$ (0) +$ (0) 0 'a' (97) 2 'b' (98) 2 'c' (99) 4 @@ -313,11 +314,13 @@ error (256) Nonterminals, with rules where they appear -expr (6) - on left: 2 4 -@1 (7) +$axiom (6) + on left: 0 +expr (7) + on left: 2 4, on right: 0 +@1 (8) on left: 1, on right: 2 -@2 (8) +@2 (9) on left: 3, on right: 4 @@ -325,10 +328,8 @@ state 0 'a' shift, and go to state 1 - $default reduce using rule 3 (@2) - - expr go to state 6 - @2 go to state 2 + expr go to state 2 + @2 go to state 3 @@ -338,51 +339,55 @@ state 1 $default reduce using rule 1 (@1) - @1 go to state 3 + @1 go to state 4 state 2 - expr -> @2 . 'c' (rule 4) + $axiom -> expr . $ (rule 0) - 'c' shift, and go to state 4 + $ shift, and go to state 5 state 3 - expr -> 'a' @1 . 'b' (rule 2) + expr -> @2 . 'c' (rule 4) - 'b' shift, and go to state 5 + 'c' shift, and go to state 6 state 4 - expr -> @2 'c' . (rule 4) + expr -> 'a' @1 . 'b' (rule 2) - $default reduce using rule 4 (expr) + 'b' shift, and go to state 7 state 5 - expr -> 'a' @1 'b' . (rule 2) - - $default reduce using rule 2 (expr) + $axiom -> expr $ . (rule 0) + $default accept state 6 - $ shift, and go to state 7 + expr -> @2 'c' . (rule 4) + + $default reduce using rule 4 (expr) state 7 - $default accept + expr -> 'a' @1 'b' . (rule 2) + + $default reduce using rule 2 (expr) + ]])