]> git.saurik.com Git - bison.git/blobdiff - tests/calc.at
* data/Makefile.am (dist_pkgdata_DATA): Add push.c.
[bison.git] / tests / calc.at
index 909b4a6c5c4a84992968caf61784dacc0fc1e0a7..a3a76feb8dbe028b64e13a1ab5d6fe5807f7d514 100644 (file)
@@ -73,7 +73,7 @@ static int global_count = 0;
 static int power (int base, int exponent);
 ]AT_SKEL_CC_IF(
 [#ifndef YYLTYPE
 static int power (int base, int exponent);
 ]AT_SKEL_CC_IF(
 [#ifndef YYLTYPE
-# define YYLTYPE yy::location
+[#] define YYLTYPE AT_NAME_PREFIX::location
 #endif
 #define first_line   begin.line
 #define first_column begin.column
 #endif
 #define first_line   begin.line
 #define first_column begin.column
@@ -152,7 +152,7 @@ static FILE *input;
 ]AT_SKEL_CC_IF(
 [/* A C++ error reporting function.  */
 void
 ]AT_SKEL_CC_IF(
 [/* A C++ error reporting function.  */
 void
-yy::parser::error (const location& l, const std::string& m)
+AT_NAME_PREFIX::parser::error (const location& l, const std::string& m)
 {
   (void) l;
   std::cerr << AT_LOCATION_IF([l << ": " << ])m << std::endl;
 {
   (void) l;
   std::cerr << AT_LOCATION_IF([l << ": " << ])m << std::endl;
@@ -161,8 +161,10 @@ yy::parser::error (const location& l, const std::string& m)
 int
 yyparse (AT_PARAM_IF([semantic_value *result, int *count]))
 {
 int
 yyparse (AT_PARAM_IF([semantic_value *result, int *count]))
 {
-  yy::parser parser[]AT_PARAM_IF([ (result, count)]);
-  parser.set_debug_level (!!YYDEBUG);
+  AT_NAME_PREFIX::parser parser[]AT_PARAM_IF([ (result, count)]);
+#if YYDEBUG
+  parser.set_debug_level (1);
+#endif
   return parser.parse ();
 }
 ],
   return parser.parse ();
 }
 ],
@@ -199,7 +201,7 @@ get_char (]AT_LEX_FORMALS[)
   if (res == '\n')
     {
       AT_LOC.last_line++;
   if (res == '\n')
     {
       AT_LOC.last_line++;
-      AT_LOC.last_column = 0;
+      AT_LOC.last_column = 1;
     }
   else
     AT_LOC.last_column++;
     }
   else
     AT_LOC.last_column++;
@@ -262,7 +264,7 @@ yylex (]AT_LEX_FORMALS[)
     {
       init = 0;
 ]AT_LOCATION_IF([
     {
       init = 0;
 ]AT_LOCATION_IF([
-      AT_LOC.last_column = 0;
+      AT_LOC.last_column = 1;
       AT_LOC.last_line = 1;
 ])[
     }
       AT_LOC.last_line = 1;
 ])[
     }
@@ -410,11 +412,13 @@ sed '/^Starting/d
 /^Stack/d
 /^Reading/d
 /^Reducing/d
 /^Stack/d
 /^Reading/d
 /^Reducing/d
+/^Return/d
 /^Shifting/d
 /^state/d
 /^Cleanup:/d
 /^Error:/d
 /^Next/d
 /^Shifting/d
 /^state/d
 /^Cleanup:/d
 /^Error:/d
 /^Next/d
+/^Now/d
 /^Discarding/d
 / \$[[0-9$]]* = /d
 /^yydestructor:/d' stderr >at-stderr
 /^Discarding/d
 / \$[[0-9$]]* = /d
 /^yydestructor:/d' stderr >at-stderr
@@ -476,21 +480,21 @@ _AT_CHECK_CALC([$1],
 
 # Some syntax errors.
 _AT_CHECK_CALC_ERROR([$1], [1], [0 0], [15],
 
 # Some syntax errors.
 _AT_CHECK_CALC_ERROR([$1], [1], [0 0], [15],
-                     [1.2: syntax error, unexpected number])
+                     [1.3: syntax error, unexpected number])
 _AT_CHECK_CALC_ERROR([$1], [1], [1//2], [20],
 _AT_CHECK_CALC_ERROR([$1], [1], [1//2], [20],
-                     [1.2: syntax error, unexpected '/', expecting number or '-' or '(' or '!'])
+                     [1.3: syntax error, unexpected '/', expecting number or '-' or '(' or '!'])
 _AT_CHECK_CALC_ERROR([$1], [1], [error], [5],
 _AT_CHECK_CALC_ERROR([$1], [1], [error], [5],
-                     [1.0: syntax error, unexpected $undefined])
+                     [1.1: syntax error, unexpected $undefined])
 _AT_CHECK_CALC_ERROR([$1], [1], [1 = 2 = 3], [30],
 _AT_CHECK_CALC_ERROR([$1], [1], [1 = 2 = 3], [30],
-                     [1.6: syntax error, unexpected '='])
+                     [1.7: syntax error, unexpected '='])
 _AT_CHECK_CALC_ERROR([$1], [1],
                      [
 +1],
                      [20],
 _AT_CHECK_CALC_ERROR([$1], [1],
                      [
 +1],
                      [20],
-                     [2.0: syntax error, unexpected '+'])
+                     [2.1: syntax error, unexpected '+'])
 # Exercise error messages with EOF: work on an empty file.
 _AT_CHECK_CALC_ERROR([$1], [1], [/dev/null], [4],
 # Exercise error messages with EOF: work on an empty file.
 _AT_CHECK_CALC_ERROR([$1], [1], [/dev/null], [4],
-                     [1.0: syntax error, unexpected end of input])
+                     [1.1: syntax error, unexpected end of input])
 
 # Exercise the error token: without it, we die at the first error,
 # hence be sure to
 
 # Exercise the error token: without it, we die at the first error,
 # hence be sure to
@@ -503,28 +507,28 @@ _AT_CHECK_CALC_ERROR([$1], [1], [/dev/null], [4],
 #
 # - test the action associated to `error'
 #
 #
 # - test the action associated to `error'
 #
-# - check the look-ahead that triggers an error is not discarded
-#   when we enter error recovery.  Below, the look-ahead causing the
+# - check the lookahead that triggers an error is not discarded
+#   when we enter error recovery.  Below, the lookahead causing the
 #   first error is ")", which is needed to recover from the error and
 #   produce the "0" that triggers the "0 != 1" error.
 #
 _AT_CHECK_CALC_ERROR([$1], [0],
                      [() + (1 + 1 + 1 +) + (* * *) + (1 * 2 * *) = 1],
                      [250],
 #   first error is ")", which is needed to recover from the error and
 #   produce the "0" that triggers the "0 != 1" error.
 #
 _AT_CHECK_CALC_ERROR([$1], [0],
                      [() + (1 + 1 + 1 +) + (* * *) + (1 * 2 * *) = 1],
                      [250],
-[1.1: syntax error, unexpected ')', expecting number or '-' or '(' or '!'
-1.17: syntax error, unexpected ')', expecting number or '-' or '(' or '!'
-1.22: syntax error, unexpected '*', expecting number or '-' or '(' or '!'
-1.40: syntax error, unexpected '*', expecting number or '-' or '(' or '!'
+[1.2: syntax error, unexpected ')', expecting number or '-' or '(' or '!'
+1.18: syntax error, unexpected ')', expecting number or '-' or '(' or '!'
+1.23: syntax error, unexpected '*', expecting number or '-' or '(' or '!'
+1.41: syntax error, unexpected '*', expecting number or '-' or '(' or '!'
 calc: error: 4444 != 1])
 
 # The same, but this time exercising explicitly triggered syntax errors.
 calc: error: 4444 != 1])
 
 # The same, but this time exercising explicitly triggered syntax errors.
-# POSIX says the look-ahead causing the error should not be discarded.
+# 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], [(!) + (0 0) = 1], [102],
-[1.9: syntax error, unexpected number
+[1.10: syntax error, unexpected number
 calc: error: 2222 != 1])
 _AT_CHECK_CALC_ERROR([$1], [0], [(- *) + (0 0) = 1], [113],
 calc: error: 2222 != 1])
 _AT_CHECK_CALC_ERROR([$1], [0], [(- *) + (0 0) = 1], [113],
-[1.3: syntax error, unexpected '*', expecting number or '-' or '(' or '!'
-1.11: syntax error, unexpected number
+[1.4: syntax error, unexpected '*', expecting number or '-' or '(' or '!'
+1.12: syntax error, unexpected number
 calc: error: 2222 != 1])
 AT_BISON_OPTION_POPDEFS
 
 calc: error: 2222 != 1])
 AT_BISON_OPTION_POPDEFS
 
@@ -557,6 +561,7 @@ AT_CHECK_CALC_LALR([%yacc])
 AT_CHECK_CALC_LALR([%error-verbose])
 
 AT_CHECK_CALC_LALR([%pure-parser %locations])
 AT_CHECK_CALC_LALR([%error-verbose])
 
 AT_CHECK_CALC_LALR([%pure-parser %locations])
+AT_CHECK_CALC_LALR([%push-parser %locations])
 AT_CHECK_CALC_LALR([%error-verbose %locations])
 
 AT_CHECK_CALC_LALR([%error-verbose %locations %defines %name-prefix="calc" %verbose %yacc])
 AT_CHECK_CALC_LALR([%error-verbose %locations])
 
 AT_CHECK_CALC_LALR([%error-verbose %locations %defines %name-prefix="calc" %verbose %yacc])
@@ -565,6 +570,7 @@ AT_CHECK_CALC_LALR([%debug])
 AT_CHECK_CALC_LALR([%error-verbose %debug %locations %defines %name-prefix="calc" %verbose %yacc])
 
 AT_CHECK_CALC_LALR([%pure-parser %error-verbose %debug %locations %defines %name-prefix="calc" %verbose %yacc])
 AT_CHECK_CALC_LALR([%error-verbose %debug %locations %defines %name-prefix="calc" %verbose %yacc])
 
 AT_CHECK_CALC_LALR([%pure-parser %error-verbose %debug %locations %defines %name-prefix="calc" %verbose %yacc])
+AT_CHECK_CALC_LALR([%push-parser %error-verbose %debug %locations %defines %name-prefix="calc" %verbose %yacc])
 
 AT_CHECK_CALC_LALR([%pure-parser %error-verbose %debug %locations %defines %name-prefix="calc" %verbose %yacc %parse-param {semantic_value *result} %parse-param {int *count}])
 
 
 AT_CHECK_CALC_LALR([%pure-parser %error-verbose %debug %locations %defines %name-prefix="calc" %verbose %yacc %parse-param {semantic_value *result} %parse-param {int *count}])
 
@@ -642,11 +648,11 @@ AT_BANNER([[Simple GLR C++ Calculator.]])
 m4_define([AT_CHECK_CALC_GLR_CC],
 [AT_CHECK_CALC([%skeleton "glr.cc" %defines %locations] $@)])
 
 m4_define([AT_CHECK_CALC_GLR_CC],
 [AT_CHECK_CALC([%skeleton "glr.cc" %defines %locations] $@)])
 
-#AT_CHECK_CALC_GLR_CC([])
-#AT_CHECK_CALC_GLR_CC([%error-verbose %name-prefix="calc" %verbose %yacc])
+AT_CHECK_CALC_GLR_CC([])
+AT_CHECK_CALC_GLR_CC([%error-verbose %name-prefix="calc" %verbose %yacc])
 
 
-AT_CHECK_CALC_GLR_CC([%debug])
-#AT_CHECK_CALC_GLR_CC([%error-verbose %debug %name-prefix="calc" %verbose %yacc])
+AT_CHECK_CALC_GLR_CC([%debug])
+AT_CHECK_CALC_GLR_CC([%error-verbose %debug %name-prefix="calc" %verbose %yacc])
 
 AT_CHECK_CALC_GLR_CC([%pure-parser %error-verbose %debug %name-prefix="calc" %verbose %yacc])
 
 
 AT_CHECK_CALC_GLR_CC([%pure-parser %error-verbose %debug %name-prefix="calc" %verbose %yacc])