* src/reader.c (parse_braces): Don't fetch the next char, the
authorAkim Demaille <akim@epita.fr>
Sun, 6 Jan 2002 20:50:08 +0000 (20:50 +0000)
committerAkim Demaille <akim@epita.fr>
Sun, 6 Jan 2002 20:50:08 +0000 (20:50 +0000)
convention is to fetch on entry.
* tests/torture.at (GNU Cim Grammar): Reintroduce their weird
'switch' without a following semicolon.
* tests/regression.at (braces parsing): New.

ChangeLog
src/reader.c
tests/regression.at
tests/torture.at

index 41c5fcf..c5a88c0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2002-01-06  Akim Demaille  <akim@epita.fr>
 
+       * src/reader.c (parse_braces): Don't fetch the next char, the
+       convention is to fetch on entry.
+       * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
+       'switch' without a following semicolon.
+       * tests/regression.at (braces parsing): New.
+
+       
+2002-01-06  Akim Demaille  <akim@epita.fr>
+
        Bison is dead wrong in its RR conflict reports.
 
        * tests/torture.at (GNU Cim Grammar): New.
index 9816c61..cf3e18f 100644 (file)
@@ -1154,10 +1154,7 @@ parse_braces (symbol_list *rule, int stack_offset)
 
       /* Above loop exits when C is '}'.  */
       if (--count)
-       {
-         obstack_1grow (&action_obstack, c);
-         c = getc (finput);
-       }
+       obstack_1grow (&action_obstack, c);
     }
 
   obstack_1grow (&action_obstack, '\0');
index 7617012..849f526 100644 (file)
 
 AT_BANNER([[Regression tests.]])
 
+
+## ---------------- ##
+## Braces parsing.  ##
+## ---------------- ##
+
+
+AT_SETUP([braces parsing])
+
+AT_DATA([input.y],
+[[/* Bison used to swallow the character after `}'. */
+
+%%
+exp: { tests = {{{{{{{{{{}}}}}}}}}}; }
+%%
+]])
+
+AT_CHECK([bison -v input.y -o input.c], 0, ignore, ignore)
+
+AT_CHECK([fgrep 'tests = {{{{{{{{{{}}}}}}}}}};' input.c], 0, [ignore])
+
+AT_CLEANUP
+
+
 ## ------------------ ##
 ## Duplicate string.  ##
 ## ------------------ ##
index cb25ded..262a11d 100644 (file)
@@ -1208,7 +1208,7 @@ EXPRESSION_SIMP : EXPRESSION_SIMP
                                         case HLE: mout(MLE);break;
                                         case HGT: mout(MGT);break;
                                         case HGE: mout(MGE);break;
-                                    }$$=NULL;}
+                                    }$$=NULL;}
                 |       EXPRESSION_SIMP
                         HREFRELOPERATOR
                         EXPRESSION_SIMP