X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/4323e0dac386d777d070c68564f1c0041b06935d..595284e9d0277517bac8f3fc7bcdd529d97aa6f9:/tests/actions.at?ds=inline diff --git a/tests/actions.at b/tests/actions.at index bde0961b..4b0019b8 100644 --- a/tests/actions.at +++ b/tests/actions.at @@ -1259,10 +1259,11 @@ AT_CHECK_ACTION_LOCATIONS([[%printer]]) ## Qualified $$ in actions. ## ## ------------------------- ## -# Check that we can used qualified $$ (v.g., $$) not only in -# rule actions, but also where $$ is valid: %printer and %destructor. +# Check that we can use qualified $$ (v.g., $$) not only in rule +# actions, but also where $$ is valid: %destructor/%printer and +# %initial-action. # -# FIXME: Not actually checking %desctructor, but it's the same code as +# FIXME: Not actually checking %destructor, but it's the same code as # %printer... # # To do that, use a semantic value that has two fields (sem_type), @@ -1273,17 +1274,13 @@ AT_CHECK_ACTION_LOCATIONS([[%printer]]) m4_pushdef([AT_TEST], [AT_SETUP([[Qualified $$ in actions: $1]]) -AT_BISON_OPTION_PUSHDEFS([%locations %skeleton "$1"]) +AT_BISON_OPTION_PUSHDEFS([%skeleton "$1"]) AT_DATA_GRAMMAR([[input.y]], [[%skeleton "$1" -%defines // FIXME: Mandated by lalr1.cc in Bison 2.6. -%locations // FIXME: Mandated by lalr1.cc in Bison 2.6. %debug %code requires { -# include - typedef struct sem_type { int ival; @@ -1292,20 +1289,21 @@ AT_DATA_GRAMMAR([[input.y]], # define YYSTYPE sem_type -#ifdef __cplusplus +]AT_SKEL_CC_IF([[ # include static void report (std::ostream& yyo, int ival, float fval) { yyo << "ival: " << ival << ", fval: " << fval; } -#else +]], [[ +# include static void report (FILE* yyo, int ival, float fval) { fprintf (yyo, "ival: %d, fval: %1.1f", ival, fval); } -#endif +]])[ } %code @@ -1321,17 +1319,6 @@ AT_DATA_GRAMMAR([[input.y]], %printer { report (yyo, $$, $$ ); } ; %printer { report (yyo, $$, $$); } <>; -]AT_SKEL_CC_IF([[ -/* The lalr1.cc skeleton, for backward compatibility, defines - a constructor for position that initializes the filename. The - glr.cc skeleton does not (and in fact cannot: location/position - are stored in a union, from which objects with constructors are - excluded in C++). */ -%initial-action { - @$.initialize (); -} -]])[ - %initial-action { $$ = 42; @@ -1366,10 +1353,7 @@ AT_FULL_COMPILE([[input]]) AT_PARSER_CHECK([./input], 0, [], [stderr]) # Don't be too picky on the traces, GLR is not exactly the same. Keep # only the lines from the printer. -# -# Don't care about locations. FIXME: remove their removal when Bison -# supports C++ without locations. -AT_CHECK([[sed -ne 's/([-0-9.]*: /(/;/ival:/p' stderr]], 0, +AT_CHECK([[sed -ne '/ival:/p' stderr]], 0, [[Reading a token: Next token is token UNTYPED (ival: 10, fval: 0.1) Shifting token UNTYPED (ival: 10, fval: 0.1) Reading a token: Next token is token INT (ival: 20, fval: 0.2) @@ -1454,42 +1438,42 @@ string;"} AT_BISON_OPTION_POPDEFS AT_BISON_CHECK([[-o input.c input.y]], [0], [], -[[input.y:8.48: warning: a ';' might be needed at the end of action code [-Wother] -input.y:8.48: warning: future versions of Bison will not add the ';' [-Wother] -input.y:9.48: warning: a ';' might be needed at the end of action code [-Wother] -input.y:9.48: warning: future versions of Bison will not add the ';' [-Wother] -input.y:10.48: warning: a ';' might be needed at the end of action code [-Wother] -input.y:10.48: warning: future versions of Bison will not add the ';' [-Wother] -input.y:11.48: warning: a ';' might be needed at the end of action code [-Wother] -input.y:11.48: warning: future versions of Bison will not add the ';' [-Wother] -input.y:12.48: warning: a ';' might be needed at the end of action code [-Wother] -input.y:12.48: warning: future versions of Bison will not add the ';' [-Wother] -input.y:13.48: warning: a ';' might be needed at the end of action code [-Wother] -input.y:13.48: warning: future versions of Bison will not add the ';' [-Wother] -input.y:20.1: warning: a ';' might be needed at the end of action code [-Wother] -input.y:20.1: warning: future versions of Bison will not add the ';' [-Wother] -input.y:21.1: warning: a ';' might be needed at the end of action code [-Wother] -input.y:21.1: warning: future versions of Bison will not add the ';' [-Wother] -input.y:22.1: warning: a ';' might be needed at the end of action code [-Wother] -input.y:22.1: warning: future versions of Bison will not add the ';' [-Wother] -input.y:23.1: warning: a ';' might be needed at the end of action code [-Wother] -input.y:23.1: warning: future versions of Bison will not add the ';' [-Wother] -input.y:24.1: warning: a ';' might be needed at the end of action code [-Wother] -input.y:24.1: warning: future versions of Bison will not add the ';' [-Wother] -input.y:25.1: warning: a ';' might be needed at the end of action code [-Wother] -input.y:25.1: warning: future versions of Bison will not add the ';' [-Wother] -input.y:31.1: warning: a ';' might be needed at the end of action code [-Wother] -input.y:31.1: warning: future versions of Bison will not add the ';' [-Wother] -input.y:32.1: warning: a ';' might be needed at the end of action code [-Wother] -input.y:32.1: warning: future versions of Bison will not add the ';' [-Wother] -input.y:33.1: warning: a ';' might be needed at the end of action code [-Wother] -input.y:33.1: warning: future versions of Bison will not add the ';' [-Wother] -input.y:34.1: warning: a ';' might be needed at the end of action code [-Wother] -input.y:34.1: warning: future versions of Bison will not add the ';' [-Wother] -input.y:35.1: warning: a ';' might be needed at the end of action code [-Wother] -input.y:35.1: warning: future versions of Bison will not add the ';' [-Wother] -input.y:36.1: warning: a ';' might be needed at the end of action code [-Wother] -input.y:36.1: warning: future versions of Bison will not add the ';' [-Wother] +[[input.y:8.48: warning: a ';' might be needed at the end of action code [-Wdeprecated] +input.y:8.48: warning: future versions of Bison will not add the ';' [-Wdeprecated] +input.y:9.48: warning: a ';' might be needed at the end of action code [-Wdeprecated] +input.y:9.48: warning: future versions of Bison will not add the ';' [-Wdeprecated] +input.y:10.48: warning: a ';' might be needed at the end of action code [-Wdeprecated] +input.y:10.48: warning: future versions of Bison will not add the ';' [-Wdeprecated] +input.y:11.48: warning: a ';' might be needed at the end of action code [-Wdeprecated] +input.y:11.48: warning: future versions of Bison will not add the ';' [-Wdeprecated] +input.y:12.48: warning: a ';' might be needed at the end of action code [-Wdeprecated] +input.y:12.48: warning: future versions of Bison will not add the ';' [-Wdeprecated] +input.y:13.48: warning: a ';' might be needed at the end of action code [-Wdeprecated] +input.y:13.48: warning: future versions of Bison will not add the ';' [-Wdeprecated] +input.y:20.1: warning: a ';' might be needed at the end of action code [-Wdeprecated] +input.y:20.1: warning: future versions of Bison will not add the ';' [-Wdeprecated] +input.y:21.1: warning: a ';' might be needed at the end of action code [-Wdeprecated] +input.y:21.1: warning: future versions of Bison will not add the ';' [-Wdeprecated] +input.y:22.1: warning: a ';' might be needed at the end of action code [-Wdeprecated] +input.y:22.1: warning: future versions of Bison will not add the ';' [-Wdeprecated] +input.y:23.1: warning: a ';' might be needed at the end of action code [-Wdeprecated] +input.y:23.1: warning: future versions of Bison will not add the ';' [-Wdeprecated] +input.y:24.1: warning: a ';' might be needed at the end of action code [-Wdeprecated] +input.y:24.1: warning: future versions of Bison will not add the ';' [-Wdeprecated] +input.y:25.1: warning: a ';' might be needed at the end of action code [-Wdeprecated] +input.y:25.1: warning: future versions of Bison will not add the ';' [-Wdeprecated] +input.y:31.1: warning: a ';' might be needed at the end of action code [-Wdeprecated] +input.y:31.1: warning: future versions of Bison will not add the ';' [-Wdeprecated] +input.y:32.1: warning: a ';' might be needed at the end of action code [-Wdeprecated] +input.y:32.1: warning: future versions of Bison will not add the ';' [-Wdeprecated] +input.y:33.1: warning: a ';' might be needed at the end of action code [-Wdeprecated] +input.y:33.1: warning: future versions of Bison will not add the ';' [-Wdeprecated] +input.y:34.1: warning: a ';' might be needed at the end of action code [-Wdeprecated] +input.y:34.1: warning: future versions of Bison will not add the ';' [-Wdeprecated] +input.y:35.1: warning: a ';' might be needed at the end of action code [-Wdeprecated] +input.y:35.1: warning: future versions of Bison will not add the ';' [-Wdeprecated] +input.y:36.1: warning: a ';' might be needed at the end of action code [-Wdeprecated] +input.y:36.1: warning: future versions of Bison will not add the ';' [-Wdeprecated] ]]) AT_MATCHES_CHECK([input.c], [[/\* TEST:N:2 \*/ \}$]], [[3]])