]> git.saurik.com Git - bison.git/blobdiff - tests/regression.at
* README: Mention m4 1.4.3. Remove obsolete advice about
[bison.git] / tests / regression.at
index ab0b71e8ac57fa81508a13c81413b9876d59d7a4..fe7c31b496fb7ddd278430acc2ebae3c55e14a14 100644 (file)
@@ -1,5 +1,5 @@
 # Bison Regressions.                               -*- Autotest -*-
 # 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
 
 # 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
@@ -13,8 +13,8 @@
 
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
 
 AT_BANNER([[Regression tests.]])
 
 
 AT_BANNER([[Regression tests.]])
 
@@ -314,20 +314,45 @@ AT_SETUP([Token definitions])
 # Bison managed, when fed with `%token 'f' "f"' to #define 'f'!
 AT_DATA_GRAMMAR([input.y],
 [%{
 # 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);
 %}
 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 '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 "\\\'\?\"\n\t??!"
 %%
 %%
-exp: "a";
+exp: "a" "\\\'\?\"\n\t??!";
+%%
+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_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 \'?"
+       ??!, expecting a
+])
 AT_CLEANUP
 
 
 AT_CLEANUP
 
 
@@ -610,8 +635,8 @@ static const unsigned char yyrline[] =
 };
 static const char *const yytname[] =
 {
 };
 static const char *const yytname[] =
 {
-  "$end", "error", "$undefined", "\"if\"", "\"const\"", "\"then\"",
-  "\"else\"", "$accept", "statement", "struct_stat", "if", "else", 0
+  "$end", "error", "$undefined", "if", "const", "then", "else", "$accept",
+  "statement", "struct_stat", "if", "else", 0
 };
 static const unsigned short int yytoknum[] =
 {
 };
 static const unsigned short int yytoknum[] =
 {
@@ -727,15 +752,15 @@ member: STRING
 AT_LALR1_CC_IF(
 [/* A C++ error reporting function. */
 void
 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
 }
 
 int
-yyparse (void)
+yyparse ()
 {
 {
-  yy::Parser parser;
+  yy::parser parser;
   parser.set_debug_level (!!YYDEBUG);
   return parser.parse ();
 }
   parser.set_debug_level (!!YYDEBUG);
   return parser.parse ();
 }