]> git.saurik.com Git - bison.git/blobdiff - tests/calc.at
Test and fix the #line outputs.
[bison.git] / tests / calc.at
index 49cf4e2325c209f8208a473b7f0eab603d08ed09..f813c462949857c2118c3a6866e8a3b409aa9e67 100644 (file)
@@ -63,9 +63,16 @@ static void yyungetc (int c);
 extern void perror (const char *s);
 %}
 
+/* Also exercise %union. */
+%union
+{
+  int ival; /* A comment to exercise an old bug. */
+};
+
 /* Bison Declarations */
 %token CALC_EOF 0 "end of file"
-%token NUM "number"
+%token <ival> NUM "number"
+%type  <ival> exp
 
 %nonassoc '=' /* comparison           */
 %left '-' '+'
@@ -84,7 +91,7 @@ input:
 
 line:
   '\n'
-| exp '\n'
+| exp '\n' {}
 ;
 
 exp:
@@ -205,7 +212,7 @@ yylex (void)
   if (c == '.' || isdigit (c))
     {
       yyungetc (c);
-      yylval = read_signed_integer ();
+      yylval.ival = read_signed_integer ();
       return NUM;
     }
 
@@ -278,7 +285,7 @@ m4_define([_AT_CHECK_CALC],
 [AT_DATA([[input]],
 [[$2
 ]])
-AT_CHECK([calc input], 0, [], [stderr])dnl
+AT_CHECK([./calc input], 0, [], [stderr])dnl
 AT_CHECK([wc -l <stderr | sed 's/[[^0-9]]//g'], 0,
          [m4_bmatch([$1], [--debug],
                     [$3], [0])
@@ -305,11 +312,11 @@ AT_CHECK([wc -l <stderr | sed 's/[[^0-9]]//g'], 0,
 # of expected lines on stderr.
 m4_define([_AT_CHECK_CALC_ERROR],
 [m4_bmatch([$2], [^/],
-           [AT_CHECK([calc $2], 0, [], [stderr])],
+           [AT_CHECK([./calc $2], 0, [], [stderr])],
            [AT_DATA([[input]],
 [[$2
 ]])
-AT_CHECK([calc input], 0, [], [stderr])])
+AT_CHECK([./calc input], 0, [], [stderr])])
 
 
 AT_CHECK([wc -l <stderr | sed 's/[[^0-9]]//g'], 0,
@@ -344,17 +351,6 @@ AT_DATA_CALC_Y([$1])
 AT_CHECK([bison calc.y -o calc.c m4_bpatsubst([$1], [--yyerror-verbose])],
          [0], [], [])
 
-# Some compilers issue warnings we don't want to hear about.
-# Maybe some day we will have proper Autoconf macros to disable these
-# warnings, but this place is not the right one for that.
-# So let's keep only GCC warnings, which we know are sane.
-# Well, that's only part of the story: some assemblers issue warnings
-# which can be totally useless, and actually polluting.  It seems that
-# the best bet be to completely ignore stderr, but to pass -Werror
-# to GCC.
-if test "$GCC" = yes; then
-  CFLAGS="$CFLAGS -Werror"
-fi
 AT_CHECK([$CC $CFLAGS $CPPFLAGS calc.c -o calc], 0, [], [ignore])
 
 # Test the priorities.
@@ -371,7 +367,7 @@ _AT_CHECK_CALC([$1],
 1 - (2 - 3) = 2
 
 2^2^3 = 256
-(2^2)^3 = 64], [488])
+(2^2)^3 = 64], [486])
 
 # Some parse errors.
 _AT_CHECK_CALC_ERROR([$1], [0 0], [10],