]> git.saurik.com Git - bison.git/blobdiff - tests/regression.at
In the grammar scanner, STRING_FINISH unclosed constructs and return
[bison.git] / tests / regression.at
index cc2117f136fa9f73130ef8528925dddf28385886..923a8933949f26b885873cf6c37fa45423f8e6fc 100644 (file)
@@ -49,6 +49,33 @@ AT_CLEANUP
 
 
 
+## ----------------- ##
+## YYSTYPE typedef.  ##
+## ----------------- ##
+
+AT_SETUP([YYSTYPE typedef])
+
+AT_DATA_GRAMMAR([input.y],
+[[%{
+void yyerror (char const *);
+int yylex (void);
+typedef union { char const *val; } YYSTYPE;
+%}
+
+%type <val> program
+
+%%
+
+program: { $$ = ""; };
+]])
+
+AT_CHECK([bison -o input.c input.y])
+AT_COMPILE([input.o], [-c input.c])
+
+AT_CLEANUP
+
+
+
 ## ------------------------------------- ##
 ## Early token definitions with --yacc.  ##
 ## ------------------------------------- ##
@@ -371,6 +398,7 @@ input.y:5.1-17: invalid directive: `%a-does-not-exist'
 input.y:6.1: invalid character: `%'
 input.y:6.2: invalid character: `-'
 input.y:7.1-8.0: missing `%}' at end of file
+input.y:7.1-8.0: syntax error, unexpected %{...%}
 ]])
 
 AT_CLEANUP
@@ -1019,8 +1047,8 @@ AT_SETUP([Braced code in declaration in rules section])
 AT_DATA_GRAMMAR([input.y],
 [[%{
 #include <stdio.h>
-void yyerror (char const *msg);
-int yylex (void);
+static void yyerror (char const *msg);
+static int yylex (void);
 %}
 
 %error-verbose
@@ -1039,13 +1067,13 @@ start:
 
 %%
 
-void
+static void
 yyerror (char const *msg)
 {
   fprintf (stderr, "%s\n", msg);
 }
 
-int
+static int
 yylex (void)
 {
   return 'a';