X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/3fc16193d99d8ae347fa44d31edd884279d78310..d229d15c76987f0ecd5b2c0dee1f92898d43b860:/tests/actions.at diff --git a/tests/actions.at b/tests/actions.at index d4d420e5..d79a33ec 100644 --- a/tests/actions.at +++ b/tests/actions.at @@ -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,7 +196,7 @@ m4_ifval([$6], [%union %printer { - ]AT_LALR1_CC_IF([cdebug_ << $$;], + ]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,7 +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]) + AT_CHECK_PRINTER_AND_DESTRUCTOR([%glr-parser]) AT_CHECK_PRINTER_AND_DESTRUCTOR([%glr-parser], [with union])