X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/0624954c7e3798517a63fcc4ae423fbd18851f08..69078d4b3bf695e94ea0c0a61740e524f829f50e:/tests/regression.at?ds=inline diff --git a/tests/regression.at b/tests/regression.at index d1d819e6..1adce973 100644 --- a/tests/regression.at +++ b/tests/regression.at @@ -19,12 +19,50 @@ AT_BANNER([[Regression tests.]]) +## ------------------------- ## +## Early token definitions. ## +## ------------------------- ## + + +AT_SETUP([Early token definitions]) + +# Found in GCJ: they expect the tokens to be defined before the user +# prologue, so that they can use the token definitions in it. + +AT_DATA([input.y], +[[%{ +void yyerror (const char *s); +int yylex (void); +%} + +%union +{ + int val; +}; +%{ +#ifndef MY_TOKEN +# error "MY_TOKEN not defined." +#endif +%} +%token MY_TOKEN +%% +exp: MY_TOKEN; +%% +]]) + +AT_CHECK([bison input.y -o input.c]) +AT_CHECK([$CC $CFLAGS $CPPFLAGS input.c -c]) + +AT_CLEANUP + + + ## ---------------- ## ## Braces parsing. ## ## ---------------- ## -AT_SETUP([braces parsing]) +AT_SETUP([Braces parsing]) AT_DATA([input.y], [[/* Bison used to swallow the character after `}'. */ @@ -34,7 +72,7 @@ exp: { tests = {{{{{{{{{{}}}}}}}}}}; }; %% ]]) -AT_CHECK([bison -v input.y -o input.c], 0, ignore, ignore) +AT_CHECK([bison -v input.y -o input.c]) AT_CHECK([fgrep 'tests = {{{{{{{{{{}}}}}}}}}};' input.c], 0, [ignore]) @@ -61,7 +99,9 @@ exp: '(' exp ')' | NUM ; %% ]]) -AT_CHECK([bison -v input.y -o input.c], 0, ignore, ignore) +AT_CHECK([bison -v input.y -o input.c], 0, [], +[[input.y:6: warning: symbol `"<="' used more than once as a literal string +]]) AT_CLEANUP @@ -102,7 +142,7 @@ expr: }; ]]) -AT_CHECK([bison input.y -o input.c -v], 0, [], []) +AT_CHECK([bison input.y -o input.c -v]) # Check the contents of the report. AT_CHECK([cat input.output], [], @@ -230,7 +270,7 @@ exp: ; %% ]]) -AT_CHECK([bison -v input.y -o input.c], 0, ignore, ignore) +AT_CHECK([bison -v input.y -o input.c]) AT_CLEANUP