* 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.
This commit is contained in:
Akim Demaille
2002-01-06 20:50:08 +00:00
parent 3460813bdb
commit 2b25d624f6
4 changed files with 34 additions and 5 deletions

View File

@@ -1,3 +1,12 @@
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.

View 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');

View File

@@ -18,6 +18,29 @@
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. ##
## ------------------ ##

View 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