]> git.saurik.com Git - bison.git/blobdiff - tests/input.at
* config/announce-gen, Makefile.cfg: New.
[bison.git] / tests / input.at
index 78342c107aa95e134c5288ed570dc2d958bfd0a2..935e74cad18167ae8f1fe1e5e902feb7eff40374 100644 (file)
@@ -1,5 +1,5 @@
-# Checking the output filenames.                    -*- Autotest -*-
-# Copyright (C) 2002 Free Software Foundation, Inc.
+# Checking the Bison scanner.                    -*- Autotest -*-
+# Copyright (C) 2002, 2003 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
@@ -92,6 +92,13 @@ AT_CLEANUP
 
 AT_SETUP([Torturing the Scanner])
 
+
+AT_DATA([input.y], [])
+AT_CHECK([bison input.y], [1], [],
+[[input.y:1.1: syntax error, unexpected "end of file"
+]])
+
+
 AT_DATA_GRAMMAR([input.y],
 [[%{
 /* This is seen in GCC: a %{ and %} in middle of a comment. */
@@ -132,7 +139,7 @@ char apostrophe = '\'';
 
 %{
 /* Exercise pre-prologue dependency to %union.  */
-typedef int value_t;
+typedef int value;
 %}
 
 /* Exercise M4 quoting: '@:>@@:>@', 0.  */
@@ -140,13 +147,13 @@ typedef int value_t;
 /* Also exercise %union. */
 %union
 {
-  value_t ival; /* A comment to exercise an old bug. */
+  value ival; /* A comment to exercise an old bug. */
 };
 
 
 /* Exercise post-prologue dependency to %union.  */
 %{
-static YYSTYPE value_t_as_yystype (value_t val);
+static YYSTYPE value_as_yystype (value val);
 
 /* Exercise quotes in declarations.  */
 char quote[] = "@:>@@:>@,";
@@ -164,7 +171,7 @@ static int yylex (void);
 
 %%
 /* Exercise M4 quoting: '@:>@@:>@', @<:@, 1.  */
-exp: '@<:@' '\1' two '$' '@' '{' oline output
+exp: '@<:@' '\1' two '$' '@' '{' oline output.or.oline.opt
   {
     /* Exercise quotes in braces.  */
     char tmp[] = "@<:@%c@:>@,\n";
@@ -174,12 +181,13 @@ exp: '@<:@' '\1' two '$' '@' '{' oline output
 
 two: '\x000000000000000000000000000000000000000000000000000000000000000000002';
 oline: '@' 'o' 'l' 'i' 'n' 'e' '@' '_' '_' 'o' 'l' 'i' 'n' 'e' '_' '_';
+output.or.oline.opt: ;|oline;;|output;;;
 output: '#' 'o' 'u' 't' 'p' 'u' 't' ' ';
 %%
 /* Exercise M4 quoting: '@:>@@:>@', @<:@, 2.  */
 
 static YYSTYPE
-value_t_as_yystype (value_t val)
+value_as_yystype (value val)
 {
   YYSTYPE res;
   res.ival = val;
@@ -192,7 +200,7 @@ yylex (void)
   static const char *input = "@<:@\1\2$@{@oline@__@&t@oline__\
 #output "; /* "
   */
-  yylval = value_t_as_yystype (*input);
+  yylval = value_as_yystype (*input);
   return *input++;
 }
 
@@ -206,7 +214,7 @@ yyerror (const char *msg)
 # Pacify Emacs'font-lock-mode: "
 
 AT_DATA([main.c],
-[[typedef int value_t;
+[[typedef int value;
 #include "input.h"
 
 int yyparse (void);