X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/0f404a0af0cb68849b5099e95dec0f9a09e3973d..56d60c19479822159e56960616cb3602e31f2a2c:/tests/calc.at diff --git a/tests/calc.at b/tests/calc.at index b3955ca5..c5040083 100644 --- a/tests/calc.at +++ b/tests/calc.at @@ -1,6 +1,6 @@ # Simple calculator. -*- Autotest -*- -# Copyright (C) 2000-2010 Free Software Foundation, Inc. +# Copyright (C) 2000-2012 Free Software Foundation, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -170,18 +170,18 @@ AT_SKEL_CC_IF( Point last; }; -# define YYLLOC_DEFAULT(Current, Rhs, N) \ -do { \ - if (N) \ - { \ - (Current).first = (Rhs)[1].first; \ - (Current).last = (Rhs)[N].last; \ - } \ - else \ - { \ - (Current).first = (Current).last = (Rhs)[0].last; \ - } \ -} while (false) +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (N) \ + { \ + (Current).first = YYRHSLOC (Rhs, 1).first; \ + (Current).last = YYRHSLOC (Rhs, N).last; \ + } \ + else \ + { \ + (Current).first = (Current).last = YYRHSLOC (Rhs, 0).last; \ + } \ + while (false) ]])[ /* Exercise pre-prologue dependency to %union. */ @@ -207,6 +207,7 @@ extern FILE *input;]AT_SKEL_CC_IF([[ %code { +#include #include #include #if HAVE_UNISTD_H @@ -240,7 +241,7 @@ int yylex (]AT_LEX_FORMALS[); are stored in a union, from which objects with constructors are excluded in C++. */ %initial-action { - @$.initialize (0); + @$.initialize (); } ])])[ @@ -347,8 +348,7 @@ static int power (int base, int exponent) { int res = 1; - if (exponent < 0) - exit (3); + assert (0 <= exponent); for (/* Niente */; exponent; --exponent) res *= base; return res; @@ -712,6 +712,7 @@ m4_define([AT_CHECK_CALC_GLR_CC], [AT_CHECK_CALC([%language "C++" %glr-parser %defines %locations] $@)]) AT_CHECK_CALC_GLR_CC([]) +AT_CHECK_CALC_GLR_CC([%define location_type Span]) AT_CHECK_CALC_GLR_CC([%error-verbose %name-prefix "calc" %verbose %yacc]) AT_CHECK_CALC_GLR_CC([%debug])