X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/dd5611579b3978eff5c4aa22dc8459b8f53c2fc0..9bcffa0c13d1abee13433f14cdb785cbb960425c:/tests/named-refs.at diff --git a/tests/named-refs.at b/tests/named-refs.at index 35c2382b..3ccf1f66 100644 --- a/tests/named-refs.at +++ b/tests/named-refs.at @@ -19,10 +19,11 @@ AT_BANNER([[Named references tests.]]) AT_SETUP([Tutorial calculator]) - +AT_BISON_OPTION_PUSHDEFS AT_DATA_GRAMMAR([test.y], [[ %{ +#include #include #include #include @@ -32,8 +33,8 @@ FILE *input; static semantic_value global_result = 0; static int global_count = 0; static int power (int base, int exponent); -static void yyerror (const char *s); -int yylex (void); +]AT_YYERROR_DECLARE[ +]AT_YYLEX_DECLARE[ %} %union @@ -82,12 +83,7 @@ exp: | '-' error { $$ = 0; YYERROR; } ; %% - -static void yyerror (const char *s) -{ - fprintf (stderr, "%s\n", s); -} - +]AT_YYERROR_DEFINE[ static int get_char (void) { int res = getc (input); @@ -118,7 +114,8 @@ static int read_signed_integer (void) return sign * n; } -int yylex (void) +static int +yylex (void) { int c; /* Skip white space. */ @@ -165,10 +162,8 @@ int main (int argc, const char **argv) } status = yyparse (); fclose (input); - if (global_result != result) - abort (); - if (global_count != count) - abort (); + assert (global_result == result); + assert (global_count == count); return status; } ]]) @@ -189,6 +184,7 @@ AT_DATA([input.txt], AT_BISON_CHECK([-o test.c test.y]) AT_COMPILE([[test]]) AT_PARSER_CHECK([./test input.txt], 0, [], [stderr]) +AT_BISON_OPTION_POPDEFS AT_CLEANUP @@ -197,13 +193,13 @@ AT_CLEANUP AT_SETUP([Undefined and ambiguous references]) - +AT_BISON_OPTION_PUSHDEFS AT_DATA_GRAMMAR([test.y], [[ %{ static int power (int base, int exponent); -static void yyerror (const char *s); -int yylex (void); +]AT_YYERROR_DECLARE[ +]AT_YYLEX_DECLARE[ %} %union @@ -267,6 +263,7 @@ test.y:55.3-53: symbol not found in production: r12 test.y:56.29-33: invalid reference: '$expo' test.y:56.3-46: symbol not found in production: expo ]]) +AT_BISON_OPTION_POPDEFS AT_CLEANUP #######################################################################