X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/2a6b66c5fd063c8868f239a78ecfb11c899fd22c..e42906f7904ca7516e9867a3a19ee08d963b1205:/tests/calc.at diff --git a/tests/calc.at b/tests/calc.at index a6c6742c..f336b69e 100644 --- a/tests/calc.at +++ b/tests/calc.at @@ -178,18 +178,7 @@ read_signed_integer (]AT_YYLEX_FORMALS[) ]AT_YYLEX_PROTOTYPE[ { - static int init = 1; int c; - - if (init) - { - init = 0; -]AT_LOCATION_IF([ - AT_LOC_LAST_COLUMN = 1; - AT_LOC_LAST_LINE = 1; -])[ - } - /* Skip current token, then white spaces. */ do { @@ -261,6 +250,8 @@ AT_SKEL_CC_IF( { semantic_value ival; }; +%printer { ]AT_SKEL_CC_IF([[yyoutput << $$]], + [[fprintf (yyoutput, "%d", $$)]])[; } ; %code provides { @@ -280,24 +271,16 @@ AT_SKEL_CC_IF( FILE *input; static int power (int base, int exponent); -]AT_SKEL_CC_IF(, -[static void yyerror (AT_YYERROR_ARG_LOC_IF([AT_YYLTYPE *llocp, ]) - AT_PARAM_IF([semantic_value *result, int *count, ]) - const char *s - );])[ +]AT_YYERROR_DECLARE[ ]AT_YYLEX_DECLARE_EXTERN[ } -]AT_SKEL_CC_IF([AT_LOCATION_IF([AT_LOCATION_TYPE_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 (); -} -])])])[ +]AT_SKEL_CC_IF([AT_LOCATION_TYPE_IF([[ +%initial-action +{ + @$.first.l = @$.first.c = 1; + @$.last = @$.first; +}]])])[ /* Bison Declarations */ %token CALC_EOF 0 "end of input" @@ -365,27 +348,8 @@ power (int base, int exponent) o << '-' << s.last.c - 1; return o; } -]]) -AT_YYERROR_DEFINE], -[/* A C error reporting function. */ -static void -yyerror (AT_YYERROR_ARG_LOC_IF([AT_YYLTYPE *llocp, ]) - AT_PARAM_IF([semantic_value *result, int *count, ]) - const char *s) -{ -AT_PARAM_IF([(void) result; (void) count;]) -AT_YYERROR_SEES_LOC_IF([ - fprintf (stderr, "%d.%d", - AT_LOC_FIRST_LINE, AT_LOC_FIRST_COLUMN); - if (AT_LOC_FIRST_LINE != AT_LOC_LAST_LINE) - fprintf (stderr, "-%d.%d", - AT_LOC_LAST_LINE, AT_LOC_LAST_COLUMN - 1); - else if (AT_LOC_FIRST_COLUMN != AT_LOC_LAST_COLUMN - 1) - fprintf (stderr, "-%d", - AT_LOC_LAST_COLUMN - 1); - fprintf (stderr, ": ");]) - fprintf (stderr, "%s\n", s); -}])[ +]])])[ +]AT_YYERROR_DEFINE[ ]AT_DEFINES_IF([], [AT_CALC_LEX AT_CALC_MAIN])]) @@ -552,7 +516,7 @@ _AT_CHECK_CALC([$1], [842]) # Some syntax errors. -_AT_CHECK_CALC_ERROR([$1], [1], [0 0], [15], +_AT_CHECK_CALC_ERROR([$1], [1], [1 2], [15], [1.3: syntax error, unexpected number]) _AT_CHECK_CALC_ERROR([$1], [1], [1//2], [20], [1.3: syntax error, unexpected '/', expecting number or '-' or '(' or '!']) @@ -596,10 +560,10 @@ calc: error: 4444 != 1]) # The same, but this time exercising explicitly triggered syntax errors. # POSIX says the lookahead causing the error should not be discarded. -_AT_CHECK_CALC_ERROR([$1], [0], [(!) + (0 0) = 1], [102], +_AT_CHECK_CALC_ERROR([$1], [0], [(!) + (1 2) = 1], [102], [1.10: syntax error, unexpected number calc: error: 2222 != 1]) -_AT_CHECK_CALC_ERROR([$1], [0], [(- *) + (0 0) = 1], [113], +_AT_CHECK_CALC_ERROR([$1], [0], [(- *) + (1 2) = 1], [113], [1.4: syntax error, unexpected '*', expecting number or '-' or '(' or '!' 1.12: syntax error, unexpected number calc: error: 2222 != 1]) @@ -637,7 +601,7 @@ AT_CHECK_CALC_LALR() AT_CHECK_CALC_LALR([%defines]) AT_CHECK_CALC_LALR([%locations]) -AT_CHECK_CALC_LALR([%name-prefix="calc"]) dnl test deprecated `=' +AT_CHECK_CALC_LALR([%name-prefix "calc"]) AT_CHECK_CALC_LALR([%verbose]) AT_CHECK_CALC_LALR([%yacc]) AT_CHECK_CALC_LALR([%define parse.error verbose]) @@ -656,7 +620,7 @@ AT_CHECK_CALC_LALR([%define parse.error verbose %debug %locations %defines %defi AT_CHECK_CALC_LALR([%define api.pure %define parse.error verbose %debug %locations %defines %name-prefix "calc" %verbose %yacc]) AT_CHECK_CALC_LALR([%define api.push-pull both %define api.pure %define parse.error verbose %debug %locations %defines %define api.prefix "calc" %verbose %yacc]) -AT_CHECK_CALC_LALR([%define api.pure %define parse.error verbose %debug %locations %defines %define api.prefix "calc" %verbose %yacc %parse-param {semantic_value *result} {int *count}]) +AT_CHECK_CALC_LALR([%define api.pure %define parse.error verbose %debug %locations %defines %define api.prefix "calc" %verbose %yacc %parse-param {semantic_value *result} %parse-param {int *count}]) # ----------------------- # @@ -694,8 +658,8 @@ AT_CHECK_CALC_GLR([%define parse.error verbose %debug %locations %defines %defin AT_CHECK_CALC_GLR([%define api.pure %define parse.error verbose %debug %locations %defines %name-prefix "calc" %verbose %yacc]) -AT_CHECK_CALC_GLR([%define api.pure %define parse.error verbose %debug %locations %defines %name-prefix "calc" %verbose %yacc %parse-param {semantic_value *result} {int *count}]) -AT_CHECK_CALC_GLR([%define api.pure %define parse.error verbose %debug %locations %defines %define api.prefix "calc" %verbose %yacc %parse-param {semantic_value *result} {int *count}]) +AT_CHECK_CALC_GLR([%define api.pure %define parse.error verbose %debug %locations %defines %name-prefix "calc" %verbose %yacc %parse-param {semantic_value *result} %parse-param {int *count}]) +AT_CHECK_CALC_GLR([%define api.pure %define parse.error verbose %debug %locations %defines %define api.prefix "calc" %verbose %yacc %parse-param {semantic_value *result} %parse-param {int *count}]) # ----------------------------- # @@ -725,10 +689,10 @@ AT_CHECK_CALC_LALR1_CC([%locations %define parse.error verbose %debug %name-pref AT_CHECK_CALC_LALR1_CC([%locations %pure-parser %define parse.error verbose %debug %define api.prefix "calc" %verbose %yacc]) AT_CHECK_CALC_LALR1_CC([%locations %pure-parser %define parse.error verbose %debug %define api.prefix "calc" %define api.token.prefix "TOK_" %verbose %yacc]) -AT_CHECK_CALC_LALR1_CC([%defines %locations %pure-parser %define parse.error verbose %debug %name-prefix "calc" %verbose %yacc %parse-param {semantic_value *result} {int *count}]) +AT_CHECK_CALC_LALR1_CC([%defines %locations %pure-parser %define parse.error verbose %debug %name-prefix "calc" %verbose %yacc %parse-param {semantic_value *result} %parse-param {int *count}]) -AT_CHECK_CALC_LALR1_CC([%pure-parser %define parse.error verbose %debug %define api.prefix "calc" %verbose %yacc %parse-param {semantic_value *result} {int *count}]) -AT_CHECK_CALC_LALR1_CC([%defines %locations %pure-parser %define parse.error verbose %debug %define api.prefix "calc" %verbose %yacc %parse-param {semantic_value *result} {int *count}]) +AT_CHECK_CALC_LALR1_CC([%pure-parser %define parse.error verbose %debug %define api.prefix "calc" %verbose %yacc %parse-param {semantic_value *result} %parse-param {int *count}]) +AT_CHECK_CALC_LALR1_CC([%defines %locations %pure-parser %define parse.error verbose %debug %define api.prefix "calc" %verbose %yacc %parse-param {semantic_value *result} %parse-param {int *count}]) @@ -760,5 +724,5 @@ AT_CHECK_CALC_GLR_CC([%define parse.error verbose %debug %name-prefix "calc" %ve AT_CHECK_CALC_GLR_CC([%pure-parser %define parse.error verbose %debug %name-prefix "calc" %verbose %yacc]) AT_CHECK_CALC_GLR_CC([%pure-parser %define parse.error verbose %debug %name-prefix "calc" %define api.token.prefix "TOK_" %verbose %yacc]) -AT_CHECK_CALC_GLR_CC([%locations %defines %pure-parser %define parse.error verbose %debug %name-prefix "calc" %verbose %yacc %parse-param {semantic_value *result} {int *count}]) -AT_CHECK_CALC_GLR_CC([%locations %defines %pure-parser %define parse.error verbose %debug %define api.prefix "calc" %verbose %yacc %parse-param {semantic_value *result} {int *count}]) +AT_CHECK_CALC_GLR_CC([%locations %defines %pure-parser %define parse.error verbose %debug %name-prefix "calc" %verbose %yacc %parse-param {semantic_value *result} %parse-param {int *count}]) +AT_CHECK_CALC_GLR_CC([%locations %defines %pure-parser %define parse.error verbose %debug %define api.prefix "calc" %verbose %yacc %parse-param {semantic_value *result} %parse-param {int *count}])