gawk-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gawk-diffs] [SCM] gawk branch, master, updated. gawk-4.1.0-3637-gde0fce


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, master, updated. gawk-4.1.0-3637-gde0fcef
Date: Sat, 2 Feb 2019 14:16:56 -0500 (EST)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".

The branch, master has been updated
       via  de0fcefe4207ab6438556341deea14662a1a3a6f (commit)
      from  aa6dc9f20f3c01b1ef5881fb1217c6c45a39983d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=de0fcefe4207ab6438556341deea14662a1a3a6f

commit de0fcefe4207ab6438556341deea14662a1a3a6f
Author: Arnold D. Robbins <address@hidden>
Date:   Sat Feb 2 21:16:38 2019 +0200

    Update to Bison 3.3.

diff --git a/ChangeLog b/ChangeLog
index 8ef3512..a7a8de0 100755
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2019-02-02         Arnold D. Robbins     <address@hidden>
+
+       * awkgram.c, command.c: Regenerated with Bison 3.3.
+       * NEWS: Updated.
+
 2019-02-02  Eli Zaretskii  <address@hidden>
 
        * debug.c (execvp) [__MINGW32__]: Redirect to w32_execvp.
diff --git a/NEWS b/NEWS
index b7aeb16..19b1939 100644
--- a/NEWS
+++ b/NEWS
@@ -18,7 +18,7 @@ Changes from 4.2.1 to 5.0.0
    me to stop carrying forward decades of changes against the original
    ones from GLIBC.
 
-4. Infrastructure upgrades: Bison 3.2.1, Automake 1.16.1, Gettext 0.19.8.1.
+4. Infrastructure upgrades: Bison 3.3, Automake 1.16.1, Gettext 0.19.8.1.
 
 5. The undocumented configure option and code that enabled the use of
    non-English "letters" in identifiers is now gone.
diff --git a/awkgram.c b/awkgram.c
index ae48c7e..55c42db 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -1,8 +1,9 @@
-/* A Bison parser, made by GNU Bison 3.2.1.  */
+/* A Bison parser, made by GNU Bison 3.3.  */
 
 /* Bison implementation for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, 
Inc.
+   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 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
@@ -47,7 +48,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "3.2.1"
+#define YYBISON_VERSION "3.3"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -65,7 +66,7 @@
 
 
 /* First part of user prologue.  */
-#line 26 "awkgram.y" /* yacc.c:338  */
+#line 26 "awkgram.y" /* yacc.c:337  */
 
 #ifdef GAWKDEBUG
 #define YYDEBUG 12
@@ -229,7 +230,7 @@ extern double fmod(double x, double y);
 
 #define YYSTYPE INSTRUCTION *
 
-#line 233 "awkgram.c" /* yacc.c:338  */
+#line 234 "awkgram.c" /* yacc.c:337  */
 # ifndef YY_NULLPTR
 #  if defined __cplusplus
 #   if 201103L <= __cplusplus
@@ -632,16 +633,16 @@ union yyalloc
 /* YYNSTATES -- Number of states.  */
 #define YYNSTATES  355
 
-/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
-   by yylex, with out-of-bounds checking.  */
 #define YYUNDEFTOK  2
 #define YYMAXUTOK   310
 
+/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
+   as returned by yylex, with out-of-bounds checking.  */
 #define YYTRANSLATE(YYX)                                                \
   ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
-   as returned by yylex, without out-of-bounds checking.  */
+   as returned by yylex.  */
 static const yytype_uint8 yytranslate[] =
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -1237,22 +1238,22 @@ static const yytype_uint8 yyr2[] =
 
 #define YYRECOVERING()  (!!yyerrstatus)
 
-#define YYBACKUP(Token, Value)                                  \
-do                                                              \
-  if (yychar == YYEMPTY)                                        \
-    {                                                           \
-      yychar = (Token);                                         \
-      yylval = (Value);                                         \
-      YYPOPSTACK (yylen);                                       \
-      yystate = *yyssp;                                         \
-      goto yybackup;                                            \
-    }                                                           \
-  else                                                          \
-    {                                                           \
-      yyerror (YY_("syntax error: cannot back up")); \
-      YYERROR;                                                  \
-    }                                                           \
-while (0)
+#define YYBACKUP(Token, Value)                                    \
+  do                                                              \
+    if (yychar == YYEMPTY)                                        \
+      {                                                           \
+        yychar = (Token);                                         \
+        yylval = (Value);                                         \
+        YYPOPSTACK (yylen);                                       \
+        yystate = *yyssp;                                         \
+        goto yybackup;                                            \
+      }                                                           \
+    else                                                          \
+      {                                                           \
+        yyerror (YY_("syntax error: cannot back up")); \
+        YYERROR;                                                  \
+      }                                                           \
+  while (0)
 
 /* Error token number */
 #define YYTERROR        1
@@ -1367,7 +1368,7 @@ yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int 
yyrule)
       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
       yy_symbol_print (stderr,
                        yystos[yyssp[yyi + 1 - yynrhs]],
-                       &(yyvsp[(yyi + 1) - (yynrhs)])
+                       &yyvsp[(yyi + 1) - (yynrhs)]
                                               );
       YYFPRINTF (stderr, "\n");
     }
@@ -1471,7 +1472,10 @@ yytnamerr (char *yyres, const char *yystr)
           case '\\':
             if (*++yyp != '\\')
               goto do_not_strip_quotes;
-            /* Fall through.  */
+            else
+              goto append;
+
+          append:
           default:
             if (yyres)
               yyres[yyn] = *yyp;
@@ -1567,10 +1571,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
                 yyarg[yycount++] = yytname[yyx];
                 {
                   YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, 
yytname[yyx]);
-                  if (! (yysize <= yysize1
-                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+                  if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
+                    yysize = yysize1;
+                  else
                     return 2;
-                  yysize = yysize1;
                 }
               }
         }
@@ -1594,9 +1598,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
 
   {
     YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
-    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+    if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
+      yysize = yysize1;
+    else
       return 2;
-    yysize = yysize1;
   }
 
   if (*yymsg_alloc < yysize)
@@ -1722,23 +1727,31 @@ yyparse (void)
   yychar = YYEMPTY; /* Cause a token to be read.  */
   goto yysetstate;
 
+
 /*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate.  |
+| yynewstate -- push a new state, which is found in yystate.  |
 `------------------------------------------------------------*/
- yynewstate:
+yynewstate:
   /* In all cases, when you get here, the value and location stacks
      have just been pushed.  So pushing a state here evens the stacks.  */
   yyssp++;
 
- yysetstate:
+
+/*--------------------------------------------------------------------.
+| yynewstate -- set current state (the top of the stack) to yystate.  |
+`--------------------------------------------------------------------*/
+yysetstate:
   *yyssp = (yytype_int16) yystate;
 
   if (yyss + yystacksize - 1 <= yyssp)
+#if !defined yyoverflow && !defined YYSTACK_RELOCATE
+    goto yyexhaustedlab;
+#else
     {
       /* Get the current used size of the three stacks, in elements.  */
       YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1);
 
-#ifdef yyoverflow
+# if defined yyoverflow
       {
         /* Give user a chance to reallocate the stack.  Use copies of
            these so that the &'s don't force the real ones into
@@ -1757,10 +1770,7 @@ yyparse (void)
         yyss = yyss1;
         yyvs = yyvs1;
       }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
-      goto yyexhaustedlab;
-# else
+# else /* defined YYSTACK_RELOCATE */
       /* Extend the stack our own way.  */
       if (YYMAXDEPTH <= yystacksize)
         goto yyexhaustedlab;
@@ -1776,12 +1786,11 @@ yyparse (void)
           goto yyexhaustedlab;
         YYSTACK_RELOCATE (yyss_alloc, yyss);
         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
-#  undef YYSTACK_RELOCATE
+# undef YYSTACK_RELOCATE
         if (yyss1 != yyssa)
           YYSTACK_FREE (yyss1);
       }
 # endif
-#endif /* no yyoverflow */
 
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
@@ -1792,6 +1801,7 @@ yyparse (void)
       if (yyss + yystacksize - 1 <= yyssp)
         YYABORT;
     }
+#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
 
   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 
@@ -1800,11 +1810,11 @@ yyparse (void)
 
   goto yybackup;
 
+
 /*-----------.
 | yybackup.  |
 `-----------*/
 yybackup:
-
   /* Do appropriate processing given the current state.  Read a
      lookahead token if we need one and don't already have one.  */
 
@@ -1877,7 +1887,7 @@ yydefault:
 
 
 /*-----------------------------.
-| yyreduce -- Do a reduction.  |
+| yyreduce -- do a reduction.  |
 `-----------------------------*/
 yyreduce:
   /* yyn is the number of a rule to reduce with.  */
@@ -1898,44 +1908,44 @@ yyreduce:
   switch (yyn)
     {
         case 2:
-#line 231 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 1904 "awkgram.c" /* yacc.c:1645  */
+#line 231 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 1914 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 3:
-#line 233 "awkgram.y" /* yacc.c:1645  */
+#line 233 "awkgram.y" /* yacc.c:1652  */
     {
                rule = 0;
                yyerrok;
          }
-#line 1913 "awkgram.c" /* yacc.c:1645  */
+#line 1923 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 4:
-#line 238 "awkgram.y" /* yacc.c:1645  */
+#line 238 "awkgram.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[0]) != NULL) {
-                       if ((yyvsp[-1]) == NULL)
-                               outer_comment = (yyvsp[0]);
+               if (yyvsp[0] != NULL) {
+                       if (yyvsp[-1] == NULL)
+                               outer_comment = yyvsp[0];
                        else
-                               interblock_comment = (yyvsp[0]);
+                               interblock_comment = yyvsp[0];
                }
-               (yyval) = (yyvsp[-1]);
+               yyval = yyvsp[-1];
          }
-#line 1927 "awkgram.c" /* yacc.c:1645  */
+#line 1937 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 5:
-#line 248 "awkgram.y" /* yacc.c:1645  */
+#line 248 "awkgram.y" /* yacc.c:1652  */
     {
                next_sourcefile();
          }
-#line 1935 "awkgram.c" /* yacc.c:1645  */
+#line 1945 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 6:
-#line 252 "awkgram.y" /* yacc.c:1645  */
+#line 252 "awkgram.y" /* yacc.c:1652  */
     {
                rule = 0;
                /*
@@ -1944,44 +1954,44 @@ yyreduce:
                 */
                /* yyerrok; */
          }
-#line 1948 "awkgram.c" /* yacc.c:1645  */
+#line 1958 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 7:
-#line 264 "awkgram.y" /* yacc.c:1645  */
+#line 264 "awkgram.y" /* yacc.c:1652  */
     {
-               (void) append_rule((yyvsp[-1]), (yyvsp[0]));
+               (void) append_rule(yyvsp[-1], yyvsp[0]);
                if (pending_comment != NULL) {
                        interblock_comment = pending_comment;
                        pending_comment = NULL;
                }
          }
-#line 1960 "awkgram.c" /* yacc.c:1645  */
+#line 1970 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 8:
-#line 272 "awkgram.y" /* yacc.c:1645  */
+#line 272 "awkgram.y" /* yacc.c:1652  */
     {
                if (rule != Rule) {
                        msg(_("%s blocks must have an action part"), 
ruletab[rule]);
                        errcount++;
-               } else if ((yyvsp[-1]) == NULL) {
+               } else if (yyvsp[-1] == NULL) {
                        msg(_("each rule must have a pattern or an action 
part"));
                        errcount++;
                } else {        /* pattern rule with non-empty pattern */
-                       if ((yyvsp[0]) != NULL)
-                               list_append((yyvsp[-1]), (yyvsp[0]));
-                       (void) append_rule((yyvsp[-1]), NULL);
+                       if (yyvsp[0] != NULL)
+                               list_append(yyvsp[-1], yyvsp[0]);
+                       (void) append_rule(yyvsp[-1], NULL);
                }
          }
-#line 1978 "awkgram.c" /* yacc.c:1645  */
+#line 1988 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 9:
-#line 286 "awkgram.y" /* yacc.c:1645  */
+#line 286 "awkgram.y" /* yacc.c:1652  */
     {
                in_function = false;
-               (void) mk_function((yyvsp[-1]), (yyvsp[0]));
+               (void) mk_function(yyvsp[-1], yyvsp[0]);
                want_param_names = DONT_CHECK;
                if (pending_comment != NULL) {
                        interblock_comment = pending_comment;
@@ -1989,336 +1999,336 @@ yyreduce:
                }
                yyerrok;
          }
-#line 1993 "awkgram.c" /* yacc.c:1645  */
+#line 2003 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 10:
-#line 297 "awkgram.y" /* yacc.c:1645  */
+#line 297 "awkgram.y" /* yacc.c:1652  */
     {
                want_source = false;
                at_seen = false;
-               if ((yyvsp[-1]) != NULL && (yyvsp[0]) != NULL) {
-                       SRCFILE *s = (SRCFILE *) (yyvsp[-1]);
-                       s->comment = (yyvsp[0]);
+               if (yyvsp[-1] != NULL && yyvsp[0] != NULL) {
+                       SRCFILE *s = (SRCFILE *) yyvsp[-1];
+                       s->comment = yyvsp[0];
                }
                yyerrok;
          }
-#line 2007 "awkgram.c" /* yacc.c:1645  */
+#line 2017 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 11:
-#line 307 "awkgram.y" /* yacc.c:1645  */
+#line 307 "awkgram.y" /* yacc.c:1652  */
     {
                want_source = false;
                at_seen = false;
-               if ((yyvsp[-1]) != NULL && (yyvsp[0]) != NULL) {
-                       SRCFILE *s = (SRCFILE *) (yyvsp[-1]);
-                       s->comment = (yyvsp[0]);
+               if (yyvsp[-1] != NULL && yyvsp[0] != NULL) {
+                       SRCFILE *s = (SRCFILE *) yyvsp[-1];
+                       s->comment = yyvsp[0];
                }
                yyerrok;
          }
-#line 2021 "awkgram.c" /* yacc.c:1645  */
+#line 2031 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 12:
-#line 317 "awkgram.y" /* yacc.c:1645  */
+#line 317 "awkgram.y" /* yacc.c:1652  */
     {
                want_source = false;
                at_seen = false;
 
                // this frees $3 storage in all cases
-               set_namespace((yyvsp[-1]), (yyvsp[0]));
+               set_namespace(yyvsp[-1], yyvsp[0]);
 
                yyerrok;
          }
-#line 2035 "awkgram.c" /* yacc.c:1645  */
+#line 2045 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 13:
-#line 330 "awkgram.y" /* yacc.c:1645  */
+#line 330 "awkgram.y" /* yacc.c:1652  */
     {
                void *srcfile = NULL;
 
-               if (! include_source((yyvsp[0]), & srcfile))
+               if (! include_source(yyvsp[0], & srcfile))
                        YYABORT;
-               efree((yyvsp[0])->lextok);
-               bcfree((yyvsp[0]));
-               (yyval) = (INSTRUCTION *) srcfile;
+               efree(yyvsp[0]->lextok);
+               bcfree(yyvsp[0]);
+               yyval = (INSTRUCTION *) srcfile;
          }
-#line 2049 "awkgram.c" /* yacc.c:1645  */
+#line 2059 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 14:
-#line 340 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 2055 "awkgram.c" /* yacc.c:1645  */
+#line 340 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 2065 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 15:
-#line 342 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 2061 "awkgram.c" /* yacc.c:1645  */
+#line 342 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 2071 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 16:
-#line 347 "awkgram.y" /* yacc.c:1645  */
+#line 347 "awkgram.y" /* yacc.c:1652  */
     {
                void *srcfile;
 
-               if (! load_library((yyvsp[0]), & srcfile))
+               if (! load_library(yyvsp[0], & srcfile))
                        YYABORT;
-               efree((yyvsp[0])->lextok);
-               bcfree((yyvsp[0]));
-               (yyval) = (INSTRUCTION *) srcfile;
+               efree(yyvsp[0]->lextok);
+               bcfree(yyvsp[0]);
+               yyval = (INSTRUCTION *) srcfile;
          }
-#line 2075 "awkgram.c" /* yacc.c:1645  */
+#line 2085 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 17:
-#line 357 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 2081 "awkgram.c" /* yacc.c:1645  */
+#line 357 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 2091 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 18:
-#line 359 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 2087 "awkgram.c" /* yacc.c:1645  */
+#line 359 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 2097 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 19:
-#line 364 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 2093 "awkgram.c" /* yacc.c:1645  */
+#line 364 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 2103 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 20:
-#line 366 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 2099 "awkgram.c" /* yacc.c:1645  */
+#line 366 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 2109 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 21:
-#line 368 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 2105 "awkgram.c" /* yacc.c:1645  */
+#line 368 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 2115 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 22:
-#line 373 "awkgram.y" /* yacc.c:1645  */
+#line 373 "awkgram.y" /* yacc.c:1652  */
     {
                rule = Rule;
-               (yyval) = NULL;
+               yyval = NULL;
          }
-#line 2114 "awkgram.c" /* yacc.c:1645  */
+#line 2124 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 23:
-#line 378 "awkgram.y" /* yacc.c:1645  */
+#line 378 "awkgram.y" /* yacc.c:1652  */
     {
                rule = Rule;
          }
-#line 2122 "awkgram.c" /* yacc.c:1645  */
+#line 2132 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 24:
-#line 383 "awkgram.y" /* yacc.c:1645  */
+#line 383 "awkgram.y" /* yacc.c:1652  */
     {
                INSTRUCTION *tp;
 
-               add_lint((yyvsp[-2]), LINT_assign_in_cond);
-               add_lint((yyvsp[0]), LINT_assign_in_cond);
+               add_lint(yyvsp[-2], LINT_assign_in_cond);
+               add_lint(yyvsp[0], LINT_assign_in_cond);
 
                tp = instruction(Op_no_op);
-               list_prepend((yyvsp[-2]), bcalloc(Op_line_range, 
!!do_pretty_print + 1, 0));
-               (yyvsp[-2])->nexti->triggered = false;
-               (yyvsp[-2])->nexti->target_jmp = (yyvsp[0])->nexti;
+               list_prepend(yyvsp[-2], bcalloc(Op_line_range, 
!!do_pretty_print + 1, 0));
+               yyvsp[-2]->nexti->triggered = false;
+               yyvsp[-2]->nexti->target_jmp = yyvsp[0]->nexti;
 
-               list_append((yyvsp[-2]), instruction(Op_cond_pair));
-               (yyvsp[-2])->lasti->line_range = (yyvsp[-2])->nexti;
-               (yyvsp[-2])->lasti->target_jmp = tp;
+               list_append(yyvsp[-2], instruction(Op_cond_pair));
+               yyvsp[-2]->lasti->line_range = yyvsp[-2]->nexti;
+               yyvsp[-2]->lasti->target_jmp = tp;
 
-               list_append((yyvsp[0]), instruction(Op_cond_pair));
-               (yyvsp[0])->lasti->line_range = (yyvsp[-2])->nexti;
-               (yyvsp[0])->lasti->target_jmp = tp;
+               list_append(yyvsp[0], instruction(Op_cond_pair));
+               yyvsp[0]->lasti->line_range = yyvsp[-2]->nexti;
+               yyvsp[0]->lasti->target_jmp = tp;
                if (do_pretty_print) {
-                       ((yyvsp[-2])->nexti + 1)->condpair_left = 
(yyvsp[-2])->lasti;
-                       ((yyvsp[-2])->nexti + 1)->condpair_right = 
(yyvsp[0])->lasti;
+                       (yyvsp[-2]->nexti + 1)->condpair_left = 
yyvsp[-2]->lasti;
+                       (yyvsp[-2]->nexti + 1)->condpair_right = 
yyvsp[0]->lasti;
                }
                /* Put any comments in front of the range expression */
-               if ((yyvsp[-1]) != NULL)
-                       (yyval) = 
list_append(list_merge(list_prepend((yyvsp[-2]), (yyvsp[-1])), (yyvsp[0])), tp);
+               if (yyvsp[-1] != NULL)
+                       yyval = list_append(list_merge(list_prepend(yyvsp[-2], 
yyvsp[-1]), yyvsp[0]), tp);
                else
-                       (yyval) = list_append(list_merge((yyvsp[-2]), 
(yyvsp[0])), tp);
+                       yyval = list_append(list_merge(yyvsp[-2], yyvsp[0]), 
tp);
                rule = Rule;
          }
-#line 2156 "awkgram.c" /* yacc.c:1645  */
+#line 2166 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 25:
-#line 413 "awkgram.y" /* yacc.c:1645  */
+#line 413 "awkgram.y" /* yacc.c:1652  */
     {
                static int begin_seen = 0;
 
                if (do_lint_old && ++begin_seen == 2)
-                       warning_ln((yyvsp[0])->source_line,
+                       warning_ln(yyvsp[0]->source_line,
                                _("old awk does not support multiple `BEGIN' or 
`END' rules"));
 
-               (yyvsp[0])->in_rule = rule = BEGIN;
-               (yyvsp[0])->source_file = source;
-               (yyval) = (yyvsp[0]);
+               yyvsp[0]->in_rule = rule = BEGIN;
+               yyvsp[0]->source_file = source;
+               yyval = yyvsp[0];
          }
-#line 2172 "awkgram.c" /* yacc.c:1645  */
+#line 2182 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 26:
-#line 425 "awkgram.y" /* yacc.c:1645  */
+#line 425 "awkgram.y" /* yacc.c:1652  */
     {
                static int end_seen = 0;
 
                if (do_lint_old && ++end_seen == 2)
-                       warning_ln((yyvsp[0])->source_line,
+                       warning_ln(yyvsp[0]->source_line,
                                _("old awk does not support multiple `BEGIN' or 
`END' rules"));
 
-               (yyvsp[0])->in_rule = rule = END;
-               (yyvsp[0])->source_file = source;
-               (yyval) = (yyvsp[0]);
+               yyvsp[0]->in_rule = rule = END;
+               yyvsp[0]->source_file = source;
+               yyval = yyvsp[0];
          }
-#line 2188 "awkgram.c" /* yacc.c:1645  */
+#line 2198 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 27:
-#line 437 "awkgram.y" /* yacc.c:1645  */
+#line 437 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyvsp[0])->in_rule = rule = BEGINFILE;
-               (yyvsp[0])->source_file = source;
-               (yyval) = (yyvsp[0]);
+               yyvsp[0]->in_rule = rule = BEGINFILE;
+               yyvsp[0]->source_file = source;
+               yyval = yyvsp[0];
          }
-#line 2198 "awkgram.c" /* yacc.c:1645  */
+#line 2208 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 28:
-#line 443 "awkgram.y" /* yacc.c:1645  */
+#line 443 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyvsp[0])->in_rule = rule = ENDFILE;
-               (yyvsp[0])->source_file = source;
-               (yyval) = (yyvsp[0]);
+               yyvsp[0]->in_rule = rule = ENDFILE;
+               yyvsp[0]->source_file = source;
+               yyval = yyvsp[0];
          }
-#line 2208 "awkgram.c" /* yacc.c:1645  */
+#line 2218 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 29:
-#line 452 "awkgram.y" /* yacc.c:1645  */
+#line 452 "awkgram.y" /* yacc.c:1652  */
     {
-               INSTRUCTION *ip = make_braced_statements((yyvsp[-4]), 
(yyvsp[-3]), (yyvsp[-2]));
+               INSTRUCTION *ip = make_braced_statements(yyvsp[-4], yyvsp[-3], 
yyvsp[-2]);
 
-               if ((yyvsp[-2]) != NULL && (yyvsp[0]) != NULL) {
-                       merge_comments((yyvsp[-2]), (yyvsp[0]));
-                       pending_comment = (yyvsp[-2]);
-               } else if ((yyvsp[-2]) != NULL) {
-                       pending_comment = (yyvsp[-2]);
-               } else if ((yyvsp[0]) != NULL) {
-                       pending_comment = (yyvsp[0]);
+               if (yyvsp[-2] != NULL && yyvsp[0] != NULL) {
+                       merge_comments(yyvsp[-2], yyvsp[0]);
+                       pending_comment = yyvsp[-2];
+               } else if (yyvsp[-2] != NULL) {
+                       pending_comment = yyvsp[-2];
+               } else if (yyvsp[0] != NULL) {
+                       pending_comment = yyvsp[0];
                }
 
-               (yyval) = ip;
+               yyval = ip;
          }
-#line 2227 "awkgram.c" /* yacc.c:1645  */
+#line 2237 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 31:
-#line 471 "awkgram.y" /* yacc.c:1645  */
+#line 471 "awkgram.y" /* yacc.c:1652  */
     {
-               const char *name = (yyvsp[0])->lextok;
+               const char *name = yyvsp[0]->lextok;
                char *qname = qualify_name(name, strlen(name));
 
                if (qname != name) {
                        efree((void *)name);
-                       (yyvsp[0])->lextok = qname;
+                       yyvsp[0]->lextok = qname;
                }
-               (yyval) = (yyvsp[0]);
+               yyval = yyvsp[0];
          }
-#line 2242 "awkgram.c" /* yacc.c:1645  */
+#line 2252 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 32:
-#line 482 "awkgram.y" /* yacc.c:1645  */
+#line 482 "awkgram.y" /* yacc.c:1652  */
     {
                yyerror(_("`%s' is a built-in function, it cannot be 
redefined"),
                                        tokstart);
                YYABORT;
          }
-#line 2252 "awkgram.c" /* yacc.c:1645  */
+#line 2262 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 33:
-#line 488 "awkgram.y" /* yacc.c:1645  */
+#line 488 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyval) = (yyvsp[0]);
+               yyval = yyvsp[0];
                at_seen = false;
          }
-#line 2261 "awkgram.c" /* yacc.c:1645  */
+#line 2271 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 36:
-#line 500 "awkgram.y" /* yacc.c:1645  */
+#line 500 "awkgram.y" /* yacc.c:1652  */
     { want_param_names = FUNC_HEADER; }
-#line 2267 "awkgram.c" /* yacc.c:1645  */
+#line 2277 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 37:
-#line 501 "awkgram.y" /* yacc.c:1645  */
+#line 501 "awkgram.y" /* yacc.c:1652  */
     {
                INSTRUCTION *func_comment = NULL;
                // Merge any comments found in the parameter list with those
                // following the function header, associate the whole shebang
                // with the function as one block comment.
-               if ((yyvsp[-2]) != NULL && (yyvsp[-2])->comment != NULL) {
-                       if ((yyvsp[0]) != NULL) {
-                               merge_comments((yyvsp[-2])->comment, 
(yyvsp[0]));
+               if (yyvsp[-2] != NULL && yyvsp[-2]->comment != NULL) {
+                       if (yyvsp[0] != NULL) {
+                               merge_comments(yyvsp[-2]->comment, yyvsp[0]);
                        }
-                       func_comment = (yyvsp[-2])->comment;
-               } else if ((yyvsp[0]) != NULL) {
-                       func_comment = (yyvsp[0]);
+                       func_comment = yyvsp[-2]->comment;
+               } else if (yyvsp[0] != NULL) {
+                       func_comment = yyvsp[0];
                }
 
-               (yyvsp[-6])->source_file = source;
-               (yyvsp[-6])->comment = func_comment;
-               if (install_function((yyvsp[-5])->lextok, (yyvsp[-6]), 
(yyvsp[-2])) < 0)
+               yyvsp[-6]->source_file = source;
+               yyvsp[-6]->comment = func_comment;
+               if (install_function(yyvsp[-5]->lextok, yyvsp[-6], yyvsp[-2]) < 
0)
                        YYABORT;
                in_function = true;
-               (yyvsp[-5])->lextok = NULL;
-               bcfree((yyvsp[-5]));
+               yyvsp[-5]->lextok = NULL;
+               bcfree(yyvsp[-5]);
                /* $5 already free'd in install_function */
-               (yyval) = (yyvsp[-6]);
+               yyval = yyvsp[-6];
                want_param_names = FUNC_BODY;
          }
-#line 2297 "awkgram.c" /* yacc.c:1645  */
+#line 2307 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 38:
-#line 534 "awkgram.y" /* yacc.c:1645  */
+#line 534 "awkgram.y" /* yacc.c:1652  */
     { want_regexp = true; }
-#line 2303 "awkgram.c" /* yacc.c:1645  */
+#line 2313 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 39:
-#line 536 "awkgram.y" /* yacc.c:1645  */
+#line 536 "awkgram.y" /* yacc.c:1652  */
     {
                  NODE *n, *exp;
                  char *re;
                  size_t len;
 
-                 re = (yyvsp[0])->lextok;
-                 (yyvsp[0])->lextok = NULL;
+                 re = yyvsp[0]->lextok;
+                 yyvsp[0]->lextok = NULL;
                  len = strlen(re);
                  if (do_lint) {
                        if (len == 0)
-                               lintwarn_ln((yyvsp[0])->source_line,
+                               lintwarn_ln(yyvsp[0]->source_line,
                                        _("regexp constant `//' looks like a 
C++ comment, but is not"));
                        else if (re[0] == '*' && re[len-1] == '*')
                                /* possible C comment */
-                               lintwarn_ln((yyvsp[0])->source_line,
+                               lintwarn_ln(yyvsp[0]->source_line,
                                        _("regexp constant `/%s/' looks like a 
C comment, but is not"), re);
                  }
 
@@ -2328,121 +2338,121 @@ yyreduce:
                        unref(exp);
                        YYABORT;
                  }
-                 (yyval) = (yyvsp[0]);
-                 (yyval)->opcode = Op_match_rec;
-                 (yyval)->memory = n;
+                 yyval = yyvsp[0];
+                 yyval->opcode = Op_match_rec;
+                 yyval->memory = n;
                }
-#line 2336 "awkgram.c" /* yacc.c:1645  */
+#line 2346 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 40:
-#line 568 "awkgram.y" /* yacc.c:1645  */
+#line 568 "awkgram.y" /* yacc.c:1652  */
     {
                  char *re;
                  size_t len;
 
-                 re = (yyvsp[0])->lextok;
-                 (yyvsp[0])->lextok = NULL;
+                 re = yyvsp[0]->lextok;
+                 yyvsp[0]->lextok = NULL;
                  len = strlen(re);
 
-                 (yyval) = (yyvsp[0]);
-                 (yyval)->opcode = Op_push_re;
-                 (yyval)->memory = make_typed_regex(re, len);
+                 yyval = yyvsp[0];
+                 yyval->opcode = Op_push_re;
+                 yyval->memory = make_typed_regex(re, len);
                }
-#line 2353 "awkgram.c" /* yacc.c:1645  */
+#line 2363 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 41:
-#line 583 "awkgram.y" /* yacc.c:1645  */
-    { bcfree((yyvsp[0])); }
-#line 2359 "awkgram.c" /* yacc.c:1645  */
+#line 583 "awkgram.y" /* yacc.c:1652  */
+    { bcfree(yyvsp[0]); }
+#line 2369 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 43:
-#line 589 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 2365 "awkgram.c" /* yacc.c:1645  */
+#line 589 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 2375 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 44:
-#line 591 "awkgram.y" /* yacc.c:1645  */
+#line 591 "awkgram.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[0]) == NULL) {
-                       (yyval) = (yyvsp[-1]);
+               if (yyvsp[0] == NULL) {
+                       yyval = yyvsp[-1];
                } else {
-                       add_lint((yyvsp[0]), LINT_no_effect);
-                       if ((yyvsp[-1]) == NULL) {
-                               (yyval) = (yyvsp[0]);
+                       add_lint(yyvsp[0], LINT_no_effect);
+                       if (yyvsp[-1] == NULL) {
+                               yyval = yyvsp[0];
                        } else {
-                               (yyval) = list_merge((yyvsp[-1]), (yyvsp[0]));
+                               yyval = list_merge(yyvsp[-1], yyvsp[0]);
                        }
                }
 
                if (trailing_comment != NULL) {
-                       (yyval) = list_append((yyval), trailing_comment);
+                       yyval = list_append(yyval, trailing_comment);
                        trailing_comment = NULL;
                }
 
                yyerrok;
          }
-#line 2389 "awkgram.c" /* yacc.c:1645  */
+#line 2399 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 45:
-#line 611 "awkgram.y" /* yacc.c:1645  */
-    {  (yyval) = NULL; }
-#line 2395 "awkgram.c" /* yacc.c:1645  */
+#line 611 "awkgram.y" /* yacc.c:1652  */
+    {  yyval = NULL; }
+#line 2405 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 46:
-#line 615 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 2401 "awkgram.c" /* yacc.c:1645  */
+#line 615 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 2411 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 47:
-#line 616 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 2407 "awkgram.c" /* yacc.c:1645  */
+#line 616 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 2417 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 48:
-#line 621 "awkgram.y" /* yacc.c:1645  */
+#line 621 "awkgram.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[0]) != NULL) {
+               if (yyvsp[0] != NULL) {
                        INSTRUCTION *ip;
 
-                       merge_comments((yyvsp[0]), NULL);
+                       merge_comments(yyvsp[0], NULL);
                        ip = list_create(instruction(Op_no_op));
-                       (yyval) = list_append(ip, (yyvsp[0])); 
+                       yyval = list_append(ip, yyvsp[0]); 
                } else
-                       (yyval) = NULL;
+                       yyval = NULL;
          }
-#line 2422 "awkgram.c" /* yacc.c:1645  */
+#line 2432 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 49:
-#line 632 "awkgram.y" /* yacc.c:1645  */
+#line 632 "awkgram.y" /* yacc.c:1652  */
     {
-               trailing_comment = (yyvsp[0]);  // NULL or comment
-               (yyval) = make_braced_statements((yyvsp[-2]), (yyvsp[-1]), 
(yyvsp[0]));
+               trailing_comment = yyvsp[0];    // NULL or comment
+               yyval = make_braced_statements(yyvsp[-2], yyvsp[-1], yyvsp[0]);
          }
-#line 2431 "awkgram.c" /* yacc.c:1645  */
+#line 2441 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 50:
-#line 637 "awkgram.y" /* yacc.c:1645  */
+#line 637 "awkgram.y" /* yacc.c:1652  */
     {
                if (do_pretty_print)
-                       (yyval) = list_prepend((yyvsp[0]), 
instruction(Op_exec_count));
+                       yyval = list_prepend(yyvsp[0], 
instruction(Op_exec_count));
                else
-                       (yyval) = (yyvsp[0]);
+                       yyval = yyvsp[0];
          }
-#line 2442 "awkgram.c" /* yacc.c:1645  */
+#line 2452 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 51:
-#line 644 "awkgram.y" /* yacc.c:1645  */
+#line 644 "awkgram.y" /* yacc.c:1652  */
     {
                INSTRUCTION *dflt, *curr = NULL, *cexp, *cstmt;
                INSTRUCTION *ip, *nextc, *tbreak;
@@ -2457,9 +2467,9 @@ yyreduce:
                dflt = instruction(Op_jmp);
                dflt->target_jmp = tbreak;      /* if no case match and no 
explicit default */
 
-               if ((yyvsp[-2]) != NULL) {
-                       curr = (yyvsp[-2])->nexti;
-                       bcfree((yyvsp[-2]));    /* Op_list */
+               if (yyvsp[-2] != NULL) {
+                       curr = yyvsp[-2]->nexti;
+                       bcfree(yyvsp[-2]);      /* Op_list */
                }
                /*  else
                        curr = NULL; */
@@ -2516,45 +2526,45 @@ yyreduce:
                if (case_values != NULL)
                        efree(case_values);
 
-               ip = (yyvsp[-6]);
+               ip = yyvsp[-6];
                if (do_pretty_print) {
                        // first merge comments
                        INSTRUCTION *head_comment = NULL;
 
-                       if ((yyvsp[-4]) != NULL && (yyvsp[-3]) != NULL) {
-                               merge_comments((yyvsp[-4]), (yyvsp[-3]));
-                               head_comment = (yyvsp[-4]);
-                       } else if ((yyvsp[-4]) != NULL)
-                               head_comment = (yyvsp[-4]);
+                       if (yyvsp[-4] != NULL && yyvsp[-3] != NULL) {
+                               merge_comments(yyvsp[-4], yyvsp[-3]);
+                               head_comment = yyvsp[-4];
+                       } else if (yyvsp[-4] != NULL)
+                               head_comment = yyvsp[-4];
                        else
-                               head_comment = (yyvsp[-3]);
+                               head_comment = yyvsp[-3];
 
-                       (yyvsp[-8])->comment = head_comment;
+                       yyvsp[-8]->comment = head_comment;
 
-                       (void) list_prepend(ip, (yyvsp[-8]));
+                       (void) list_prepend(ip, yyvsp[-8]);
                        (void) list_prepend(ip, instruction(Op_exec_count));
-                       (yyvsp[-8])->target_break = tbreak;
-                       ((yyvsp[-8]) + 1)->switch_start = cexp->nexti;
-                       ((yyvsp[-8]) + 1)->switch_end = cexp->lasti;
-                       ((yyvsp[-8]) + 1)->switch_end->comment = (yyvsp[0]);
+                       yyvsp[-8]->target_break = tbreak;
+                       (yyvsp[-8] + 1)->switch_start = cexp->nexti;
+                       (yyvsp[-8] + 1)->switch_end = cexp->lasti;
+                       (yyvsp[-8] + 1)->switch_end->comment = yyvsp[0];
                }
                /* else
                        $1 is NULL */
 
                (void) list_append(cexp, dflt);
                (void) list_merge(ip, cexp);
-               if ((yyvsp[-1]) != NULL)
-                       (void) list_append(cstmt, (yyvsp[-1]));
-               (yyval) = list_merge(ip, cstmt);
+               if (yyvsp[-1] != NULL)
+                       (void) list_append(cstmt, yyvsp[-1]);
+               yyval = list_merge(ip, cstmt);
 
                break_allowed--;
                fix_break_continue(ip, tbreak, NULL);
          }
-#line 2554 "awkgram.c" /* yacc.c:1645  */
+#line 2564 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 52:
-#line 752 "awkgram.y" /* yacc.c:1645  */
+#line 752 "awkgram.y" /* yacc.c:1652  */
     {
                /*
                 *    -----------------
@@ -2572,44 +2582,44 @@ yyreduce:
                INSTRUCTION *ip, *tbreak, *tcont;
 
                tbreak = instruction(Op_no_op);
-               add_lint((yyvsp[-3]), LINT_assign_in_cond);
-               tcont = (yyvsp[-3])->nexti;
-               ip = list_append((yyvsp[-3]), instruction(Op_jmp_false));
+               add_lint(yyvsp[-3], LINT_assign_in_cond);
+               tcont = yyvsp[-3]->nexti;
+               ip = list_append(yyvsp[-3], instruction(Op_jmp_false));
                ip->lasti->target_jmp = tbreak;
 
                if (do_pretty_print) {
                        (void) list_append(ip, instruction(Op_exec_count));
-                       (yyvsp[-5])->target_break = tbreak;
-                       (yyvsp[-5])->target_continue = tcont;
-                       ((yyvsp[-5]) + 1)->while_body = ip->lasti;
-                       (void) list_prepend(ip, (yyvsp[-5]));
+                       yyvsp[-5]->target_break = tbreak;
+                       yyvsp[-5]->target_continue = tcont;
+                       (yyvsp[-5] + 1)->while_body = ip->lasti;
+                       (void) list_prepend(ip, yyvsp[-5]);
                }
                /* else
                        $1 is NULL */
 
-               if ((yyvsp[-1]) != NULL) {
-                       if ((yyvsp[0]) == NULL)
-                               (yyvsp[0]) = list_create(instruction(Op_no_op));
+               if (yyvsp[-1] != NULL) {
+                       if (yyvsp[0] == NULL)
+                               yyvsp[0] = list_create(instruction(Op_no_op));
 
-                       (yyvsp[-1])->memory->comment_type = BLOCK_COMMENT;
-                       (yyvsp[0]) = list_prepend((yyvsp[0]), (yyvsp[-1]));
+                       yyvsp[-1]->memory->comment_type = BLOCK_COMMENT;
+                       yyvsp[0] = list_prepend(yyvsp[0], yyvsp[-1]);
                }
 
-               if ((yyvsp[0]) != NULL)
-                       (void) list_merge(ip, (yyvsp[0]));
+               if (yyvsp[0] != NULL)
+                       (void) list_merge(ip, yyvsp[0]);
                (void) list_append(ip, instruction(Op_jmp));
                ip->lasti->target_jmp = tcont;
-               (yyval) = list_append(ip, tbreak);
+               yyval = list_append(ip, tbreak);
 
                break_allowed--;
                continue_allowed--;
                fix_break_continue(ip, tbreak, tcont);
          }
-#line 2609 "awkgram.c" /* yacc.c:1645  */
+#line 2619 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 53:
-#line 803 "awkgram.y" /* yacc.c:1645  */
+#line 803 "awkgram.y" /* yacc.c:1652  */
     {
                /*
                 *    -----------------
@@ -2626,54 +2636,54 @@ yyreduce:
                INSTRUCTION *ip, *tbreak, *tcont;
 
                tbreak = instruction(Op_no_op);
-               tcont = (yyvsp[-2])->nexti;
-               add_lint((yyvsp[-2]), LINT_assign_in_cond);
-               if ((yyvsp[-5]) != NULL)
-                       ip = list_merge((yyvsp[-5]), (yyvsp[-2]));
+               tcont = yyvsp[-2]->nexti;
+               add_lint(yyvsp[-2], LINT_assign_in_cond);
+               if (yyvsp[-5] != NULL)
+                       ip = list_merge(yyvsp[-5], yyvsp[-2]);
                else
-                       ip = list_prepend((yyvsp[-2]), instruction(Op_no_op));
+                       ip = list_prepend(yyvsp[-2], instruction(Op_no_op));
 
-               if ((yyvsp[-6]) != NULL)
-                       (void) list_prepend(ip, (yyvsp[-6]));
+               if (yyvsp[-6] != NULL)
+                       (void) list_prepend(ip, yyvsp[-6]);
 
                if (do_pretty_print)
                        (void) list_prepend(ip, instruction(Op_exec_count));
 
                (void) list_append(ip, instruction(Op_jmp_true));
                ip->lasti->target_jmp = ip->nexti;
-               (yyval) = list_append(ip, tbreak);
+               yyval = list_append(ip, tbreak);
 
                break_allowed--;
                continue_allowed--;
                fix_break_continue(ip, tbreak, tcont);
 
                if (do_pretty_print) {
-                       (yyvsp[-7])->target_break = tbreak;
-                       (yyvsp[-7])->target_continue = tcont;
-                       ((yyvsp[-7]) + 1)->doloop_cond = tcont;
-                       (yyval) = list_prepend(ip, (yyvsp[-7]));
-                       bcfree((yyvsp[-4]));
-                       if ((yyvsp[0]) != NULL)
-                               (yyvsp[-7])->comment = (yyvsp[0]);
+                       yyvsp[-7]->target_break = tbreak;
+                       yyvsp[-7]->target_continue = tcont;
+                       (yyvsp[-7] + 1)->doloop_cond = tcont;
+                       yyval = list_prepend(ip, yyvsp[-7]);
+                       bcfree(yyvsp[-4]);
+                       if (yyvsp[0] != NULL)
+                               yyvsp[-7]->comment = yyvsp[0];
                }
                /* else
                        $1 and $4 are NULLs */
          }
-#line 2663 "awkgram.c" /* yacc.c:1645  */
+#line 2673 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 54:
-#line 853 "awkgram.y" /* yacc.c:1645  */
+#line 853 "awkgram.y" /* yacc.c:1652  */
     {
                INSTRUCTION *ip;
-               char *var_name = (yyvsp[-5])->lextok;
-
-               if ((yyvsp[0]) != NULL
-                               && (yyvsp[0])->lasti->opcode == Op_K_delete
-                               && (yyvsp[0])->lasti->expr_count == 1
-                               && (yyvsp[0])->nexti->opcode == Op_push
-                               && ((yyvsp[0])->nexti->memory->type != Node_var 
|| !((yyvsp[0])->nexti->memory->var_update))
-                               && strcmp((yyvsp[0])->nexti->memory->vname, 
var_name) == 0
+               char *var_name = yyvsp[-5]->lextok;
+
+               if (yyvsp[0] != NULL
+                               && yyvsp[0]->lasti->opcode == Op_K_delete
+                               && yyvsp[0]->lasti->expr_count == 1
+                               && yyvsp[0]->nexti->opcode == Op_push
+                               && (yyvsp[0]->nexti->memory->type != Node_var 
|| !(yyvsp[0]->nexti->memory->var_update))
+                               && strcmp(yyvsp[0]->nexti->memory->vname, 
var_name) == 0
                ) {
 
                /*
@@ -2691,29 +2701,29 @@ yyreduce:
                 */
                        NODE *arr = NULL;
 
-                       ip = (yyvsp[0])->nexti->nexti;
-                       if ((yyvsp[-3])->nexti->opcode == Op_push && 
(yyvsp[-3])->lasti == (yyvsp[-3])->nexti)
-                               arr = (yyvsp[-3])->nexti->memory;
+                       ip = yyvsp[0]->nexti->nexti;
+                       if (yyvsp[-3]->nexti->opcode == Op_push && 
yyvsp[-3]->lasti == yyvsp[-3]->nexti)
+                               arr = yyvsp[-3]->nexti->memory;
                        if (arr != NULL
                                        && ip->opcode == Op_no_op
                                        && ip->nexti->opcode == Op_push_array
                                        && strcmp(ip->nexti->memory->vname, 
arr->vname) == 0
-                                       && ip->nexti->nexti == (yyvsp[0])->lasti
+                                       && ip->nexti->nexti == yyvsp[0]->lasti
                        ) {
-                               (void) make_assignable((yyvsp[0])->nexti);
-                               (yyvsp[0])->lasti->opcode = Op_K_delete_loop;
-                               (yyvsp[0])->lasti->expr_count = 0;
-                               if ((yyvsp[-7]) != NULL)
-                                       bcfree((yyvsp[-7]));
+                               (void) make_assignable(yyvsp[0]->nexti);
+                               yyvsp[0]->lasti->opcode = Op_K_delete_loop;
+                               yyvsp[0]->lasti->expr_count = 0;
+                               if (yyvsp[-7] != NULL)
+                                       bcfree(yyvsp[-7]);
                                efree(var_name);
-                               bcfree((yyvsp[-5]));
-                               bcfree((yyvsp[-4]));
-                               bcfree((yyvsp[-3]));
-                               if ((yyvsp[-1]) != NULL) {
-                                       merge_comments((yyvsp[-1]), NULL);
-                                       (yyvsp[0]) = list_prepend((yyvsp[0]), 
(yyvsp[-1]));
+                               bcfree(yyvsp[-5]);
+                               bcfree(yyvsp[-4]);
+                               bcfree(yyvsp[-3]);
+                               if (yyvsp[-1] != NULL) {
+                                       merge_comments(yyvsp[-1], NULL);
+                                       yyvsp[0] = list_prepend(yyvsp[0], 
yyvsp[-1]);
                                }
-                               (yyval) = (yyvsp[0]);
+                               yyval = yyvsp[0];
                        } else
                                goto regular_loop;
                } else {
@@ -2730,253 +2740,253 @@ yyreduce:
                         * ib:[Op_arrayfor_final      ]
                         */
 regular_loop:
-                       ip = (yyvsp[-3]);
+                       ip = yyvsp[-3];
                        ip->nexti->opcode = Op_push_array;
 
                        tbreak = instruction(Op_arrayfor_final);
-                       (yyvsp[-4])->opcode = Op_arrayfor_incr;
-                       (yyvsp[-4])->array_var = 
variable((yyvsp[-5])->source_line, var_name, Node_var);
-                       (yyvsp[-4])->target_jmp = tbreak;
-                       tcont = (yyvsp[-4]);
-                       (yyvsp[-5])->opcode = Op_arrayfor_init;
-                       (yyvsp[-5])->target_jmp = tbreak;
-                       (void) list_append(ip, (yyvsp[-5]));
+                       yyvsp[-4]->opcode = Op_arrayfor_incr;
+                       yyvsp[-4]->array_var = variable(yyvsp[-5]->source_line, 
var_name, Node_var);
+                       yyvsp[-4]->target_jmp = tbreak;
+                       tcont = yyvsp[-4];
+                       yyvsp[-5]->opcode = Op_arrayfor_init;
+                       yyvsp[-5]->target_jmp = tbreak;
+                       (void) list_append(ip, yyvsp[-5]);
 
                        if (do_pretty_print) {
-                               (yyvsp[-7])->opcode = Op_K_arrayfor;
-                               (yyvsp[-7])->target_continue = tcont;
-                               (yyvsp[-7])->target_break = tbreak;
-                               (void) list_append(ip, (yyvsp[-7]));
+                               yyvsp[-7]->opcode = Op_K_arrayfor;
+                               yyvsp[-7]->target_continue = tcont;
+                               yyvsp[-7]->target_break = tbreak;
+                               (void) list_append(ip, yyvsp[-7]);
                        }
                        /* else
                                $1 is NULL */
 
                        /* add update_FOO instruction if necessary */
-                       if ((yyvsp[-4])->array_var->type == Node_var && 
(yyvsp[-4])->array_var->var_update) {
+                       if (yyvsp[-4]->array_var->type == Node_var && 
yyvsp[-4]->array_var->var_update) {
                                (void) list_append(ip, 
instruction(Op_var_update));
-                               ip->lasti->update_var = 
(yyvsp[-4])->array_var->var_update;
+                               ip->lasti->update_var = 
yyvsp[-4]->array_var->var_update;
                        }
-                       (void) list_append(ip, (yyvsp[-4]));
+                       (void) list_append(ip, yyvsp[-4]);
 
                        /* add set_FOO instruction if necessary */
-                       if ((yyvsp[-4])->array_var->type == Node_var && 
(yyvsp[-4])->array_var->var_assign) {
+                       if (yyvsp[-4]->array_var->type == Node_var && 
yyvsp[-4]->array_var->var_assign) {
                                (void) list_append(ip, 
instruction(Op_var_assign));
-                               ip->lasti->assign_var = 
(yyvsp[-4])->array_var->var_assign;
+                               ip->lasti->assign_var = 
yyvsp[-4]->array_var->var_assign;
                        }
 
                        if (do_pretty_print) {
                                (void) list_append(ip, 
instruction(Op_exec_count));
-                               ((yyvsp[-7]) + 1)->forloop_cond = (yyvsp[-4]);
-                               ((yyvsp[-7]) + 1)->forloop_body = ip->lasti;
+                               (yyvsp[-7] + 1)->forloop_cond = yyvsp[-4];
+                               (yyvsp[-7] + 1)->forloop_body = ip->lasti;
                        }
 
-                       if ((yyvsp[-1]) != NULL)
-                               merge_comments((yyvsp[-1]), NULL);
+                       if (yyvsp[-1] != NULL)
+                               merge_comments(yyvsp[-1], NULL);
 
-                       if ((yyvsp[0]) != NULL) {
-                               if ((yyvsp[-1]) != NULL)
-                                       (yyvsp[0]) = list_prepend((yyvsp[0]), 
(yyvsp[-1]));
-                               (void) list_merge(ip, (yyvsp[0]));
-                       } else if ((yyvsp[-1]) != NULL)
-                               (void) list_append(ip, (yyvsp[-1]));
+                       if (yyvsp[0] != NULL) {
+                               if (yyvsp[-1] != NULL)
+                                       yyvsp[0] = list_prepend(yyvsp[0], 
yyvsp[-1]);
+                               (void) list_merge(ip, yyvsp[0]);
+                       } else if (yyvsp[-1] != NULL)
+                               (void) list_append(ip, yyvsp[-1]);
 
                        (void) list_append(ip, instruction(Op_jmp));
-                       ip->lasti->target_jmp = (yyvsp[-4]);
-                       (yyval) = list_append(ip, tbreak);
+                       ip->lasti->target_jmp = yyvsp[-4];
+                       yyval = list_append(ip, tbreak);
                        fix_break_continue(ip, tbreak, tcont);
                }
 
                break_allowed--;
                continue_allowed--;
          }
-#line 2793 "awkgram.c" /* yacc.c:1645  */
+#line 2803 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 55:
-#line 979 "awkgram.y" /* yacc.c:1645  */
+#line 979 "awkgram.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[-7]) != NULL) {
-                       merge_comments((yyvsp[-7]), NULL);
-                       (yyvsp[-11])->comment = (yyvsp[-7]);
+               if (yyvsp[-7] != NULL) {
+                       merge_comments(yyvsp[-7], NULL);
+                       yyvsp[-11]->comment = yyvsp[-7];
                }
-               if ((yyvsp[-4]) != NULL) {
-                       merge_comments((yyvsp[-4]), NULL);
-                       if ((yyvsp[-11])->comment == NULL) {
-                               (yyvsp[-4])->memory->comment_type = FOR_COMMENT;
-                               (yyvsp[-11])->comment = (yyvsp[-4]);
+               if (yyvsp[-4] != NULL) {
+                       merge_comments(yyvsp[-4], NULL);
+                       if (yyvsp[-11]->comment == NULL) {
+                               yyvsp[-4]->memory->comment_type = FOR_COMMENT;
+                               yyvsp[-11]->comment = yyvsp[-4];
                        } else
-                               (yyvsp[-11])->comment->comment = (yyvsp[-4]);
+                               yyvsp[-11]->comment->comment = yyvsp[-4];
                }
-               if ((yyvsp[-1]) != NULL)
-                       (yyvsp[0]) = list_prepend((yyvsp[0]), (yyvsp[-1]));
-               (yyval) = mk_for_loop((yyvsp[-11]), (yyvsp[-9]), (yyvsp[-6]), 
(yyvsp[-3]), (yyvsp[0]));
+               if (yyvsp[-1] != NULL)
+                       yyvsp[0] = list_prepend(yyvsp[0], yyvsp[-1]);
+               yyval = mk_for_loop(yyvsp[-11], yyvsp[-9], yyvsp[-6], 
yyvsp[-3], yyvsp[0]);
 
                break_allowed--;
                continue_allowed--;
          }
-#line 2818 "awkgram.c" /* yacc.c:1645  */
+#line 2828 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 56:
-#line 1000 "awkgram.y" /* yacc.c:1645  */
+#line 1000 "awkgram.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[-6]) != NULL) {
-                       merge_comments((yyvsp[-6]), NULL);
-                       (yyvsp[-10])->comment = (yyvsp[-6]);
+               if (yyvsp[-6] != NULL) {
+                       merge_comments(yyvsp[-6], NULL);
+                       yyvsp[-10]->comment = yyvsp[-6];
                }
-               if ((yyvsp[-4]) != NULL) {
-                       merge_comments((yyvsp[-4]), NULL);
-                       if ((yyvsp[-10])->comment == NULL) {
-                               (yyvsp[-4])->memory->comment_type = FOR_COMMENT;
-                               (yyvsp[-10])->comment = (yyvsp[-4]);
+               if (yyvsp[-4] != NULL) {
+                       merge_comments(yyvsp[-4], NULL);
+                       if (yyvsp[-10]->comment == NULL) {
+                               yyvsp[-4]->memory->comment_type = FOR_COMMENT;
+                               yyvsp[-10]->comment = yyvsp[-4];
                        } else
-                               (yyvsp[-10])->comment->comment = (yyvsp[-4]);
+                               yyvsp[-10]->comment->comment = yyvsp[-4];
                }
-               if ((yyvsp[-1]) != NULL)
-                       (yyvsp[0]) = list_prepend((yyvsp[0]), (yyvsp[-1]));
-               (yyval) = mk_for_loop((yyvsp[-10]), (yyvsp[-8]), (INSTRUCTION 
*) NULL, (yyvsp[-3]), (yyvsp[0]));
+               if (yyvsp[-1] != NULL)
+                       yyvsp[0] = list_prepend(yyvsp[0], yyvsp[-1]);
+               yyval = mk_for_loop(yyvsp[-10], yyvsp[-8], (INSTRUCTION *) 
NULL, yyvsp[-3], yyvsp[0]);
 
                break_allowed--;
                continue_allowed--;
          }
-#line 2843 "awkgram.c" /* yacc.c:1645  */
+#line 2853 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 57:
-#line 1021 "awkgram.y" /* yacc.c:1645  */
+#line 1021 "awkgram.y" /* yacc.c:1652  */
     {
                if (do_pretty_print)
-                       (yyval) = list_prepend((yyvsp[0]), 
instruction(Op_exec_count));
+                       yyval = list_prepend(yyvsp[0], 
instruction(Op_exec_count));
                else
-                       (yyval) = (yyvsp[0]);
+                       yyval = yyvsp[0];
          }
-#line 2854 "awkgram.c" /* yacc.c:1645  */
+#line 2864 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 58:
-#line 1031 "awkgram.y" /* yacc.c:1645  */
+#line 1031 "awkgram.y" /* yacc.c:1652  */
     {
                if (! break_allowed)
-                       error_ln((yyvsp[-1])->source_line,
+                       error_ln(yyvsp[-1]->source_line,
                                _("`break' is not allowed outside a loop or 
switch"));
-               (yyvsp[-1])->target_jmp = NULL;
-               (yyval) = list_create((yyvsp[-1]));
-               if ((yyvsp[0]) != NULL)
-                       (yyval) = list_append((yyval), (yyvsp[0]));
+               yyvsp[-1]->target_jmp = NULL;
+               yyval = list_create(yyvsp[-1]);
+               if (yyvsp[0] != NULL)
+                       yyval = list_append(yyval, yyvsp[0]);
          }
-#line 2868 "awkgram.c" /* yacc.c:1645  */
+#line 2878 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 59:
-#line 1041 "awkgram.y" /* yacc.c:1645  */
+#line 1041 "awkgram.y" /* yacc.c:1652  */
     {
                if (! continue_allowed)
-                       error_ln((yyvsp[-1])->source_line,
+                       error_ln(yyvsp[-1]->source_line,
                                _("`continue' is not allowed outside a loop"));
-               (yyvsp[-1])->target_jmp = NULL;
-               (yyval) = list_create((yyvsp[-1]));
-               if ((yyvsp[0]) != NULL)
-                       (yyval) = list_append((yyval), (yyvsp[0]));
+               yyvsp[-1]->target_jmp = NULL;
+               yyval = list_create(yyvsp[-1]);
+               if (yyvsp[0] != NULL)
+                       yyval = list_append(yyval, yyvsp[0]);
          }
-#line 2882 "awkgram.c" /* yacc.c:1645  */
+#line 2892 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 60:
-#line 1051 "awkgram.y" /* yacc.c:1645  */
+#line 1051 "awkgram.y" /* yacc.c:1652  */
     {
                /* if inside function (rule = 0), resolve context at run-time */
                if (rule && rule != Rule)
-                       error_ln((yyvsp[-1])->source_line,
+                       error_ln(yyvsp[-1]->source_line,
                                _("`next' used in %s action"), ruletab[rule]);
-               (yyvsp[-1])->target_jmp = ip_rec;
-               (yyval) = list_create((yyvsp[-1]));
-               if ((yyvsp[0]) != NULL)
-                       (yyval) = list_append((yyval), (yyvsp[0]));
+               yyvsp[-1]->target_jmp = ip_rec;
+               yyval = list_create(yyvsp[-1]);
+               if (yyvsp[0] != NULL)
+                       yyval = list_append(yyval, yyvsp[0]);
          }
-#line 2897 "awkgram.c" /* yacc.c:1645  */
+#line 2907 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 61:
-#line 1062 "awkgram.y" /* yacc.c:1645  */
+#line 1062 "awkgram.y" /* yacc.c:1652  */
     {
                /* if inside function (rule = 0), resolve context at run-time */
                if (rule == BEGIN || rule == END || rule == ENDFILE)
-                       error_ln((yyvsp[-1])->source_line,
+                       error_ln(yyvsp[-1]->source_line,
                                _("`nextfile' used in %s action"), 
ruletab[rule]);
 
-               (yyvsp[-1])->target_newfile = ip_newfile;
-               (yyvsp[-1])->target_endfile = ip_endfile;
-               (yyval) = list_create((yyvsp[-1]));
-               if ((yyvsp[0]) != NULL)
-                       (yyval) = list_append((yyval), (yyvsp[0]));
+               yyvsp[-1]->target_newfile = ip_newfile;
+               yyvsp[-1]->target_endfile = ip_endfile;
+               yyval = list_create(yyvsp[-1]);
+               if (yyvsp[0] != NULL)
+                       yyval = list_append(yyval, yyvsp[0]);
          }
-#line 2914 "awkgram.c" /* yacc.c:1645  */
+#line 2924 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 62:
-#line 1075 "awkgram.y" /* yacc.c:1645  */
+#line 1075 "awkgram.y" /* yacc.c:1652  */
     {
                /* Initialize the two possible jump targets, the actual target
                 * is resolved at run-time.
                 */
-               (yyvsp[-2])->target_end = ip_end;       /* first instruction in 
end_block */
-               (yyvsp[-2])->target_atexit = ip_atexit; /* cleanup and go home 
*/
+               yyvsp[-2]->target_end = ip_end; /* first instruction in 
end_block */
+               yyvsp[-2]->target_atexit = ip_atexit;   /* cleanup and go home 
*/
 
-               if ((yyvsp[-1]) == NULL) {
-                       (yyval) = list_create((yyvsp[-2]));
-                       (void) list_prepend((yyval), instruction(Op_push_i));
-                       (yyval)->nexti->memory = dupnode(Nnull_string);
+               if (yyvsp[-1] == NULL) {
+                       yyval = list_create(yyvsp[-2]);
+                       (void) list_prepend(yyval, instruction(Op_push_i));
+                       yyval->nexti->memory = dupnode(Nnull_string);
                } else
-                       (yyval) = list_append((yyvsp[-1]), (yyvsp[-2]));
-               if ((yyvsp[0]) != NULL)
-                       (yyval) = list_append((yyval), (yyvsp[0]));
+                       yyval = list_append(yyvsp[-1], yyvsp[-2]);
+               if (yyvsp[0] != NULL)
+                       yyval = list_append(yyval, yyvsp[0]);
          }
-#line 2935 "awkgram.c" /* yacc.c:1645  */
+#line 2945 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 63:
-#line 1092 "awkgram.y" /* yacc.c:1645  */
+#line 1092 "awkgram.y" /* yacc.c:1652  */
     {
                if (! in_function)
                        yyerror(_("`return' used outside function context"));
          }
-#line 2944 "awkgram.c" /* yacc.c:1645  */
+#line 2954 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 64:
-#line 1095 "awkgram.y" /* yacc.c:1645  */
+#line 1095 "awkgram.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[-1]) == NULL) {
-                       (yyval) = list_create((yyvsp[-3]));
-                       (void) list_prepend((yyval), instruction(Op_push_i));
-                       (yyval)->nexti->memory = dupnode(Nnull_string);
+               if (yyvsp[-1] == NULL) {
+                       yyval = list_create(yyvsp[-3]);
+                       (void) list_prepend(yyval, instruction(Op_push_i));
+                       yyval->nexti->memory = dupnode(Nnull_string);
                } else
-                       (yyval) = list_append((yyvsp[-1]), (yyvsp[-3]));
-               if ((yyvsp[0]) != NULL)
-                       (yyval) = list_append((yyval), (yyvsp[0]));
+                       yyval = list_append(yyvsp[-1], yyvsp[-3]);
+               if (yyvsp[0] != NULL)
+                       yyval = list_append(yyval, yyvsp[0]);
          }
-#line 2959 "awkgram.c" /* yacc.c:1645  */
+#line 2969 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 65:
-#line 1106 "awkgram.y" /* yacc.c:1645  */
+#line 1106 "awkgram.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[0]) != NULL)
-                       (yyval) = list_append((yyvsp[-1]), (yyvsp[0]));
+               if (yyvsp[0] != NULL)
+                       yyval = list_append(yyvsp[-1], yyvsp[0]);
                else
-                       (yyval) = (yyvsp[-1]);
+                       yyval = yyvsp[-1];
          }
-#line 2970 "awkgram.c" /* yacc.c:1645  */
+#line 2980 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 66:
-#line 1123 "awkgram.y" /* yacc.c:1645  */
+#line 1123 "awkgram.y" /* yacc.c:1652  */
     { in_print = true; in_parens = 0; }
-#line 2976 "awkgram.c" /* yacc.c:1645  */
+#line 2986 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 67:
-#line 1124 "awkgram.y" /* yacc.c:1645  */
+#line 1124 "awkgram.y" /* yacc.c:1652  */
     {
                /*
                 * Optimization: plain `print' has no expression list, so $3 is 
null.
@@ -2984,12 +2994,12 @@ regular_loop:
                 * which is faster for these two cases.
                 */
 
-               if (do_optimize && (yyvsp[-3])->opcode == Op_K_print &&
-                       ((yyvsp[-1]) == NULL
-                               || ((yyvsp[-1])->lasti->opcode == Op_field_spec
-                                       && (yyvsp[-1])->nexti->nexti->nexti == 
(yyvsp[-1])->lasti
-                                       && (yyvsp[-1])->nexti->nexti->opcode == 
Op_push_i
-                                       && 
(yyvsp[-1])->nexti->nexti->memory->type == Node_val)
+               if (do_optimize && yyvsp[-3]->opcode == Op_K_print &&
+                       (yyvsp[-1] == NULL
+                               || (yyvsp[-1]->lasti->opcode == Op_field_spec
+                                       && yyvsp[-1]->nexti->nexti->nexti == 
yyvsp[-1]->lasti
+                                       && yyvsp[-1]->nexti->nexti->opcode == 
Op_push_i
+                                       && 
yyvsp[-1]->nexti->nexti->memory->type == Node_val)
                        )
                ) {
                        static bool warned = false;
@@ -3002,37 +3012,37 @@ regular_loop:
                         *    [Op_K_print_rec | NULL | redir_type | expr_count]
                         */
 
-                       if ((yyvsp[-1]) != NULL) {
-                               NODE *n = (yyvsp[-1])->nexti->nexti->memory;
+                       if (yyvsp[-1] != NULL) {
+                               NODE *n = yyvsp[-1]->nexti->nexti->memory;
 
                                if (! iszero(n))
                                        goto regular_print;
 
-                               bcfree((yyvsp[-1])->lasti);                     
/* Op_field_spec */
+                               bcfree(yyvsp[-1]->lasti);                       
/* Op_field_spec */
                                unref(n);                               /* 
Node_val */
-                               bcfree((yyvsp[-1])->nexti->nexti);              
/* Op_push_i */
-                               bcfree((yyvsp[-1])->nexti);                     
/* Op_list */
-                               bcfree((yyvsp[-1]));                            
/* Op_list */
+                               bcfree(yyvsp[-1]->nexti->nexti);                
/* Op_push_i */
+                               bcfree(yyvsp[-1]->nexti);                       
/* Op_list */
+                               bcfree(yyvsp[-1]);                              
/* Op_list */
                        } else {
                                if (do_lint && (rule == BEGIN || rule == END) 
&& ! warned) {
                                        warned = true;
-                                       lintwarn_ln((yyvsp[-3])->source_line,
+                                       lintwarn_ln(yyvsp[-3]->source_line,
                _("plain `print' in BEGIN or END rule should probably be `print 
\"\"'"));
                                }
                        }
 
-                       (yyvsp[-3])->expr_count = 0;
-                       (yyvsp[-3])->opcode = Op_K_print_rec;
-                       if ((yyvsp[0]) == NULL) {    /* no redircetion */
-                               (yyvsp[-3])->redir_type = redirect_none;
-                               (yyval) = list_create((yyvsp[-3]));
+                       yyvsp[-3]->expr_count = 0;
+                       yyvsp[-3]->opcode = Op_K_print_rec;
+                       if (yyvsp[0] == NULL) {    /* no redircetion */
+                               yyvsp[-3]->redir_type = redirect_none;
+                               yyval = list_create(yyvsp[-3]);
                        } else {
                                INSTRUCTION *ip;
-                               ip = (yyvsp[0])->nexti;
-                               (yyvsp[-3])->redir_type = ip->redir_type;
-                               (yyvsp[0])->nexti = ip->nexti;
+                               ip = yyvsp[0]->nexti;
+                               yyvsp[-3]->redir_type = ip->redir_type;
+                               yyvsp[0]->nexti = ip->nexti;
                                bcfree(ip);
-                               (yyval) = list_append((yyvsp[0]), (yyvsp[-3]));
+                               yyval = list_append(yyvsp[0], yyvsp[-3]);
                        }
                } else {
                        /*   -----------------
@@ -3045,59 +3055,59 @@ regular_loop:
                         *
                         */
 regular_print:
-                       if ((yyvsp[0]) == NULL) {               /* no 
redirection */
-                               if ((yyvsp[-1]) == NULL)        {       /* 
printf without arg */
-                                       (yyvsp[-3])->expr_count = 0;
-                                       (yyvsp[-3])->redir_type = redirect_none;
-                                       (yyval) = list_create((yyvsp[-3]));
+                       if (yyvsp[0] == NULL) {         /* no redirection */
+                               if (yyvsp[-1] == NULL)  {       /* printf 
without arg */
+                                       yyvsp[-3]->expr_count = 0;
+                                       yyvsp[-3]->redir_type = redirect_none;
+                                       yyval = list_create(yyvsp[-3]);
                                } else {
-                                       INSTRUCTION *t = (yyvsp[-1]);
-                                       (yyvsp[-3])->expr_count = 
count_expressions(&t, false);
-                                       (yyvsp[-3])->redir_type = redirect_none;
-                                       (yyval) = list_append(t, (yyvsp[-3]));
+                                       INSTRUCTION *t = yyvsp[-1];
+                                       yyvsp[-3]->expr_count = 
count_expressions(&t, false);
+                                       yyvsp[-3]->redir_type = redirect_none;
+                                       yyval = list_append(t, yyvsp[-3]);
                                }
                        } else {
                                INSTRUCTION *ip;
-                               ip = (yyvsp[0])->nexti;
-                               (yyvsp[-3])->redir_type = ip->redir_type;
-                               (yyvsp[0])->nexti = ip->nexti;
+                               ip = yyvsp[0]->nexti;
+                               yyvsp[-3]->redir_type = ip->redir_type;
+                               yyvsp[0]->nexti = ip->nexti;
                                bcfree(ip);
-                               if ((yyvsp[-1]) == NULL) {
-                                       (yyvsp[-3])->expr_count = 0;
-                                       (yyval) = list_append((yyvsp[0]), 
(yyvsp[-3]));
+                               if (yyvsp[-1] == NULL) {
+                                       yyvsp[-3]->expr_count = 0;
+                                       yyval = list_append(yyvsp[0], 
yyvsp[-3]);
                                } else {
-                                       INSTRUCTION *t = (yyvsp[-1]);
-                                       (yyvsp[-3])->expr_count = 
count_expressions(&t, false);
-                                       (yyval) = 
list_append(list_merge((yyvsp[0]), t), (yyvsp[-3]));
+                                       INSTRUCTION *t = yyvsp[-1];
+                                       yyvsp[-3]->expr_count = 
count_expressions(&t, false);
+                                       yyval = 
list_append(list_merge(yyvsp[0], t), yyvsp[-3]);
                                }
                        }
                }
          }
-#line 3077 "awkgram.c" /* yacc.c:1645  */
+#line 3087 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 68:
-#line 1221 "awkgram.y" /* yacc.c:1645  */
+#line 1221 "awkgram.y" /* yacc.c:1652  */
     { sub_counter = 0; }
-#line 3083 "awkgram.c" /* yacc.c:1645  */
+#line 3093 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 69:
-#line 1222 "awkgram.y" /* yacc.c:1645  */
+#line 1222 "awkgram.y" /* yacc.c:1652  */
     {
-               char *arr = (yyvsp[-2])->lextok;
+               char *arr = yyvsp[-2]->lextok;
 
-               (yyvsp[-2])->opcode = Op_push_array;
-               (yyvsp[-2])->memory = variable((yyvsp[-2])->source_line, arr, 
Node_var_new);
+               yyvsp[-2]->opcode = Op_push_array;
+               yyvsp[-2]->memory = variable(yyvsp[-2]->source_line, arr, 
Node_var_new);
 
                if (! do_posix && ! do_traditional) {
-                       if ((yyvsp[-2])->memory == symbol_table)
+                       if (yyvsp[-2]->memory == symbol_table)
                                fatal(_("`delete' is not allowed with SYMTAB"));
-                       else if ((yyvsp[-2])->memory == func_table)
+                       else if (yyvsp[-2]->memory == func_table)
                                fatal(_("`delete' is not allowed with 
FUNCTAB"));
                }
 
-               if ((yyvsp[0]) == NULL) {
+               if (yyvsp[0] == NULL) {
                        /*
                         * As of September 2012, POSIX has added support
                         * for `delete array'. See:
@@ -3109,714 +3119,714 @@ regular_print:
                         * Also, since BWK awk supports it, we don't have to
                         * check do_traditional either.
                         */
-                       (yyvsp[-3])->expr_count = 0;
-                       (yyval) = list_append(list_create((yyvsp[-2])), 
(yyvsp[-3]));
+                       yyvsp[-3]->expr_count = 0;
+                       yyval = list_append(list_create(yyvsp[-2]), yyvsp[-3]);
                } else {
-                       (yyvsp[-3])->expr_count = sub_counter;
-                       (yyval) = list_append(list_append((yyvsp[0]), 
(yyvsp[-2])), (yyvsp[-3]));
+                       yyvsp[-3]->expr_count = sub_counter;
+                       yyval = list_append(list_append(yyvsp[0], yyvsp[-2]), 
yyvsp[-3]);
                }
          }
-#line 3120 "awkgram.c" /* yacc.c:1645  */
+#line 3130 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 70:
-#line 1259 "awkgram.y" /* yacc.c:1645  */
+#line 1259 "awkgram.y" /* yacc.c:1652  */
     {
                static bool warned = false;
-               char *arr = (yyvsp[-1])->lextok;
+               char *arr = yyvsp[-1]->lextok;
 
                if (do_lint && ! warned) {
                        warned = true;
-                       lintwarn_ln((yyvsp[-3])->source_line,
+                       lintwarn_ln(yyvsp[-3]->source_line,
                                _("`delete(array)' is a non-portable tawk 
extension"));
                }
                if (do_traditional) {
-                       error_ln((yyvsp[-3])->source_line,
+                       error_ln(yyvsp[-3]->source_line,
                                _("`delete(array)' is a non-portable tawk 
extension"));
                }
-               (yyvsp[-1])->memory = variable((yyvsp[-1])->source_line, arr, 
Node_var_new);
-               (yyvsp[-1])->opcode = Op_push_array;
-               (yyvsp[-3])->expr_count = 0;
-               (yyval) = list_append(list_create((yyvsp[-1])), (yyvsp[-3]));
+               yyvsp[-1]->memory = variable(yyvsp[-1]->source_line, arr, 
Node_var_new);
+               yyvsp[-1]->opcode = Op_push_array;
+               yyvsp[-3]->expr_count = 0;
+               yyval = list_append(list_create(yyvsp[-1]), yyvsp[-3]);
 
                if (! do_posix && ! do_traditional) {
-                       if ((yyvsp[-1])->memory == symbol_table)
+                       if (yyvsp[-1]->memory == symbol_table)
                                fatal(_("`delete' is not allowed with SYMTAB"));
-                       else if ((yyvsp[-1])->memory == func_table)
+                       else if (yyvsp[-1]->memory == func_table)
                                fatal(_("`delete' is not allowed with 
FUNCTAB"));
                }
          }
-#line 3150 "awkgram.c" /* yacc.c:1645  */
+#line 3160 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 71:
-#line 1285 "awkgram.y" /* yacc.c:1645  */
+#line 1285 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyval) = optimize_assignment((yyvsp[0]));
+               yyval = optimize_assignment(yyvsp[0]);
          }
-#line 3158 "awkgram.c" /* yacc.c:1645  */
+#line 3168 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 72:
-#line 1292 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 3164 "awkgram.c" /* yacc.c:1645  */
+#line 1292 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 3174 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 73:
-#line 1294 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 3170 "awkgram.c" /* yacc.c:1645  */
+#line 1294 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 3180 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 74:
-#line 1299 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 3176 "awkgram.c" /* yacc.c:1645  */
+#line 1299 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 3186 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 75:
-#line 1301 "awkgram.y" /* yacc.c:1645  */
+#line 1301 "awkgram.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[-1]) == NULL)
-                       (yyval) = list_create((yyvsp[0]));
+               if (yyvsp[-1] == NULL)
+                       yyval = list_create(yyvsp[0]);
                else
-                       (yyval) = list_prepend((yyvsp[-1]), (yyvsp[0]));
+                       yyval = list_prepend(yyvsp[-1], yyvsp[0]);
          }
-#line 3187 "awkgram.c" /* yacc.c:1645  */
+#line 3197 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 76:
-#line 1308 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 3193 "awkgram.c" /* yacc.c:1645  */
+#line 1308 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 3203 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 77:
-#line 1313 "awkgram.y" /* yacc.c:1645  */
+#line 1313 "awkgram.y" /* yacc.c:1652  */
     {
-               INSTRUCTION *casestmt = (yyvsp[0]);
-               if ((yyvsp[0]) == NULL)
+               INSTRUCTION *casestmt = yyvsp[0];
+               if (yyvsp[0] == NULL)
                        casestmt = list_create(instruction(Op_no_op));
                if (do_pretty_print)
                        (void) list_prepend(casestmt, 
instruction(Op_exec_count));
-               (yyvsp[-4])->case_exp = (yyvsp[-3]);
-               (yyvsp[-4])->case_stmt = casestmt;
-               (yyvsp[-4])->comment = (yyvsp[-1]);
-               bcfree((yyvsp[-2]));
-               (yyval) = (yyvsp[-4]);
+               yyvsp[-4]->case_exp = yyvsp[-3];
+               yyvsp[-4]->case_stmt = casestmt;
+               yyvsp[-4]->comment = yyvsp[-1];
+               bcfree(yyvsp[-2]);
+               yyval = yyvsp[-4];
          }
-#line 3210 "awkgram.c" /* yacc.c:1645  */
+#line 3220 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 78:
-#line 1326 "awkgram.y" /* yacc.c:1645  */
+#line 1326 "awkgram.y" /* yacc.c:1652  */
     {
-               INSTRUCTION *casestmt = (yyvsp[0]);
-               if ((yyvsp[0]) == NULL)
+               INSTRUCTION *casestmt = yyvsp[0];
+               if (yyvsp[0] == NULL)
                        casestmt = list_create(instruction(Op_no_op));
                if (do_pretty_print)
                        (void) list_prepend(casestmt, 
instruction(Op_exec_count));
-               bcfree((yyvsp[-2]));
-               (yyvsp[-3])->case_stmt = casestmt;
-               (yyvsp[-3])->comment = (yyvsp[-1]);
-               (yyval) = (yyvsp[-3]);
+               bcfree(yyvsp[-2]);
+               yyvsp[-3]->case_stmt = casestmt;
+               yyvsp[-3]->comment = yyvsp[-1];
+               yyval = yyvsp[-3];
          }
-#line 3226 "awkgram.c" /* yacc.c:1645  */
+#line 3236 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 79:
-#line 1341 "awkgram.y" /* yacc.c:1645  */
-    {  (yyval) = (yyvsp[0]); }
-#line 3232 "awkgram.c" /* yacc.c:1645  */
+#line 1341 "awkgram.y" /* yacc.c:1652  */
+    {  yyval = yyvsp[0]; }
+#line 3242 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 80:
-#line 1343 "awkgram.y" /* yacc.c:1645  */
+#line 1343 "awkgram.y" /* yacc.c:1652  */
     {
-               NODE *n = (yyvsp[0])->memory;
+               NODE *n = yyvsp[0]->memory;
                (void) force_number(n);
                negate_num(n);
-               bcfree((yyvsp[-1]));
-               (yyval) = (yyvsp[0]);
+               bcfree(yyvsp[-1]);
+               yyval = yyvsp[0];
          }
-#line 3244 "awkgram.c" /* yacc.c:1645  */
+#line 3254 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 81:
-#line 1351 "awkgram.y" /* yacc.c:1645  */
+#line 1351 "awkgram.y" /* yacc.c:1652  */
     {
-               NODE *n = (yyvsp[0])->lasti->memory;
-               bcfree((yyvsp[-1]));
+               NODE *n = yyvsp[0]->lasti->memory;
+               bcfree(yyvsp[-1]);
                add_sign_to_num(n, '+');
-               (yyval) = (yyvsp[0]);
+               yyval = yyvsp[0];
          }
-#line 3255 "awkgram.c" /* yacc.c:1645  */
+#line 3265 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 82:
-#line 1358 "awkgram.y" /* yacc.c:1645  */
-    {  (yyval) = (yyvsp[0]); }
-#line 3261 "awkgram.c" /* yacc.c:1645  */
+#line 1358 "awkgram.y" /* yacc.c:1652  */
+    {  yyval = yyvsp[0]; }
+#line 3271 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 83:
-#line 1360 "awkgram.y" /* yacc.c:1645  */
+#line 1360 "awkgram.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[0])->memory->type == Node_regex)
-                       (yyvsp[0])->opcode = Op_push_re;
+               if (yyvsp[0]->memory->type == Node_regex)
+                       yyvsp[0]->opcode = Op_push_re;
                else
-                       (yyvsp[0])->opcode = Op_push;
-               (yyval) = (yyvsp[0]);
+                       yyvsp[0]->opcode = Op_push;
+               yyval = yyvsp[0];
          }
-#line 3273 "awkgram.c" /* yacc.c:1645  */
+#line 3283 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 84:
-#line 1368 "awkgram.y" /* yacc.c:1645  */
+#line 1368 "awkgram.y" /* yacc.c:1652  */
     {
-               assert(((yyvsp[0])->memory->flags & REGEX) == REGEX);
-               (yyvsp[0])->opcode = Op_push_re;
-               (yyval) = (yyvsp[0]);
+               assert((yyvsp[0]->memory->flags & REGEX) == REGEX);
+               yyvsp[0]->opcode = Op_push_re;
+               yyval = yyvsp[0];
          }
-#line 3283 "awkgram.c" /* yacc.c:1645  */
+#line 3293 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 85:
-#line 1377 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 3289 "awkgram.c" /* yacc.c:1645  */
+#line 1377 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 3299 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 86:
-#line 1379 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 3295 "awkgram.c" /* yacc.c:1645  */
+#line 1379 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 3305 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 88:
-#line 1389 "awkgram.y" /* yacc.c:1645  */
+#line 1389 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyval) = (yyvsp[-1]);
+               yyval = yyvsp[-1];
          }
-#line 3303 "awkgram.c" /* yacc.c:1645  */
+#line 3313 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 89:
-#line 1396 "awkgram.y" /* yacc.c:1645  */
+#line 1396 "awkgram.y" /* yacc.c:1652  */
     {
                in_print = false;
                in_parens = 0;
-               (yyval) = NULL;
+               yyval = NULL;
          }
-#line 3313 "awkgram.c" /* yacc.c:1645  */
+#line 3323 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 90:
-#line 1401 "awkgram.y" /* yacc.c:1645  */
+#line 1401 "awkgram.y" /* yacc.c:1652  */
     { in_print = false; in_parens = 0; }
-#line 3319 "awkgram.c" /* yacc.c:1645  */
+#line 3329 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 91:
-#line 1402 "awkgram.y" /* yacc.c:1645  */
+#line 1402 "awkgram.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[-2])->redir_type == redirect_twoway
-                       && (yyvsp[0])->lasti->opcode == Op_K_getline_redir
-                               && (yyvsp[0])->lasti->redir_type == 
redirect_twoway)
+               if (yyvsp[-2]->redir_type == redirect_twoway
+                       && yyvsp[0]->lasti->opcode == Op_K_getline_redir
+                               && yyvsp[0]->lasti->redir_type == 
redirect_twoway)
                        yyerror(_("multistage two-way pipelines don't work"));
-               if (do_lint && (yyvsp[-2])->redir_type == redirect_output && 
(yyvsp[0])->lasti->opcode == Op_concat)
+               if (do_lint && yyvsp[-2]->redir_type == redirect_output && 
yyvsp[0]->lasti->opcode == Op_concat)
                        lintwarn(_("concatenation as I/O `>' redirection target 
is ambiguous"));
-               (yyval) = list_prepend((yyvsp[0]), (yyvsp[-2]));
+               yyval = list_prepend(yyvsp[0], yyvsp[-2]);
          }
-#line 3333 "awkgram.c" /* yacc.c:1645  */
+#line 3343 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 92:
-#line 1415 "awkgram.y" /* yacc.c:1645  */
+#line 1415 "awkgram.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[-1]) != NULL)
-                       (yyvsp[-5])->comment = (yyvsp[-1]);
-               (yyval) = mk_condition((yyvsp[-3]), (yyvsp[-5]), (yyvsp[0]), 
NULL, NULL);
+               if (yyvsp[-1] != NULL)
+                       yyvsp[-5]->comment = yyvsp[-1];
+               yyval = mk_condition(yyvsp[-3], yyvsp[-5], yyvsp[0], NULL, 
NULL);
          }
-#line 3343 "awkgram.c" /* yacc.c:1645  */
+#line 3353 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 93:
-#line 1422 "awkgram.y" /* yacc.c:1645  */
+#line 1422 "awkgram.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[-4]) != NULL)
-                       (yyvsp[-8])->comment = (yyvsp[-4]);
-               if ((yyvsp[-1]) != NULL)
-                       (yyvsp[-2])->comment = (yyvsp[-1]);
-               (yyval) = mk_condition((yyvsp[-6]), (yyvsp[-8]), (yyvsp[-3]), 
(yyvsp[-2]), (yyvsp[0]));
+               if (yyvsp[-4] != NULL)
+                       yyvsp[-8]->comment = yyvsp[-4];
+               if (yyvsp[-1] != NULL)
+                       yyvsp[-2]->comment = yyvsp[-1];
+               yyval = mk_condition(yyvsp[-6], yyvsp[-8], yyvsp[-3], 
yyvsp[-2], yyvsp[0]);
          }
-#line 3355 "awkgram.c" /* yacc.c:1645  */
+#line 3365 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 94:
-#line 1433 "awkgram.y" /* yacc.c:1645  */
+#line 1433 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyval) = (yyvsp[0]);
+               yyval = yyvsp[0];
          }
-#line 3363 "awkgram.c" /* yacc.c:1645  */
+#line 3373 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 95:
-#line 1437 "awkgram.y" /* yacc.c:1645  */
+#line 1437 "awkgram.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[-1]) != NULL && (yyvsp[0]) != NULL) {
-                       if ((yyvsp[-1])->memory->comment_type == EOL_COMMENT) {
-                               assert((yyvsp[0])->memory->comment_type == 
BLOCK_COMMENT);
-                               (yyvsp[-1])->comment = (yyvsp[0]);      // 
chain them
+               if (yyvsp[-1] != NULL && yyvsp[0] != NULL) {
+                       if (yyvsp[-1]->memory->comment_type == EOL_COMMENT) {
+                               assert(yyvsp[0]->memory->comment_type == 
BLOCK_COMMENT);
+                               yyvsp[-1]->comment = yyvsp[0];  // chain them
                        } else {
-                               merge_comments((yyvsp[-1]), (yyvsp[0]));
+                               merge_comments(yyvsp[-1], yyvsp[0]);
                        }
 
-                       (yyval) = (yyvsp[-1]);
-               } else if ((yyvsp[-1]) != NULL) {
-                       (yyval) = (yyvsp[-1]);
-               } else if ((yyvsp[0]) != NULL) {
-                       (yyval) = (yyvsp[0]);
+                       yyval = yyvsp[-1];
+               } else if (yyvsp[-1] != NULL) {
+                       yyval = yyvsp[-1];
+               } else if (yyvsp[0] != NULL) {
+                       yyval = yyvsp[0];
                } else
-                       (yyval) = NULL;
+                       yyval = NULL;
          }
-#line 3385 "awkgram.c" /* yacc.c:1645  */
+#line 3395 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 96:
-#line 1458 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 3391 "awkgram.c" /* yacc.c:1645  */
+#line 1458 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 3401 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 97:
-#line 1460 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 3397 "awkgram.c" /* yacc.c:1645  */
+#line 1460 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 3407 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 98:
-#line 1465 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 3403 "awkgram.c" /* yacc.c:1645  */
+#line 1465 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 3413 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 99:
-#line 1467 "awkgram.y" /* yacc.c:1645  */
+#line 1467 "awkgram.y" /* yacc.c:1652  */
     {
-               bcfree((yyvsp[-1]));
-               (yyval) = (yyvsp[0]);
+               bcfree(yyvsp[-1]);
+               yyval = yyvsp[0];
          }
-#line 3412 "awkgram.c" /* yacc.c:1645  */
+#line 3422 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 100:
-#line 1475 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 3418 "awkgram.c" /* yacc.c:1645  */
+#line 1475 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 3428 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 101:
-#line 1477 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 3424 "awkgram.c" /* yacc.c:1645  */
+#line 1477 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 3434 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 102:
-#line 1482 "awkgram.y" /* yacc.c:1645  */
+#line 1482 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyvsp[0])->param_count = 0;
-               (yyval) = list_create((yyvsp[0]));
+               yyvsp[0]->param_count = 0;
+               yyval = list_create(yyvsp[0]);
          }
-#line 3433 "awkgram.c" /* yacc.c:1645  */
+#line 3443 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 103:
-#line 1487 "awkgram.y" /* yacc.c:1645  */
+#line 1487 "awkgram.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[-2]) != NULL && (yyvsp[0]) != NULL) {
-                       (yyvsp[0])->param_count = 
(yyvsp[-2])->lasti->param_count + 1;
-                       (yyval) = list_append((yyvsp[-2]), (yyvsp[0]));
+               if (yyvsp[-2] != NULL && yyvsp[0] != NULL) {
+                       yyvsp[0]->param_count = yyvsp[-2]->lasti->param_count + 
1;
+                       yyval = list_append(yyvsp[-2], yyvsp[0]);
                        yyerrok;
 
                        // newlines are allowed after commas, catch any comments
-                       if ((yyvsp[-1]) != NULL) {
-                               if ((yyvsp[-2])->comment != NULL)
-                                       merge_comments((yyvsp[-2])->comment, 
(yyvsp[-1]));
+                       if (yyvsp[-1] != NULL) {
+                               if (yyvsp[-2]->comment != NULL)
+                                       merge_comments(yyvsp[-2]->comment, 
yyvsp[-1]);
                                else
-                                       (yyvsp[-2])->comment = (yyvsp[-1]);
+                                       yyvsp[-2]->comment = yyvsp[-1];
                        }
                } else
-                       (yyval) = NULL;
+                       yyval = NULL;
          }
-#line 3454 "awkgram.c" /* yacc.c:1645  */
+#line 3464 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 104:
-#line 1504 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 3460 "awkgram.c" /* yacc.c:1645  */
+#line 1504 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 3470 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 105:
-#line 1506 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[-1]); }
-#line 3466 "awkgram.c" /* yacc.c:1645  */
+#line 1506 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[-1]; }
+#line 3476 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 106:
-#line 1508 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[-2]); }
-#line 3472 "awkgram.c" /* yacc.c:1645  */
+#line 1508 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[-2]; }
+#line 3482 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 107:
-#line 1514 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 3478 "awkgram.c" /* yacc.c:1645  */
+#line 1514 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 3488 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 108:
-#line 1516 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 3484 "awkgram.c" /* yacc.c:1645  */
+#line 1516 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 3494 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 109:
-#line 1521 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 3490 "awkgram.c" /* yacc.c:1645  */
+#line 1521 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 3500 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 110:
-#line 1523 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 3496 "awkgram.c" /* yacc.c:1645  */
+#line 1523 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 3506 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 111:
-#line 1528 "awkgram.y" /* yacc.c:1645  */
-    {  (yyval) = mk_expression_list(NULL, (yyvsp[0])); }
-#line 3502 "awkgram.c" /* yacc.c:1645  */
+#line 1528 "awkgram.y" /* yacc.c:1652  */
+    {  yyval = mk_expression_list(NULL, yyvsp[0]); }
+#line 3512 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 112:
-#line 1530 "awkgram.y" /* yacc.c:1645  */
+#line 1530 "awkgram.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[-1]) != NULL)
-                       (yyvsp[-2])->lasti->comment = (yyvsp[-1]);
-               (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
+               if (yyvsp[-1] != NULL)
+                       yyvsp[-2]->lasti->comment = yyvsp[-1];
+               yyval = mk_expression_list(yyvsp[-2], yyvsp[0]);
                yyerrok;
          }
-#line 3513 "awkgram.c" /* yacc.c:1645  */
+#line 3523 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 113:
-#line 1537 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 3519 "awkgram.c" /* yacc.c:1645  */
+#line 1537 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 3529 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 114:
-#line 1539 "awkgram.y" /* yacc.c:1645  */
+#line 1539 "awkgram.y" /* yacc.c:1652  */
     {
                /*
                 * Returning the expression list instead of NULL lets
                 * snode get a list of arguments that it can count.
                 */
-               (yyval) = (yyvsp[-1]);
+               yyval = yyvsp[-1];
          }
-#line 3531 "awkgram.c" /* yacc.c:1645  */
+#line 3541 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 115:
-#line 1547 "awkgram.y" /* yacc.c:1645  */
+#line 1547 "awkgram.y" /* yacc.c:1652  */
     {
                /* Ditto */
-               (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
+               yyval = mk_expression_list(yyvsp[-2], yyvsp[0]);
          }
-#line 3540 "awkgram.c" /* yacc.c:1645  */
+#line 3550 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 116:
-#line 1552 "awkgram.y" /* yacc.c:1645  */
+#line 1552 "awkgram.y" /* yacc.c:1652  */
     {
                /* Ditto */
-               if ((yyvsp[-1]) != NULL)
-                       (yyvsp[-2])->lasti->comment = (yyvsp[-1]);
-               (yyval) = (yyvsp[-2]);
+               if (yyvsp[-1] != NULL)
+                       yyvsp[-2]->lasti->comment = yyvsp[-1];
+               yyval = yyvsp[-2];
          }
-#line 3551 "awkgram.c" /* yacc.c:1645  */
+#line 3561 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 117:
-#line 1562 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 3557 "awkgram.c" /* yacc.c:1645  */
+#line 1562 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 3567 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 118:
-#line 1564 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 3563 "awkgram.c" /* yacc.c:1645  */
+#line 1564 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 3573 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 119:
-#line 1569 "awkgram.y" /* yacc.c:1645  */
-    {  (yyval) = mk_expression_list(NULL, (yyvsp[0])); }
-#line 3569 "awkgram.c" /* yacc.c:1645  */
+#line 1569 "awkgram.y" /* yacc.c:1652  */
+    {  yyval = mk_expression_list(NULL, yyvsp[0]); }
+#line 3579 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 120:
-#line 1571 "awkgram.y" /* yacc.c:1645  */
+#line 1571 "awkgram.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[-1]) != NULL)
-                       (yyvsp[-2])->lasti->comment = (yyvsp[-1]);
-               (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
+               if (yyvsp[-1] != NULL)
+                       yyvsp[-2]->lasti->comment = yyvsp[-1];
+               yyval = mk_expression_list(yyvsp[-2], yyvsp[0]);
                yyerrok;
          }
-#line 3580 "awkgram.c" /* yacc.c:1645  */
+#line 3590 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 121:
-#line 1578 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 3586 "awkgram.c" /* yacc.c:1645  */
+#line 1578 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 3596 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 122:
-#line 1580 "awkgram.y" /* yacc.c:1645  */
+#line 1580 "awkgram.y" /* yacc.c:1652  */
     {
                /*
                 * Returning the expression list instead of NULL lets
                 * snode get a list of arguments that it can count.
                 */
-               (yyval) = (yyvsp[-1]);
+               yyval = yyvsp[-1];
          }
-#line 3598 "awkgram.c" /* yacc.c:1645  */
+#line 3608 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 123:
-#line 1588 "awkgram.y" /* yacc.c:1645  */
+#line 1588 "awkgram.y" /* yacc.c:1652  */
     {
                /* Ditto */
-               (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
+               yyval = mk_expression_list(yyvsp[-2], yyvsp[0]);
          }
-#line 3607 "awkgram.c" /* yacc.c:1645  */
+#line 3617 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 124:
-#line 1593 "awkgram.y" /* yacc.c:1645  */
+#line 1593 "awkgram.y" /* yacc.c:1652  */
     {
                /* Ditto */
-               if ((yyvsp[-1]) != NULL)
-                       (yyvsp[-2])->comment = (yyvsp[-1]);
-               (yyval) = (yyvsp[-2]);
+               if (yyvsp[-1] != NULL)
+                       yyvsp[-2]->comment = yyvsp[-1];
+               yyval = yyvsp[-2];
          }
-#line 3618 "awkgram.c" /* yacc.c:1645  */
+#line 3628 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 125:
-#line 1602 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 3624 "awkgram.c" /* yacc.c:1645  */
+#line 1602 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 3634 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 126:
-#line 1603 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = list_create((yyvsp[0])); }
-#line 3630 "awkgram.c" /* yacc.c:1645  */
+#line 1603 "awkgram.y" /* yacc.c:1652  */
+    { yyval = list_create(yyvsp[0]); }
+#line 3640 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 127:
-#line 1609 "awkgram.y" /* yacc.c:1645  */
+#line 1609 "awkgram.y" /* yacc.c:1652  */
     {
-               if (do_lint && (yyvsp[0])->lasti->opcode == Op_match_rec)
-                       lintwarn_ln((yyvsp[-1])->source_line,
+               if (do_lint && yyvsp[0]->lasti->opcode == Op_match_rec)
+                       lintwarn_ln(yyvsp[-1]->source_line,
                                _("regular expression on right of assignment"));
-               (yyval) = mk_assignment((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1]));
+               yyval = mk_assignment(yyvsp[-2], yyvsp[0], yyvsp[-1]);
          }
-#line 3641 "awkgram.c" /* yacc.c:1645  */
+#line 3651 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 128:
-#line 1616 "awkgram.y" /* yacc.c:1645  */
+#line 1616 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyval) = mk_assignment((yyvsp[-2]), list_create((yyvsp[0])), 
(yyvsp[-1]));
+               yyval = mk_assignment(yyvsp[-2], list_create(yyvsp[0]), 
yyvsp[-1]);
          }
-#line 3649 "awkgram.c" /* yacc.c:1645  */
+#line 3659 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 129:
-#line 1620 "awkgram.y" /* yacc.c:1645  */
-    {  (yyval) = mk_boolean((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3655 "awkgram.c" /* yacc.c:1645  */
+#line 1620 "awkgram.y" /* yacc.c:1652  */
+    {  yyval = mk_boolean(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
+#line 3665 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 130:
-#line 1622 "awkgram.y" /* yacc.c:1645  */
-    {  (yyval) = mk_boolean((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3661 "awkgram.c" /* yacc.c:1645  */
+#line 1622 "awkgram.y" /* yacc.c:1652  */
+    {  yyval = mk_boolean(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
+#line 3671 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 131:
-#line 1624 "awkgram.y" /* yacc.c:1645  */
+#line 1624 "awkgram.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[-2])->lasti->opcode == Op_match_rec)
-                       warning_ln((yyvsp[-1])->source_line,
+               if (yyvsp[-2]->lasti->opcode == Op_match_rec)
+                       warning_ln(yyvsp[-1]->source_line,
                                _("regular expression on left of `~' or `!~' 
operator"));
 
-               assert((yyvsp[0])->opcode == Op_push_re
-                       && ((yyvsp[0])->memory->flags & REGEX) != 0);
+               assert(yyvsp[0]->opcode == Op_push_re
+                       && (yyvsp[0]->memory->flags & REGEX) != 0);
                /* RHS is @/.../ */
-               (yyvsp[-1])->memory = (yyvsp[0])->memory;
-               bcfree((yyvsp[0]));
-               (yyval) = list_append((yyvsp[-2]), (yyvsp[-1]));
+               yyvsp[-1]->memory = yyvsp[0]->memory;
+               bcfree(yyvsp[0]);
+               yyval = list_append(yyvsp[-2], yyvsp[-1]);
          }
-#line 3678 "awkgram.c" /* yacc.c:1645  */
+#line 3688 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 132:
-#line 1637 "awkgram.y" /* yacc.c:1645  */
+#line 1637 "awkgram.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[-2])->lasti->opcode == Op_match_rec)
-                       warning_ln((yyvsp[-1])->source_line,
+               if (yyvsp[-2]->lasti->opcode == Op_match_rec)
+                       warning_ln(yyvsp[-1]->source_line,
                                _("regular expression on left of `~' or `!~' 
operator"));
 
-               if ((yyvsp[0])->lasti == (yyvsp[0])->nexti && 
(yyvsp[0])->nexti->opcode == Op_match_rec) {
+               if (yyvsp[0]->lasti == yyvsp[0]->nexti && 
yyvsp[0]->nexti->opcode == Op_match_rec) {
                        /* RHS is /.../ */
-                       (yyvsp[-1])->memory = (yyvsp[0])->nexti->memory;
-                       bcfree((yyvsp[0])->nexti);      /* Op_match_rec */
-                       bcfree((yyvsp[0]));                     /* Op_list */
-                       (yyval) = list_append((yyvsp[-2]), (yyvsp[-1]));
+                       yyvsp[-1]->memory = yyvsp[0]->nexti->memory;
+                       bcfree(yyvsp[0]->nexti);        /* Op_match_rec */
+                       bcfree(yyvsp[0]);                       /* Op_list */
+                       yyval = list_append(yyvsp[-2], yyvsp[-1]);
                } else {
-                       (yyvsp[-1])->memory = make_regnode(Node_dynregex, NULL);
-                       (yyval) = list_append(list_merge((yyvsp[-2]), 
(yyvsp[0])), (yyvsp[-1]));
+                       yyvsp[-1]->memory = make_regnode(Node_dynregex, NULL);
+                       yyval = list_append(list_merge(yyvsp[-2], yyvsp[0]), 
yyvsp[-1]);
                }
          }
-#line 3699 "awkgram.c" /* yacc.c:1645  */
+#line 3709 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 133:
-#line 1654 "awkgram.y" /* yacc.c:1645  */
+#line 1654 "awkgram.y" /* yacc.c:1652  */
     {
                if (do_lint_old)
-                       warning_ln((yyvsp[-1])->source_line,
+                       warning_ln(yyvsp[-1]->source_line,
                                _("old awk does not support the keyword `in' 
except after `for'"));
-               (yyvsp[0])->nexti->opcode = Op_push_array;
-               (yyvsp[-1])->opcode = Op_in_array;
-               (yyvsp[-1])->expr_count = 1;
-               (yyval) = list_append(list_merge((yyvsp[-2]), (yyvsp[0])), 
(yyvsp[-1]));
+               yyvsp[0]->nexti->opcode = Op_push_array;
+               yyvsp[-1]->opcode = Op_in_array;
+               yyvsp[-1]->expr_count = 1;
+               yyval = list_append(list_merge(yyvsp[-2], yyvsp[0]), yyvsp[-1]);
          }
-#line 3713 "awkgram.c" /* yacc.c:1645  */
+#line 3723 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 134:
-#line 1664 "awkgram.y" /* yacc.c:1645  */
+#line 1664 "awkgram.y" /* yacc.c:1652  */
     {
-               if (do_lint && (yyvsp[0])->lasti->opcode == Op_match_rec)
-                       lintwarn_ln((yyvsp[-1])->source_line,
+               if (do_lint && yyvsp[0]->lasti->opcode == Op_match_rec)
+                       lintwarn_ln(yyvsp[-1]->source_line,
                                _("regular expression on right of comparison"));
-               (yyval) = list_append(list_merge((yyvsp[-2]), (yyvsp[0])), 
(yyvsp[-1]));
+               yyval = list_append(list_merge(yyvsp[-2], yyvsp[0]), yyvsp[-1]);
          }
-#line 3724 "awkgram.c" /* yacc.c:1645  */
+#line 3734 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 135:
-#line 1671 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = mk_condition((yyvsp[-4]), (yyvsp[-3]), (yyvsp[-2]), 
(yyvsp[-1]), (yyvsp[0])); }
-#line 3730 "awkgram.c" /* yacc.c:1645  */
+#line 1671 "awkgram.y" /* yacc.c:1652  */
+    { yyval = mk_condition(yyvsp[-4], yyvsp[-3], yyvsp[-2], yyvsp[-1], 
yyvsp[0]); }
+#line 3740 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 136:
-#line 1673 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 3736 "awkgram.c" /* yacc.c:1645  */
+#line 1673 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 3746 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 137:
-#line 1678 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 3742 "awkgram.c" /* yacc.c:1645  */
+#line 1678 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 3752 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 138:
-#line 1680 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 3748 "awkgram.c" /* yacc.c:1645  */
+#line 1680 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 3758 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 139:
-#line 1682 "awkgram.y" /* yacc.c:1645  */
+#line 1682 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyvsp[0])->opcode = Op_assign_quotient;
-               (yyval) = (yyvsp[0]);
+               yyvsp[0]->opcode = Op_assign_quotient;
+               yyval = yyvsp[0];
          }
-#line 3757 "awkgram.c" /* yacc.c:1645  */
+#line 3767 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 140:
-#line 1690 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 3763 "awkgram.c" /* yacc.c:1645  */
+#line 1690 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 3773 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 141:
-#line 1692 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 3769 "awkgram.c" /* yacc.c:1645  */
+#line 1692 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 3779 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 142:
-#line 1697 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 3775 "awkgram.c" /* yacc.c:1645  */
+#line 1697 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 3785 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 143:
-#line 1699 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 3781 "awkgram.c" /* yacc.c:1645  */
+#line 1699 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 3791 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 144:
-#line 1704 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 3787 "awkgram.c" /* yacc.c:1645  */
+#line 1704 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 3797 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 145:
-#line 1706 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 3793 "awkgram.c" /* yacc.c:1645  */
+#line 1706 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 3803 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 146:
-#line 1708 "awkgram.y" /* yacc.c:1645  */
+#line 1708 "awkgram.y" /* yacc.c:1652  */
     {
                int count = 2;
                bool is_simple_var = false;
 
-               if ((yyvsp[-1])->lasti->opcode == Op_concat) {
+               if (yyvsp[-1]->lasti->opcode == Op_concat) {
                        /* multiple (> 2) adjacent strings optimization */
-                       is_simple_var = ((yyvsp[-1])->lasti->concat_flag & 
CSVAR) != 0;
-                       count = (yyvsp[-1])->lasti->expr_count + 1;
-                       (yyvsp[-1])->lasti->opcode = Op_no_op;
+                       is_simple_var = (yyvsp[-1]->lasti->concat_flag & CSVAR) 
!= 0;
+                       count = yyvsp[-1]->lasti->expr_count + 1;
+                       yyvsp[-1]->lasti->opcode = Op_no_op;
                } else {
-                       is_simple_var = ((yyvsp[-1])->nexti->opcode == Op_push
-                                       && (yyvsp[-1])->lasti == 
(yyvsp[-1])->nexti); /* first exp. is a simple
+                       is_simple_var = (yyvsp[-1]->nexti->opcode == Op_push
+                                       && yyvsp[-1]->lasti == 
yyvsp[-1]->nexti); /* first exp. is a simple
                                                                     * 
variable?; kludge for use
                                                                     * in 
Op_assign_concat.
                                                                     */
                }
 
                if (do_optimize
-                       && (yyvsp[-1])->nexti == (yyvsp[-1])->lasti && 
(yyvsp[-1])->nexti->opcode == Op_push_i
-                       && (yyvsp[0])->nexti == (yyvsp[0])->lasti && 
(yyvsp[0])->nexti->opcode == Op_push_i
+                       && yyvsp[-1]->nexti == yyvsp[-1]->lasti && 
yyvsp[-1]->nexti->opcode == Op_push_i
+                       && yyvsp[0]->nexti == yyvsp[0]->lasti && 
yyvsp[0]->nexti->opcode == Op_push_i
                ) {
-                       NODE *n1 = (yyvsp[-1])->nexti->memory;
-                       NODE *n2 = (yyvsp[0])->nexti->memory;
+                       NODE *n1 = yyvsp[-1]->nexti->memory;
+                       NODE *n2 = yyvsp[0]->nexti->memory;
                        size_t nlen;
 
                        // 1.5 ""   # can't fold this if program mucks with 
CONVFMT.
@@ -3835,185 +3845,185 @@ regular_print:
                        n1->flags &= ~(NUMCUR|NUMBER|NUMINT);
                        n1->flags |= (STRING|STRCUR);
                        unref(n2);
-                       bcfree((yyvsp[0])->nexti);
-                       bcfree((yyvsp[0]));
-                       (yyval) = (yyvsp[-1]);
+                       bcfree(yyvsp[0]->nexti);
+                       bcfree(yyvsp[0]);
+                       yyval = yyvsp[-1];
                } else {
        plain_concat:
-                       (yyval) = list_append(list_merge((yyvsp[-1]), 
(yyvsp[0])), instruction(Op_concat));
-                       (yyval)->lasti->concat_flag = (is_simple_var ? CSVAR : 
0);
-                       (yyval)->lasti->expr_count = count;
+                       yyval = list_append(list_merge(yyvsp[-1], yyvsp[0]), 
instruction(Op_concat));
+                       yyval->lasti->concat_flag = (is_simple_var ? CSVAR : 0);
+                       yyval->lasti->expr_count = count;
                        if (count > max_args)
                                max_args = count;
                }
          }
-#line 3851 "awkgram.c" /* yacc.c:1645  */
+#line 3861 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 148:
-#line 1767 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3857 "awkgram.c" /* yacc.c:1645  */
+#line 1767 "awkgram.y" /* yacc.c:1652  */
+    { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
+#line 3867 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 149:
-#line 1769 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3863 "awkgram.c" /* yacc.c:1645  */
+#line 1769 "awkgram.y" /* yacc.c:1652  */
+    { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
+#line 3873 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 150:
-#line 1771 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3869 "awkgram.c" /* yacc.c:1645  */
+#line 1771 "awkgram.y" /* yacc.c:1652  */
+    { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
+#line 3879 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 151:
-#line 1773 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3875 "awkgram.c" /* yacc.c:1645  */
+#line 1773 "awkgram.y" /* yacc.c:1652  */
+    { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
+#line 3885 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 152:
-#line 1775 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3881 "awkgram.c" /* yacc.c:1645  */
+#line 1775 "awkgram.y" /* yacc.c:1652  */
+    { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
+#line 3891 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 153:
-#line 1777 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3887 "awkgram.c" /* yacc.c:1645  */
+#line 1777 "awkgram.y" /* yacc.c:1652  */
+    { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
+#line 3897 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 154:
-#line 1779 "awkgram.y" /* yacc.c:1645  */
+#line 1779 "awkgram.y" /* yacc.c:1652  */
     {
                /*
                 * In BEGINFILE/ENDFILE, allow `getline [var] < file'
                 */
 
-               if ((rule == BEGINFILE || rule == ENDFILE) && (yyvsp[0]) == 
NULL)
-                       error_ln((yyvsp[-2])->source_line,
+               if ((rule == BEGINFILE || rule == ENDFILE) && yyvsp[0] == NULL)
+                       error_ln(yyvsp[-2]->source_line,
                                 _("non-redirected `getline' invalid inside 
`%s' rule"), ruletab[rule]);
-               if (do_lint && rule == END && (yyvsp[0]) == NULL)
-                       lintwarn_ln((yyvsp[-2])->source_line,
+               if (do_lint && rule == END && yyvsp[0] == NULL)
+                       lintwarn_ln(yyvsp[-2]->source_line,
                                _("non-redirected `getline' undefined inside 
END action"));
-               (yyval) = mk_getline((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]), 
redirect_input);
+               yyval = mk_getline(yyvsp[-2], yyvsp[-1], yyvsp[0], 
redirect_input);
          }
-#line 3905 "awkgram.c" /* yacc.c:1645  */
+#line 3915 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 155:
-#line 1793 "awkgram.y" /* yacc.c:1645  */
+#line 1793 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyvsp[0])->opcode = Op_postincrement;
-               (yyval) = mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
+               yyvsp[0]->opcode = Op_postincrement;
+               yyval = mk_assignment(yyvsp[-1], NULL, yyvsp[0]);
          }
-#line 3914 "awkgram.c" /* yacc.c:1645  */
+#line 3924 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 156:
-#line 1798 "awkgram.y" /* yacc.c:1645  */
+#line 1798 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyvsp[0])->opcode = Op_postdecrement;
-               (yyval) = mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
+               yyvsp[0]->opcode = Op_postdecrement;
+               yyval = mk_assignment(yyvsp[-1], NULL, yyvsp[0]);
          }
-#line 3923 "awkgram.c" /* yacc.c:1645  */
+#line 3933 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 157:
-#line 1803 "awkgram.y" /* yacc.c:1645  */
+#line 1803 "awkgram.y" /* yacc.c:1652  */
     {
                if (do_lint_old) {
-                   warning_ln((yyvsp[-1])->source_line,
+                   warning_ln(yyvsp[-1]->source_line,
                                _("old awk does not support the keyword `in' 
except after `for'"));
-                   warning_ln((yyvsp[-1])->source_line,
+                   warning_ln(yyvsp[-1]->source_line,
                                _("old awk does not support multidimensional 
arrays"));
                }
-               (yyvsp[0])->nexti->opcode = Op_push_array;
-               (yyvsp[-1])->opcode = Op_in_array;
-               if ((yyvsp[-3]) == NULL) {      /* error */
+               yyvsp[0]->nexti->opcode = Op_push_array;
+               yyvsp[-1]->opcode = Op_in_array;
+               if (yyvsp[-3] == NULL) {        /* error */
                        errcount++;
-                       (yyvsp[-1])->expr_count = 0;
-                       (yyval) = list_merge((yyvsp[0]), (yyvsp[-1]));
+                       yyvsp[-1]->expr_count = 0;
+                       yyval = list_merge(yyvsp[0], yyvsp[-1]);
                } else {
-                       INSTRUCTION *t = (yyvsp[-3]);
-                       (yyvsp[-1])->expr_count = count_expressions(&t, false);
-                       (yyval) = list_append(list_merge(t, (yyvsp[0])), 
(yyvsp[-1]));
+                       INSTRUCTION *t = yyvsp[-3];
+                       yyvsp[-1]->expr_count = count_expressions(&t, false);
+                       yyval = list_append(list_merge(t, yyvsp[0]), yyvsp[-1]);
                }
          }
-#line 3947 "awkgram.c" /* yacc.c:1645  */
+#line 3957 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 158:
-#line 1828 "awkgram.y" /* yacc.c:1645  */
+#line 1828 "awkgram.y" /* yacc.c:1652  */
     {
-                 (yyval) = mk_getline((yyvsp[-1]), (yyvsp[0]), (yyvsp[-3]), 
(yyvsp[-2])->redir_type);
-                 bcfree((yyvsp[-2]));
+                 yyval = mk_getline(yyvsp[-1], yyvsp[0], yyvsp[-3], 
yyvsp[-2]->redir_type);
+                 bcfree(yyvsp[-2]);
                }
-#line 3956 "awkgram.c" /* yacc.c:1645  */
+#line 3966 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 159:
-#line 1834 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3962 "awkgram.c" /* yacc.c:1645  */
+#line 1834 "awkgram.y" /* yacc.c:1652  */
+    { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
+#line 3972 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 160:
-#line 1836 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3968 "awkgram.c" /* yacc.c:1645  */
+#line 1836 "awkgram.y" /* yacc.c:1652  */
+    { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
+#line 3978 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 161:
-#line 1838 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3974 "awkgram.c" /* yacc.c:1645  */
+#line 1838 "awkgram.y" /* yacc.c:1652  */
+    { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
+#line 3984 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 162:
-#line 1840 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3980 "awkgram.c" /* yacc.c:1645  */
+#line 1840 "awkgram.y" /* yacc.c:1652  */
+    { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
+#line 3990 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 163:
-#line 1842 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3986 "awkgram.c" /* yacc.c:1645  */
+#line 1842 "awkgram.y" /* yacc.c:1652  */
+    { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
+#line 3996 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 164:
-#line 1844 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3992 "awkgram.c" /* yacc.c:1645  */
+#line 1844 "awkgram.y" /* yacc.c:1652  */
+    { yyval = mk_binary(yyvsp[-2], yyvsp[0], yyvsp[-1]); }
+#line 4002 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 165:
-#line 1849 "awkgram.y" /* yacc.c:1645  */
+#line 1849 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyval) = list_create((yyvsp[0]));
+               yyval = list_create(yyvsp[0]);
          }
-#line 4000 "awkgram.c" /* yacc.c:1645  */
+#line 4010 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 166:
-#line 1853 "awkgram.y" /* yacc.c:1645  */
-    {
-               if ((yyvsp[0])->opcode == Op_match_rec) {
-                       (yyvsp[0])->opcode = Op_nomatch;
-                       (yyvsp[-1])->opcode = Op_push_i;
-                       (yyvsp[-1])->memory = 
set_profile_text(make_number(0.0), "0", 1);
-                       (yyval) = 
list_append(list_append(list_create((yyvsp[-1])),
-                                               instruction(Op_field_spec)), 
(yyvsp[0]));
+#line 1853 "awkgram.y" /* yacc.c:1652  */
+    {
+               if (yyvsp[0]->opcode == Op_match_rec) {
+                       yyvsp[0]->opcode = Op_nomatch;
+                       yyvsp[-1]->opcode = Op_push_i;
+                       yyvsp[-1]->memory = set_profile_text(make_number(0.0), 
"0", 1);
+                       yyval = list_append(list_append(list_create(yyvsp[-1]),
+                                               instruction(Op_field_spec)), 
yyvsp[0]);
                } else {
-                       if (do_optimize && (yyvsp[0])->nexti == 
(yyvsp[0])->lasti
-                                       && (yyvsp[0])->nexti->opcode == 
Op_push_i
-                                       && ((yyvsp[0])->nexti->memory->flags & 
(MPFN|MPZN|INTLSTR)) == 0
+                       if (do_optimize && yyvsp[0]->nexti == yyvsp[0]->lasti
+                                       && yyvsp[0]->nexti->opcode == Op_push_i
+                                       && (yyvsp[0]->nexti->memory->flags & 
(MPFN|MPZN|INTLSTR)) == 0
                        ) {
-                               NODE *n = (yyvsp[0])->nexti->memory;
+                               NODE *n = yyvsp[0]->nexti->memory;
                                if ((n->flags & STRING) != 0) {
                                        n->numbr = (AWKNUM) (n->stlen == 0);
                                        n->flags &= ~(STRCUR|STRING);
@@ -4023,153 +4033,153 @@ regular_print:
                                        n->stlen = 0;
                                } else
                                        n->numbr = (AWKNUM) (n->numbr == 0.0);
-                               bcfree((yyvsp[-1]));
-                               (yyval) = (yyvsp[0]);
+                               bcfree(yyvsp[-1]);
+                               yyval = yyvsp[0];
                        } else {
-                               (yyvsp[-1])->opcode = Op_not;
-                               add_lint((yyvsp[0]), LINT_assign_in_cond);
-                               (yyval) = list_append((yyvsp[0]), (yyvsp[-1]));
+                               yyvsp[-1]->opcode = Op_not;
+                               add_lint(yyvsp[0], LINT_assign_in_cond);
+                               yyval = list_append(yyvsp[0], yyvsp[-1]);
                        }
                }
           }
-#line 4036 "awkgram.c" /* yacc.c:1645  */
+#line 4046 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 167:
-#line 1885 "awkgram.y" /* yacc.c:1645  */
+#line 1885 "awkgram.y" /* yacc.c:1652  */
     {
                // Always include. Allows us to lint warn on
                // print "foo" > "bar" 1
                // but not warn on
                // print "foo" > ("bar" 1)
-               (yyval) = list_append((yyvsp[-1]), bcalloc(Op_parens, 1, 
sourceline));
+               yyval = list_append(yyvsp[-1], bcalloc(Op_parens, 1, 
sourceline));
          }
-#line 4048 "awkgram.c" /* yacc.c:1645  */
+#line 4058 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 168:
-#line 1893 "awkgram.y" /* yacc.c:1645  */
+#line 1893 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyval) = snode((yyvsp[-1]), (yyvsp[-3]));
-               if ((yyval) == NULL)
+               yyval = snode(yyvsp[-1], yyvsp[-3]);
+               if (yyval == NULL)
                        YYABORT;
          }
-#line 4058 "awkgram.c" /* yacc.c:1645  */
+#line 4068 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 169:
-#line 1899 "awkgram.y" /* yacc.c:1645  */
+#line 1899 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyval) = snode((yyvsp[-1]), (yyvsp[-3]));
-               if ((yyval) == NULL)
+               yyval = snode(yyvsp[-1], yyvsp[-3]);
+               if (yyval == NULL)
                        YYABORT;
          }
-#line 4068 "awkgram.c" /* yacc.c:1645  */
+#line 4078 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 170:
-#line 1905 "awkgram.y" /* yacc.c:1645  */
+#line 1905 "awkgram.y" /* yacc.c:1652  */
     {
                static bool warned = false;
 
                if (do_lint && ! warned) {
                        warned = true;
-                       lintwarn_ln((yyvsp[0])->source_line,
+                       lintwarn_ln(yyvsp[0]->source_line,
                                _("call of `length' without parentheses is not 
portable"));
                }
-               (yyval) = snode(NULL, (yyvsp[0]));
-               if ((yyval) == NULL)
+               yyval = snode(NULL, yyvsp[0]);
+               if (yyval == NULL)
                        YYABORT;
          }
-#line 4085 "awkgram.c" /* yacc.c:1645  */
+#line 4095 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 173:
-#line 1920 "awkgram.y" /* yacc.c:1645  */
+#line 1920 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyvsp[-1])->opcode = Op_preincrement;
-               (yyval) = mk_assignment((yyvsp[0]), NULL, (yyvsp[-1]));
+               yyvsp[-1]->opcode = Op_preincrement;
+               yyval = mk_assignment(yyvsp[0], NULL, yyvsp[-1]);
          }
-#line 4094 "awkgram.c" /* yacc.c:1645  */
+#line 4104 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 174:
-#line 1925 "awkgram.y" /* yacc.c:1645  */
+#line 1925 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyvsp[-1])->opcode = Op_predecrement;
-               (yyval) = mk_assignment((yyvsp[0]), NULL, (yyvsp[-1]));
+               yyvsp[-1]->opcode = Op_predecrement;
+               yyval = mk_assignment(yyvsp[0], NULL, yyvsp[-1]);
          }
-#line 4103 "awkgram.c" /* yacc.c:1645  */
+#line 4113 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 175:
-#line 1930 "awkgram.y" /* yacc.c:1645  */
+#line 1930 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyval) = list_create((yyvsp[0]));
+               yyval = list_create(yyvsp[0]);
          }
-#line 4111 "awkgram.c" /* yacc.c:1645  */
+#line 4121 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 176:
-#line 1934 "awkgram.y" /* yacc.c:1645  */
+#line 1934 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyval) = list_create((yyvsp[0]));
+               yyval = list_create(yyvsp[0]);
          }
-#line 4119 "awkgram.c" /* yacc.c:1645  */
+#line 4129 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 177:
-#line 1938 "awkgram.y" /* yacc.c:1645  */
+#line 1938 "awkgram.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[0])->lasti->opcode == Op_push_i
-                       && ((yyvsp[0])->lasti->memory->flags & STRING) == 0
+               if (yyvsp[0]->lasti->opcode == Op_push_i
+                       && (yyvsp[0]->lasti->memory->flags & STRING) == 0
                ) {
-                       NODE *n = (yyvsp[0])->lasti->memory;
+                       NODE *n = yyvsp[0]->lasti->memory;
                        (void) force_number(n);
                        negate_num(n);
-                       (yyval) = (yyvsp[0]);
-                       bcfree((yyvsp[-1]));
+                       yyval = yyvsp[0];
+                       bcfree(yyvsp[-1]);
                } else {
-                       (yyvsp[-1])->opcode = Op_unary_minus;
-                       (yyval) = list_append((yyvsp[0]), (yyvsp[-1]));
+                       yyvsp[-1]->opcode = Op_unary_minus;
+                       yyval = list_append(yyvsp[0], yyvsp[-1]);
                }
          }
-#line 4138 "awkgram.c" /* yacc.c:1645  */
+#line 4148 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 178:
-#line 1953 "awkgram.y" /* yacc.c:1645  */
+#line 1953 "awkgram.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[0])->lasti->opcode == Op_push_i
-                       && ((yyvsp[0])->lasti->memory->flags & STRING) == 0
-                       && ((yyvsp[0])->lasti->memory->flags & NUMCONSTSTR) != 
0) {
-                       NODE *n = (yyvsp[0])->lasti->memory;
+               if (yyvsp[0]->lasti->opcode == Op_push_i
+                       && (yyvsp[0]->lasti->memory->flags & STRING) == 0
+                       && (yyvsp[0]->lasti->memory->flags & NUMCONSTSTR) != 0) 
{
+                       NODE *n = yyvsp[0]->lasti->memory;
                        add_sign_to_num(n, '+');
-                       (yyval) = (yyvsp[0]);
-                       bcfree((yyvsp[-1]));
+                       yyval = yyvsp[0];
+                       bcfree(yyvsp[-1]);
                } else {
                        /*
                         * was: $$ = $2
                         * POSIX semantics: force a conversion to numeric type
                         */
-                       (yyvsp[-1])->opcode = Op_unary_plus;
-                       (yyval) = list_append((yyvsp[0]), (yyvsp[-1]));
+                       yyvsp[-1]->opcode = Op_unary_plus;
+                       yyval = list_append(yyvsp[0], yyvsp[-1]);
                }
          }
-#line 4160 "awkgram.c" /* yacc.c:1645  */
+#line 4170 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 179:
-#line 1974 "awkgram.y" /* yacc.c:1645  */
+#line 1974 "awkgram.y" /* yacc.c:1652  */
     {
-               func_use((yyvsp[0])->lasti->func_name, FUNC_USE);
-               (yyval) = (yyvsp[0]);
+               func_use(yyvsp[0]->lasti->func_name, FUNC_USE);
+               yyval = yyvsp[0];
          }
-#line 4169 "awkgram.c" /* yacc.c:1645  */
+#line 4179 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 180:
-#line 1979 "awkgram.y" /* yacc.c:1645  */
+#line 1979 "awkgram.y" /* yacc.c:1652  */
     {
                /* indirect function call */
                INSTRUCTION *f, *t;
@@ -4185,7 +4195,7 @@ regular_print:
                        lintwarn("%s", msg);
                }
 
-               f = (yyvsp[0])->lasti;
+               f = yyvsp[0]->lasti;
                f->opcode = Op_indirect_func_call;
                name = estrdup(f->func_name, strlen(f->func_name));
                if (is_std_var(name))
@@ -4200,91 +4210,91 @@ regular_print:
                 *              @f(f="real_fun")
                 */
 
-               (yyval) = list_prepend((yyvsp[0]), t);
+               yyval = list_prepend(yyvsp[0], t);
                at_seen = false;
          }
-#line 4207 "awkgram.c" /* yacc.c:1645  */
+#line 4217 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 181:
-#line 2016 "awkgram.y" /* yacc.c:1645  */
+#line 2016 "awkgram.y" /* yacc.c:1652  */
     {
                NODE *n;
-               char *name = (yyvsp[-3])->func_name;
+               char *name = yyvsp[-3]->func_name;
                char *qname = qualify_name(name, strlen(name));
 
                if (qname != name) {
                        efree((char *) name);
-                       (yyvsp[-3])->func_name = qname;
+                       yyvsp[-3]->func_name = qname;
                }
 
                if (! at_seen) {
-                       n = lookup((yyvsp[-3])->func_name);
+                       n = lookup(yyvsp[-3]->func_name);
                        if (n != NULL && n->type != Node_func
                            && n->type != Node_ext_func) {
-                               error_ln((yyvsp[-3])->source_line,
+                               error_ln(yyvsp[-3]->source_line,
                                        _("attempt to use non-function `%s' in 
function call"),
-                                               (yyvsp[-3])->func_name);
+                                               yyvsp[-3]->func_name);
                        }
                }
 
-               param_sanity((yyvsp[-1]));
-               (yyvsp[-3])->opcode = Op_func_call;
-               (yyvsp[-3])->func_body = NULL;
-               if ((yyvsp[-1]) == NULL) {      /* no argument or error */
-                       ((yyvsp[-3]) + 1)->expr_count = 0;
-                       (yyval) = list_create((yyvsp[-3]));
+               param_sanity(yyvsp[-1]);
+               yyvsp[-3]->opcode = Op_func_call;
+               yyvsp[-3]->func_body = NULL;
+               if (yyvsp[-1] == NULL) {        /* no argument or error */
+                       (yyvsp[-3] + 1)->expr_count = 0;
+                       yyval = list_create(yyvsp[-3]);
                } else {
-                       INSTRUCTION *t = (yyvsp[-1]);
-                       ((yyvsp[-3]) + 1)->expr_count = count_expressions(&t, 
true);
-                       (yyval) = list_append(t, (yyvsp[-3]));
+                       INSTRUCTION *t = yyvsp[-1];
+                       (yyvsp[-3] + 1)->expr_count = count_expressions(&t, 
true);
+                       yyval = list_append(t, yyvsp[-3]);
                }
          }
-#line 4244 "awkgram.c" /* yacc.c:1645  */
+#line 4254 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 182:
-#line 2052 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 4250 "awkgram.c" /* yacc.c:1645  */
+#line 2052 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 4260 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 183:
-#line 2054 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 4256 "awkgram.c" /* yacc.c:1645  */
+#line 2054 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 4266 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 184:
-#line 2059 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 4262 "awkgram.c" /* yacc.c:1645  */
+#line 2059 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 4272 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 185:
-#line 2061 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[-1]); }
-#line 4268 "awkgram.c" /* yacc.c:1645  */
+#line 2061 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[-1]; }
+#line 4278 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 186:
-#line 2066 "awkgram.y" /* yacc.c:1645  */
-    {  (yyval) = (yyvsp[0]); }
-#line 4274 "awkgram.c" /* yacc.c:1645  */
+#line 2066 "awkgram.y" /* yacc.c:1652  */
+    {  yyval = yyvsp[0]; }
+#line 4284 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 187:
-#line 2068 "awkgram.y" /* yacc.c:1645  */
+#line 2068 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyval) = list_merge((yyvsp[-1]), (yyvsp[0]));
+               yyval = list_merge(yyvsp[-1], yyvsp[0]);
          }
-#line 4282 "awkgram.c" /* yacc.c:1645  */
+#line 4292 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 188:
-#line 2075 "awkgram.y" /* yacc.c:1645  */
+#line 2075 "awkgram.y" /* yacc.c:1652  */
     {
-               INSTRUCTION *ip = (yyvsp[0])->lasti;
+               INSTRUCTION *ip = yyvsp[0]->lasti;
                int count = ip->sub_count;      /* # of SUBSEP-seperated 
expressions */
                if (count > 1) {
                        /* change Op_subscript or Op_sub_array to Op_concat */
@@ -4294,163 +4304,163 @@ regular_print:
                } else
                        ip->opcode = Op_no_op;
                sub_counter++;  /* count # of dimensions */
-               (yyval) = (yyvsp[0]);
+               yyval = yyvsp[0];
          }
-#line 4300 "awkgram.c" /* yacc.c:1645  */
+#line 4310 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 189:
-#line 2092 "awkgram.y" /* yacc.c:1645  */
+#line 2092 "awkgram.y" /* yacc.c:1652  */
     {
-               INSTRUCTION *t = (yyvsp[-1]);
-               if ((yyvsp[-1]) == NULL) {
-                       error_ln((yyvsp[0])->source_line,
+               INSTRUCTION *t = yyvsp[-1];
+               if (yyvsp[-1] == NULL) {
+                       error_ln(yyvsp[0]->source_line,
                                _("invalid subscript expression"));
                        /* install Null string as subscript. */
                        t = list_create(instruction(Op_push_i));
                        t->nexti->memory = dupnode(Nnull_string);
-                       (yyvsp[0])->sub_count = 1;
+                       yyvsp[0]->sub_count = 1;
                } else
-                       (yyvsp[0])->sub_count = count_expressions(&t, false);
-               (yyval) = list_append(t, (yyvsp[0]));
+                       yyvsp[0]->sub_count = count_expressions(&t, false);
+               yyval = list_append(t, yyvsp[0]);
          }
-#line 4318 "awkgram.c" /* yacc.c:1645  */
+#line 4328 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 190:
-#line 2109 "awkgram.y" /* yacc.c:1645  */
-    {  (yyval) = (yyvsp[0]); }
-#line 4324 "awkgram.c" /* yacc.c:1645  */
+#line 2109 "awkgram.y" /* yacc.c:1652  */
+    {  yyval = yyvsp[0]; }
+#line 4334 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 191:
-#line 2111 "awkgram.y" /* yacc.c:1645  */
+#line 2111 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyval) = list_merge((yyvsp[-1]), (yyvsp[0]));
+               yyval = list_merge(yyvsp[-1], yyvsp[0]);
          }
-#line 4332 "awkgram.c" /* yacc.c:1645  */
+#line 4342 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 192:
-#line 2118 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[-1]); }
-#line 4338 "awkgram.c" /* yacc.c:1645  */
+#line 2118 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[-1]; }
+#line 4348 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 193:
-#line 2123 "awkgram.y" /* yacc.c:1645  */
+#line 2123 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyvsp[0])->opcode = Op_push;
-               (yyvsp[0])->memory = variable((yyvsp[0])->source_line, 
(yyvsp[0])->lextok, Node_var_new);
-               (yyval) = list_create((yyvsp[0]));
+               yyvsp[0]->opcode = Op_push;
+               yyvsp[0]->memory = variable(yyvsp[0]->source_line, 
yyvsp[0]->lextok, Node_var_new);
+               yyval = list_create(yyvsp[0]);
          }
-#line 4348 "awkgram.c" /* yacc.c:1645  */
+#line 4358 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 194:
-#line 2129 "awkgram.y" /* yacc.c:1645  */
+#line 2129 "awkgram.y" /* yacc.c:1652  */
     {
-               char *arr = (yyvsp[-1])->lextok;
+               char *arr = yyvsp[-1]->lextok;
 
-               (yyvsp[-1])->memory = variable((yyvsp[-1])->source_line, arr, 
Node_var_new);
-               (yyvsp[-1])->opcode = Op_push_array;
-               (yyval) = list_prepend((yyvsp[0]), (yyvsp[-1]));
+               yyvsp[-1]->memory = variable(yyvsp[-1]->source_line, arr, 
Node_var_new);
+               yyvsp[-1]->opcode = Op_push_array;
+               yyval = list_prepend(yyvsp[0], yyvsp[-1]);
          }
-#line 4360 "awkgram.c" /* yacc.c:1645  */
+#line 4370 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 195:
-#line 2140 "awkgram.y" /* yacc.c:1645  */
+#line 2140 "awkgram.y" /* yacc.c:1652  */
     {
-               INSTRUCTION *ip = (yyvsp[0])->nexti;
+               INSTRUCTION *ip = yyvsp[0]->nexti;
                if (ip->opcode == Op_push
                        && ip->memory->type == Node_var
                        && ip->memory->var_update
                ) {
-                       (yyval) = list_prepend((yyvsp[0]), 
instruction(Op_var_update));
-                       (yyval)->nexti->update_var = ip->memory->var_update;
+                       yyval = list_prepend(yyvsp[0], 
instruction(Op_var_update));
+                       yyval->nexti->update_var = ip->memory->var_update;
                } else
-                       (yyval) = (yyvsp[0]);
+                       yyval = yyvsp[0];
          }
-#line 4376 "awkgram.c" /* yacc.c:1645  */
+#line 4386 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 196:
-#line 2152 "awkgram.y" /* yacc.c:1645  */
+#line 2152 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyval) = list_append((yyvsp[-1]), (yyvsp[-2]));
-               if ((yyvsp[0]) != NULL)
-                       mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
+               yyval = list_append(yyvsp[-1], yyvsp[-2]);
+               if (yyvsp[0] != NULL)
+                       mk_assignment(yyvsp[-1], NULL, yyvsp[0]);
          }
-#line 4386 "awkgram.c" /* yacc.c:1645  */
+#line 4396 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 197:
-#line 2161 "awkgram.y" /* yacc.c:1645  */
+#line 2161 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyvsp[0])->opcode = Op_postincrement;
+               yyvsp[0]->opcode = Op_postincrement;
          }
-#line 4394 "awkgram.c" /* yacc.c:1645  */
+#line 4404 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 198:
-#line 2165 "awkgram.y" /* yacc.c:1645  */
+#line 2165 "awkgram.y" /* yacc.c:1652  */
     {
-               (yyvsp[0])->opcode = Op_postdecrement;
+               yyvsp[0]->opcode = Op_postdecrement;
          }
-#line 4402 "awkgram.c" /* yacc.c:1645  */
+#line 4412 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 199:
-#line 2169 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 4408 "awkgram.c" /* yacc.c:1645  */
+#line 2169 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 4418 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 200:
-#line 2173 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 4414 "awkgram.c" /* yacc.c:1645  */
+#line 2173 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 4424 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 201:
-#line 2177 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); yyerrok; }
-#line 4420 "awkgram.c" /* yacc.c:1645  */
+#line 2177 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; yyerrok; }
+#line 4430 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 202:
-#line 2181 "awkgram.y" /* yacc.c:1645  */
+#line 2181 "awkgram.y" /* yacc.c:1652  */
     { yyerrok; }
-#line 4426 "awkgram.c" /* yacc.c:1645  */
+#line 4436 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 203:
-#line 2186 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 4432 "awkgram.c" /* yacc.c:1645  */
+#line 2186 "awkgram.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 4442 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 205:
-#line 2191 "awkgram.y" /* yacc.c:1645  */
+#line 2191 "awkgram.y" /* yacc.c:1652  */
     { yyerrok; }
-#line 4438 "awkgram.c" /* yacc.c:1645  */
+#line 4448 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 206:
-#line 2195 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); yyerrok; }
-#line 4444 "awkgram.c" /* yacc.c:1645  */
+#line 2195 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; yyerrok; }
+#line 4454 "awkgram.c" /* yacc.c:1652  */
     break;
 
   case 207:
-#line 2199 "awkgram.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); yyerrok; }
-#line 4450 "awkgram.c" /* yacc.c:1645  */
+#line 2199 "awkgram.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; yyerrok; }
+#line 4460 "awkgram.c" /* yacc.c:1652  */
     break;
 
 
-#line 4454 "awkgram.c" /* yacc.c:1645  */
+#line 4464 "awkgram.c" /* yacc.c:1652  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -4564,12 +4574,10 @@ yyerrlab:
 | yyerrorlab -- error raised explicitly by YYERROR.  |
 `---------------------------------------------------*/
 yyerrorlab:
-
-  /* Pacify compilers like GCC when the user code never invokes
-     YYERROR and the label yyerrorlab therefore never appears in user
-     code.  */
-  if (/*CONSTCOND*/ 0)
-     goto yyerrorlab;
+  /* Pacify compilers when the user code never invokes YYERROR and the
+     label yyerrorlab therefore never appears in user code.  */
+  if (0)
+    YYERROR;
 
   /* Do not reclaim the symbols of the rule whose action triggered
      this YYERROR.  */
@@ -4631,6 +4639,7 @@ yyacceptlab:
   yyresult = 0;
   goto yyreturn;
 
+
 /*-----------------------------------.
 | yyabortlab -- YYABORT comes here.  |
 `-----------------------------------*/
@@ -4638,6 +4647,7 @@ yyabortlab:
   yyresult = 1;
   goto yyreturn;
 
+
 #if !defined yyoverflow || YYERROR_VERBOSE
 /*-------------------------------------------------.
 | yyexhaustedlab -- memory exhaustion comes here.  |
@@ -4648,6 +4658,10 @@ yyexhaustedlab:
   /* Fall through.  */
 #endif
 
+
+/*-----------------------------------------------------.
+| yyreturn -- parsing is finished, return the result.  |
+`-----------------------------------------------------*/
 yyreturn:
   if (yychar != YYEMPTY)
     {
@@ -4677,7 +4691,7 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 2201 "awkgram.y" /* yacc.c:1903  */
+#line 2201 "awkgram.y" /* yacc.c:1918  */
 
 
 struct token {
diff --git a/command.c b/command.c
index c8ee163..6c81d3a 100644
--- a/command.c
+++ b/command.c
@@ -1,8 +1,9 @@
-/* A Bison parser, made by GNU Bison 3.2.1.  */
+/* A Bison parser, made by GNU Bison 3.3.  */
 
 /* Bison implementation for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, 
Inc.
+   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 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
@@ -47,7 +48,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "3.2.1"
+#define YYBISON_VERSION "3.3"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -73,7 +74,7 @@
 #define yychar          zzchar
 
 /* First part of user prologue.  */
-#line 28 "command.y" /* yacc.c:338  */
+#line 28 "command.y" /* yacc.c:337  */
 
 #include "awk.h"
 #include "cmd.h"
@@ -140,7 +141,7 @@ static void append_cmdarg(CMDARG *arg);
 static int find_argument(CMDARG *arg);
 #define YYSTYPE CMDARG *
 
-#line 144 "command.c" /* yacc.c:338  */
+#line 145 "command.c" /* yacc.c:337  */
 # ifndef YY_NULLPTR
 #  if defined __cplusplus
 #   if 201103L <= __cplusplus
@@ -529,16 +530,16 @@ union yyalloc
 /* YYNSTATES -- Number of states.  */
 #define YYNSTATES  203
 
-/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
-   by yylex, with out-of-bounds checking.  */
 #define YYUNDEFTOK  2
 #define YYMAXUTOK   303
 
+/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
+   as returned by yylex, with out-of-bounds checking.  */
 #define YYTRANSLATE(YYX)                                                \
   ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
-   as returned by yylex, without out-of-bounds checking.  */
+   as returned by yylex.  */
 static const yytype_uint8 yytranslate[] =
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -861,22 +862,22 @@ static const yytype_uint8 yyr2[] =
 
 #define YYRECOVERING()  (!!yyerrstatus)
 
-#define YYBACKUP(Token, Value)                                  \
-do                                                              \
-  if (yychar == YYEMPTY)                                        \
-    {                                                           \
-      yychar = (Token);                                         \
-      yylval = (Value);                                         \
-      YYPOPSTACK (yylen);                                       \
-      yystate = *yyssp;                                         \
-      goto yybackup;                                            \
-    }                                                           \
-  else                                                          \
-    {                                                           \
-      yyerror (YY_("syntax error: cannot back up")); \
-      YYERROR;                                                  \
-    }                                                           \
-while (0)
+#define YYBACKUP(Token, Value)                                    \
+  do                                                              \
+    if (yychar == YYEMPTY)                                        \
+      {                                                           \
+        yychar = (Token);                                         \
+        yylval = (Value);                                         \
+        YYPOPSTACK (yylen);                                       \
+        yystate = *yyssp;                                         \
+        goto yybackup;                                            \
+      }                                                           \
+    else                                                          \
+      {                                                           \
+        yyerror (YY_("syntax error: cannot back up")); \
+        YYERROR;                                                  \
+      }                                                           \
+  while (0)
 
 /* Error token number */
 #define YYTERROR        1
@@ -991,7 +992,7 @@ yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int 
yyrule)
       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
       yy_symbol_print (stderr,
                        yystos[yyssp[yyi + 1 - yynrhs]],
-                       &(yyvsp[(yyi + 1) - (yynrhs)])
+                       &yyvsp[(yyi + 1) - (yynrhs)]
                                               );
       YYFPRINTF (stderr, "\n");
     }
@@ -1095,7 +1096,10 @@ yytnamerr (char *yyres, const char *yystr)
           case '\\':
             if (*++yyp != '\\')
               goto do_not_strip_quotes;
-            /* Fall through.  */
+            else
+              goto append;
+
+          append:
           default:
             if (yyres)
               yyres[yyn] = *yyp;
@@ -1191,10 +1195,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
                 yyarg[yycount++] = yytname[yyx];
                 {
                   YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, 
yytname[yyx]);
-                  if (! (yysize <= yysize1
-                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+                  if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
+                    yysize = yysize1;
+                  else
                     return 2;
-                  yysize = yysize1;
                 }
               }
         }
@@ -1218,9 +1222,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
 
   {
     YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
-    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+    if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
+      yysize = yysize1;
+    else
       return 2;
-    yysize = yysize1;
   }
 
   if (*yymsg_alloc < yysize)
@@ -1346,23 +1351,31 @@ yyparse (void)
   yychar = YYEMPTY; /* Cause a token to be read.  */
   goto yysetstate;
 
+
 /*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate.  |
+| yynewstate -- push a new state, which is found in yystate.  |
 `------------------------------------------------------------*/
- yynewstate:
+yynewstate:
   /* In all cases, when you get here, the value and location stacks
      have just been pushed.  So pushing a state here evens the stacks.  */
   yyssp++;
 
- yysetstate:
+
+/*--------------------------------------------------------------------.
+| yynewstate -- set current state (the top of the stack) to yystate.  |
+`--------------------------------------------------------------------*/
+yysetstate:
   *yyssp = (yytype_int16) yystate;
 
   if (yyss + yystacksize - 1 <= yyssp)
+#if !defined yyoverflow && !defined YYSTACK_RELOCATE
+    goto yyexhaustedlab;
+#else
     {
       /* Get the current used size of the three stacks, in elements.  */
       YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1);
 
-#ifdef yyoverflow
+# if defined yyoverflow
       {
         /* Give user a chance to reallocate the stack.  Use copies of
            these so that the &'s don't force the real ones into
@@ -1381,10 +1394,7 @@ yyparse (void)
         yyss = yyss1;
         yyvs = yyvs1;
       }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
-      goto yyexhaustedlab;
-# else
+# else /* defined YYSTACK_RELOCATE */
       /* Extend the stack our own way.  */
       if (YYMAXDEPTH <= yystacksize)
         goto yyexhaustedlab;
@@ -1400,12 +1410,11 @@ yyparse (void)
           goto yyexhaustedlab;
         YYSTACK_RELOCATE (yyss_alloc, yyss);
         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
-#  undef YYSTACK_RELOCATE
+# undef YYSTACK_RELOCATE
         if (yyss1 != yyssa)
           YYSTACK_FREE (yyss1);
       }
 # endif
-#endif /* no yyoverflow */
 
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
@@ -1416,6 +1425,7 @@ yyparse (void)
       if (yyss + yystacksize - 1 <= yyssp)
         YYABORT;
     }
+#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
 
   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 
@@ -1424,11 +1434,11 @@ yyparse (void)
 
   goto yybackup;
 
+
 /*-----------.
 | yybackup.  |
 `-----------*/
 yybackup:
-
   /* Do appropriate processing given the current state.  Read a
      lookahead token if we need one and don't already have one.  */
 
@@ -1501,7 +1511,7 @@ yydefault:
 
 
 /*-----------------------------.
-| yyreduce -- Do a reduction.  |
+| yyreduce -- do a reduction.  |
 `-----------------------------*/
 yyreduce:
   /* yyn is the number of a rule to reduce with.  */
@@ -1522,7 +1532,7 @@ yyreduce:
   switch (yyn)
     {
         case 3:
-#line 111 "command.y" /* yacc.c:1645  */
+#line 111 "command.y" /* yacc.c:1652  */
     {
                cmd_idx = -1;
                want_nodeval = false;
@@ -1537,11 +1547,11 @@ yyreduce:
                        arg_list = NULL;
                }
          }
-#line 1541 "command.c" /* yacc.c:1645  */
+#line 1551 "command.c" /* yacc.c:1652  */
     break;
 
   case 5:
-#line 130 "command.y" /* yacc.c:1645  */
+#line 130 "command.y" /* yacc.c:1652  */
     {
                if (errcount == 0 && cmd_idx >= 0) {
                        Func_cmd cmdfunc;
@@ -1591,25 +1601,25 @@ yyreduce:
                                YYACCEPT;
                }
          }
-#line 1595 "command.c" /* yacc.c:1645  */
+#line 1605 "command.c" /* yacc.c:1652  */
     break;
 
   case 6:
-#line 180 "command.y" /* yacc.c:1645  */
+#line 180 "command.y" /* yacc.c:1652  */
     {
                yyerrok;
          }
-#line 1603 "command.c" /* yacc.c:1645  */
+#line 1613 "command.c" /* yacc.c:1652  */
     break;
 
   case 22:
-#line 214 "command.y" /* yacc.c:1645  */
+#line 214 "command.y" /* yacc.c:1652  */
     { want_nodeval = true; }
-#line 1609 "command.c" /* yacc.c:1645  */
+#line 1619 "command.c" /* yacc.c:1652  */
     break;
 
   case 23:
-#line 219 "command.y" /* yacc.c:1645  */
+#line 219 "command.y" /* yacc.c:1652  */
     {
                if (errcount == 0) {
                        /* don't free arg_list; passed on to statement_list
@@ -1625,39 +1635,39 @@ yyreduce:
                        in_eval = true;
                }
          }
-#line 1629 "command.c" /* yacc.c:1645  */
+#line 1639 "command.c" /* yacc.c:1652  */
     break;
 
   case 24:
-#line 238 "command.y" /* yacc.c:1645  */
+#line 238 "command.y" /* yacc.c:1652  */
     {
-               (yyval) = append_statement(arg_list, (char *) start_EVAL);
+               yyval = append_statement(arg_list, (char *) start_EVAL);
                if (read_a_line == read_commands_string)        /* 
unserializing 'eval' in 'commands' */
-                       (yyval)->a_string[0] = '\0';
+                       yyval->a_string[0] = '\0';
                free_cmdarg(arg_list);
                arg_list = NULL;
          }
-#line 1641 "command.c" /* yacc.c:1645  */
+#line 1651 "command.c" /* yacc.c:1652  */
     break;
 
   case 25:
-#line 245 "command.y" /* yacc.c:1645  */
-    { (yyval) = append_statement((yyvsp[-1]), lexptr_begin); }
-#line 1647 "command.c" /* yacc.c:1645  */
+#line 245 "command.y" /* yacc.c:1652  */
+    { yyval = append_statement(yyvsp[-1], lexptr_begin); }
+#line 1657 "command.c" /* yacc.c:1652  */
     break;
 
   case 26:
-#line 246 "command.y" /* yacc.c:1645  */
+#line 246 "command.y" /* yacc.c:1652  */
     {
-               (yyval) = (yyvsp[-1]);
+               yyval = yyvsp[-1];
          }
-#line 1655 "command.c" /* yacc.c:1645  */
+#line 1665 "command.c" /* yacc.c:1652  */
     break;
 
   case 27:
-#line 253 "command.y" /* yacc.c:1645  */
+#line 253 "command.y" /* yacc.c:1652  */
     {
-               arg_list = append_statement((yyvsp[-1]), (char *) end_EVAL);
+               arg_list = append_statement(yyvsp[-1], (char *) end_EVAL);
                if (read_a_line == read_commands_string) {      /* 
unserializing 'eval' in 'commands' */
                        char *str = arg_list->a_string;
                        size_t len = strlen(str);
@@ -1671,120 +1681,120 @@ yyreduce:
                cmd_idx = find_command("eval", 4);
                in_eval = false;
          }
-#line 1675 "command.c" /* yacc.c:1645  */
+#line 1685 "command.c" /* yacc.c:1652  */
     break;
 
   case 28:
-#line 269 "command.y" /* yacc.c:1645  */
+#line 269 "command.y" /* yacc.c:1652  */
     {
                NODE *n;
                CMDARG *arg;
-               n = (yyvsp[0])->a_node;
+               n = yyvsp[0]->a_node;
                arg = append_statement(NULL, (char *) start_EVAL);
                (void) append_statement(arg, n->stptr);
                (void) append_statement(arg, (char *) end_EVAL);
                free_cmdarg(arg_list);
                arg_list = arg;
          }
-#line 1690 "command.c" /* yacc.c:1645  */
+#line 1700 "command.c" /* yacc.c:1652  */
     break;
 
   case 34:
-#line 288 "command.y" /* yacc.c:1645  */
+#line 288 "command.y" /* yacc.c:1652  */
     {
                if (cmdtab[cmd_idx].class == D_FRAME
-                               && (yyvsp[0]) != NULL && (yyvsp[0])->a_int < 0)
-                       yyerror(_("invalid frame number: %d"), 
(yyvsp[0])->a_int);
+                               && yyvsp[0] != NULL && yyvsp[0]->a_int < 0)
+                       yyerror(_("invalid frame number: %d"), yyvsp[0]->a_int);
          }
-#line 1700 "command.c" /* yacc.c:1645  */
+#line 1710 "command.c" /* yacc.c:1652  */
     break;
 
   case 35:
-#line 294 "command.y" /* yacc.c:1645  */
+#line 294 "command.y" /* yacc.c:1652  */
     {
-               int idx = find_argument((yyvsp[0]));
+               int idx = find_argument(yyvsp[0]);
                if (idx < 0)
-                       yyerror(_("info: invalid option - \"%s\""), 
(yyvsp[0])->a_string);
+                       yyerror(_("info: invalid option - \"%s\""), 
yyvsp[0]->a_string);
                else {
-                       efree((yyvsp[0])->a_string);
-                       (yyvsp[0])->a_string = NULL;
-                       (yyvsp[0])->type = D_argument;
-                       (yyvsp[0])->a_argument = argtab[idx].value;
+                       efree(yyvsp[0]->a_string);
+                       yyvsp[0]->a_string = NULL;
+                       yyvsp[0]->type = D_argument;
+                       yyvsp[0]->a_argument = argtab[idx].value;
                }
          }
-#line 1716 "command.c" /* yacc.c:1645  */
+#line 1726 "command.c" /* yacc.c:1652  */
     break;
 
   case 38:
-#line 307 "command.y" /* yacc.c:1645  */
+#line 307 "command.y" /* yacc.c:1652  */
     { want_nodeval = true; }
-#line 1722 "command.c" /* yacc.c:1645  */
+#line 1732 "command.c" /* yacc.c:1652  */
     break;
 
   case 40:
-#line 308 "command.y" /* yacc.c:1645  */
+#line 308 "command.y" /* yacc.c:1652  */
     { want_nodeval = true; }
-#line 1728 "command.c" /* yacc.c:1645  */
+#line 1738 "command.c" /* yacc.c:1652  */
     break;
 
   case 46:
-#line 313 "command.y" /* yacc.c:1645  */
+#line 313 "command.y" /* yacc.c:1652  */
     { want_nodeval = true; }
-#line 1734 "command.c" /* yacc.c:1645  */
+#line 1744 "command.c" /* yacc.c:1652  */
     break;
 
   case 49:
-#line 315 "command.y" /* yacc.c:1645  */
+#line 315 "command.y" /* yacc.c:1652  */
     { want_nodeval = true; }
-#line 1740 "command.c" /* yacc.c:1645  */
+#line 1750 "command.c" /* yacc.c:1652  */
     break;
 
   case 51:
-#line 316 "command.y" /* yacc.c:1645  */
+#line 316 "command.y" /* yacc.c:1652  */
     { want_nodeval = true; }
-#line 1746 "command.c" /* yacc.c:1645  */
+#line 1756 "command.c" /* yacc.c:1652  */
     break;
 
   case 53:
-#line 317 "command.y" /* yacc.c:1645  */
+#line 317 "command.y" /* yacc.c:1652  */
     { want_nodeval = true; }
-#line 1752 "command.c" /* yacc.c:1645  */
+#line 1762 "command.c" /* yacc.c:1652  */
     break;
 
   case 57:
-#line 321 "command.y" /* yacc.c:1645  */
+#line 321 "command.y" /* yacc.c:1652  */
     {
-               if (in_cmd_src((yyvsp[0])->a_string))
-                       yyerror(_("source \"%s\": already sourced."), 
(yyvsp[0])->a_string);
+               if (in_cmd_src(yyvsp[0]->a_string))
+                       yyerror(_("source \"%s\": already sourced."), 
yyvsp[0]->a_string);
          }
-#line 1761 "command.c" /* yacc.c:1645  */
+#line 1771 "command.c" /* yacc.c:1652  */
     break;
 
   case 58:
-#line 326 "command.y" /* yacc.c:1645  */
+#line 326 "command.y" /* yacc.c:1652  */
     {
                if (! input_from_tty)
-                       yyerror(_("save \"%s\": command not permitted."), 
(yyvsp[0])->a_string);
+                       yyerror(_("save \"%s\": command not permitted."), 
yyvsp[0]->a_string);
          }
-#line 1770 "command.c" /* yacc.c:1645  */
+#line 1780 "command.c" /* yacc.c:1652  */
     break;
 
   case 59:
-#line 331 "command.y" /* yacc.c:1645  */
+#line 331 "command.y" /* yacc.c:1652  */
     {
                int type = 0;
                int num;
 
-               if ((yyvsp[0]) != NULL)
-                       num = (yyvsp[0])->a_int;
+               if (yyvsp[0] != NULL)
+                       num = yyvsp[0]->a_int;
 
                if (errcount != 0)
                        ;
                else if (in_commands)
                        yyerror(_("Can't use command `commands' for 
breakpoint/watchpoint commands"));
-               else if ((yyvsp[0]) == NULL &&  ! (type = 
has_break_or_watch_point(&num, true)))
+               else if (yyvsp[0] == NULL &&  ! (type = 
has_break_or_watch_point(&num, true)))
                        yyerror(_("no breakpoint/watchpoint has been set yet"));
-               else if ((yyvsp[0]) != NULL && ! (type = 
has_break_or_watch_point(&num, false)))
+               else if (yyvsp[0] != NULL && ! (type = 
has_break_or_watch_point(&num, false)))
                        yyerror(_("invalid breakpoint/watchpoint number"));
                if (type) {
                        in_commands = true;
@@ -1796,11 +1806,11 @@ yyreduce:
                        }
                }
          }
-#line 1800 "command.c" /* yacc.c:1645  */
+#line 1810 "command.c" /* yacc.c:1652  */
     break;
 
   case 60:
-#line 357 "command.y" /* yacc.c:1645  */
+#line 357 "command.y" /* yacc.c:1652  */
     {
                if (! in_commands)
                        yyerror(_("`end' valid only in command `commands' or 
`eval'"));
@@ -1810,54 +1820,54 @@ yyreduce:
                        in_commands = false;
                }
          }
-#line 1814 "command.c" /* yacc.c:1645  */
+#line 1824 "command.c" /* yacc.c:1652  */
     break;
 
   case 61:
-#line 367 "command.y" /* yacc.c:1645  */
+#line 367 "command.y" /* yacc.c:1652  */
     {
                if (! in_commands)
                        yyerror(_("`silent' valid only in command `commands'"));
          }
-#line 1823 "command.c" /* yacc.c:1645  */
+#line 1833 "command.c" /* yacc.c:1652  */
     break;
 
   case 62:
-#line 372 "command.y" /* yacc.c:1645  */
+#line 372 "command.y" /* yacc.c:1652  */
     {
-               int idx = find_argument((yyvsp[0]));
+               int idx = find_argument(yyvsp[0]);
                if (idx < 0)
-                       yyerror(_("trace: invalid option - \"%s\""), 
(yyvsp[0])->a_string);
+                       yyerror(_("trace: invalid option - \"%s\""), 
yyvsp[0]->a_string);
                else {
-                       efree((yyvsp[0])->a_string);
-                       (yyvsp[0])->a_string = NULL;
-                       (yyvsp[0])->type = D_argument;
-                       (yyvsp[0])->a_argument = argtab[idx].value;
+                       efree(yyvsp[0]->a_string);
+                       yyvsp[0]->a_string = NULL;
+                       yyvsp[0]->type = D_argument;
+                       yyvsp[0]->a_argument = argtab[idx].value;
                }
          }
-#line 1839 "command.c" /* yacc.c:1645  */
+#line 1849 "command.c" /* yacc.c:1652  */
     break;
 
   case 63:
-#line 383 "command.y" /* yacc.c:1645  */
+#line 383 "command.y" /* yacc.c:1652  */
     { want_nodeval = true; }
-#line 1845 "command.c" /* yacc.c:1645  */
+#line 1855 "command.c" /* yacc.c:1652  */
     break;
 
   case 64:
-#line 384 "command.y" /* yacc.c:1645  */
+#line 384 "command.y" /* yacc.c:1652  */
     {
                int type;
-               int num = (yyvsp[-2])->a_int;
+               int num = yyvsp[-2]->a_int;
                type = has_break_or_watch_point(&num, false);
                if (! type)
                        yyerror(_("condition: invalid breakpoint/watchpoint 
number"));
          }
-#line 1857 "command.c" /* yacc.c:1645  */
+#line 1867 "command.c" /* yacc.c:1652  */
     break;
 
   case 65:
-#line 392 "command.y" /* yacc.c:1645  */
+#line 392 "command.y" /* yacc.c:1652  */
     {
                if (in_commands) {
                        /* Prepend command 'eval' to argument list */
@@ -1868,387 +1878,387 @@ yyreduce:
                        arg_list = arg;
                }
          }
-#line 1872 "command.c" /* yacc.c:1645  */
+#line 1882 "command.c" /* yacc.c:1652  */
     break;
 
   case 66:
-#line 406 "command.y" /* yacc.c:1645  */
+#line 406 "command.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[0]) != NULL) {
-                       NODE *n = (yyvsp[0])->a_node;
-                       (yyvsp[0])->type = D_string;
-                       (yyvsp[0])->a_string = n->stptr;
+               if (yyvsp[0] != NULL) {
+                       NODE *n = yyvsp[0]->a_node;
+                       yyvsp[0]->type = D_string;
+                       yyvsp[0]->a_string = n->stptr;
                        freenode(n);
                }
-               (yyval) = (yyvsp[0]);
+               yyval = yyvsp[0];
          }
-#line 1886 "command.c" /* yacc.c:1645  */
+#line 1896 "command.c" /* yacc.c:1652  */
     break;
 
   case 68:
-#line 420 "command.y" /* yacc.c:1645  */
-    {  (yyval) = NULL; }
-#line 1892 "command.c" /* yacc.c:1645  */
+#line 420 "command.y" /* yacc.c:1652  */
+    {  yyval = NULL; }
+#line 1902 "command.c" /* yacc.c:1652  */
     break;
 
   case 69:
-#line 425 "command.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 1898 "command.c" /* yacc.c:1645  */
+#line 425 "command.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 1908 "command.c" /* yacc.c:1652  */
     break;
 
   case 74:
-#line 434 "command.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 1904 "command.c" /* yacc.c:1645  */
+#line 434 "command.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 1914 "command.c" /* yacc.c:1652  */
     break;
 
   case 75:
-#line 439 "command.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 1910 "command.c" /* yacc.c:1645  */
+#line 439 "command.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 1920 "command.c" /* yacc.c:1652  */
     break;
 
   case 77:
-#line 442 "command.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 1916 "command.c" /* yacc.c:1645  */
+#line 442 "command.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 1926 "command.c" /* yacc.c:1652  */
     break;
 
   case 78:
-#line 447 "command.y" /* yacc.c:1645  */
+#line 447 "command.y" /* yacc.c:1652  */
     {
                NODE *n;
-               n = (yyvsp[0])->a_node;
+               n = yyvsp[0]->a_node;
                if ((n->flags & STRING) == 0)
                        yyerror(_("argument not a string"));
          }
-#line 1927 "command.c" /* yacc.c:1645  */
+#line 1937 "command.c" /* yacc.c:1652  */
     break;
 
   case 79:
-#line 457 "command.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 1933 "command.c" /* yacc.c:1645  */
+#line 457 "command.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 1943 "command.c" /* yacc.c:1652  */
     break;
 
   case 80:
-#line 459 "command.y" /* yacc.c:1645  */
+#line 459 "command.y" /* yacc.c:1652  */
     {
-               if (find_option((yyvsp[0])->a_string) < 0)
-                       yyerror(_("option: invalid parameter - \"%s\""), 
(yyvsp[0])->a_string);
+               if (find_option(yyvsp[0]->a_string) < 0)
+                       yyerror(_("option: invalid parameter - \"%s\""), 
yyvsp[0]->a_string);
          }
-#line 1942 "command.c" /* yacc.c:1645  */
+#line 1952 "command.c" /* yacc.c:1652  */
     break;
 
   case 81:
-#line 464 "command.y" /* yacc.c:1645  */
+#line 464 "command.y" /* yacc.c:1652  */
     {
-               if (find_option((yyvsp[-2])->a_string) < 0)
-                       yyerror(_("option: invalid parameter - \"%s\""), 
(yyvsp[-2])->a_string);
+               if (find_option(yyvsp[-2]->a_string) < 0)
+                       yyerror(_("option: invalid parameter - \"%s\""), 
yyvsp[-2]->a_string);
          }
-#line 1951 "command.c" /* yacc.c:1645  */
+#line 1961 "command.c" /* yacc.c:1652  */
     break;
 
   case 82:
-#line 472 "command.y" /* yacc.c:1645  */
+#line 472 "command.y" /* yacc.c:1652  */
     {
                NODE *n;
-               n = lookup((yyvsp[0])->a_string);
+               n = lookup(yyvsp[0]->a_string);
                if (n == NULL || n->type != Node_func)
-                       yyerror(_("no such function - \"%s\""), 
(yyvsp[0])->a_string);
+                       yyerror(_("no such function - \"%s\""), 
yyvsp[0]->a_string);
                else {
-                       (yyvsp[0])->type = D_func;
-                       efree((yyvsp[0])->a_string);
-                       (yyvsp[0])->a_string = NULL;
-                       (yyvsp[0])->a_node = n;
+                       yyvsp[0]->type = D_func;
+                       efree(yyvsp[0]->a_string);
+                       yyvsp[0]->a_string = NULL;
+                       yyvsp[0]->a_node = n;
                }
          }
-#line 1968 "command.c" /* yacc.c:1645  */
+#line 1978 "command.c" /* yacc.c:1652  */
     break;
 
   case 83:
-#line 488 "command.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 1974 "command.c" /* yacc.c:1645  */
+#line 488 "command.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 1984 "command.c" /* yacc.c:1652  */
     break;
 
   case 88:
-#line 497 "command.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 1980 "command.c" /* yacc.c:1645  */
+#line 497 "command.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 1990 "command.c" /* yacc.c:1652  */
     break;
 
   case 89:
-#line 498 "command.y" /* yacc.c:1645  */
+#line 498 "command.y" /* yacc.c:1652  */
     { want_nodeval = true; }
-#line 1986 "command.c" /* yacc.c:1645  */
+#line 1996 "command.c" /* yacc.c:1652  */
     break;
 
   case 92:
-#line 500 "command.y" /* yacc.c:1645  */
+#line 500 "command.y" /* yacc.c:1652  */
     { want_nodeval = true; }
-#line 1992 "command.c" /* yacc.c:1645  */
+#line 2002 "command.c" /* yacc.c:1652  */
     break;
 
   case 95:
-#line 506 "command.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 1998 "command.c" /* yacc.c:1645  */
+#line 506 "command.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 2008 "command.c" /* yacc.c:1652  */
     break;
 
   case 97:
-#line 512 "command.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 2004 "command.c" /* yacc.c:1645  */
+#line 512 "command.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 2014 "command.c" /* yacc.c:1652  */
     break;
 
   case 99:
-#line 518 "command.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 2010 "command.c" /* yacc.c:1645  */
+#line 518 "command.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 2020 "command.c" /* yacc.c:1652  */
     break;
 
   case 104:
-#line 530 "command.y" /* yacc.c:1645  */
+#line 530 "command.y" /* yacc.c:1652  */
     {
-               int idx = find_argument((yyvsp[-1]));
+               int idx = find_argument(yyvsp[-1]);
                if (idx < 0)
-                       yyerror(_("enable: invalid option - \"%s\""), 
(yyvsp[-1])->a_string);
+                       yyerror(_("enable: invalid option - \"%s\""), 
yyvsp[-1]->a_string);
                else {
-                       efree((yyvsp[-1])->a_string);
-                       (yyvsp[-1])->a_string = NULL;
-                       (yyvsp[-1])->type = D_argument;
-                       (yyvsp[-1])->a_argument = argtab[idx].value;
+                       efree(yyvsp[-1]->a_string);
+                       yyvsp[-1]->a_string = NULL;
+                       yyvsp[-1]->type = D_argument;
+                       yyvsp[-1]->a_argument = argtab[idx].value;
                }
          }
-#line 2026 "command.c" /* yacc.c:1645  */
+#line 2036 "command.c" /* yacc.c:1652  */
     break;
 
   case 106:
-#line 546 "command.y" /* yacc.c:1645  */
+#line 546 "command.y" /* yacc.c:1652  */
     {
-               (yyvsp[0])->type = D_array;     /* dump all items */
-               (yyvsp[0])->a_count = 0;
+               yyvsp[0]->type = D_array;       /* dump all items */
+               yyvsp[0]->a_count = 0;
          }
-#line 2035 "command.c" /* yacc.c:1645  */
+#line 2045 "command.c" /* yacc.c:1652  */
     break;
 
   case 107:
-#line 551 "command.y" /* yacc.c:1645  */
+#line 551 "command.y" /* yacc.c:1652  */
     {
-               (yyvsp[-1])->type = D_array;
-               (yyvsp[-1])->a_count = num_dim;
+               yyvsp[-1]->type = D_array;
+               yyvsp[-1]->a_count = num_dim;
          }
-#line 2044 "command.c" /* yacc.c:1645  */
+#line 2054 "command.c" /* yacc.c:1652  */
     break;
 
   case 117:
-#line 577 "command.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 2050 "command.c" /* yacc.c:1645  */
+#line 577 "command.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 2060 "command.c" /* yacc.c:1652  */
     break;
 
   case 118:
-#line 579 "command.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 2056 "command.c" /* yacc.c:1645  */
+#line 579 "command.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 2066 "command.c" /* yacc.c:1652  */
     break;
 
   case 119:
-#line 581 "command.y" /* yacc.c:1645  */
+#line 581 "command.y" /* yacc.c:1652  */
     {
                CMDARG *a;
                a = mk_cmdarg(D_int);
                a->a_int = -1;
                append_cmdarg(a);
          }
-#line 2067 "command.c" /* yacc.c:1645  */
+#line 2077 "command.c" /* yacc.c:1652  */
     break;
 
   case 126:
-#line 597 "command.y" /* yacc.c:1645  */
+#line 597 "command.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[-2])->a_int > (yyvsp[0])->a_int)
+               if (yyvsp[-2]->a_int > yyvsp[0]->a_int)
                        yyerror(_("invalid range specification: %d - %d"),
-                               (yyvsp[-2])->a_int, (yyvsp[0])->a_int);
+                               yyvsp[-2]->a_int, yyvsp[0]->a_int);
                else
-                       (yyvsp[-2])->type = D_range;
-               (yyval) = (yyvsp[-2]);
+                       yyvsp[-2]->type = D_range;
+               yyval = yyvsp[-2];
          }
-#line 2080 "command.c" /* yacc.c:1645  */
+#line 2090 "command.c" /* yacc.c:1652  */
     break;
 
   case 127:
-#line 609 "command.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 2086 "command.c" /* yacc.c:1645  */
+#line 609 "command.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 2096 "command.c" /* yacc.c:1652  */
     break;
 
   case 134:
-#line 623 "command.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 2092 "command.c" /* yacc.c:1645  */
+#line 623 "command.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 2102 "command.c" /* yacc.c:1652  */
     break;
 
   case 135:
-#line 625 "command.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[-2]); }
-#line 2098 "command.c" /* yacc.c:1645  */
+#line 625 "command.y" /* yacc.c:1652  */
+    { yyval = yyvsp[-2]; }
+#line 2108 "command.c" /* yacc.c:1652  */
     break;
 
   case 137:
-#line 631 "command.y" /* yacc.c:1645  */
+#line 631 "command.y" /* yacc.c:1652  */
     {
                CMDARG *a;
                NODE *subs;
                int count = 0;
 
-               for (a = (yyvsp[-1]); a != NULL; a = a->next)
+               for (a = yyvsp[-1]; a != NULL; a = a->next)
                        count++;
-               subs = concat_args((yyvsp[-1]), count);
-               free_cmdarg((yyvsp[-1])->next);
-               (yyvsp[-1])->next = NULL;
-               (yyvsp[-1])->type = D_node;
-               (yyvsp[-1])->a_node = subs;
-               (yyval) = (yyvsp[-1]);
+               subs = concat_args(yyvsp[-1], count);
+               free_cmdarg(yyvsp[-1]->next);
+               yyvsp[-1]->next = NULL;
+               yyvsp[-1]->type = D_node;
+               yyvsp[-1]->a_node = subs;
+               yyval = yyvsp[-1];
          }
-#line 2117 "command.c" /* yacc.c:1645  */
+#line 2127 "command.c" /* yacc.c:1652  */
     break;
 
   case 139:
-#line 650 "command.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); num_dim = 1; }
-#line 2123 "command.c" /* yacc.c:1645  */
+#line 650 "command.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; num_dim = 1; }
+#line 2133 "command.c" /* yacc.c:1652  */
     break;
 
   case 140:
-#line 652 "command.y" /* yacc.c:1645  */
-    {  (yyval) = (yyvsp[-1]); num_dim++; }
-#line 2129 "command.c" /* yacc.c:1645  */
+#line 652 "command.y" /* yacc.c:1652  */
+    {  yyval = yyvsp[-1]; num_dim++; }
+#line 2139 "command.c" /* yacc.c:1652  */
     break;
 
   case 142:
-#line 658 "command.y" /* yacc.c:1645  */
+#line 658 "command.y" /* yacc.c:1652  */
     {
-               NODE *n = (yyvsp[0])->a_node;
+               NODE *n = yyvsp[0]->a_node;
                if ((n->flags & NUMBER) == 0)
                        yyerror(_("non-numeric value for field number"));
                else
-                       (yyvsp[0])->type = D_field;
-               (yyval) = (yyvsp[0]);
+                       yyvsp[0]->type = D_field;
+               yyval = yyvsp[0];
          }
-#line 2142 "command.c" /* yacc.c:1645  */
+#line 2152 "command.c" /* yacc.c:1652  */
     break;
 
   case 143:
-#line 667 "command.y" /* yacc.c:1645  */
+#line 667 "command.y" /* yacc.c:1652  */
     {
                /* a_string is array name, a_count is dimension count */
-               (yyvsp[-1])->type = D_subscript;
-               (yyvsp[-1])->a_count = num_dim;
-               (yyval) = (yyvsp[-1]);
+               yyvsp[-1]->type = D_subscript;
+               yyvsp[-1]->a_count = num_dim;
+               yyval = yyvsp[-1];
          }
-#line 2153 "command.c" /* yacc.c:1645  */
+#line 2163 "command.c" /* yacc.c:1652  */
     break;
 
   case 144:
-#line 677 "command.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 2159 "command.c" /* yacc.c:1645  */
+#line 677 "command.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 2169 "command.c" /* yacc.c:1652  */
     break;
 
   case 145:
-#line 679 "command.y" /* yacc.c:1645  */
+#line 679 "command.y" /* yacc.c:1652  */
     {
-               NODE *n = (yyvsp[0])->a_node;
+               NODE *n = yyvsp[0]->a_node;
                if ((n->flags & NUMBER) == 0)
                        yyerror(_("non-numeric value found, numeric expected"));
-               (yyval) = (yyvsp[0]);
+               yyval = yyvsp[0];
          }
-#line 2170 "command.c" /* yacc.c:1645  */
+#line 2180 "command.c" /* yacc.c:1652  */
     break;
 
   case 146:
-#line 686 "command.y" /* yacc.c:1645  */
+#line 686 "command.y" /* yacc.c:1652  */
     {
-               NODE *n = (yyvsp[0])->a_node;
+               NODE *n = yyvsp[0]->a_node;
                if ((n->flags & NUMBER) == 0)
                        yyerror(_("non-numeric value found, numeric expected"));
                else
                        negate_num(n);
-               (yyval) = (yyvsp[0]);
+               yyval = yyvsp[0];
          }
-#line 2183 "command.c" /* yacc.c:1645  */
+#line 2193 "command.c" /* yacc.c:1652  */
     break;
 
   case 147:
-#line 698 "command.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 2189 "command.c" /* yacc.c:1645  */
+#line 698 "command.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 2199 "command.c" /* yacc.c:1652  */
     break;
 
   case 148:
-#line 700 "command.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 2195 "command.c" /* yacc.c:1645  */
+#line 700 "command.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 2205 "command.c" /* yacc.c:1652  */
     break;
 
   case 149:
-#line 705 "command.y" /* yacc.c:1645  */
-    { (yyval) = NULL; }
-#line 2201 "command.c" /* yacc.c:1645  */
+#line 705 "command.y" /* yacc.c:1652  */
+    { yyval = NULL; }
+#line 2211 "command.c" /* yacc.c:1652  */
     break;
 
   case 150:
-#line 707 "command.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 2207 "command.c" /* yacc.c:1645  */
+#line 707 "command.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 2217 "command.c" /* yacc.c:1652  */
     break;
 
   case 151:
-#line 712 "command.y" /* yacc.c:1645  */
+#line 712 "command.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[0])->a_int == 0)
+               if (yyvsp[0]->a_int == 0)
                        yyerror(_("non-zero integer value"));
-               (yyval) = (yyvsp[0]);
+               yyval = yyvsp[0];
          }
-#line 2217 "command.c" /* yacc.c:1645  */
+#line 2227 "command.c" /* yacc.c:1652  */
     break;
 
   case 152:
-#line 718 "command.y" /* yacc.c:1645  */
+#line 718 "command.y" /* yacc.c:1652  */
     {
-               if ((yyvsp[0])->a_int == 0)
+               if (yyvsp[0]->a_int == 0)
                        yyerror(_("non-zero integer value"));
-               (yyval) = (yyvsp[0]);
+               yyval = yyvsp[0];
          }
-#line 2227 "command.c" /* yacc.c:1645  */
+#line 2237 "command.c" /* yacc.c:1652  */
     break;
 
   case 153:
-#line 727 "command.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 2233 "command.c" /* yacc.c:1645  */
+#line 727 "command.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 2243 "command.c" /* yacc.c:1652  */
     break;
 
   case 154:
-#line 729 "command.y" /* yacc.c:1645  */
-    { (yyval) = (yyvsp[0]); }
-#line 2239 "command.c" /* yacc.c:1645  */
+#line 729 "command.y" /* yacc.c:1652  */
+    { yyval = yyvsp[0]; }
+#line 2249 "command.c" /* yacc.c:1652  */
     break;
 
   case 155:
-#line 731 "command.y" /* yacc.c:1645  */
+#line 731 "command.y" /* yacc.c:1652  */
     {
-               (yyvsp[0])->a_int = - (yyvsp[0])->a_int;
-               (yyval) = (yyvsp[0]);
+               yyvsp[0]->a_int = - yyvsp[0]->a_int;
+               yyval = yyvsp[0];
          }
-#line 2248 "command.c" /* yacc.c:1645  */
+#line 2258 "command.c" /* yacc.c:1652  */
     break;
 
   case 156:
-#line 739 "command.y" /* yacc.c:1645  */
+#line 739 "command.y" /* yacc.c:1652  */
     {
                if (lexptr_begin != NULL) {
                        if (input_from_tty && lexptr_begin[0] != '\0')
@@ -2257,11 +2267,11 @@ yyreduce:
                        lexptr_begin = NULL;
                }
          }
-#line 2261 "command.c" /* yacc.c:1645  */
+#line 2271 "command.c" /* yacc.c:1652  */
     break;
 
 
-#line 2265 "command.c" /* yacc.c:1645  */
+#line 2275 "command.c" /* yacc.c:1652  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -2375,12 +2385,10 @@ yyerrlab:
 | yyerrorlab -- error raised explicitly by YYERROR.  |
 `---------------------------------------------------*/
 yyerrorlab:
-
-  /* Pacify compilers like GCC when the user code never invokes
-     YYERROR and the label yyerrorlab therefore never appears in user
-     code.  */
-  if (/*CONSTCOND*/ 0)
-     goto yyerrorlab;
+  /* Pacify compilers when the user code never invokes YYERROR and the
+     label yyerrorlab therefore never appears in user code.  */
+  if (0)
+    YYERROR;
 
   /* Do not reclaim the symbols of the rule whose action triggered
      this YYERROR.  */
@@ -2442,6 +2450,7 @@ yyacceptlab:
   yyresult = 0;
   goto yyreturn;
 
+
 /*-----------------------------------.
 | yyabortlab -- YYABORT comes here.  |
 `-----------------------------------*/
@@ -2449,6 +2458,7 @@ yyabortlab:
   yyresult = 1;
   goto yyreturn;
 
+
 #if !defined yyoverflow || YYERROR_VERBOSE
 /*-------------------------------------------------.
 | yyexhaustedlab -- memory exhaustion comes here.  |
@@ -2459,6 +2469,10 @@ yyexhaustedlab:
   /* Fall through.  */
 #endif
 
+
+/*-----------------------------------------------------.
+| yyreturn -- parsing is finished, return the result.  |
+`-----------------------------------------------------*/
 yyreturn:
   if (yychar != YYEMPTY)
     {
@@ -2488,7 +2502,7 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 749 "command.y" /* yacc.c:1903  */
+#line 749 "command.y" /* yacc.c:1918  */
 
 
 

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog |    5 +
 NEWS      |    2 +-
 awkgram.c | 2216 +++++++++++++++++++++++++++++++------------------------------
 command.c |  620 ++++++++---------
 4 files changed, 1438 insertions(+), 1405 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

[Prev in Thread] Current Thread [Next in Thread]