bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

22-fyi-fix-regression.at


From: Akim Demaille
Subject: 22-fyi-fix-regression.at
Date: Thu, 27 Dec 2001 19:02:35 +0100

prcs: Producing diffs from 0.223 to 0.224(w).
Index: ChangeLog
from  Akim Demaille  <address@hidden>
        * 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.
        
        
Index: tests/regression.at
--- tests/regression.at Thu, 27 Dec 2001 14:58:13 +0100 akim
+++ tests/regression.at Thu, 27 Dec 2001 17:18:10 +0100 akim
@@ -61,19 +61,20 @@ exp: exp OP exp | NUM;
 
 # 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 @@ exp: exp OP exp | NUM;
 
 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 @@ exp: exp OP exp | NUM;
 
 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 @@ exp: exp OP exp | NUM;
 
 # 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 @@ exp: exp OP exp | NUM;
 
 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 @@ exp: exp OP exp | NUM;
 
 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 @@ expr:
 [[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 @@ expr:
 
 Terminals, with rules where they appear
 
-$ (0)
+$ (0) 0
 'a' (97) 2
 'b' (98) 2
 'c' (99) 4
@@ -313,11 +314,13 @@ expr:
 
 Nonterminals, with rules where they appear
 
-expr (6)
-    on left: 2 4
address@hidden (7)
+$axiom (6)
+    on left: 0
+expr (7)
+    on left: 2 4, on right: 0
address@hidden (8)
     on left: 1, on right: 2
address@hidden (8)
address@hidden (9)
     on left: 3, on right: 4
 
 
@@ -325,10 +328,8 @@ expr:
 
     '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 @@ expr:
 
     $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)
+
 
 
 ]])



reply via email to

[Prev in Thread] Current Thread [Next in Thread]