]> git.saurik.com Git - bison.git/commitdiff
* tests/regression.at (Unresolved SR Conflicts):
authorAkim Demaille <akim@epita.fr>
Thu, 27 Dec 2001 18:13:59 +0000 (18:13 +0000)
committerAkim Demaille <akim@epita.fr>
Thu, 27 Dec 2001 18:13:59 +0000 (18:13 +0000)
(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.

ChangeLog
tests/regression.at

index 71ca161bd66f8d1458d8b5d682d638dabe1c2464..984bbc9755a5cfa2fff5e3e3cf36e6b165d3a289 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,30 @@
+2001-12-27  Akim Demaille  <akim@epita.fr>
+
+       * 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  <akim@epita.fr>
 
        * src/LR0.c (new_state): Recognize the final state by the fact it
index e9d2fd74cef1b15dcc4a393c43498fa865d989ee..937e5985edfcc4ec93221c8ce9bf763871fe2428 100644 (file)
@@ -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)
+
 
 
 ]])