gawk-diffs
[Top][All Lists]
Advanced

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

[gawk-diffs] [SCM] gawk branch, feature/namespaces, updated. gawk-4.1.0-


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, feature/namespaces, updated. gawk-4.1.0-3463-g84b471e
Date: Sat, 17 Nov 2018 13:52:57 -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, feature/namespaces has been updated
       via  84b471e4f89a3fc0823327fe5ab91f3dfdf97429 (commit)
       via  1967fa8e6c14c9eef6f3de522d061316cf0b8910 (commit)
       via  973a253ae8bb26f57ecc97b638cbe9ffb1e147e5 (commit)
       via  b1f89d2c2974376d6f99f1770a5f618c6f3afed2 (commit)
      from  8a2166b064657dc501d0a3caf86e54c507d18c16 (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=84b471e4f89a3fc0823327fe5ab91f3dfdf97429

commit 84b471e4f89a3fc0823327fe5ab91f3dfdf97429
Merge: 8a2166b 1967fa8
Author: Arnold D. Robbins <address@hidden>
Date:   Sat Nov 17 20:52:52 2018 +0200

    Merge branch 'master' into feature/namespaces

diff --cc awkgram.c
index 4134fb6,3d63f16..97faebd
--- a/awkgram.c
+++ b/awkgram.c
@@@ -218,13 -215,16 +221,16 @@@ extern double fmod(double x, double y)
  
  #define YYSTYPE INSTRUCTION *
  
- #line 222 "awkgram.c" /* yacc.c:339  */
- 
 -#line 219 "awkgram.c" /* yacc.c:338  */
++#line 225 "awkgram.c" /* yacc.c:338  */
  # ifndef YY_NULLPTR
- #  if defined __cplusplus && 201103L <= __cplusplus
- #   define YY_NULLPTR nullptr
+ #  if defined __cplusplus
+ #   if 201103L <= __cplusplus
+ #    define YY_NULLPTR nullptr
+ #   else
+ #    define YY_NULLPTR 0
+ #   endif
  #  else
- #   define YY_NULLPTR 0
+ #   define YY_NULLPTR ((void*)0)
  #  endif
  # endif
  
@@@ -1896,24 -1883,24 +1890,24 @@@ yyreduce
    switch (yyn)
      {
          case 3:
- #line 224 "awkgram.y" /* yacc.c:1651  */
 -#line 218 "awkgram.y" /* yacc.c:1645  */
++#line 224 "awkgram.y" /* yacc.c:1645  */
      {
                rule = 0;
                yyerrok;
          }
- #line 1905 "awkgram.c" /* yacc.c:1651  */
 -#line 1892 "awkgram.c" /* yacc.c:1645  */
++#line 1899 "awkgram.c" /* yacc.c:1645  */
      break;
  
    case 5:
- #line 230 "awkgram.y" /* yacc.c:1651  */
 -#line 224 "awkgram.y" /* yacc.c:1645  */
++#line 230 "awkgram.y" /* yacc.c:1645  */
      {
                next_sourcefile();
          }
- #line 1913 "awkgram.c" /* yacc.c:1651  */
 -#line 1900 "awkgram.c" /* yacc.c:1645  */
++#line 1907 "awkgram.c" /* yacc.c:1645  */
      break;
  
    case 6:
- #line 234 "awkgram.y" /* yacc.c:1651  */
 -#line 228 "awkgram.y" /* yacc.c:1645  */
++#line 234 "awkgram.y" /* yacc.c:1645  */
      {
                rule = 0;
                /*
@@@ -1922,20 -1909,20 +1916,20 @@@
                 */
                /* yyerrok; */
          }
- #line 1926 "awkgram.c" /* yacc.c:1651  */
 -#line 1913 "awkgram.c" /* yacc.c:1645  */
++#line 1920 "awkgram.c" /* yacc.c:1645  */
      break;
  
    case 7:
- #line 246 "awkgram.y" /* yacc.c:1651  */
 -#line 240 "awkgram.y" /* yacc.c:1645  */
++#line 246 "awkgram.y" /* yacc.c:1645  */
      {
                (void) append_rule((yyvsp[-1]), (yyvsp[0]));
                first_rule = false;
          }
- #line 1935 "awkgram.c" /* yacc.c:1651  */
 -#line 1922 "awkgram.c" /* yacc.c:1645  */
++#line 1929 "awkgram.c" /* yacc.c:1645  */
      break;
  
    case 8:
- #line 251 "awkgram.y" /* yacc.c:1651  */
 -#line 245 "awkgram.y" /* yacc.c:1645  */
++#line 251 "awkgram.y" /* yacc.c:1645  */
      {
                if (rule != Rule) {
                        msg(_("%s blocks must have an action part"), 
ruletab[rule]);
@@@ -1946,56 -1933,42 +1940,56 @@@
                } else          /* pattern rule with non-empty pattern */
                        (void) append_rule((yyvsp[-1]), NULL);
          }
- #line 1950 "awkgram.c" /* yacc.c:1651  */
 -#line 1937 "awkgram.c" /* yacc.c:1645  */
++#line 1944 "awkgram.c" /* yacc.c:1645  */
      break;
  
    case 9:
- #line 262 "awkgram.y" /* yacc.c:1651  */
 -#line 256 "awkgram.y" /* yacc.c:1645  */
++#line 262 "awkgram.y" /* yacc.c:1645  */
      {
                in_function = NULL;
                (void) mk_function((yyvsp[-1]), (yyvsp[0]));
                want_param_names = DONT_CHECK;
                yyerrok;
          }
- #line 1961 "awkgram.c" /* yacc.c:1651  */
 -#line 1948 "awkgram.c" /* yacc.c:1645  */
++#line 1955 "awkgram.c" /* yacc.c:1645  */
      break;
  
    case 10:
- #line 269 "awkgram.y" /* yacc.c:1651  */
 -#line 263 "awkgram.y" /* yacc.c:1645  */
++#line 269 "awkgram.y" /* yacc.c:1645  */
      {
                want_source = false;
                at_seen = false;
                yyerrok;
          }
- #line 1971 "awkgram.c" /* yacc.c:1651  */
 -#line 1958 "awkgram.c" /* yacc.c:1645  */
++#line 1965 "awkgram.c" /* yacc.c:1645  */
      break;
  
    case 11:
- #line 275 "awkgram.y" /* yacc.c:1651  */
 -#line 269 "awkgram.y" /* yacc.c:1645  */
++#line 275 "awkgram.y" /* yacc.c:1645  */
      {
                want_source = false;
                at_seen = false;
                yyerrok;
          }
- #line 1981 "awkgram.c" /* yacc.c:1651  */
 -#line 1968 "awkgram.c" /* yacc.c:1645  */
++#line 1975 "awkgram.c" /* yacc.c:1645  */
      break;
  
    case 12:
- #line 281 "awkgram.y" /* yacc.c:1651  */
 -#line 278 "awkgram.y" /* yacc.c:1645  */
++#line 281 "awkgram.y" /* yacc.c:1645  */
 +    {
 +              want_source = false;
 +              at_seen = false;
 +
 +              // this frees $3 storage in all cases
 +              set_namespace((yyvsp[-1]));
 +
 +              yyerrok;
 +        }
- #line 1995 "awkgram.c" /* yacc.c:1651  */
++#line 1989 "awkgram.c" /* yacc.c:1645  */
 +    break;
 +
 +  case 13:
- #line 294 "awkgram.y" /* yacc.c:1651  */
++#line 294 "awkgram.y" /* yacc.c:1645  */
      {
                if (include_source((yyvsp[0])) < 0)
                        YYABORT;
@@@ -2003,23 -1976,23 +1997,23 @@@
                bcfree((yyvsp[0]));
                (yyval) = NULL;
          }
- #line 2007 "awkgram.c" /* yacc.c:1651  */
 -#line 1980 "awkgram.c" /* yacc.c:1645  */
++#line 2001 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 13:
 -#line 286 "awkgram.y" /* yacc.c:1645  */
 +  case 14:
- #line 302 "awkgram.y" /* yacc.c:1651  */
++#line 302 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = NULL; }
- #line 2013 "awkgram.c" /* yacc.c:1651  */
 -#line 1986 "awkgram.c" /* yacc.c:1645  */
++#line 2007 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 14:
 -#line 288 "awkgram.y" /* yacc.c:1645  */
 +  case 15:
- #line 304 "awkgram.y" /* yacc.c:1651  */
++#line 304 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = NULL; }
- #line 2019 "awkgram.c" /* yacc.c:1651  */
 -#line 1992 "awkgram.c" /* yacc.c:1645  */
++#line 2013 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 15:
 -#line 293 "awkgram.y" /* yacc.c:1645  */
 +  case 16:
- #line 309 "awkgram.y" /* yacc.c:1651  */
++#line 309 "awkgram.y" /* yacc.c:1645  */
      {
                if (load_library((yyvsp[0])) < 0)
                        YYABORT;
@@@ -2027,41 -2000,23 +2021,41 @@@
                bcfree((yyvsp[0]));
                (yyval) = NULL;
          }
- #line 2031 "awkgram.c" /* yacc.c:1651  */
 -#line 2004 "awkgram.c" /* yacc.c:1645  */
++#line 2025 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 16:
 -#line 301 "awkgram.y" /* yacc.c:1645  */
 +  case 17:
- #line 317 "awkgram.y" /* yacc.c:1651  */
++#line 317 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = NULL; }
- #line 2037 "awkgram.c" /* yacc.c:1651  */
 -#line 2010 "awkgram.c" /* yacc.c:1645  */
++#line 2031 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 17:
 -#line 303 "awkgram.y" /* yacc.c:1645  */
 +  case 18:
- #line 319 "awkgram.y" /* yacc.c:1651  */
++#line 319 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = NULL; }
- #line 2043 "awkgram.c" /* yacc.c:1651  */
 -#line 2016 "awkgram.c" /* yacc.c:1645  */
++#line 2037 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 18:
 -#line 308 "awkgram.y" /* yacc.c:1645  */
 +  case 19:
- #line 324 "awkgram.y" /* yacc.c:1651  */
++#line 324 "awkgram.y" /* yacc.c:1645  */
 +    { (yyval) = (yyvsp[0]); }
- #line 2049 "awkgram.c" /* yacc.c:1651  */
++#line 2043 "awkgram.c" /* yacc.c:1645  */
 +    break;
 +
 +  case 20:
- #line 326 "awkgram.y" /* yacc.c:1651  */
++#line 326 "awkgram.y" /* yacc.c:1645  */
 +    { (yyval) = NULL; }
- #line 2055 "awkgram.c" /* yacc.c:1651  */
++#line 2049 "awkgram.c" /* yacc.c:1645  */
 +    break;
 +
 +  case 21:
- #line 328 "awkgram.y" /* yacc.c:1651  */
++#line 328 "awkgram.y" /* yacc.c:1645  */
 +    { (yyval) = NULL; }
- #line 2061 "awkgram.c" /* yacc.c:1651  */
++#line 2055 "awkgram.c" /* yacc.c:1645  */
 +    break;
 +
 +  case 22:
- #line 333 "awkgram.y" /* yacc.c:1651  */
++#line 333 "awkgram.y" /* yacc.c:1645  */
      {
                rule = Rule;
                if (comment != NULL) {
@@@ -2070,11 -2025,11 +2064,11 @@@
                } else
                        (yyval) = NULL;
          }
- #line 2074 "awkgram.c" /* yacc.c:1651  */
 -#line 2029 "awkgram.c" /* yacc.c:1645  */
++#line 2068 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 19:
 -#line 317 "awkgram.y" /* yacc.c:1645  */
 +  case 23:
- #line 342 "awkgram.y" /* yacc.c:1651  */
++#line 342 "awkgram.y" /* yacc.c:1645  */
      {
                rule = Rule;
                if (comment != NULL) {
@@@ -2083,11 -2038,11 +2077,11 @@@
                } else
                        (yyval) = (yyvsp[0]);
          }
- #line 2087 "awkgram.c" /* yacc.c:1651  */
 -#line 2042 "awkgram.c" /* yacc.c:1645  */
++#line 2081 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 20:
 -#line 327 "awkgram.y" /* yacc.c:1645  */
 +  case 24:
- #line 352 "awkgram.y" /* yacc.c:1651  */
++#line 352 "awkgram.y" /* yacc.c:1645  */
      {
                INSTRUCTION *tp;
  
@@@ -2117,11 -2072,11 +2111,11 @@@
                        (yyval) = list_append(list_merge((yyvsp[-3]), 
(yyvsp[0])), tp);
                rule = Rule;
          }
- #line 2121 "awkgram.c" /* yacc.c:1651  */
 -#line 2076 "awkgram.c" /* yacc.c:1645  */
++#line 2115 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 21:
 -#line 357 "awkgram.y" /* yacc.c:1645  */
 +  case 25:
- #line 382 "awkgram.y" /* yacc.c:1651  */
++#line 382 "awkgram.y" /* yacc.c:1645  */
      {
                static int begin_seen = 0;
  
@@@ -2135,11 -2090,11 +2129,11 @@@
                check_comment();
                (yyval) = (yyvsp[0]);
          }
- #line 2139 "awkgram.c" /* yacc.c:1651  */
 -#line 2094 "awkgram.c" /* yacc.c:1645  */
++#line 2133 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 22:
 -#line 371 "awkgram.y" /* yacc.c:1645  */
 +  case 26:
- #line 396 "awkgram.y" /* yacc.c:1651  */
++#line 396 "awkgram.y" /* yacc.c:1645  */
      {
                static int end_seen = 0;
  
@@@ -2153,11 -2108,11 +2147,11 @@@
                check_comment();
                (yyval) = (yyvsp[0]);
          }
- #line 2157 "awkgram.c" /* yacc.c:1651  */
 -#line 2112 "awkgram.c" /* yacc.c:1645  */
++#line 2151 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 23:
 -#line 385 "awkgram.y" /* yacc.c:1645  */
 +  case 27:
- #line 410 "awkgram.y" /* yacc.c:1651  */
++#line 410 "awkgram.y" /* yacc.c:1645  */
      {
                func_first = false;
                (yyvsp[0])->in_rule = rule = BEGINFILE;
@@@ -2165,11 -2120,11 +2159,11 @@@
                check_comment();
                (yyval) = (yyvsp[0]);
          }
- #line 2169 "awkgram.c" /* yacc.c:1651  */
 -#line 2124 "awkgram.c" /* yacc.c:1645  */
++#line 2163 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 24:
 -#line 393 "awkgram.y" /* yacc.c:1645  */
 +  case 28:
- #line 418 "awkgram.y" /* yacc.c:1651  */
++#line 418 "awkgram.y" /* yacc.c:1645  */
      {
                func_first = false;
                (yyvsp[0])->in_rule = rule = ENDFILE;
@@@ -2177,11 -2132,11 +2171,11 @@@
                check_comment();
                (yyval) = (yyvsp[0]);
          }
- #line 2181 "awkgram.c" /* yacc.c:1651  */
 -#line 2136 "awkgram.c" /* yacc.c:1645  */
++#line 2175 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 25:
 -#line 404 "awkgram.y" /* yacc.c:1645  */
 +  case 29:
- #line 429 "awkgram.y" /* yacc.c:1651  */
++#line 429 "awkgram.y" /* yacc.c:1645  */
      {
                INSTRUCTION *ip;
                if ((yyvsp[-3]) == NULL)
@@@ -2190,48 -2145,48 +2184,48 @@@
                        ip = (yyvsp[-3]);
                (yyval) = ip;
          }
- #line 2194 "awkgram.c" /* yacc.c:1651  */
 -#line 2149 "awkgram.c" /* yacc.c:1645  */
++#line 2188 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 26:
 -#line 416 "awkgram.y" /* yacc.c:1645  */
 +  case 30:
- #line 441 "awkgram.y" /* yacc.c:1651  */
++#line 441 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 2200 "awkgram.c" /* yacc.c:1651  */
 -#line 2155 "awkgram.c" /* yacc.c:1645  */
++#line 2194 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 27:
 -#line 418 "awkgram.y" /* yacc.c:1645  */
 +  case 31:
- #line 443 "awkgram.y" /* yacc.c:1651  */
++#line 443 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 2206 "awkgram.c" /* yacc.c:1651  */
 -#line 2161 "awkgram.c" /* yacc.c:1645  */
++#line 2200 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 28:
 -#line 420 "awkgram.y" /* yacc.c:1645  */
 +  case 32:
- #line 445 "awkgram.y" /* yacc.c:1651  */
++#line 445 "awkgram.y" /* yacc.c:1645  */
      {
                yyerror(_("`%s' is a built-in function, it cannot be 
redefined"),
                                        tokstart);
                YYABORT;
          }
- #line 2216 "awkgram.c" /* yacc.c:1651  */
 -#line 2171 "awkgram.c" /* yacc.c:1645  */
++#line 2210 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 29:
 -#line 426 "awkgram.y" /* yacc.c:1645  */
 +  case 33:
- #line 451 "awkgram.y" /* yacc.c:1651  */
++#line 451 "awkgram.y" /* yacc.c:1645  */
      {
                (yyval) = (yyvsp[0]);
                at_seen = false;
          }
- #line 2225 "awkgram.c" /* yacc.c:1651  */
 -#line 2180 "awkgram.c" /* yacc.c:1645  */
++#line 2219 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 32:
 -#line 438 "awkgram.y" /* yacc.c:1645  */
 +  case 36:
- #line 463 "awkgram.y" /* yacc.c:1651  */
++#line 463 "awkgram.y" /* yacc.c:1645  */
      { want_param_names = FUNC_HEADER; }
- #line 2231 "awkgram.c" /* yacc.c:1651  */
 -#line 2186 "awkgram.c" /* yacc.c:1645  */
++#line 2225 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 33:
 -#line 439 "awkgram.y" /* yacc.c:1645  */
 +  case 37:
- #line 464 "awkgram.y" /* yacc.c:1651  */
++#line 464 "awkgram.y" /* yacc.c:1645  */
      {
                /*
                 *  treat any comments between BOF and the first function
@@@ -2269,17 -2224,17 +2263,17 @@@
                (yyval) = (yyvsp[-6]);
                want_param_names = FUNC_BODY;
          }
- #line 2273 "awkgram.c" /* yacc.c:1651  */
 -#line 2228 "awkgram.c" /* yacc.c:1645  */
++#line 2267 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 34:
 -#line 484 "awkgram.y" /* yacc.c:1645  */
 +  case 38:
- #line 509 "awkgram.y" /* yacc.c:1651  */
++#line 509 "awkgram.y" /* yacc.c:1645  */
      { want_regexp = true; }
- #line 2279 "awkgram.c" /* yacc.c:1651  */
 -#line 2234 "awkgram.c" /* yacc.c:1645  */
++#line 2273 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 35:
 -#line 486 "awkgram.y" /* yacc.c:1645  */
 +  case 39:
- #line 511 "awkgram.y" /* yacc.c:1651  */
++#line 511 "awkgram.y" /* yacc.c:1645  */
      {
                  NODE *n, *exp;
                  char *re;
@@@ -2308,11 -2263,11 +2302,11 @@@
                  (yyval)->opcode = Op_match_rec;
                  (yyval)->memory = n;
                }
- #line 2312 "awkgram.c" /* yacc.c:1651  */
 -#line 2267 "awkgram.c" /* yacc.c:1645  */
++#line 2306 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 36:
 -#line 518 "awkgram.y" /* yacc.c:1645  */
 +  case 40:
- #line 543 "awkgram.y" /* yacc.c:1651  */
++#line 543 "awkgram.y" /* yacc.c:1645  */
      {
                  char *re;
                  size_t len;
@@@ -2325,17 -2280,17 +2319,17 @@@
                  (yyval)->opcode = Op_push_re;
                  (yyval)->memory = make_typed_regex(re, len);
                }
- #line 2329 "awkgram.c" /* yacc.c:1651  */
 -#line 2284 "awkgram.c" /* yacc.c:1645  */
++#line 2323 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 37:
 -#line 533 "awkgram.y" /* yacc.c:1645  */
 +  case 41:
- #line 558 "awkgram.y" /* yacc.c:1651  */
++#line 558 "awkgram.y" /* yacc.c:1645  */
      { bcfree((yyvsp[0])); }
- #line 2335 "awkgram.c" /* yacc.c:1651  */
 -#line 2290 "awkgram.c" /* yacc.c:1645  */
++#line 2329 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 39:
 -#line 539 "awkgram.y" /* yacc.c:1645  */
 +  case 43:
- #line 564 "awkgram.y" /* yacc.c:1651  */
++#line 564 "awkgram.y" /* yacc.c:1645  */
      {
                if (prior_comment != NULL) {
                        (yyval) = list_create(prior_comment);
@@@ -2346,11 -2301,11 +2340,11 @@@
                } else
                        (yyval) = NULL;
          }
- #line 2350 "awkgram.c" /* yacc.c:1651  */
 -#line 2305 "awkgram.c" /* yacc.c:1645  */
++#line 2344 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 40:
 -#line 550 "awkgram.y" /* yacc.c:1645  */
 +  case 44:
- #line 575 "awkgram.y" /* yacc.c:1651  */
++#line 575 "awkgram.y" /* yacc.c:1645  */
      {
                if ((yyvsp[0]) == NULL) {
                        if (prior_comment != NULL) {
@@@ -2397,40 -2352,40 +2391,40 @@@
                }
                yyerrok;
          }
- #line 2401 "awkgram.c" /* yacc.c:1651  */
 -#line 2356 "awkgram.c" /* yacc.c:1645  */
++#line 2395 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 41:
 -#line 597 "awkgram.y" /* yacc.c:1645  */
 +  case 45:
- #line 622 "awkgram.y" /* yacc.c:1651  */
++#line 622 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = NULL; }
- #line 2407 "awkgram.c" /* yacc.c:1651  */
 -#line 2362 "awkgram.c" /* yacc.c:1645  */
++#line 2401 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 44:
 -#line 607 "awkgram.y" /* yacc.c:1645  */
 +  case 48:
- #line 632 "awkgram.y" /* yacc.c:1651  */
++#line 632 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = NULL; }
- #line 2413 "awkgram.c" /* yacc.c:1651  */
 -#line 2368 "awkgram.c" /* yacc.c:1645  */
++#line 2407 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 45:
 -#line 609 "awkgram.y" /* yacc.c:1645  */
 +  case 49:
- #line 634 "awkgram.y" /* yacc.c:1651  */
++#line 634 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[-1]); }
- #line 2419 "awkgram.c" /* yacc.c:1651  */
 -#line 2374 "awkgram.c" /* yacc.c:1645  */
++#line 2413 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 46:
 -#line 611 "awkgram.y" /* yacc.c:1645  */
 +  case 50:
- #line 636 "awkgram.y" /* yacc.c:1651  */
++#line 636 "awkgram.y" /* yacc.c:1645  */
      {
                if (do_pretty_print)
                        (yyval) = list_prepend((yyvsp[0]), 
instruction(Op_exec_count));
                else
                        (yyval) = (yyvsp[0]);
          }
- #line 2430 "awkgram.c" /* yacc.c:1651  */
 -#line 2385 "awkgram.c" /* yacc.c:1645  */
++#line 2424 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 47:
 -#line 618 "awkgram.y" /* yacc.c:1645  */
 +  case 51:
- #line 643 "awkgram.y" /* yacc.c:1651  */
++#line 643 "awkgram.y" /* yacc.c:1645  */
      {
                INSTRUCTION *dflt, *curr = NULL, *cexp, *cstmt;
                INSTRUCTION *ip, *nextc, *tbreak;
@@@ -2520,11 -2475,11 +2514,11 @@@
                break_allowed--;
                fix_break_continue(ip, tbreak, NULL);
          }
- #line 2524 "awkgram.c" /* yacc.c:1651  */
 -#line 2479 "awkgram.c" /* yacc.c:1645  */
++#line 2518 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 48:
 -#line 708 "awkgram.y" /* yacc.c:1645  */
 +  case 52:
- #line 733 "awkgram.y" /* yacc.c:1651  */
++#line 733 "awkgram.y" /* yacc.c:1645  */
      {
                /*
                 *    -----------------
@@@ -2566,11 -2521,11 +2560,11 @@@
                continue_allowed--;
                fix_break_continue(ip, tbreak, tcont);
          }
- #line 2570 "awkgram.c" /* yacc.c:1651  */
 -#line 2525 "awkgram.c" /* yacc.c:1645  */
++#line 2564 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 49:
 -#line 750 "awkgram.y" /* yacc.c:1645  */
 +  case 53:
- #line 775 "awkgram.y" /* yacc.c:1651  */
++#line 775 "awkgram.y" /* yacc.c:1645  */
      {
                /*
                 *    -----------------
@@@ -2612,11 -2567,11 +2606,11 @@@
                } /* else
                        $1 and $4 are NULLs */
          }
- #line 2616 "awkgram.c" /* yacc.c:1651  */
 -#line 2571 "awkgram.c" /* yacc.c:1645  */
++#line 2610 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 50:
 -#line 792 "awkgram.y" /* yacc.c:1645  */
 +  case 54:
- #line 817 "awkgram.y" /* yacc.c:1651  */
++#line 817 "awkgram.y" /* yacc.c:1645  */
      {
                INSTRUCTION *ip;
                char *var_name = (yyvsp[-5])->lextok;
@@@ -2729,33 -2684,33 +2723,33 @@@ regular_loop
                break_allowed--;
                continue_allowed--;
          }
- #line 2733 "awkgram.c" /* yacc.c:1651  */
 -#line 2688 "awkgram.c" /* yacc.c:1645  */
++#line 2727 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 51:
 -#line 905 "awkgram.y" /* yacc.c:1645  */
 +  case 55:
- #line 930 "awkgram.y" /* yacc.c:1651  */
++#line 930 "awkgram.y" /* yacc.c:1645  */
      {
                (yyval) = mk_for_loop((yyvsp[-11]), (yyvsp[-9]), (yyvsp[-6]), 
(yyvsp[-3]), (yyvsp[0]));
  
                break_allowed--;
                continue_allowed--;
          }
- #line 2744 "awkgram.c" /* yacc.c:1651  */
 -#line 2699 "awkgram.c" /* yacc.c:1645  */
++#line 2738 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 52:
 -#line 912 "awkgram.y" /* yacc.c:1645  */
 +  case 56:
- #line 937 "awkgram.y" /* yacc.c:1651  */
++#line 937 "awkgram.y" /* yacc.c:1645  */
      {
                (yyval) = mk_for_loop((yyvsp[-10]), (yyvsp[-8]), (INSTRUCTION 
*) NULL, (yyvsp[-3]), (yyvsp[0]));
  
                break_allowed--;
                continue_allowed--;
          }
- #line 2755 "awkgram.c" /* yacc.c:1651  */
 -#line 2710 "awkgram.c" /* yacc.c:1645  */
++#line 2749 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 53:
 -#line 919 "awkgram.y" /* yacc.c:1645  */
 +  case 57:
- #line 944 "awkgram.y" /* yacc.c:1651  */
++#line 944 "awkgram.y" /* yacc.c:1645  */
      {
                if (do_pretty_print)
                        (yyval) = list_prepend((yyvsp[0]), 
instruction(Op_exec_count));
@@@ -2763,11 -2718,11 +2757,11 @@@
                        (yyval) = (yyvsp[0]);
                (yyval) = add_pending_comment((yyval));
          }
- #line 2767 "awkgram.c" /* yacc.c:1651  */
 -#line 2722 "awkgram.c" /* yacc.c:1645  */
++#line 2761 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 54:
 -#line 930 "awkgram.y" /* yacc.c:1645  */
 +  case 58:
- #line 955 "awkgram.y" /* yacc.c:1651  */
++#line 955 "awkgram.y" /* yacc.c:1645  */
      {
                if (! break_allowed)
                        error_ln((yyvsp[-1])->source_line,
@@@ -2777,11 -2732,11 +2771,11 @@@
                (yyval) = add_pending_comment((yyval));
  
          }
- #line 2781 "awkgram.c" /* yacc.c:1651  */
 -#line 2736 "awkgram.c" /* yacc.c:1645  */
++#line 2775 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 55:
 -#line 940 "awkgram.y" /* yacc.c:1645  */
 +  case 59:
- #line 965 "awkgram.y" /* yacc.c:1651  */
++#line 965 "awkgram.y" /* yacc.c:1645  */
      {
                if (! continue_allowed)
                        error_ln((yyvsp[-1])->source_line,
@@@ -2791,11 -2746,11 +2785,11 @@@
                (yyval) = add_pending_comment((yyval));
  
          }
- #line 2795 "awkgram.c" /* yacc.c:1651  */
 -#line 2750 "awkgram.c" /* yacc.c:1645  */
++#line 2789 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 56:
 -#line 950 "awkgram.y" /* yacc.c:1645  */
 +  case 60:
- #line 975 "awkgram.y" /* yacc.c:1651  */
++#line 975 "awkgram.y" /* yacc.c:1645  */
      {
                /* if inside function (rule = 0), resolve context at run-time */
                if (rule && rule != Rule)
@@@ -2805,11 -2760,11 +2799,11 @@@
                (yyval) = list_create((yyvsp[-1]));
                (yyval) = add_pending_comment((yyval));
          }
- #line 2809 "awkgram.c" /* yacc.c:1651  */
 -#line 2764 "awkgram.c" /* yacc.c:1645  */
++#line 2803 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 57:
 -#line 960 "awkgram.y" /* yacc.c:1645  */
 +  case 61:
- #line 985 "awkgram.y" /* yacc.c:1651  */
++#line 985 "awkgram.y" /* yacc.c:1645  */
      {
                /* if inside function (rule = 0), resolve context at run-time */
                if (rule == BEGIN || rule == END || rule == ENDFILE)
@@@ -2821,11 -2776,11 +2815,11 @@@
                (yyval) = list_create((yyvsp[-1]));
                (yyval) = add_pending_comment((yyval));
          }
- #line 2825 "awkgram.c" /* yacc.c:1651  */
 -#line 2780 "awkgram.c" /* yacc.c:1645  */
++#line 2819 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 58:
 -#line 972 "awkgram.y" /* yacc.c:1645  */
 +  case 62:
- #line 997 "awkgram.y" /* yacc.c:1651  */
++#line 997 "awkgram.y" /* yacc.c:1645  */
      {
                /* Initialize the two possible jump targets, the actual target
                 * is resolved at run-time.
@@@ -2841,20 -2796,20 +2835,20 @@@
                        (yyval) = list_append((yyvsp[-1]), (yyvsp[-2]));
                (yyval) = add_pending_comment((yyval));
          }
- #line 2845 "awkgram.c" /* yacc.c:1651  */
 -#line 2800 "awkgram.c" /* yacc.c:1645  */
++#line 2839 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 59:
 -#line 988 "awkgram.y" /* yacc.c:1645  */
 +  case 63:
- #line 1013 "awkgram.y" /* yacc.c:1651  */
++#line 1013 "awkgram.y" /* yacc.c:1645  */
      {
                if (! in_function)
                        yyerror(_("`return' used outside function context"));
          }
- #line 2854 "awkgram.c" /* yacc.c:1651  */
 -#line 2809 "awkgram.c" /* yacc.c:1645  */
++#line 2848 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 60:
 -#line 991 "awkgram.y" /* yacc.c:1645  */
 +  case 64:
- #line 1016 "awkgram.y" /* yacc.c:1651  */
++#line 1016 "awkgram.y" /* yacc.c:1645  */
      {
                if ((yyvsp[-1]) == NULL) {
                        (yyval) = list_create((yyvsp[-3]));
@@@ -2865,17 -2820,17 +2859,17 @@@
  
                (yyval) = add_pending_comment((yyval));
          }
- #line 2869 "awkgram.c" /* yacc.c:1651  */
 -#line 2824 "awkgram.c" /* yacc.c:1645  */
++#line 2863 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 62:
 -#line 1013 "awkgram.y" /* yacc.c:1645  */
 +  case 66:
- #line 1038 "awkgram.y" /* yacc.c:1651  */
++#line 1038 "awkgram.y" /* yacc.c:1645  */
      { in_print = true; in_parens = 0; }
- #line 2875 "awkgram.c" /* yacc.c:1651  */
 -#line 2830 "awkgram.c" /* yacc.c:1645  */
++#line 2869 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 63:
 -#line 1014 "awkgram.y" /* yacc.c:1645  */
 +  case 67:
- #line 1039 "awkgram.y" /* yacc.c:1651  */
++#line 1039 "awkgram.y" /* yacc.c:1645  */
      {
                /*
                 * Optimization: plain `print' has no expression list, so $3 is 
null.
@@@ -2973,17 -2928,17 +2967,17 @@@ regular_print
                }
                (yyval) = add_pending_comment((yyval));
          }
- #line 2977 "awkgram.c" /* yacc.c:1651  */
 -#line 2932 "awkgram.c" /* yacc.c:1645  */
++#line 2971 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 64:
 -#line 1112 "awkgram.y" /* yacc.c:1645  */
 +  case 68:
- #line 1137 "awkgram.y" /* yacc.c:1651  */
++#line 1137 "awkgram.y" /* yacc.c:1645  */
      { sub_counter = 0; }
- #line 2983 "awkgram.c" /* yacc.c:1651  */
 -#line 2938 "awkgram.c" /* yacc.c:1645  */
++#line 2977 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 65:
 -#line 1113 "awkgram.y" /* yacc.c:1645  */
 +  case 69:
- #line 1138 "awkgram.y" /* yacc.c:1651  */
++#line 1138 "awkgram.y" /* yacc.c:1645  */
      {
                char *arr = (yyvsp[-2])->lextok;
  
@@@ -3017,11 -2972,11 +3011,11 @@@
                }
                (yyval) = add_pending_comment((yyval));
          }
- #line 3021 "awkgram.c" /* yacc.c:1651  */
 -#line 2976 "awkgram.c" /* yacc.c:1645  */
++#line 3015 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 66:
 -#line 1151 "awkgram.y" /* yacc.c:1645  */
 +  case 70:
- #line 1176 "awkgram.y" /* yacc.c:1651  */
++#line 1176 "awkgram.y" /* yacc.c:1645  */
      {
                static bool warned = false;
                char *arr = (yyvsp[-1])->lextok;
@@@ -3048,55 -3003,55 +3042,55 @@@
                }
                (yyval) = add_pending_comment((yyval));
          }
- #line 3052 "awkgram.c" /* yacc.c:1651  */
 -#line 3007 "awkgram.c" /* yacc.c:1645  */
++#line 3046 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 67:
 -#line 1178 "awkgram.y" /* yacc.c:1645  */
 +  case 71:
- #line 1203 "awkgram.y" /* yacc.c:1651  */
++#line 1203 "awkgram.y" /* yacc.c:1645  */
      {
                (yyval) = optimize_assignment((yyvsp[0]));
                (yyval) = add_pending_comment((yyval));
          }
- #line 3061 "awkgram.c" /* yacc.c:1651  */
 -#line 3016 "awkgram.c" /* yacc.c:1645  */
++#line 3055 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 68:
 -#line 1186 "awkgram.y" /* yacc.c:1645  */
 +  case 72:
- #line 1211 "awkgram.y" /* yacc.c:1651  */
++#line 1211 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = NULL; }
- #line 3067 "awkgram.c" /* yacc.c:1651  */
 -#line 3022 "awkgram.c" /* yacc.c:1645  */
++#line 3061 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 69:
 -#line 1188 "awkgram.y" /* yacc.c:1645  */
 +  case 73:
- #line 1213 "awkgram.y" /* yacc.c:1651  */
++#line 1213 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 3073 "awkgram.c" /* yacc.c:1651  */
 -#line 3028 "awkgram.c" /* yacc.c:1645  */
++#line 3067 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 70:
 -#line 1193 "awkgram.y" /* yacc.c:1645  */
 +  case 74:
- #line 1218 "awkgram.y" /* yacc.c:1651  */
++#line 1218 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = NULL; }
- #line 3079 "awkgram.c" /* yacc.c:1651  */
 -#line 3034 "awkgram.c" /* yacc.c:1645  */
++#line 3073 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 71:
 -#line 1195 "awkgram.y" /* yacc.c:1645  */
 +  case 75:
- #line 1220 "awkgram.y" /* yacc.c:1651  */
++#line 1220 "awkgram.y" /* yacc.c:1645  */
      {
                if ((yyvsp[-1]) == NULL)
                        (yyval) = list_create((yyvsp[0]));
                else
                        (yyval) = list_prepend((yyvsp[-1]), (yyvsp[0]));
          }
- #line 3090 "awkgram.c" /* yacc.c:1651  */
 -#line 3045 "awkgram.c" /* yacc.c:1645  */
++#line 3084 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 72:
 -#line 1202 "awkgram.y" /* yacc.c:1645  */
 +  case 76:
- #line 1227 "awkgram.y" /* yacc.c:1651  */
++#line 1227 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = NULL; }
- #line 3096 "awkgram.c" /* yacc.c:1651  */
 -#line 3051 "awkgram.c" /* yacc.c:1645  */
++#line 3090 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 73:
 -#line 1207 "awkgram.y" /* yacc.c:1645  */
 +  case 77:
- #line 1232 "awkgram.y" /* yacc.c:1651  */
++#line 1232 "awkgram.y" /* yacc.c:1645  */
      {
                INSTRUCTION *casestmt = (yyvsp[0]);
                if ((yyvsp[0]) == NULL)
@@@ -3108,11 -3063,11 +3102,11 @@@
                bcfree((yyvsp[-2]));
                (yyval) = (yyvsp[-4]);
          }
- #line 3112 "awkgram.c" /* yacc.c:1651  */
 -#line 3067 "awkgram.c" /* yacc.c:1645  */
++#line 3106 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 74:
 -#line 1219 "awkgram.y" /* yacc.c:1645  */
 +  case 78:
- #line 1244 "awkgram.y" /* yacc.c:1651  */
++#line 1244 "awkgram.y" /* yacc.c:1645  */
      {
                INSTRUCTION *casestmt = (yyvsp[0]);
                if ((yyvsp[0]) == NULL)
@@@ -3123,17 -3078,17 +3117,17 @@@
                (yyvsp[-3])->case_stmt = casestmt;
                (yyval) = (yyvsp[-3]);
          }
- #line 3127 "awkgram.c" /* yacc.c:1651  */
 -#line 3082 "awkgram.c" /* yacc.c:1645  */
++#line 3121 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 75:
 -#line 1233 "awkgram.y" /* yacc.c:1645  */
 +  case 79:
- #line 1258 "awkgram.y" /* yacc.c:1651  */
++#line 1258 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 3133 "awkgram.c" /* yacc.c:1651  */
 -#line 3088 "awkgram.c" /* yacc.c:1645  */
++#line 3127 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 76:
 -#line 1235 "awkgram.y" /* yacc.c:1645  */
 +  case 80:
- #line 1260 "awkgram.y" /* yacc.c:1651  */
++#line 1260 "awkgram.y" /* yacc.c:1645  */
      {
                NODE *n = (yyvsp[0])->memory;
                (void) force_number(n);
@@@ -3141,28 -3096,28 +3135,28 @@@
                bcfree((yyvsp[-1]));
                (yyval) = (yyvsp[0]);
          }
- #line 3145 "awkgram.c" /* yacc.c:1651  */
 -#line 3100 "awkgram.c" /* yacc.c:1645  */
++#line 3139 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 77:
 -#line 1243 "awkgram.y" /* yacc.c:1645  */
 +  case 81:
- #line 1268 "awkgram.y" /* yacc.c:1651  */
++#line 1268 "awkgram.y" /* yacc.c:1645  */
      {
                NODE *n = (yyvsp[0])->lasti->memory;
                bcfree((yyvsp[-1]));
                add_sign_to_num(n, '+');
                (yyval) = (yyvsp[0]);
          }
- #line 3156 "awkgram.c" /* yacc.c:1651  */
 -#line 3111 "awkgram.c" /* yacc.c:1645  */
++#line 3150 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 78:
 -#line 1250 "awkgram.y" /* yacc.c:1645  */
 +  case 82:
- #line 1275 "awkgram.y" /* yacc.c:1651  */
++#line 1275 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 3162 "awkgram.c" /* yacc.c:1651  */
 -#line 3117 "awkgram.c" /* yacc.c:1645  */
++#line 3156 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 79:
 -#line 1252 "awkgram.y" /* yacc.c:1645  */
 +  case 83:
- #line 1277 "awkgram.y" /* yacc.c:1651  */
++#line 1277 "awkgram.y" /* yacc.c:1645  */
      {
                if ((yyvsp[0])->memory->type == Node_regex)
                        (yyvsp[0])->opcode = Op_push_re;
@@@ -3170,57 -3125,57 +3164,57 @@@
                        (yyvsp[0])->opcode = Op_push;
                (yyval) = (yyvsp[0]);
          }
- #line 3174 "awkgram.c" /* yacc.c:1651  */
 -#line 3129 "awkgram.c" /* yacc.c:1645  */
++#line 3168 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 80:
 -#line 1260 "awkgram.y" /* yacc.c:1645  */
 +  case 84:
- #line 1285 "awkgram.y" /* yacc.c:1651  */
++#line 1285 "awkgram.y" /* yacc.c:1645  */
      {
                assert(((yyvsp[0])->memory->flags & REGEX) == REGEX);
                (yyvsp[0])->opcode = Op_push_re;
                (yyval) = (yyvsp[0]);
          }
- #line 3184 "awkgram.c" /* yacc.c:1651  */
 -#line 3139 "awkgram.c" /* yacc.c:1645  */
++#line 3178 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 81:
 -#line 1269 "awkgram.y" /* yacc.c:1645  */
 +  case 85:
- #line 1294 "awkgram.y" /* yacc.c:1651  */
++#line 1294 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 3190 "awkgram.c" /* yacc.c:1651  */
 -#line 3145 "awkgram.c" /* yacc.c:1645  */
++#line 3184 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 82:
 -#line 1271 "awkgram.y" /* yacc.c:1645  */
 +  case 86:
- #line 1296 "awkgram.y" /* yacc.c:1651  */
++#line 1296 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 3196 "awkgram.c" /* yacc.c:1651  */
 -#line 3151 "awkgram.c" /* yacc.c:1645  */
++#line 3190 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 84:
 -#line 1281 "awkgram.y" /* yacc.c:1645  */
 +  case 88:
- #line 1306 "awkgram.y" /* yacc.c:1651  */
++#line 1306 "awkgram.y" /* yacc.c:1645  */
      {
                (yyval) = (yyvsp[-1]);
          }
- #line 3204 "awkgram.c" /* yacc.c:1651  */
 -#line 3159 "awkgram.c" /* yacc.c:1645  */
++#line 3198 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 85:
 -#line 1288 "awkgram.y" /* yacc.c:1645  */
 +  case 89:
- #line 1313 "awkgram.y" /* yacc.c:1651  */
++#line 1313 "awkgram.y" /* yacc.c:1645  */
      {
                in_print = false;
                in_parens = 0;
                (yyval) = NULL;
          }
- #line 3214 "awkgram.c" /* yacc.c:1651  */
 -#line 3169 "awkgram.c" /* yacc.c:1645  */
++#line 3208 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 86:
 -#line 1293 "awkgram.y" /* yacc.c:1645  */
 +  case 90:
- #line 1318 "awkgram.y" /* yacc.c:1651  */
++#line 1318 "awkgram.y" /* yacc.c:1645  */
      { in_print = false; in_parens = 0; }
- #line 3220 "awkgram.c" /* yacc.c:1651  */
 -#line 3175 "awkgram.c" /* yacc.c:1645  */
++#line 3214 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 87:
 -#line 1294 "awkgram.y" /* yacc.c:1645  */
 +  case 91:
- #line 1319 "awkgram.y" /* yacc.c:1651  */
++#line 1319 "awkgram.y" /* yacc.c:1645  */
      {
                if ((yyvsp[-2])->redir_type == redirect_twoway
                        && (yyvsp[0])->lasti->opcode == Op_K_getline_redir
@@@ -3230,63 -3185,63 +3224,63 @@@
                        lintwarn(_("concatenation as I/O `>' redirection target 
is ambiguous"));
                (yyval) = list_prepend((yyvsp[0]), (yyvsp[-2]));
          }
- #line 3234 "awkgram.c" /* yacc.c:1651  */
 -#line 3189 "awkgram.c" /* yacc.c:1645  */
++#line 3228 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 88:
 -#line 1307 "awkgram.y" /* yacc.c:1645  */
 +  case 92:
- #line 1332 "awkgram.y" /* yacc.c:1651  */
++#line 1332 "awkgram.y" /* yacc.c:1645  */
      {
                (yyval) = mk_condition((yyvsp[-3]), (yyvsp[-5]), (yyvsp[0]), 
NULL, NULL);
          }
- #line 3242 "awkgram.c" /* yacc.c:1651  */
 -#line 3197 "awkgram.c" /* yacc.c:1645  */
++#line 3236 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 89:
 -#line 1312 "awkgram.y" /* yacc.c:1645  */
 +  case 93:
- #line 1337 "awkgram.y" /* yacc.c:1651  */
++#line 1337 "awkgram.y" /* yacc.c:1645  */
      {
                (yyval) = mk_condition((yyvsp[-6]), (yyvsp[-8]), (yyvsp[-3]), 
(yyvsp[-2]), (yyvsp[0]));
          }
- #line 3250 "awkgram.c" /* yacc.c:1651  */
 -#line 3205 "awkgram.c" /* yacc.c:1645  */
++#line 3244 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 94:
 -#line 1329 "awkgram.y" /* yacc.c:1645  */
 +  case 98:
- #line 1354 "awkgram.y" /* yacc.c:1651  */
++#line 1354 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = NULL; }
- #line 3256 "awkgram.c" /* yacc.c:1651  */
 -#line 3211 "awkgram.c" /* yacc.c:1645  */
++#line 3250 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 95:
 -#line 1331 "awkgram.y" /* yacc.c:1645  */
 +  case 99:
- #line 1356 "awkgram.y" /* yacc.c:1651  */
++#line 1356 "awkgram.y" /* yacc.c:1645  */
      {
                bcfree((yyvsp[-1]));
                (yyval) = (yyvsp[0]);
          }
- #line 3265 "awkgram.c" /* yacc.c:1651  */
 -#line 3220 "awkgram.c" /* yacc.c:1645  */
++#line 3259 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 96:
 -#line 1339 "awkgram.y" /* yacc.c:1645  */
 +  case 100:
- #line 1364 "awkgram.y" /* yacc.c:1651  */
++#line 1364 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = NULL; }
- #line 3271 "awkgram.c" /* yacc.c:1651  */
 -#line 3226 "awkgram.c" /* yacc.c:1645  */
++#line 3265 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 97:
 -#line 1341 "awkgram.y" /* yacc.c:1645  */
 +  case 101:
- #line 1366 "awkgram.y" /* yacc.c:1651  */
++#line 1366 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 3277 "awkgram.c" /* yacc.c:1651  */
 -#line 3232 "awkgram.c" /* yacc.c:1645  */
++#line 3271 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 98:
 -#line 1346 "awkgram.y" /* yacc.c:1645  */
 +  case 102:
- #line 1371 "awkgram.y" /* yacc.c:1651  */
++#line 1371 "awkgram.y" /* yacc.c:1645  */
      {
                (yyvsp[0])->param_count = 0;
                (yyval) = list_create((yyvsp[0]));
          }
- #line 3286 "awkgram.c" /* yacc.c:1651  */
 -#line 3241 "awkgram.c" /* yacc.c:1645  */
++#line 3280 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 99:
 -#line 1351 "awkgram.y" /* yacc.c:1645  */
 +  case 103:
- #line 1376 "awkgram.y" /* yacc.c:1651  */
++#line 1376 "awkgram.y" /* yacc.c:1645  */
      {
                if ((yyvsp[-2]) != NULL && (yyvsp[0]) != NULL) {
                        (yyvsp[0])->param_count =  
(yyvsp[-2])->lasti->param_count + 1;
@@@ -3295,74 -3250,74 +3289,74 @@@
                } else
                        (yyval) = NULL;
          }
- #line 3299 "awkgram.c" /* yacc.c:1651  */
 -#line 3254 "awkgram.c" /* yacc.c:1645  */
++#line 3293 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 100:
 -#line 1360 "awkgram.y" /* yacc.c:1645  */
 +  case 104:
- #line 1385 "awkgram.y" /* yacc.c:1651  */
++#line 1385 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = NULL; }
- #line 3305 "awkgram.c" /* yacc.c:1651  */
 -#line 3260 "awkgram.c" /* yacc.c:1645  */
++#line 3299 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 101:
 -#line 1362 "awkgram.y" /* yacc.c:1645  */
 +  case 105:
- #line 1387 "awkgram.y" /* yacc.c:1651  */
++#line 1387 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[-1]); }
- #line 3311 "awkgram.c" /* yacc.c:1651  */
 -#line 3266 "awkgram.c" /* yacc.c:1645  */
++#line 3305 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 102:
 -#line 1364 "awkgram.y" /* yacc.c:1645  */
 +  case 106:
- #line 1389 "awkgram.y" /* yacc.c:1651  */
++#line 1389 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[-2]); }
- #line 3317 "awkgram.c" /* yacc.c:1651  */
 -#line 3272 "awkgram.c" /* yacc.c:1645  */
++#line 3311 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 103:
 -#line 1370 "awkgram.y" /* yacc.c:1645  */
 +  case 107:
- #line 1395 "awkgram.y" /* yacc.c:1651  */
++#line 1395 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = NULL; }
- #line 3323 "awkgram.c" /* yacc.c:1651  */
 -#line 3278 "awkgram.c" /* yacc.c:1645  */
++#line 3317 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 104:
 -#line 1372 "awkgram.y" /* yacc.c:1645  */
 +  case 108:
- #line 1397 "awkgram.y" /* yacc.c:1651  */
++#line 1397 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 3329 "awkgram.c" /* yacc.c:1651  */
 -#line 3284 "awkgram.c" /* yacc.c:1645  */
++#line 3323 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 105:
 -#line 1377 "awkgram.y" /* yacc.c:1645  */
 +  case 109:
- #line 1402 "awkgram.y" /* yacc.c:1651  */
++#line 1402 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = NULL; }
- #line 3335 "awkgram.c" /* yacc.c:1651  */
 -#line 3290 "awkgram.c" /* yacc.c:1645  */
++#line 3329 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 106:
 -#line 1379 "awkgram.y" /* yacc.c:1645  */
 +  case 110:
- #line 1404 "awkgram.y" /* yacc.c:1651  */
++#line 1404 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 3341 "awkgram.c" /* yacc.c:1651  */
 -#line 3296 "awkgram.c" /* yacc.c:1645  */
++#line 3335 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 107:
 -#line 1384 "awkgram.y" /* yacc.c:1645  */
 +  case 111:
- #line 1409 "awkgram.y" /* yacc.c:1651  */
++#line 1409 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = mk_expression_list(NULL, (yyvsp[0])); }
- #line 3347 "awkgram.c" /* yacc.c:1651  */
 -#line 3302 "awkgram.c" /* yacc.c:1645  */
++#line 3341 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 108:
 -#line 1386 "awkgram.y" /* yacc.c:1645  */
 +  case 112:
- #line 1411 "awkgram.y" /* yacc.c:1651  */
++#line 1411 "awkgram.y" /* yacc.c:1645  */
      {
                (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
                yyerrok;
          }
- #line 3356 "awkgram.c" /* yacc.c:1651  */
 -#line 3311 "awkgram.c" /* yacc.c:1645  */
++#line 3350 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 109:
 -#line 1391 "awkgram.y" /* yacc.c:1645  */
 +  case 113:
- #line 1416 "awkgram.y" /* yacc.c:1651  */
++#line 1416 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = NULL; }
- #line 3362 "awkgram.c" /* yacc.c:1651  */
 -#line 3317 "awkgram.c" /* yacc.c:1645  */
++#line 3356 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 110:
 -#line 1393 "awkgram.y" /* yacc.c:1645  */
 +  case 114:
- #line 1418 "awkgram.y" /* yacc.c:1651  */
++#line 1418 "awkgram.y" /* yacc.c:1645  */
      {
                /*
                 * Returning the expression list instead of NULL lets
@@@ -3370,62 -3325,62 +3364,62 @@@
                 */
                (yyval) = (yyvsp[-1]);
          }
- #line 3374 "awkgram.c" /* yacc.c:1651  */
 -#line 3329 "awkgram.c" /* yacc.c:1645  */
++#line 3368 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 111:
 -#line 1401 "awkgram.y" /* yacc.c:1645  */
 +  case 115:
- #line 1426 "awkgram.y" /* yacc.c:1651  */
++#line 1426 "awkgram.y" /* yacc.c:1645  */
      {
                /* Ditto */
                (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
          }
- #line 3383 "awkgram.c" /* yacc.c:1651  */
 -#line 3338 "awkgram.c" /* yacc.c:1645  */
++#line 3377 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 112:
 -#line 1406 "awkgram.y" /* yacc.c:1645  */
 +  case 116:
- #line 1431 "awkgram.y" /* yacc.c:1651  */
++#line 1431 "awkgram.y" /* yacc.c:1645  */
      {
                /* Ditto */
                (yyval) = (yyvsp[-2]);
          }
- #line 3392 "awkgram.c" /* yacc.c:1651  */
 -#line 3347 "awkgram.c" /* yacc.c:1645  */
++#line 3386 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 113:
 -#line 1414 "awkgram.y" /* yacc.c:1645  */
 +  case 117:
- #line 1439 "awkgram.y" /* yacc.c:1651  */
++#line 1439 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = NULL; }
- #line 3398 "awkgram.c" /* yacc.c:1651  */
 -#line 3353 "awkgram.c" /* yacc.c:1645  */
++#line 3392 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 114:
 -#line 1416 "awkgram.y" /* yacc.c:1645  */
 +  case 118:
- #line 1441 "awkgram.y" /* yacc.c:1651  */
++#line 1441 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 3404 "awkgram.c" /* yacc.c:1651  */
 -#line 3359 "awkgram.c" /* yacc.c:1645  */
++#line 3398 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 115:
 -#line 1421 "awkgram.y" /* yacc.c:1645  */
 +  case 119:
- #line 1446 "awkgram.y" /* yacc.c:1651  */
++#line 1446 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = mk_expression_list(NULL, (yyvsp[0])); }
- #line 3410 "awkgram.c" /* yacc.c:1651  */
 -#line 3365 "awkgram.c" /* yacc.c:1645  */
++#line 3404 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 116:
 -#line 1423 "awkgram.y" /* yacc.c:1645  */
 +  case 120:
- #line 1448 "awkgram.y" /* yacc.c:1651  */
++#line 1448 "awkgram.y" /* yacc.c:1645  */
      {
                (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
                yyerrok;
          }
- #line 3419 "awkgram.c" /* yacc.c:1651  */
 -#line 3374 "awkgram.c" /* yacc.c:1645  */
++#line 3413 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 117:
 -#line 1428 "awkgram.y" /* yacc.c:1645  */
 +  case 121:
- #line 1453 "awkgram.y" /* yacc.c:1651  */
++#line 1453 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = NULL; }
- #line 3425 "awkgram.c" /* yacc.c:1651  */
 -#line 3380 "awkgram.c" /* yacc.c:1645  */
++#line 3419 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 118:
 -#line 1430 "awkgram.y" /* yacc.c:1645  */
 +  case 122:
- #line 1455 "awkgram.y" /* yacc.c:1651  */
++#line 1455 "awkgram.y" /* yacc.c:1645  */
      {
                /*
                 * Returning the expression list instead of NULL lets
@@@ -3433,72 -3388,72 +3427,72 @@@
                 */
                (yyval) = (yyvsp[-1]);
          }
- #line 3437 "awkgram.c" /* yacc.c:1651  */
 -#line 3392 "awkgram.c" /* yacc.c:1645  */
++#line 3431 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 119:
 -#line 1438 "awkgram.y" /* yacc.c:1645  */
 +  case 123:
- #line 1463 "awkgram.y" /* yacc.c:1651  */
++#line 1463 "awkgram.y" /* yacc.c:1645  */
      {
                /* Ditto */
                (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
          }
- #line 3446 "awkgram.c" /* yacc.c:1651  */
 -#line 3401 "awkgram.c" /* yacc.c:1645  */
++#line 3440 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 120:
 -#line 1443 "awkgram.y" /* yacc.c:1645  */
 +  case 124:
- #line 1468 "awkgram.y" /* yacc.c:1651  */
++#line 1468 "awkgram.y" /* yacc.c:1645  */
      {
                /* Ditto */
                (yyval) = (yyvsp[-2]);
          }
- #line 3455 "awkgram.c" /* yacc.c:1651  */
 -#line 3410 "awkgram.c" /* yacc.c:1645  */
++#line 3449 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 121:
 -#line 1450 "awkgram.y" /* yacc.c:1645  */
 +  case 125:
- #line 1475 "awkgram.y" /* yacc.c:1651  */
++#line 1475 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 3461 "awkgram.c" /* yacc.c:1651  */
 -#line 3416 "awkgram.c" /* yacc.c:1645  */
++#line 3455 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 122:
 -#line 1451 "awkgram.y" /* yacc.c:1645  */
 +  case 126:
- #line 1476 "awkgram.y" /* yacc.c:1651  */
++#line 1476 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = list_create((yyvsp[0])); }
- #line 3467 "awkgram.c" /* yacc.c:1651  */
 -#line 3422 "awkgram.c" /* yacc.c:1645  */
++#line 3461 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 123:
 -#line 1457 "awkgram.y" /* yacc.c:1645  */
 +  case 127:
- #line 1482 "awkgram.y" /* yacc.c:1651  */
++#line 1482 "awkgram.y" /* yacc.c:1645  */
      {
                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]));
          }
- #line 3478 "awkgram.c" /* yacc.c:1651  */
 -#line 3433 "awkgram.c" /* yacc.c:1645  */
++#line 3472 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 124:
 -#line 1464 "awkgram.y" /* yacc.c:1645  */
 +  case 128:
- #line 1489 "awkgram.y" /* yacc.c:1651  */
++#line 1489 "awkgram.y" /* yacc.c:1645  */
      {
                (yyval) = mk_assignment((yyvsp[-2]), list_create((yyvsp[0])), 
(yyvsp[-1]));
          }
- #line 3486 "awkgram.c" /* yacc.c:1651  */
 -#line 3441 "awkgram.c" /* yacc.c:1645  */
++#line 3480 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 125:
 -#line 1468 "awkgram.y" /* yacc.c:1645  */
 +  case 129:
- #line 1493 "awkgram.y" /* yacc.c:1651  */
++#line 1493 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = mk_boolean((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3492 "awkgram.c" /* yacc.c:1651  */
 -#line 3447 "awkgram.c" /* yacc.c:1645  */
++#line 3486 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 126:
 -#line 1470 "awkgram.y" /* yacc.c:1645  */
 +  case 130:
- #line 1495 "awkgram.y" /* yacc.c:1651  */
++#line 1495 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = mk_boolean((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3498 "awkgram.c" /* yacc.c:1651  */
 -#line 3453 "awkgram.c" /* yacc.c:1645  */
++#line 3492 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 127:
 -#line 1472 "awkgram.y" /* yacc.c:1645  */
 +  case 131:
- #line 1497 "awkgram.y" /* yacc.c:1651  */
++#line 1497 "awkgram.y" /* yacc.c:1645  */
      {
                if ((yyvsp[-2])->lasti->opcode == Op_match_rec)
                        warning_ln((yyvsp[-1])->source_line,
@@@ -3511,11 -3466,11 +3505,11 @@@
                bcfree((yyvsp[0]));
                (yyval) = list_append((yyvsp[-2]), (yyvsp[-1]));
          }
- #line 3515 "awkgram.c" /* yacc.c:1651  */
 -#line 3470 "awkgram.c" /* yacc.c:1645  */
++#line 3509 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 128:
 -#line 1485 "awkgram.y" /* yacc.c:1645  */
 +  case 132:
- #line 1510 "awkgram.y" /* yacc.c:1651  */
++#line 1510 "awkgram.y" /* yacc.c:1645  */
      {
                if ((yyvsp[-2])->lasti->opcode == Op_match_rec)
                        warning_ln((yyvsp[-1])->source_line,
@@@ -3532,11 -3487,11 +3526,11 @@@
                        (yyval) = list_append(list_merge((yyvsp[-2]), 
(yyvsp[0])), (yyvsp[-1]));
                }
          }
- #line 3536 "awkgram.c" /* yacc.c:1651  */
 -#line 3491 "awkgram.c" /* yacc.c:1645  */
++#line 3530 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 129:
 -#line 1502 "awkgram.y" /* yacc.c:1645  */
 +  case 133:
- #line 1527 "awkgram.y" /* yacc.c:1651  */
++#line 1527 "awkgram.y" /* yacc.c:1645  */
      {
                if (do_lint_old)
                        warning_ln((yyvsp[-1])->source_line,
@@@ -3546,91 -3501,91 +3540,91 @@@
                (yyvsp[-1])->expr_count = 1;
                (yyval) = list_append(list_merge((yyvsp[-2]), (yyvsp[0])), 
(yyvsp[-1]));
          }
- #line 3550 "awkgram.c" /* yacc.c:1651  */
 -#line 3505 "awkgram.c" /* yacc.c:1645  */
++#line 3544 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 130:
 -#line 1512 "awkgram.y" /* yacc.c:1645  */
 +  case 134:
- #line 1537 "awkgram.y" /* yacc.c:1651  */
++#line 1537 "awkgram.y" /* yacc.c:1645  */
      {
                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]));
          }
- #line 3561 "awkgram.c" /* yacc.c:1651  */
 -#line 3516 "awkgram.c" /* yacc.c:1645  */
++#line 3555 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 131:
 -#line 1519 "awkgram.y" /* yacc.c:1645  */
 +  case 135:
- #line 1544 "awkgram.y" /* yacc.c:1651  */
++#line 1544 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = mk_condition((yyvsp[-4]), (yyvsp[-3]), (yyvsp[-2]), 
(yyvsp[-1]), (yyvsp[0])); }
- #line 3567 "awkgram.c" /* yacc.c:1651  */
 -#line 3522 "awkgram.c" /* yacc.c:1645  */
++#line 3561 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 132:
 -#line 1521 "awkgram.y" /* yacc.c:1645  */
 +  case 136:
- #line 1546 "awkgram.y" /* yacc.c:1651  */
++#line 1546 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 3573 "awkgram.c" /* yacc.c:1651  */
 -#line 3528 "awkgram.c" /* yacc.c:1645  */
++#line 3567 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 133:
 -#line 1526 "awkgram.y" /* yacc.c:1645  */
 +  case 137:
- #line 1551 "awkgram.y" /* yacc.c:1651  */
++#line 1551 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 3579 "awkgram.c" /* yacc.c:1651  */
 -#line 3534 "awkgram.c" /* yacc.c:1645  */
++#line 3573 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 134:
 -#line 1528 "awkgram.y" /* yacc.c:1645  */
 +  case 138:
- #line 1553 "awkgram.y" /* yacc.c:1651  */
++#line 1553 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 3585 "awkgram.c" /* yacc.c:1651  */
 -#line 3540 "awkgram.c" /* yacc.c:1645  */
++#line 3579 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 135:
 -#line 1530 "awkgram.y" /* yacc.c:1645  */
 +  case 139:
- #line 1555 "awkgram.y" /* yacc.c:1651  */
++#line 1555 "awkgram.y" /* yacc.c:1645  */
      {
                (yyvsp[0])->opcode = Op_assign_quotient;
                (yyval) = (yyvsp[0]);
          }
- #line 3594 "awkgram.c" /* yacc.c:1651  */
 -#line 3549 "awkgram.c" /* yacc.c:1645  */
++#line 3588 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 136:
 -#line 1538 "awkgram.y" /* yacc.c:1645  */
 +  case 140:
- #line 1563 "awkgram.y" /* yacc.c:1651  */
++#line 1563 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 3600 "awkgram.c" /* yacc.c:1651  */
 -#line 3555 "awkgram.c" /* yacc.c:1645  */
++#line 3594 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 137:
 -#line 1540 "awkgram.y" /* yacc.c:1645  */
 +  case 141:
- #line 1565 "awkgram.y" /* yacc.c:1651  */
++#line 1565 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 3606 "awkgram.c" /* yacc.c:1651  */
 -#line 3561 "awkgram.c" /* yacc.c:1645  */
++#line 3600 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 138:
 -#line 1545 "awkgram.y" /* yacc.c:1645  */
 +  case 142:
- #line 1570 "awkgram.y" /* yacc.c:1651  */
++#line 1570 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 3612 "awkgram.c" /* yacc.c:1651  */
 -#line 3567 "awkgram.c" /* yacc.c:1645  */
++#line 3606 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 139:
 -#line 1547 "awkgram.y" /* yacc.c:1645  */
 +  case 143:
- #line 1572 "awkgram.y" /* yacc.c:1651  */
++#line 1572 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 3618 "awkgram.c" /* yacc.c:1651  */
 -#line 3573 "awkgram.c" /* yacc.c:1645  */
++#line 3612 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 140:
 -#line 1552 "awkgram.y" /* yacc.c:1645  */
 +  case 144:
- #line 1577 "awkgram.y" /* yacc.c:1651  */
++#line 1577 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 3624 "awkgram.c" /* yacc.c:1651  */
 -#line 3579 "awkgram.c" /* yacc.c:1645  */
++#line 3618 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 141:
 -#line 1554 "awkgram.y" /* yacc.c:1645  */
 +  case 145:
- #line 1579 "awkgram.y" /* yacc.c:1651  */
++#line 1579 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 3630 "awkgram.c" /* yacc.c:1651  */
 -#line 3585 "awkgram.c" /* yacc.c:1645  */
++#line 3624 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 142:
 -#line 1556 "awkgram.y" /* yacc.c:1645  */
 +  case 146:
- #line 1581 "awkgram.y" /* yacc.c:1651  */
++#line 1581 "awkgram.y" /* yacc.c:1645  */
      {
                int count = 2;
                bool is_simple_var = false;
@@@ -3684,47 -3639,47 +3678,47 @@@
                                max_args = count;
                }
          }
- #line 3688 "awkgram.c" /* yacc.c:1651  */
 -#line 3643 "awkgram.c" /* yacc.c:1645  */
++#line 3682 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 144:
 -#line 1615 "awkgram.y" /* yacc.c:1645  */
 +  case 148:
- #line 1640 "awkgram.y" /* yacc.c:1651  */
++#line 1640 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3694 "awkgram.c" /* yacc.c:1651  */
 -#line 3649 "awkgram.c" /* yacc.c:1645  */
++#line 3688 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 145:
 -#line 1617 "awkgram.y" /* yacc.c:1645  */
 +  case 149:
- #line 1642 "awkgram.y" /* yacc.c:1651  */
++#line 1642 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3700 "awkgram.c" /* yacc.c:1651  */
 -#line 3655 "awkgram.c" /* yacc.c:1645  */
++#line 3694 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 146:
 -#line 1619 "awkgram.y" /* yacc.c:1645  */
 +  case 150:
- #line 1644 "awkgram.y" /* yacc.c:1651  */
++#line 1644 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3706 "awkgram.c" /* yacc.c:1651  */
 -#line 3661 "awkgram.c" /* yacc.c:1645  */
++#line 3700 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 147:
 -#line 1621 "awkgram.y" /* yacc.c:1645  */
 +  case 151:
- #line 1646 "awkgram.y" /* yacc.c:1651  */
++#line 1646 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3712 "awkgram.c" /* yacc.c:1651  */
 -#line 3667 "awkgram.c" /* yacc.c:1645  */
++#line 3706 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 148:
 -#line 1623 "awkgram.y" /* yacc.c:1645  */
 +  case 152:
- #line 1648 "awkgram.y" /* yacc.c:1651  */
++#line 1648 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3718 "awkgram.c" /* yacc.c:1651  */
 -#line 3673 "awkgram.c" /* yacc.c:1645  */
++#line 3712 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 149:
 -#line 1625 "awkgram.y" /* yacc.c:1645  */
 +  case 153:
- #line 1650 "awkgram.y" /* yacc.c:1651  */
++#line 1650 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3724 "awkgram.c" /* yacc.c:1651  */
 -#line 3679 "awkgram.c" /* yacc.c:1645  */
++#line 3718 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 150:
 -#line 1627 "awkgram.y" /* yacc.c:1645  */
 +  case 154:
- #line 1652 "awkgram.y" /* yacc.c:1651  */
++#line 1652 "awkgram.y" /* yacc.c:1645  */
      {
                /*
                 * In BEGINFILE/ENDFILE, allow `getline [var] < file'
@@@ -3738,29 -3693,29 +3732,29 @@@
                                _("non-redirected `getline' undefined inside 
END action"));
                (yyval) = mk_getline((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]), 
redirect_input);
          }
- #line 3742 "awkgram.c" /* yacc.c:1651  */
 -#line 3697 "awkgram.c" /* yacc.c:1645  */
++#line 3736 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 151:
 -#line 1641 "awkgram.y" /* yacc.c:1645  */
 +  case 155:
- #line 1666 "awkgram.y" /* yacc.c:1651  */
++#line 1666 "awkgram.y" /* yacc.c:1645  */
      {
                (yyvsp[0])->opcode = Op_postincrement;
                (yyval) = mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
          }
- #line 3751 "awkgram.c" /* yacc.c:1651  */
 -#line 3706 "awkgram.c" /* yacc.c:1645  */
++#line 3745 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 152:
 -#line 1646 "awkgram.y" /* yacc.c:1645  */
 +  case 156:
- #line 1671 "awkgram.y" /* yacc.c:1651  */
++#line 1671 "awkgram.y" /* yacc.c:1645  */
      {
                (yyvsp[0])->opcode = Op_postdecrement;
                (yyval) = mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
          }
- #line 3760 "awkgram.c" /* yacc.c:1651  */
 -#line 3715 "awkgram.c" /* yacc.c:1645  */
++#line 3754 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 153:
 -#line 1651 "awkgram.y" /* yacc.c:1645  */
 +  case 157:
- #line 1676 "awkgram.y" /* yacc.c:1651  */
++#line 1676 "awkgram.y" /* yacc.c:1645  */
      {
                if (do_lint_old) {
                    warning_ln((yyvsp[-1])->source_line,
@@@ -3780,64 -3735,64 +3774,64 @@@
                        (yyval) = list_append(list_merge(t, (yyvsp[0])), 
(yyvsp[-1]));
                }
          }
- #line 3784 "awkgram.c" /* yacc.c:1651  */
 -#line 3739 "awkgram.c" /* yacc.c:1645  */
++#line 3778 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 154:
 -#line 1676 "awkgram.y" /* yacc.c:1645  */
 +  case 158:
- #line 1701 "awkgram.y" /* yacc.c:1651  */
++#line 1701 "awkgram.y" /* yacc.c:1645  */
      {
                  (yyval) = mk_getline((yyvsp[-1]), (yyvsp[0]), (yyvsp[-3]), 
(yyvsp[-2])->redir_type);
                  bcfree((yyvsp[-2]));
                }
- #line 3793 "awkgram.c" /* yacc.c:1651  */
 -#line 3748 "awkgram.c" /* yacc.c:1645  */
++#line 3787 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 155:
 -#line 1682 "awkgram.y" /* yacc.c:1645  */
 +  case 159:
- #line 1707 "awkgram.y" /* yacc.c:1651  */
++#line 1707 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3799 "awkgram.c" /* yacc.c:1651  */
 -#line 3754 "awkgram.c" /* yacc.c:1645  */
++#line 3793 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 156:
 -#line 1684 "awkgram.y" /* yacc.c:1645  */
 +  case 160:
- #line 1709 "awkgram.y" /* yacc.c:1651  */
++#line 1709 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3805 "awkgram.c" /* yacc.c:1651  */
 -#line 3760 "awkgram.c" /* yacc.c:1645  */
++#line 3799 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 157:
 -#line 1686 "awkgram.y" /* yacc.c:1645  */
 +  case 161:
- #line 1711 "awkgram.y" /* yacc.c:1651  */
++#line 1711 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3811 "awkgram.c" /* yacc.c:1651  */
 -#line 3766 "awkgram.c" /* yacc.c:1645  */
++#line 3805 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 158:
 -#line 1688 "awkgram.y" /* yacc.c:1645  */
 +  case 162:
- #line 1713 "awkgram.y" /* yacc.c:1651  */
++#line 1713 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3817 "awkgram.c" /* yacc.c:1651  */
 -#line 3772 "awkgram.c" /* yacc.c:1645  */
++#line 3811 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 159:
 -#line 1690 "awkgram.y" /* yacc.c:1645  */
 +  case 163:
- #line 1715 "awkgram.y" /* yacc.c:1651  */
++#line 1715 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3823 "awkgram.c" /* yacc.c:1651  */
 -#line 3778 "awkgram.c" /* yacc.c:1645  */
++#line 3817 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 160:
 -#line 1692 "awkgram.y" /* yacc.c:1645  */
 +  case 164:
- #line 1717 "awkgram.y" /* yacc.c:1651  */
++#line 1717 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3829 "awkgram.c" /* yacc.c:1651  */
 -#line 3784 "awkgram.c" /* yacc.c:1645  */
++#line 3823 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 161:
 -#line 1697 "awkgram.y" /* yacc.c:1645  */
 +  case 165:
- #line 1722 "awkgram.y" /* yacc.c:1651  */
++#line 1722 "awkgram.y" /* yacc.c:1645  */
      {
                (yyval) = list_create((yyvsp[0]));
          }
- #line 3837 "awkgram.c" /* yacc.c:1651  */
 -#line 3792 "awkgram.c" /* yacc.c:1645  */
++#line 3831 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 162:
 -#line 1701 "awkgram.y" /* yacc.c:1645  */
 +  case 166:
- #line 1726 "awkgram.y" /* yacc.c:1651  */
++#line 1726 "awkgram.y" /* yacc.c:1645  */
      {
                if ((yyvsp[0])->opcode == Op_match_rec) {
                        (yyvsp[0])->opcode = Op_nomatch;
@@@ -3869,11 -3824,11 +3863,11 @@@
                        }
                }
           }
- #line 3873 "awkgram.c" /* yacc.c:1651  */
 -#line 3828 "awkgram.c" /* yacc.c:1645  */
++#line 3867 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 163:
 -#line 1733 "awkgram.y" /* yacc.c:1645  */
 +  case 167:
- #line 1758 "awkgram.y" /* yacc.c:1651  */
++#line 1758 "awkgram.y" /* yacc.c:1645  */
      {
                // Always include. Allows us to lint warn on
                // print "foo" > "bar" 1
@@@ -3881,31 -3836,31 +3875,31 @@@
                // print "foo" > ("bar" 1)
                (yyval) = list_append((yyvsp[-1]), bcalloc(Op_parens, 1, 
sourceline));
          }
- #line 3885 "awkgram.c" /* yacc.c:1651  */
 -#line 3840 "awkgram.c" /* yacc.c:1645  */
++#line 3879 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 164:
 -#line 1741 "awkgram.y" /* yacc.c:1645  */
 +  case 168:
- #line 1766 "awkgram.y" /* yacc.c:1651  */
++#line 1766 "awkgram.y" /* yacc.c:1645  */
      {
                (yyval) = snode((yyvsp[-1]), (yyvsp[-3]));
                if ((yyval) == NULL)
                        YYABORT;
          }
- #line 3895 "awkgram.c" /* yacc.c:1651  */
 -#line 3850 "awkgram.c" /* yacc.c:1645  */
++#line 3889 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 165:
 -#line 1747 "awkgram.y" /* yacc.c:1645  */
 +  case 169:
- #line 1772 "awkgram.y" /* yacc.c:1651  */
++#line 1772 "awkgram.y" /* yacc.c:1645  */
      {
                (yyval) = snode((yyvsp[-1]), (yyvsp[-3]));
                if ((yyval) == NULL)
                        YYABORT;
          }
- #line 3905 "awkgram.c" /* yacc.c:1651  */
 -#line 3860 "awkgram.c" /* yacc.c:1645  */
++#line 3899 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 166:
 -#line 1753 "awkgram.y" /* yacc.c:1645  */
 +  case 170:
- #line 1778 "awkgram.y" /* yacc.c:1651  */
++#line 1778 "awkgram.y" /* yacc.c:1645  */
      {
                static bool warned = false;
  
@@@ -3918,45 -3873,45 +3912,45 @@@
                if ((yyval) == NULL)
                        YYABORT;
          }
- #line 3922 "awkgram.c" /* yacc.c:1651  */
 -#line 3877 "awkgram.c" /* yacc.c:1645  */
++#line 3916 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 169:
 -#line 1768 "awkgram.y" /* yacc.c:1645  */
 +  case 173:
- #line 1793 "awkgram.y" /* yacc.c:1651  */
++#line 1793 "awkgram.y" /* yacc.c:1645  */
      {
                (yyvsp[-1])->opcode = Op_preincrement;
                (yyval) = mk_assignment((yyvsp[0]), NULL, (yyvsp[-1]));
          }
- #line 3931 "awkgram.c" /* yacc.c:1651  */
 -#line 3886 "awkgram.c" /* yacc.c:1645  */
++#line 3925 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 170:
 -#line 1773 "awkgram.y" /* yacc.c:1645  */
 +  case 174:
- #line 1798 "awkgram.y" /* yacc.c:1651  */
++#line 1798 "awkgram.y" /* yacc.c:1645  */
      {
                (yyvsp[-1])->opcode = Op_predecrement;
                (yyval) = mk_assignment((yyvsp[0]), NULL, (yyvsp[-1]));
          }
- #line 3940 "awkgram.c" /* yacc.c:1651  */
 -#line 3895 "awkgram.c" /* yacc.c:1645  */
++#line 3934 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 171:
 -#line 1778 "awkgram.y" /* yacc.c:1645  */
 +  case 175:
- #line 1803 "awkgram.y" /* yacc.c:1651  */
++#line 1803 "awkgram.y" /* yacc.c:1645  */
      {
                (yyval) = list_create((yyvsp[0]));
          }
- #line 3948 "awkgram.c" /* yacc.c:1651  */
 -#line 3903 "awkgram.c" /* yacc.c:1645  */
++#line 3942 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 172:
 -#line 1782 "awkgram.y" /* yacc.c:1645  */
 +  case 176:
- #line 1807 "awkgram.y" /* yacc.c:1651  */
++#line 1807 "awkgram.y" /* yacc.c:1645  */
      {
                (yyval) = list_create((yyvsp[0]));
          }
- #line 3956 "awkgram.c" /* yacc.c:1651  */
 -#line 3911 "awkgram.c" /* yacc.c:1645  */
++#line 3950 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 173:
 -#line 1786 "awkgram.y" /* yacc.c:1645  */
 +  case 177:
- #line 1811 "awkgram.y" /* yacc.c:1651  */
++#line 1811 "awkgram.y" /* yacc.c:1645  */
      {
                if ((yyvsp[0])->lasti->opcode == Op_push_i
                        && ((yyvsp[0])->lasti->memory->flags & STRING) == 0
@@@ -3971,11 -3926,11 +3965,11 @@@
                        (yyval) = list_append((yyvsp[0]), (yyvsp[-1]));
                }
          }
- #line 3975 "awkgram.c" /* yacc.c:1651  */
 -#line 3930 "awkgram.c" /* yacc.c:1645  */
++#line 3969 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 174:
 -#line 1801 "awkgram.y" /* yacc.c:1645  */
 +  case 178:
- #line 1826 "awkgram.y" /* yacc.c:1651  */
++#line 1826 "awkgram.y" /* yacc.c:1645  */
      {
                if ((yyvsp[0])->lasti->opcode == Op_push_i
                        && ((yyvsp[0])->lasti->memory->flags & STRING) == 0
@@@ -3993,20 -3948,20 +3987,20 @@@
                        (yyval) = list_append((yyvsp[0]), (yyvsp[-1]));
                }
          }
- #line 3997 "awkgram.c" /* yacc.c:1651  */
 -#line 3952 "awkgram.c" /* yacc.c:1645  */
++#line 3991 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 175:
 -#line 1822 "awkgram.y" /* yacc.c:1645  */
 +  case 179:
- #line 1847 "awkgram.y" /* yacc.c:1651  */
++#line 1847 "awkgram.y" /* yacc.c:1645  */
      {
                func_use((yyvsp[0])->lasti->func_name, FUNC_USE);
                (yyval) = (yyvsp[0]);
          }
- #line 4006 "awkgram.c" /* yacc.c:1651  */
 -#line 3961 "awkgram.c" /* yacc.c:1645  */
++#line 4000 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 176:
 -#line 1827 "awkgram.y" /* yacc.c:1645  */
 +  case 180:
- #line 1852 "awkgram.y" /* yacc.c:1651  */
++#line 1852 "awkgram.y" /* yacc.c:1645  */
      {
                /* indirect function call */
                INSTRUCTION *f, *t;
@@@ -4040,28 -3995,16 +4034,28 @@@
                (yyval) = list_prepend((yyvsp[0]), t);
                at_seen = false;
          }
- #line 4044 "awkgram.c" /* yacc.c:1651  */
 -#line 3999 "awkgram.c" /* yacc.c:1645  */
++#line 4038 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 177:
 -#line 1864 "awkgram.y" /* yacc.c:1645  */
 +  case 181:
- #line 1889 "awkgram.y" /* yacc.c:1651  */
++#line 1889 "awkgram.y" /* yacc.c:1645  */
      {
                NODE *n;
 +              const char *name = (yyvsp[-3])->func_name;
 +
 +              if (current_namespace != awk_namespace && strchr(name, ':') == 
NULL) {
 +                      size_t len = strlen(current_namespace) + 2 + 
strlen(name) + 1;
 +                      char *buf;
 +
 +                      emalloc(buf, char *, len, "direct_func_call");
 +                      sprintf(buf, "%s::%s", current_namespace, name);
 +
 +                      efree((void *) (yyvsp[-3])->func_name);
 +                      (yyvsp[-3])->func_name = buf;
 +              }
  
                if (! at_seen) {
 -                      n = lookup((yyvsp[-3])->func_name);
 +                      n = lookup((yyvsp[-3])->func_name, true);
                        if (n != NULL && n->type != Node_func
                            && n->type != Node_ext_func) {
                                error_ln((yyvsp[-3])->source_line,
@@@ -4082,49 -4024,49 +4076,49 @@@
                        (yyval) = list_append(t, (yyvsp[-3]));
                }
          }
- #line 4086 "awkgram.c" /* yacc.c:1651  */
 -#line 4028 "awkgram.c" /* yacc.c:1645  */
++#line 4080 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 178:
 -#line 1892 "awkgram.y" /* yacc.c:1645  */
 +  case 182:
- #line 1930 "awkgram.y" /* yacc.c:1651  */
++#line 1930 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = NULL; }
- #line 4092 "awkgram.c" /* yacc.c:1651  */
 -#line 4034 "awkgram.c" /* yacc.c:1645  */
++#line 4086 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 179:
 -#line 1894 "awkgram.y" /* yacc.c:1645  */
 +  case 183:
- #line 1932 "awkgram.y" /* yacc.c:1651  */
++#line 1932 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 4098 "awkgram.c" /* yacc.c:1651  */
 -#line 4040 "awkgram.c" /* yacc.c:1645  */
++#line 4092 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 180:
 -#line 1899 "awkgram.y" /* yacc.c:1645  */
 +  case 184:
- #line 1937 "awkgram.y" /* yacc.c:1651  */
++#line 1937 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = NULL; }
- #line 4104 "awkgram.c" /* yacc.c:1651  */
 -#line 4046 "awkgram.c" /* yacc.c:1645  */
++#line 4098 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 181:
 -#line 1901 "awkgram.y" /* yacc.c:1645  */
 +  case 185:
- #line 1939 "awkgram.y" /* yacc.c:1651  */
++#line 1939 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[-1]); }
- #line 4110 "awkgram.c" /* yacc.c:1651  */
 -#line 4052 "awkgram.c" /* yacc.c:1645  */
++#line 4104 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 182:
 -#line 1906 "awkgram.y" /* yacc.c:1645  */
 +  case 186:
- #line 1944 "awkgram.y" /* yacc.c:1651  */
++#line 1944 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 4116 "awkgram.c" /* yacc.c:1651  */
 -#line 4058 "awkgram.c" /* yacc.c:1645  */
++#line 4110 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 183:
 -#line 1908 "awkgram.y" /* yacc.c:1645  */
 +  case 187:
- #line 1946 "awkgram.y" /* yacc.c:1651  */
++#line 1946 "awkgram.y" /* yacc.c:1645  */
      {
                (yyval) = list_merge((yyvsp[-1]), (yyvsp[0]));
          }
- #line 4124 "awkgram.c" /* yacc.c:1651  */
 -#line 4066 "awkgram.c" /* yacc.c:1645  */
++#line 4118 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 184:
 -#line 1915 "awkgram.y" /* yacc.c:1645  */
 +  case 188:
- #line 1953 "awkgram.y" /* yacc.c:1651  */
++#line 1953 "awkgram.y" /* yacc.c:1645  */
      {
                INSTRUCTION *ip = (yyvsp[0])->lasti;
                int count = ip->sub_count;      /* # of SUBSEP-seperated 
expressions */
@@@ -4138,11 -4080,11 +4132,11 @@@
                sub_counter++;  /* count # of dimensions */
                (yyval) = (yyvsp[0]);
          }
- #line 4142 "awkgram.c" /* yacc.c:1651  */
 -#line 4084 "awkgram.c" /* yacc.c:1645  */
++#line 4136 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 185:
 -#line 1932 "awkgram.y" /* yacc.c:1645  */
 +  case 189:
- #line 1970 "awkgram.y" /* yacc.c:1651  */
++#line 1970 "awkgram.y" /* yacc.c:1645  */
      {
                INSTRUCTION *t = (yyvsp[-1]);
                if ((yyvsp[-1]) == NULL) {
@@@ -4156,31 -4098,31 +4150,31 @@@
                        (yyvsp[0])->sub_count = count_expressions(&t, false);
                (yyval) = list_append(t, (yyvsp[0]));
          }
- #line 4160 "awkgram.c" /* yacc.c:1651  */
 -#line 4102 "awkgram.c" /* yacc.c:1645  */
++#line 4154 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 186:
 -#line 1949 "awkgram.y" /* yacc.c:1645  */
 +  case 190:
- #line 1987 "awkgram.y" /* yacc.c:1651  */
++#line 1987 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); }
- #line 4166 "awkgram.c" /* yacc.c:1651  */
 -#line 4108 "awkgram.c" /* yacc.c:1645  */
++#line 4160 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 187:
 -#line 1951 "awkgram.y" /* yacc.c:1645  */
 +  case 191:
- #line 1989 "awkgram.y" /* yacc.c:1651  */
++#line 1989 "awkgram.y" /* yacc.c:1645  */
      {
                (yyval) = list_merge((yyvsp[-1]), (yyvsp[0]));
          }
- #line 4174 "awkgram.c" /* yacc.c:1651  */
 -#line 4116 "awkgram.c" /* yacc.c:1645  */
++#line 4168 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 188:
 -#line 1958 "awkgram.y" /* yacc.c:1645  */
 +  case 192:
- #line 1996 "awkgram.y" /* yacc.c:1651  */
++#line 1996 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[-1]); }
- #line 4180 "awkgram.c" /* yacc.c:1651  */
 -#line 4122 "awkgram.c" /* yacc.c:1645  */
++#line 4174 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 189:
 -#line 1963 "awkgram.y" /* yacc.c:1645  */
 +  case 193:
- #line 2001 "awkgram.y" /* yacc.c:1651  */
++#line 2001 "awkgram.y" /* yacc.c:1645  */
      {
                char *var_name = (yyvsp[0])->lextok;
  
@@@ -4188,22 -4130,22 +4182,22 @@@
                (yyvsp[0])->memory = variable((yyvsp[0])->source_line, 
var_name, Node_var_new);
                (yyval) = list_create((yyvsp[0]));
          }
- #line 4192 "awkgram.c" /* yacc.c:1651  */
 -#line 4134 "awkgram.c" /* yacc.c:1645  */
++#line 4186 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 190:
 -#line 1971 "awkgram.y" /* yacc.c:1645  */
 +  case 194:
- #line 2009 "awkgram.y" /* yacc.c:1651  */
++#line 2009 "awkgram.y" /* yacc.c:1645  */
      {
                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]));
          }
- #line 4203 "awkgram.c" /* yacc.c:1651  */
 -#line 4145 "awkgram.c" /* yacc.c:1645  */
++#line 4197 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 191:
 -#line 1981 "awkgram.y" /* yacc.c:1645  */
 +  case 195:
- #line 2019 "awkgram.y" /* yacc.c:1651  */
++#line 2019 "awkgram.y" /* yacc.c:1645  */
      {
                INSTRUCTION *ip = (yyvsp[0])->nexti;
                if (ip->opcode == Op_push
@@@ -4215,73 -4157,73 +4209,73 @@@
                } else
                        (yyval) = (yyvsp[0]);
          }
- #line 4219 "awkgram.c" /* yacc.c:1651  */
 -#line 4161 "awkgram.c" /* yacc.c:1645  */
++#line 4213 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 192:
 -#line 1993 "awkgram.y" /* yacc.c:1645  */
 +  case 196:
- #line 2031 "awkgram.y" /* yacc.c:1651  */
++#line 2031 "awkgram.y" /* yacc.c:1645  */
      {
                (yyval) = list_append((yyvsp[-1]), (yyvsp[-2]));
                if ((yyvsp[0]) != NULL)
                        mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
          }
- #line 4229 "awkgram.c" /* yacc.c:1651  */
 -#line 4171 "awkgram.c" /* yacc.c:1645  */
++#line 4223 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 193:
 -#line 2002 "awkgram.y" /* yacc.c:1645  */
 +  case 197:
- #line 2040 "awkgram.y" /* yacc.c:1651  */
++#line 2040 "awkgram.y" /* yacc.c:1645  */
      {
                (yyvsp[0])->opcode = Op_postincrement;
          }
- #line 4237 "awkgram.c" /* yacc.c:1651  */
 -#line 4179 "awkgram.c" /* yacc.c:1645  */
++#line 4231 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 194:
 -#line 2006 "awkgram.y" /* yacc.c:1645  */
 +  case 198:
- #line 2044 "awkgram.y" /* yacc.c:1651  */
++#line 2044 "awkgram.y" /* yacc.c:1645  */
      {
                (yyvsp[0])->opcode = Op_postdecrement;
          }
- #line 4245 "awkgram.c" /* yacc.c:1651  */
 -#line 4187 "awkgram.c" /* yacc.c:1645  */
++#line 4239 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 195:
 -#line 2009 "awkgram.y" /* yacc.c:1645  */
 +  case 199:
- #line 2047 "awkgram.y" /* yacc.c:1651  */
++#line 2047 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = NULL; }
- #line 4251 "awkgram.c" /* yacc.c:1651  */
 -#line 4193 "awkgram.c" /* yacc.c:1645  */
++#line 4245 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 197:
 -#line 2017 "awkgram.y" /* yacc.c:1645  */
 +  case 201:
- #line 2055 "awkgram.y" /* yacc.c:1651  */
++#line 2055 "awkgram.y" /* yacc.c:1645  */
      { yyerrok; }
- #line 4257 "awkgram.c" /* yacc.c:1651  */
 -#line 4199 "awkgram.c" /* yacc.c:1645  */
++#line 4251 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 198:
 -#line 2021 "awkgram.y" /* yacc.c:1645  */
 +  case 202:
- #line 2059 "awkgram.y" /* yacc.c:1651  */
++#line 2059 "awkgram.y" /* yacc.c:1645  */
      { yyerrok; }
- #line 4263 "awkgram.c" /* yacc.c:1651  */
 -#line 4205 "awkgram.c" /* yacc.c:1645  */
++#line 4257 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 201:
 -#line 2030 "awkgram.y" /* yacc.c:1645  */
 +  case 205:
- #line 2068 "awkgram.y" /* yacc.c:1651  */
++#line 2068 "awkgram.y" /* yacc.c:1645  */
      { yyerrok; }
- #line 4269 "awkgram.c" /* yacc.c:1651  */
 -#line 4211 "awkgram.c" /* yacc.c:1645  */
++#line 4263 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 202:
 -#line 2034 "awkgram.y" /* yacc.c:1645  */
 +  case 206:
- #line 2072 "awkgram.y" /* yacc.c:1651  */
++#line 2072 "awkgram.y" /* yacc.c:1645  */
      { (yyval) = (yyvsp[0]); yyerrok; }
- #line 4275 "awkgram.c" /* yacc.c:1651  */
 -#line 4217 "awkgram.c" /* yacc.c:1645  */
++#line 4269 "awkgram.c" /* yacc.c:1645  */
      break;
  
 -  case 203:
 -#line 2038 "awkgram.y" /* yacc.c:1645  */
 +  case 207:
- #line 2076 "awkgram.y" /* yacc.c:1651  */
++#line 2076 "awkgram.y" /* yacc.c:1645  */
      { yyerrok; }
- #line 4281 "awkgram.c" /* yacc.c:1651  */
 -#line 4223 "awkgram.c" /* yacc.c:1645  */
++#line 4275 "awkgram.c" /* yacc.c:1645  */
      break;
  
  
- #line 4285 "awkgram.c" /* yacc.c:1651  */
 -#line 4227 "awkgram.c" /* yacc.c:1645  */
++#line 4279 "awkgram.c" /* yacc.c:1645  */
        default: break;
      }
    /* User semantic actions sometimes alter yychar, and that requires
@@@ -4509,7 -4450,7 +4502,7 @@@ yyreturn
  #endif
    return yyresult;
  }
- #line 2078 "awkgram.y" /* yacc.c:1910  */
 -#line 2040 "awkgram.y" /* yacc.c:1903  */
++#line 2078 "awkgram.y" /* yacc.c:1903  */
  
  
  struct token {
diff --cc command.c
index c5d5cb0,c8ee163..b076530
--- a/command.c
+++ b/command.c
@@@ -1957,10 -1951,10 +1951,10 @@@ yyreduce
      break;
  
    case 82:
- #line 472 "command.y" /* yacc.c:1651  */
+ #line 472 "command.y" /* yacc.c:1645  */
      {
                NODE *n;
 -              n = lookup((yyvsp[0])->a_string);
 +              n = lookup((yyvsp[0])->a_string, true);
                if (n == NULL || n->type != Node_func)
                        yyerror(_("no such function - \"%s\""), 
(yyvsp[0])->a_string);
                else {

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

Summary of changes:
 ChangeLog                        |  11 +-
 NEWS                             |   2 +-
 awkgram.c                        | 837 +++++++++++++++++++--------------------
 command.c                        | 381 +++++++++---------
 config.guess                     |   2 +-
 extension/build-aux/ChangeLog    |   4 +
 extension/build-aux/config.guess |   2 +-
 7 files changed, 619 insertions(+), 620 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

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