]> git.saurik.com Git - bison.git/blobdiff - tests/glr-regression.at
tests: address syntax-check failures
[bison.git] / tests / glr-regression.at
index 98ebdfa6d5c26742cdda049e35bc4269631bc5c7..41fc7bc73a3872cd7d6ec975ba1d2b34773139a9 100644 (file)
@@ -18,9 +18,9 @@
 
 AT_BANNER([[GLR Regression Tests]])
 
-## --------------------------- ##
-## Badly Collapsed GLR States. ##
-## --------------------------- ##
+## ---------------------------- ##
+## Badly Collapsed GLR States.  ##
+## ---------------------------- ##
 
 AT_SETUP([Badly Collapsed GLR States])
 
@@ -67,9 +67,13 @@ static YYSTYPE exprMerge (YYSTYPE x0, YYSTYPE x1)
   return 0;
 }
 
+const char *input = YY_NULL;
+
 int
-main (void)
+main (int argc, const char* argv[])
 {
+  assert (argc == 2);
+  input = argv[1];
   return yyparse ();
 }
 
@@ -78,16 +82,7 @@ main (void)
 int
 yylex (void)
 {
-  for (;;)
-    {
-      int ch;
-      assert (!feof (stdin));
-      ch = getchar ();
-      if (ch == EOF)
-       return 0;
-      else if (ch == 'B' || ch == 'P')
-       return ch;
-    }
+  return *input++;
 }
 ]])
 AT_BISON_OPTION_POPDEFS
@@ -96,7 +91,7 @@ AT_BISON_CHECK([[-o glr-regr1.c glr-regr1.y]], 0, [],
 [[glr-regr1.y: warning: 1 shift/reduce conflict [-Wconflicts-sr]
 ]])
 AT_COMPILE([glr-regr1])
-AT_PARSER_CHECK([[echo BPBPB | ./glr-regr1]], 0,
+AT_PARSER_CHECK([[./glr-regr1 BPBPB]], 0,
 [[E -> 'B'
 E -> 'B'
 E -> E 'P' E
@@ -110,9 +105,9 @@ E -> E 'P' E
 
 AT_CLEANUP
 
-## ------------------------------------------------------------ ##
-## Improper handling of embedded actions and $-N in GLR parsers ##
-## ------------------------------------------------------------ ##
+## -------------------------------------------------------------- ##
+## Improper handling of embedded actions and $-N in GLR parsers ##
+## -------------------------------------------------------------- ##
 
 AT_SETUP([Improper handling of embedded actions and dollar(-N) in GLR parsers])
 
@@ -200,9 +195,14 @@ yylex (void)
 int
 main (int argc, char **argv)
 {
+  int res;
   input = stdin;
-  if (argc == 2 && !(input = fopen (argv[1], "r"))) return 3;
-  return yyparse ();
+  if (argc == 2 && !(input = fopen (argv[1], "r")))
+    return 3;
+  res = yyparse ();
+  if (argc == 2 && fclose (input))
+    return 4;
+  return res;
 }
 ]])
 AT_BISON_OPTION_POPDEFS
@@ -212,23 +212,34 @@ AT_BISON_CHECK([[-o glr-regr2a.c glr-regr2a.y]], 0, [],
 ]])
 AT_COMPILE([glr-regr2a])
 
-AT_PARSER_CHECK([[echo s VARIABLE_1 t v x q | ./glr-regr2a]], 0,
+AT_DATA([input1.txt],
+[[s VARIABLE_1 t v x q
+]])
+AT_PARSER_CHECK([[./glr-regr2a input1.txt]], 0,
 [[Variable: 'VARIABLE_1'
-]], [])
-AT_PARSER_CHECK([[echo s VARIABLE_1 , ANOTHER_VARIABLE_2 t e | ./glr-regr2a]],
+]])
+
+AT_DATA([input2.txt],
+[[s VARIABLE_1 , ANOTHER_VARIABLE_2 t e
+]])
+AT_PARSER_CHECK([[./glr-regr2a input2.txt]],
 0,
 [[Varlist: 'VARIABLE_1,ANOTHER_VARIABLE_2'
 ]])
-AT_PARSER_CHECK([[echo s VARIABLE_3 t v x | ./glr-regr2a]], 0,
+
+AT_DATA([input3.txt],
+[[s VARIABLE_3 t v x
+]])
+AT_PARSER_CHECK([[./glr-regr2a input3.txt]], 0,
 [[Variable: 'VARIABLE_3'
-]], [])
+]])
 
 
 AT_CLEANUP
 
-## ------------------------------------------------------------ ##
-## Improper merging of GLR delayed action sets                  ##
-## ------------------------------------------------------------ ##
+## --------------------------------------------- ##
+## Improper merging of GLR delayed action sets.  ##
+## --------------------------------------------- ##
 
 AT_SETUP([Improper merging of GLR delayed action sets])
 
@@ -317,9 +328,14 @@ int yylex (void)
 int
 main(int argc, char* argv[])
 {
+  int res;
   input = stdin;
-  if (argc == 2 && !(input = fopen (argv[1], "r"))) return 3;
-  return yyparse ();
+  if (argc == 2 && !(input = fopen (argv[1], "r")))
+    return 3;
+  res = yyparse ();
+  if (argc == 2 && fclose (input))
+    return 4;
+  return res;
 }
 ]])
 AT_BISON_OPTION_POPDEFS
@@ -330,18 +346,21 @@ glr-regr3.y: warning: 1 reduce/reduce conflict [-Wconflicts-rr]
 ]])
 AT_COMPILE([glr-regr3])
 
-AT_PARSER_CHECK([[echo p1 t4 o2 p1 p1 t1 o1 t2 p2 o1 t3 p2 p2 | ./glr-regr3]],
+AT_DATA([input.txt],
+[[p1 t4 o2 p1 p1 t1 o1 t2 p2 o1 t3 p2 p2
+]])
+AT_PARSER_CHECK([[./glr-regr3 input.txt]],
 0,
 [[Result: 1c04
-]], [])
+]])
 
 AT_CLEANUP
 
 
-## ------------------------------------------------------------------------- ##
-## Duplicate representation of merged trees.  See                           ##
-## <http://lists.gnu.org/archive/html/help-bison/2005-07/msg00013.html>.     ##
-## ------------------------------------------------------------------------- ##
+## ---------------------------------------------------------------------- ##
+## Duplicate representation of merged trees.  See                         ##
+## <http://lists.gnu.org/archive/html/help-bison/2005-07/msg00013.html>.  ##
+## ---------------------------------------------------------------------- ##
 
 AT_SETUP([Duplicate representation of merged trees])
 
@@ -429,10 +448,10 @@ AT_PARSER_CHECK([[./glr-regr4]], 0,
 AT_CLEANUP
 
 
-## -------------------------------------------------------------------------- ##
-## User destructor for unresolved GLR semantic value.  See                   ##
-## <http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00016.html>.   ##
-## -------------------------------------------------------------------------- ##
+## ------------------------------------------------------------------------- ##
+## User destructor for unresolved GLR semantic value.  See                   ##
+## <http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00016.html>.  ##
+## ------------------------------------------------------------------------- ##
 
 AT_SETUP([User destructor for unresolved GLR semantic value])
 
@@ -489,10 +508,10 @@ AT_PARSER_CHECK([[./glr-regr5]], 0, [],
 AT_CLEANUP
 
 
-## -------------------------------------------------------------------------- ##
-## User destructor after an error during a split parse.  See                 ##
-## <http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00029.html>.   ##
-## -------------------------------------------------------------------------- ##
+## ------------------------------------------------------------------------- ##
+## User destructor after an error during a split parse.  See                 ##
+## <http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00029.html>.  ##
+## ------------------------------------------------------------------------- ##
 
 AT_SETUP([User destructor after an error during a split parse])
 
@@ -544,7 +563,7 @@ AT_CLEANUP
 
 
 ## ------------------------------------------------------------------------- ##
-## Duplicated user destructor for lookahead.  See                           ##
+## Duplicated user destructor for lookahead.  See                            ##
 ## <http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00035.html>.  ##
 ## ------------------------------------------------------------------------- ##
 
@@ -727,7 +746,7 @@ AT_CLEANUP
 
 
 ## ------------------------------------------------------------------------- ##
-## No users destructors if stack 0 deleted.  See                            ##
+## No users destructors if stack 0 deleted.  See                             ##
 ## <http://lists.gnu.org/archive/html/bison-patches/2005-09/msg00109.html>.  ##
 ## ------------------------------------------------------------------------- ##
 
@@ -804,9 +823,9 @@ AT_PARSER_CHECK([[./glr-regr9]], 0, [],
 AT_CLEANUP
 
 
-## ------------------------------------------------------------------------- ##
-## Corrupted semantic options if user action cuts parse.                    ##
-## ------------------------------------------------------------------------- ##
+## ------------------------------------------------------ ##
+## Corrupted semantic options if user action cuts parse.  ##
+## ------------------------------------------------------ ##
 
 AT_SETUP([Corrupted semantic options if user action cuts parse])
 
@@ -858,9 +877,9 @@ AT_PARSER_CHECK([[./glr-regr10]], 0, [], [])
 AT_CLEANUP
 
 
-## ------------------------------------------------------------------------- ##
-## Undesirable destructors if user action cuts parse.                       ##
-## ------------------------------------------------------------------------- ##
+## --------------------------------------------------- ##
+## Undesirable destructors if user action cuts parse.  ##
+## --------------------------------------------------- ##
 
 AT_SETUP([Undesirable destructors if user action cuts parse])
 
@@ -916,9 +935,9 @@ AT_PARSER_CHECK([[./glr-regr11]], 0, [], [])
 AT_CLEANUP
 
 
-## ------------------------------------------------------------------------- ##
-## Leaked semantic values if user action cuts parse.                        ##
-## ------------------------------------------------------------------------- ##
+## -------------------------------------------------- ##
+## Leaked semantic values if user action cuts parse.  ##
+## -------------------------------------------------- ##
 
 AT_SETUP([Leaked semantic values if user action cuts parse])
 
@@ -1164,9 +1183,9 @@ start <- defstate_init defstate_shift 'b':
 AT_CLEANUP
 
 
-## ------------------------------------------------------------------------- ##
-## Incorrect lookahead during nondeterministic GLR.                         ##
-## ------------------------------------------------------------------------- ##
+## ------------------------------------------------- ##
+## Incorrect lookahead during nondeterministic GLR.  ##
+## ------------------------------------------------- ##
 
 AT_SETUP([Incorrect lookahead during nondeterministic GLR])
 
@@ -1381,9 +1400,9 @@ start <- merge 'c' stack_explosion:
 AT_CLEANUP
 
 
-## ------------------------------------------------------------------------- ##
-## Leaked semantic values when reporting ambiguity.                         ##
-## ------------------------------------------------------------------------- ##
+## ------------------------------------------------- ##
+## Leaked semantic values when reporting ambiguity.  ##
+## ------------------------------------------------- ##
 
 AT_SETUP([Leaked semantic values when reporting ambiguity])
 
@@ -1463,9 +1482,9 @@ AT_PARSER_CHECK([[./glr-regr15]], 0, [],
 AT_CLEANUP
 
 
-## ------------------------------------------------------------------------- ##
-## Leaked lookahead after nondeterministic parse syntax error.              ##
-## ------------------------------------------------------------------------- ##
+## ------------------------------------------------------------ ##
+## Leaked lookahead after nondeterministic parse syntax error.  ##
+## ------------------------------------------------------------ ##
 
 AT_SETUP([Leaked lookahead after nondeterministic parse syntax error])
 
@@ -1523,9 +1542,9 @@ AT_PARSER_CHECK([[./glr-regr16]], 0, [],
 AT_CLEANUP
 
 
-## ------------------------------------------------------------------------- ##
-## Uninitialized location when reporting ambiguity.                         ##
-## ------------------------------------------------------------------------- ##
+## ------------------------------------------------- ##
+## Uninitialized location when reporting ambiguity.  ##
+## ------------------------------------------------- ##
 
 AT_SETUP([Uninitialized location when reporting ambiguity])
 
@@ -1545,13 +1564,6 @@ AT_DATA_GRAMMAR([glr-regr17.y],
   ]AT_YYLEX_DECLARE[
 %}
 
-%initial-action {
-  @$.first_line = 1;
-  @$.first_column = 1;
-  @$.last_line = 1;
-  @$.last_column = 1;
-}
-
 %%
 
 /* Tests the case of an empty RHS that has inherited the location of the
@@ -1608,9 +1620,9 @@ AT_PARSER_CHECK([[./glr-regr17]], 0, [],
 AT_CLEANUP
 
 
-## -------------------------------------------------------------##
-## Missed %merge type warnings when LHS type is declared later. ##
-## -------------------------------------------------------------##
+## ------------------------------------------------------------- ##
+## Missed %merge type warnings when LHS type is declared later.  ##
+## ------------------------------------------------------------- ##
 
 AT_SETUP([Missed %merge type warnings when LHS type is declared later])
 
@@ -1652,11 +1664,11 @@ main (void)
 AT_BISON_OPTION_POPDEFS
 
 AT_BISON_CHECK([[-o glr-regr18.c glr-regr18.y]], 1, [],
-[glr-regr18.y:26.18-24: result type clash on merge function 'merge': <type2> != <type1>
-glr-regr18.y:25.18-24: previous declaration
-glr-regr18.y:27.13-19: result type clash on merge function 'merge': <type3> != <type2>
-glr-regr18.y:26.18-24: previous declaration
-])
+[[glr-regr18.y:26.18-24: error: result type clash on merge function 'merge': <type2> != <type1>
+glr-regr18.y:25.18-24:     previous declaration
+glr-regr18.y:27.13-19: error: result type clash on merge function 'merge': <type3> != <type2>
+glr-regr18.y:26.18-24:     previous declaration
+]])
 
 AT_CLEANUP