AT_SETUP([Badly Collapsed GLR States])
-AT_DATA([glr-regr1.y],
+AT_DATA_GRAMMAR([glr-regr1.y],
[[/* Regression Test: Improper state compression */
/* Reported by Scott McPeak */
%{
-#include <stdio.h> // fgetc, printf
+#include <stdio.h>
#define YYSTYPE int
static YYSTYPE exprMerge (YYSTYPE x0, YYSTYPE x1);
+int yylex (void);
+int yyerror (char const *msg);
%}
static YYSTYPE exprMerge (YYSTYPE x0, YYSTYPE x1)
{
+ (void) x0;
+ (void) x1;
printf ("<OR>\n");
return 0;
}
-int main()
+int
+main (void)
{
- yyparse();
- return 0;
+ return yyparse ();
}
-int yyerror(char const *msg)
+int
+yyerror (char const *msg)
{
- printf("%s\n", msg);
- exit(4);
+ fprintf (stderr, "%s\n", msg);
+ exit (4);
}
-int yylex()
+int
+yylex (void)
{
- while (1) {
- int ch = fgetc(stdin);
- if (ch == EOF) {
- return 0; // bison's EOF
- } else if (ch == 'B' || ch == 'P') {
- return ch;
+ for (;;)
+ {
+ int ch = getchar ();
+ if (ch == EOF)
+ return 0;
+ else if (ch == 'B' || ch == 'P')
+ return ch;
}
- }
}
]])
[glr-regr1.y: warning: 1 shift/reduce conflict
])
AT_COMPILE([glr-regr1])
-AT_CHECK([[echo BPBPB | ./glr-regr1]], 0,
+AT_CHECK([[echo BPBPB | ./glr-regr1]], 0,
[[E -> 'B'
E -> 'B'
E -> E 'P' E