X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/abf3f74b216c0ef4a5195ae1a5ebb7123b672387..2a824fae30d1cea0f1e85eee3ce42d5c120299d6:/tests/input.at diff --git a/tests/input.at b/tests/input.at index 27fe4e78..0ed8635f 100644 --- a/tests/input.at +++ b/tests/input.at @@ -182,53 +182,53 @@ AT_SETUP([Default %printer and %destructor redeclared]) AT_DATA([[input.y]], [[%destructor { destroy ($$); } <*> <*> -%printer { destroy ($$); } <*> <*> +%printer { print ($$); } <*> <*> %destructor { destroy ($$); } <*> -%printer { destroy ($$); } <*> +%printer { print ($$); } <*> %destructor { destroy ($$); } <> <> -%printer { destroy ($$); } <> <> +%printer { print ($$); } <> <> %destructor { destroy ($$); } <> -%printer { destroy ($$); } <> +%printer { print ($$); } <> %% start: ; %destructor { destroy ($$); } <*>; -%printer { destroy ($$); } <*>; +%printer { print ($$); } <*>; %destructor { destroy ($$); } <>; -%printer { destroy ($$); } <>; +%printer { print ($$); } <>; ]]) AT_BISON_CHECK([input.y], [1], [], [[input.y:1.13-29: redeclaration for default tagged %destructor input.y:1.13-29: previous declaration -input.y:2.10-26: redeclaration for default tagged %printer -input.y:2.10-26: previous declaration +input.y:2.10-24: redeclaration for default tagged %printer +input.y:2.10-24: previous declaration input.y:4.13-29: redeclaration for default tagged %destructor input.y:1.13-29: previous declaration -input.y:5.10-26: redeclaration for default tagged %printer -input.y:2.10-26: previous declaration +input.y:5.10-24: redeclaration for default tagged %printer +input.y:2.10-24: previous declaration input.y:7.13-29: redeclaration for default tagless %destructor input.y:7.13-29: previous declaration -input.y:8.10-26: redeclaration for default tagless %printer -input.y:8.10-26: previous declaration +input.y:8.10-24: redeclaration for default tagless %printer +input.y:8.10-24: previous declaration input.y:10.13-29: redeclaration for default tagless %destructor input.y:7.13-29: previous declaration -input.y:11.10-26: redeclaration for default tagless %printer -input.y:8.10-26: previous declaration +input.y:11.10-24: redeclaration for default tagless %printer +input.y:8.10-24: previous declaration input.y:17.13-29: redeclaration for default tagged %destructor input.y:4.13-29: previous declaration -input.y:18.10-26: redeclaration for default tagged %printer -input.y:5.10-26: previous declaration +input.y:18.10-24: redeclaration for default tagged %printer +input.y:5.10-24: previous declaration input.y:20.13-29: redeclaration for default tagless %destructor input.y:10.13-29: previous declaration -input.y:21.10-26: redeclaration for default tagless %printer -input.y:11.10-26: previous declaration +input.y:21.10-24: redeclaration for default tagless %printer +input.y:11.10-24: previous declaration ]]) AT_CLEANUP @@ -242,17 +242,17 @@ AT_SETUP([Per-type %printer and %destructor redeclared]) AT_DATA([[input.y]], [[%destructor { destroy ($$); } -%printer { destroy ($$); } +%printer { print ($$); } %destructor { destroy ($$); } -%printer { destroy ($$); } +%printer { print ($$); } %% start: ; %destructor { destroy ($$); } ; -%printer { destroy ($$); } ; +%printer { print ($$); } ; ]]) AT_BISON_CHECK([input.y], [1], [], @@ -260,18 +260,18 @@ AT_BISON_CHECK([input.y], [1], [], input.y:1.13-29: previous declaration input.y:4.13-29: %destructor redeclaration for input.y:4.13-29: previous declaration -input.y:5.10-26: %printer redeclaration for -input.y:2.10-26: previous declaration -input.y:5.10-26: %printer redeclaration for -input.y:5.10-26: previous declaration +input.y:5.10-24: %printer redeclaration for +input.y:2.10-24: previous declaration +input.y:5.10-24: %printer redeclaration for +input.y:5.10-24: previous declaration input.y:11.13-29: %destructor redeclaration for input.y:4.13-29: previous declaration input.y:11.13-29: %destructor redeclaration for input.y:1.13-29: previous declaration -input.y:12.10-26: %printer redeclaration for -input.y:2.10-26: previous declaration -input.y:12.10-26: %printer redeclaration for -input.y:5.10-26: previous declaration +input.y:12.10-24: %printer redeclaration for +input.y:2.10-24: previous declaration +input.y:12.10-24: %printer redeclaration for +input.y:5.10-24: previous declaration ]]) AT_CLEANUP @@ -391,7 +391,7 @@ AT_CLEANUP AT_SETUP([Torturing the Scanner]) - +AT_BISON_OPTION_PUSHDEFS AT_DATA([input.y], []) AT_BISON_CHECK([input.y], [1], [], [[input.y:1.1: syntax error, unexpected end of file @@ -442,6 +442,7 @@ char apostrophe = '\''; #include #include +#include %} /* %{ and %} can be here too. */ @@ -468,8 +469,8 @@ char quote[] = "@:>@@:>@,"; %} %{ -static void yyerror (const char *s); -static int yylex (void); +]AT_YYERROR_DECLARE[ +]AT_YYLEX_DECLARE[ %} %type '@<:@' @@ -501,7 +502,7 @@ value_as_yystype (value val) res.ival = val; return res; } - +]AT_YYERROR_DEFINE[ static int yylex (void) { @@ -509,20 +510,13 @@ yylex (void) #output "; /* " */ static size_t toknum; - if (! (toknum < sizeof input)) - abort (); + assert (toknum < sizeof input); yylval = value_as_yystype (input[toknum]); return input[toknum++]; } - -static void -yyerror (const char *msg) -{ - fprintf (stderr, "%s\n", msg); -} ]]) -# Pacify Emacs'font-lock-mode: " +# Pacify Emacs' font-lock-mode: " AT_DATA([main.c], [[typedef int value; @@ -536,10 +530,11 @@ main (void) return yyparse (); } ]]) +AT_BISON_OPTION_POPDEFS AT_BISON_CHECK([-d -v -o input.c input.y]) -AT_COMPILE([input.o], [-c input.c]) -AT_COMPILE([main.o], [-c main.c]) +AT_COMPILE([input.o]) +AT_COMPILE([main.o]) AT_COMPILE([input], [input.o main.o]) AT_PARSER_CHECK([./input], 0, [[[@<:@], @@ -621,14 +616,15 @@ AT_CLEANUP AT_SETUP([Symbols]) +AT_BISON_OPTION_PUSHDEFS AT_DATA_GRAMMAR([input.y], [[%token WITH-DASH %token WITHOUT_DASH "WITHOUT-DASH" %token WITH.PERIOD %token WITHOUT_PERIOD "WITHOUT.PERIOD" %code { - void yyerror (char const *); - int yylex (void); + ]AT_YYERROR_DECLARE[ + ]AT_YYLEX_DECLARE[ } %% start: with-dash without_dash with.period without_period; @@ -637,7 +633,10 @@ without_dash: "WITHOUT-DASH"; with.period: WITH.PERIOD; without_period: "WITHOUT.PERIOD"; %% +]AT_YYERROR_DEFINE[ +]AT_YYLEX_DEFINE[ ]]) +AT_BISON_OPTION_POPDEFS # POSIX Yacc accept periods, but not dashes. AT_BISON_CHECK([--yacc input.y], [1], [], @@ -655,7 +654,7 @@ input.y:18.8-16: warning: POSIX Yacc forbids dashes in symbol names: with-dash AT_BISON_CHECK([-o input.c input.y]) # Make sure we don't export silly token identifiers with periods or dashes. -AT_COMPILE([input.o], [-c input.c]) +AT_COMPILE([input.o]) # Periods are genuine letters, they can start identifiers. @@ -750,8 +749,8 @@ start: ; AT_BISON_CHECK([-o input.c input.y], 1, [], [[input.y:1.10-2.0: missing '"' at end of line -input.y:4.10-5.0: missing ''' at end of line -input.y:14.11-15.0: missing ''' at end of line +input.y:4.10-5.0: missing "'" at end of line +input.y:14.11-15.0: missing "'" at end of line input.y:16.11-17.0: missing '"' at end of line input.y:19.13-20.0: missing '}' at end of file input.y:20.1: syntax error, unexpected end of file @@ -1200,9 +1199,9 @@ AT_CHECK([[perl -e "print 'start: \'';" >> empty.y || exit 77]]) AT_BISON_CHECK([empty.y], [1], [], [[empty.y:2.8-9: warning: empty character literal empty.y:3.8-4.0: warning: empty character literal -empty.y:3.8-4.0: missing ''' at end of line +empty.y:3.8-4.0: missing "'" at end of line empty.y:4.8: warning: empty character literal -empty.y:4.8: missing ''' at end of file +empty.y:4.8: missing "'" at end of file ]]) AT_DATA([two.y], @@ -1215,9 +1214,9 @@ AT_CHECK([[perl -e "print 'start: \'ab';" >> two.y || exit 77]]) AT_BISON_CHECK([two.y], [1], [], [[two.y:2.8-11: warning: extra characters in character literal two.y:3.8-4.0: warning: extra characters in character literal -two.y:3.8-4.0: missing ''' at end of line +two.y:3.8-4.0: missing "'" at end of line two.y:4.8-10: warning: extra characters in character literal -two.y:4.8-10: missing ''' at end of file +two.y:4.8-10: missing "'" at end of file ]]) AT_DATA([three.y], @@ -1230,9 +1229,9 @@ AT_CHECK([[perl -e "print 'start: \'abc';" >> three.y || exit 77]]) AT_BISON_CHECK([three.y], [1], [], [[three.y:2.8-12: warning: extra characters in character literal three.y:3.8-4.0: warning: extra characters in character literal -three.y:3.8-4.0: missing ''' at end of line +three.y:3.8-4.0: missing "'" at end of line three.y:4.8-11: warning: extra characters in character literal -three.y:4.8-11: missing ''' at end of file +three.y:4.8-11: missing "'" at end of file ]]) AT_CLEANUP