]> git.saurik.com Git - bison.git/blobdiff - tests/regression.at
(AT_INCREASE_DATA_SIZE): Skip the test if
[bison.git] / tests / regression.at
index ab0b71e8ac57fa81508a13c81413b9876d59d7a4..3d67ee9da7d48f28070c70f31969eb54f97b84a9 100644 (file)
@@ -1,5 +1,5 @@
 # Bison Regressions.                               -*- Autotest -*-
-# Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -314,20 +314,44 @@ AT_SETUP([Token definitions])
 # Bison managed, when fed with `%token 'f' "f"' to #define 'f'!
 AT_DATA_GRAMMAR([input.y],
 [%{
+#include <stdio.h>
 void yyerror (const char *s);
 int yylex (void);
 %}
-[%token MYEOF 0 "end of file"
+[%error-verbose
+%token MYEOF 0 "end of file"
 %token 'a' "a"
-%token b "b"
-%token c 'c'
-%token 'd' d
+%token B_TOKEN "b"
+%token C_TOKEN 'c'
+%token 'd' D_TOKEN
+%token SPECIAL "\\\'\?\"\a\b\f\n\r\t\v\001\377\x001\x0000ff"
 %%
-exp: "a";
+exp: "a" "\\\'\?\"\a\b\f\n\r\t\v\001\377\x001\x0000ff";
+%%
+void
+yyerror (char const *s)
+{
+  fprintf (stderr, "%s\n", s);
+}
+
+int
+yylex (void)
+{
+  return SPECIAL;
+}
+
+int
+main (void)
+{
+  return yyparse ();
+}
 ]])
 
 AT_CHECK([bison -o input.c input.y])
-AT_COMPILE([input.o], [-c input.c])
+AT_COMPILE([input])
+AT_PARSER_CHECK([./input], 1, [],
+[syntax error, unexpected "\\'?\"\a\b\f\n\r\t\v\001\377\001\377", expecting "a"
+])
 AT_CLEANUP
 
 
@@ -727,15 +751,15 @@ member: STRING
 AT_LALR1_CC_IF(
 [/* A C++ error reporting function. */
 void
-yy::Parser::error_ ()
+yy::parser::error (const location&, const std::string& m)
 {
-  std::cerr << message << std::endl;
+  std::cerr << m << std::endl;
 }
 
 int
-yyparse (void)
+yyparse ()
 {
-  yy::Parser parser;
+  yy::parser parser;
   parser.set_debug_level (!!YYDEBUG);
   return parser.parse ();
 }