X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/9501dc6e69988cd8cf7623278a3894af9479e198..bb7c2bc6236c317205e0dc3323633f1d3cee2c49:/tests/input.at diff --git a/tests/input.at b/tests/input.at index d0a61ba2..4cd6e155 100644 --- a/tests/input.at +++ b/tests/input.at @@ -33,7 +33,7 @@ exp: { $$ = $1 ; }; ]]) AT_CHECK([bison input.y], [1], [], -[[input.y:2.6-14: integer out of range: `$1' +[[input.y:2.13-14: integer out of range: `$1' ]]) AT_CLEANUP @@ -51,7 +51,7 @@ exp: { @$ = @1 ; }; ]]) AT_CHECK([bison input.y], [1], [], -[[input.y:2.6-14: integer out of range: `@1' +[[input.y:2.13-14: integer out of range: `@1' ]]) AT_CLEANUP @@ -73,10 +73,10 @@ exp: foo {} foo ; ]]) -AT_CHECK([bison input.y], [1], [], -[[input.y:4.4-15: type clash on default action: != <> -input.y:5.4-8: type clash on default action: != <> -input.y:6.4: empty rule for typed nonterminal, and no action +AT_CHECK([bison input.y], [], [], +[[input.y:4.6-15: warning: type clash on default action: != <> +input.y:5.6-8: warning: type clash on default action: != <> +input.y:6.5: warning: empty rule for typed nonterminal, and no action ]]) AT_CLEANUP @@ -97,18 +97,33 @@ AT_DATA_GRAMMAR([input.y], /* This is seen in GCC: a %{ and %} in middle of a comment. */ const char *foo = "So %{ and %} can be here too."; -#ifdef __STDC__ +#if 0 +/* These examples test Bison while not stressing C compilers too much. + Many C compilers mishandle backslash-newlines, so this part of the + test is inside "#if 0". The comment and string are written so that + the "#endif" will be seen regardless of the C compiler bugs that we + know about, namely: + + HP C (as of late 2002) mishandles *\[newline]\[newline]/ within a + comment. + + The Apple Darwin compiler (as of late 2002) mishandles + \\[newline]' within a character constant. + + */ + /\ -* A comment with backslash-newlines in it. %{ %} *\ +* A comment with backslash-newlines in it. %} *\ +\ / +/* { Close the above comment, if the C compiler mishandled it. */ char str[] = "\\ " A string with backslash-newlines in it %{ %} \\ +\ ""; -char apostrophe = '\\ -'\ -'; +char apostrophe = '\''; #endif #include @@ -117,7 +132,7 @@ char apostrophe = '\\ %{ /* Exercise pre-prologue dependency to %union. */ -typedef int value_t; +typedef int value; %} /* Exercise M4 quoting: '@:>@@:>@', 0. */ @@ -125,13 +140,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 +179,7 @@ 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; @@ -177,7 +192,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++; } @@ -191,7 +206,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);