]> git.saurik.com Git - bison.git/blobdiff - tests/actions.at
* src/system.h (OUTPUT_EXT, TAB_EXT): Define only if not defined
[bison.git] / tests / actions.at
index 933478c6277a00be40ba28fd26879a0d190310b1..d79a33ec917d899d1ce072a1668f3c85781f1cc0 100644 (file)
@@ -186,7 +186,7 @@ m4_ifval([$6], [%union
 }])
 [
 %{
-]AT_LALR1_CC_IF([typedef yy::Location YYLTYPE;
+]AT_LALR1_CC_IF([typedef yy::location YYLTYPE;
                 m4_ifval([$6], , [#define YYSTYPE int])])
 [static int yylex (]AT_LEX_FORMALS[);
 ]AT_LALR1_CC_IF([], [static void yyerror (const char *msg);])
@@ -196,8 +196,8 @@ m4_ifval([$6], [%union
 
 %printer
   {
-    ]AT_LALR1_CC_IF([cdebug_ << @$ << ": " << $$;],
-                    [fprintf (yyoutput, "%d@%d-%d", $$, RANGE (@$))])[;
+    ]AT_LALR1_CC_IF([debug_stream () << $$;],
+                    [fprintf (yyoutput, "%d", $$)])[;
   }
   input line thing 'x' 'y'
 
@@ -309,25 +309,19 @@ yylex (]AT_LEX_FORMALS[)
 }
 
 ]AT_LALR1_CC_IF(
-[/* Currently, print_ is required in C++. */
+[/* A C++ error reporting function. */
 void
-yy::Parser::print_ ()
+yy::parser::error (const location& l, const std::string& m)
 {
-  std::cerr << location;
-}
-
-/* A C++ error reporting function. */
-void
-yy::Parser::error_ ()
-{
-  printf ("%d-%d: %s\n", RANGE (location), message.c_str());
+  printf ("%d-%d: %s\n", RANGE (l), m.c_str());
 }
 
 static bool yydebug;
 int
 yyparse ()
 {
-  yy::Parser parser (yydebug, yy::Location ());
+  yy::parser parser;
+  parser.set_debug_level (yydebug);
   return parser.parse ();
 }
 ],
@@ -372,8 +366,8 @@ thing (1@10-19): 'x' (1@10-19)
 sending: ')' (2@20-29)
 line (0@0-29): '(' (0@0-9) thing (1@10-19) ')' (2@20-29)
 sending: EOF (3@30-39)
-input (0@0-29): /* Nothing */
-input (2@0-29): line (0@0-29) input (0@0-29)
+input (0@29-29): /* Nothing */
+input (2@0-29): line (0@0-29) input (0@29-29)
 Successful parse.
 ]])
 
@@ -390,8 +384,8 @@ Freeing token 'y' (1@10-19)
 sending: ')' (2@20-29)
 line (-1@0-29): '(' (0@0-9) error (@10-19) ')' (2@20-29)
 sending: EOF (3@30-39)
-input (0@0-29): /* Nothing */
-input (2@0-29): line (-1@0-29) input (0@0-29)
+input (0@29-29): /* Nothing */
+input (2@0-29): line (-1@0-29) input (0@29-29)
 Successful parse.
 ]])
 
@@ -438,8 +432,8 @@ thing (11@110-119): 'x' (11@110-119)
 sending: ')' (12@120-129)
 line (10@100-129): '(' (10@100-109) thing (11@110-119) ')' (12@120-129)
 sending: 'y' (13@130-139)
-input (0@100-129): /* Nothing */
-input (2@100-129): line (10@100-129) input (0@100-129)
+input (0@129-129): /* Nothing */
+input (2@100-129): line (10@100-129) input (0@129-129)
 input (2@70-129): line (7@70-99) input (2@100-129)
 input (2@0-129): line (-1@0-69) input (2@70-129)
 130-139: syntax error, unexpected 'y', expecting $end
@@ -451,11 +445,12 @@ Parsing FAILED.
 ])
 
 
-# AT_CHECK_PRINTER_AND_DESTRUCTOR([BISON-OPTIONS], [UNION-FLAG])
-# --------------------------------------------------------------
+# AT_CHECK_PRINTER_AND_DESTRUCTOR([BISON-OPTIONS], [UNION-FLAG], [SKIP_FLAG])
+# ---------------------------------------------------------------------------
 m4_define([AT_CHECK_PRINTER_AND_DESTRUCTOR],
 [AT_SETUP([Printers and Destructors $2: $1])
 
+$3
 _AT_CHECK_PRINTER_AND_DESTRUCTOR($[1], $[2], $[3], $[4],
 [%error-verbose
 %debug
@@ -469,9 +464,12 @@ AT_CLEANUP
 
 AT_CHECK_PRINTER_AND_DESTRUCTOR([])
 AT_CHECK_PRINTER_AND_DESTRUCTOR([], [with union])
+
+# These tests currently fail on a Debian GNU/Linux 3.0r2 x86 host,
+# but the 2nd test succeeds on a Solaris 9 sparc hosts (Forte 7 cc).
+# Skip them until we figure out what the problem is.
 AT_CHECK_PRINTER_AND_DESTRUCTOR([%defines %skeleton "lalr1.cc"])
 AT_CHECK_PRINTER_AND_DESTRUCTOR([%defines %skeleton "lalr1.cc"], [with union])
 
-# FIXME.  These test cases fail.
-#AT_CHECK_PRINTER_AND_DESTRUCTOR([%glr-parser])
-#AT_CHECK_PRINTER_AND_DESTRUCTOR([%glr-parser], [with union])
+AT_CHECK_PRINTER_AND_DESTRUCTOR([%glr-parser])
+AT_CHECK_PRINTER_AND_DESTRUCTOR([%glr-parser], [with union])