gawk-diffs
[Top][All Lists]
Advanced

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

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


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, feature/regex-type, updated. gawk-4.1.0-1385-g09c5334
Date: Tue, 28 Apr 2015 13:48:35 +0000

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/regex-type has been updated
       via  09c533438cd709076c29bb61585833e2c4d67f97 (commit)
       via  6853b3e94c03194200c5a7c4450820a8eaa0920f (commit)
       via  b4ef28f58688cf3c3a5878c595b6582144ee2cf1 (commit)
       via  f088a3efc8aefc47f0bfe7824732aae4283b4c15 (commit)
       via  7bda05c66848de97a7b43aa3e37ff4336f1b3220 (commit)
       via  8dedda4944d453e2b9fe3e6d0234f7cae1e894c7 (commit)
       via  454ae7c0f350842ab40a30ff4a2643cd76e8e277 (commit)
       via  e78dfd4b04060ad3278a1b3505720893ec432617 (commit)
       via  468a1f0538459976b43cf9081b5571cc1e1cf6d2 (commit)
       via  2ad3c45bed9aabe6bb8a05991a7fdbcff620810b (commit)
       via  25403754e635207bc7a8d29366f0b51a4e89c8cb (commit)
       via  f16e1e399cdb24377038d1e9bebc0f598e962c71 (commit)
       via  20834c2a3086611f15814f24abfbb4b16d20275c (commit)
       via  043cc39d1352ab67d5b5de3b2991bd422e6c44b3 (commit)
       via  559a3395fcb32cdee8a6cdf482656c0b78628f8a (commit)
       via  56073f0c0343be08ea16b1ea6b34715eacc89a05 (commit)
       via  456fd40ebbb78fe31b28bbe0907282c685bce170 (commit)
       via  5521633779b34da5d4fdd2728c48e1636b0bde7a (commit)
       via  613c6ddd082a0b241a59260927929cc65ae61f9b (commit)
       via  1806544b56f2f5e1c76addc85f18aaa75066f497 (commit)
       via  8dd09969090bf05155153f5aedfd2302aba15b56 (commit)
       via  b88e0a71eaae6efb9bf4164ae095bccc07965115 (commit)
       via  b57630628a5c6d8d8d16f05b357f61b34c861359 (commit)
       via  f4eea5c198be1dcda61a94db10b8f3200888576b (commit)
       via  24ddf2742b0034089bce38e5f4ebd99b93c6e161 (commit)
       via  9091a155190093c3d2dbbed4bd29b0feec50c8ce (commit)
       via  850078f7e3b3b777bb908fe15ca55f2c024721f2 (commit)
       via  6fb4bb6c7339cd325ca34faa0872ac3a9834918e (commit)
       via  23d8a1b0772871c4c7549ac2ff93bfd1d069ed82 (commit)
       via  7f26aba2472025b18af917705d9c923bfc76d337 (commit)
       via  91ac42ccd9bbeee4f17181cd896cc9b7de13b6f7 (commit)
       via  3fad6ad12e1637c4e1b72fbeaf0265f44da0cf27 (commit)
       via  603eb56251817ac19491b7671ed01402b2d7399c (commit)
       via  22af5b89f1f31f31b53ef2dd17637ed77353e762 (commit)
       via  777dd64615dd9067d16634af3eb08ad36123d7eb (commit)
       via  4e35a70613a5b5c0a051efb59a52a28048add092 (commit)
       via  294d1ffbc998de4c13518cc899c019998f51bd23 (commit)
       via  6d43d408d693fdb5770bb4dbffa51d4b26487d4b (commit)
       via  812d26bb6b672f3f5153c00e4edcb2377a723afd (commit)
       via  128a3e884d9541ec5b96c02a19db38ac3c404bf1 (commit)
       via  daf063f72bb0b889149dea00794e8e889fdefa55 (commit)
       via  06cd783a8994b704c066aa59e11a6e76292d806e (commit)
       via  6e786e9ea47966a9cac7cfef4a4079ac379580b0 (commit)
       via  c55956b6a10d0a4d0b151c1be976dc9c344c1103 (commit)
       via  b6ac928a53d146233741fc5f7fe1cac66de27303 (commit)
      from  020be4cb81b519a597acbf85e683cfb95993c2b9 (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=09c533438cd709076c29bb61585833e2c4d67f97

commit 09c533438cd709076c29bb61585833e2c4d67f97
Author: Arnold D. Robbins <address@hidden>
Date:   Tue Apr 28 16:48:19 2015 +0300

    Add lint warning for isarray.

diff --git a/ChangeLog b/ChangeLog
index 3b78f84..78a512f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2015-04-28         Arnold D. Robbins     <address@hidden>
 
+       * builtin.c (isarray): Add lint warning that isarray()
+       is deprecated.
+
+2015-04-28         Arnold D. Robbins     <address@hidden>
+
        * awkgram.y (yylex): Rework the bracket handling from zero.
        Thanks to Michal Jaegermann for yet another test case.
 
diff --git a/awkgram.c b/awkgram.c
index d3481c8..144f18a 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -668,24 +668,24 @@ static const yytype_uint16 yyrline[] =
        0,   210,   210,   212,   217,   218,   222,   234,   239,   250,
      257,   263,   272,   280,   282,   287,   295,   297,   303,   311,
      321,   351,   365,   379,   387,   398,   410,   412,   414,   420,
-     428,   429,   433,   433,   469,   468,   502,   529,   531,   536,
-     542,   570,   575,   576,   580,   582,   584,   591,   681,   723,
-     765,   878,   885,   892,   902,   911,   920,   929,   940,   956,
-     955,   979,   991,   991,  1089,  1089,  1122,  1152,  1158,  1159,
-    1165,  1166,  1173,  1178,  1190,  1204,  1206,  1214,  1219,  1221,
-    1229,  1238,  1240,  1249,  1250,  1258,  1263,  1263,  1274,  1278,
-    1286,  1287,  1290,  1292,  1297,  1298,  1307,  1308,  1313,  1318,
-    1324,  1326,  1328,  1335,  1336,  1342,  1343,  1348,  1350,  1355,
-    1357,  1365,  1370,  1379,  1380,  1385,  1387,  1392,  1394,  1402,
-    1407,  1415,  1416,  1421,  1428,  1432,  1434,  1436,  1449,  1466,
-    1476,  1483,  1485,  1490,  1492,  1494,  1502,  1504,  1509,  1511,
-    1516,  1518,  1520,  1570,  1572,  1574,  1576,  1578,  1580,  1582,
-    1584,  1598,  1603,  1608,  1633,  1639,  1641,  1643,  1645,  1647,
-    1649,  1654,  1658,  1690,  1692,  1698,  1704,  1717,  1718,  1719,
-    1724,  1729,  1733,  1737,  1752,  1765,  1770,  1807,  1836,  1837,
-    1843,  1844,  1849,  1851,  1858,  1875,  1892,  1894,  1901,  1906,
-    1914,  1924,  1936,  1945,  1949,  1953,  1957,  1961,  1965,  1968,
-    1970,  1974,  1978,  1982
+     428,   429,   433,   433,   469,   468,   502,   524,   526,   531,
+     537,   565,   570,   571,   575,   577,   579,   586,   676,   718,
+     760,   873,   880,   887,   897,   906,   915,   924,   935,   951,
+     950,   974,   986,   986,  1084,  1084,  1117,  1147,  1153,  1154,
+    1160,  1161,  1168,  1173,  1185,  1199,  1201,  1209,  1214,  1216,
+    1224,  1233,  1235,  1244,  1245,  1253,  1258,  1258,  1269,  1273,
+    1281,  1282,  1285,  1287,  1292,  1293,  1302,  1303,  1308,  1313,
+    1319,  1321,  1323,  1330,  1331,  1337,  1338,  1343,  1345,  1350,
+    1352,  1360,  1365,  1374,  1375,  1380,  1382,  1387,  1389,  1397,
+    1402,  1410,  1411,  1416,  1423,  1427,  1429,  1431,  1444,  1461,
+    1471,  1478,  1480,  1485,  1487,  1489,  1497,  1499,  1504,  1506,
+    1511,  1513,  1515,  1565,  1567,  1569,  1571,  1573,  1575,  1577,
+    1579,  1593,  1598,  1603,  1628,  1634,  1636,  1638,  1640,  1642,
+    1644,  1649,  1653,  1685,  1687,  1693,  1699,  1712,  1713,  1714,
+    1719,  1724,  1728,  1732,  1747,  1760,  1765,  1802,  1831,  1832,
+    1838,  1839,  1844,  1846,  1853,  1870,  1887,  1889,  1896,  1901,
+    1909,  1919,  1931,  1940,  1944,  1948,  1952,  1956,  1960,  1963,
+    1965,  1969,  1973,  1977
 };
 #endif
 
@@ -2274,36 +2274,31 @@ yyreduce:
                        YYABORT;
                  }
                  (yyval) = (yyvsp[0]);
-#if 0
-                 /* Don't set this, on purpose */
-                 /* $$->opcode = Op_match_rec; */
-#else
                  (yyval)->opcode = Op_push_re;
-#endif
                  (yyval)->memory = n;
                }
-#line 2286 "awkgram.c" /* yacc.c:1646  */
+#line 2281 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 37:
-#line 530 "awkgram.y" /* yacc.c:1646  */
+#line 525 "awkgram.y" /* yacc.c:1646  */
     { bcfree((yyvsp[0])); }
-#line 2292 "awkgram.c" /* yacc.c:1646  */
+#line 2287 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 39:
-#line 536 "awkgram.y" /* yacc.c:1646  */
+#line 531 "awkgram.y" /* yacc.c:1646  */
     {
                if (comment != NULL) {
                        (yyval) = list_create(comment);
                        comment = NULL;
                } else (yyval) = NULL;
          }
-#line 2303 "awkgram.c" /* yacc.c:1646  */
+#line 2298 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 40:
-#line 543 "awkgram.y" /* yacc.c:1646  */
+#line 538 "awkgram.y" /* yacc.c:1646  */
     {
                if ((yyvsp[0]) == NULL) {
                        if (comment == NULL)
@@ -2331,40 +2326,40 @@ yyreduce:
                }
                yyerrok;
          }
-#line 2335 "awkgram.c" /* yacc.c:1646  */
+#line 2330 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 41:
-#line 571 "awkgram.y" /* yacc.c:1646  */
+#line 566 "awkgram.y" /* yacc.c:1646  */
     {  (yyval) = NULL; }
-#line 2341 "awkgram.c" /* yacc.c:1646  */
+#line 2336 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 44:
-#line 581 "awkgram.y" /* yacc.c:1646  */
+#line 576 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 2347 "awkgram.c" /* yacc.c:1646  */
+#line 2342 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 45:
-#line 583 "awkgram.y" /* yacc.c:1646  */
+#line 578 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[-1]); }
-#line 2353 "awkgram.c" /* yacc.c:1646  */
+#line 2348 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 46:
-#line 585 "awkgram.y" /* yacc.c:1646  */
+#line 580 "awkgram.y" /* yacc.c:1646  */
     {
                if (do_pretty_print)
                        (yyval) = list_prepend((yyvsp[0]), 
instruction(Op_exec_count));
                else
                        (yyval) = (yyvsp[0]);
          }
-#line 2364 "awkgram.c" /* yacc.c:1646  */
+#line 2359 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 47:
-#line 592 "awkgram.y" /* yacc.c:1646  */
+#line 587 "awkgram.y" /* yacc.c:1646  */
     {
                INSTRUCTION *dflt, *curr = NULL, *cexp, *cstmt;
                INSTRUCTION *ip, *nextc, *tbreak;
@@ -2454,11 +2449,11 @@ yyreduce:
                break_allowed--;                        
                fix_break_continue(ip, tbreak, NULL);
          }
-#line 2458 "awkgram.c" /* yacc.c:1646  */
+#line 2453 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 48:
-#line 682 "awkgram.y" /* yacc.c:1646  */
+#line 677 "awkgram.y" /* yacc.c:1646  */
     { 
                /*
                 *    -----------------
@@ -2500,11 +2495,11 @@ yyreduce:
                continue_allowed--;
                fix_break_continue(ip, tbreak, tcont);
          }
-#line 2504 "awkgram.c" /* yacc.c:1646  */
+#line 2499 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 49:
-#line 724 "awkgram.y" /* yacc.c:1646  */
+#line 719 "awkgram.y" /* yacc.c:1646  */
     {
                /*
                 *    -----------------
@@ -2546,11 +2541,11 @@ yyreduce:
                } /* else
                        $1 and $4 are NULLs */
          }
-#line 2550 "awkgram.c" /* yacc.c:1646  */
+#line 2545 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 50:
-#line 766 "awkgram.y" /* yacc.c:1646  */
+#line 761 "awkgram.y" /* yacc.c:1646  */
     {
                INSTRUCTION *ip;
                char *var_name = (yyvsp[-5])->lextok;
@@ -2663,44 +2658,44 @@ regular_loop:
                break_allowed--;
                continue_allowed--;
          }
-#line 2667 "awkgram.c" /* yacc.c:1646  */
+#line 2662 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 51:
-#line 879 "awkgram.y" /* yacc.c:1646  */
+#line 874 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = mk_for_loop((yyvsp[-11]), (yyvsp[-9]), (yyvsp[-6]), 
(yyvsp[-3]), (yyvsp[0]));
 
                break_allowed--;
                continue_allowed--;
          }
-#line 2678 "awkgram.c" /* yacc.c:1646  */
+#line 2673 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 52:
-#line 886 "awkgram.y" /* yacc.c:1646  */
+#line 881 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = mk_for_loop((yyvsp[-10]), (yyvsp[-8]), (INSTRUCTION 
*) NULL, (yyvsp[-3]), (yyvsp[0]));
 
                break_allowed--;
                continue_allowed--;
          }
-#line 2689 "awkgram.c" /* yacc.c:1646  */
+#line 2684 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 53:
-#line 893 "awkgram.y" /* yacc.c:1646  */
+#line 888 "awkgram.y" /* yacc.c:1646  */
     {
                if (do_pretty_print)
                        (yyval) = list_prepend((yyvsp[0]), 
instruction(Op_exec_count));
                else
                        (yyval) = (yyvsp[0]);
          }
-#line 2700 "awkgram.c" /* yacc.c:1646  */
+#line 2695 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 54:
-#line 903 "awkgram.y" /* yacc.c:1646  */
+#line 898 "awkgram.y" /* yacc.c:1646  */
     { 
                if (! break_allowed)
                        error_ln((yyvsp[-1])->source_line,
@@ -2709,11 +2704,11 @@ regular_loop:
                (yyval) = list_create((yyvsp[-1]));
 
          }
-#line 2713 "awkgram.c" /* yacc.c:1646  */
+#line 2708 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 55:
-#line 912 "awkgram.y" /* yacc.c:1646  */
+#line 907 "awkgram.y" /* yacc.c:1646  */
     {
                if (! continue_allowed)
                        error_ln((yyvsp[-1])->source_line,
@@ -2722,11 +2717,11 @@ regular_loop:
                (yyval) = list_create((yyvsp[-1]));
 
          }
-#line 2726 "awkgram.c" /* yacc.c:1646  */
+#line 2721 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 56:
-#line 921 "awkgram.y" /* yacc.c:1646  */
+#line 916 "awkgram.y" /* yacc.c:1646  */
     {
                /* if inside function (rule = 0), resolve context at run-time */
                if (rule && rule != Rule)
@@ -2735,11 +2730,11 @@ regular_loop:
                (yyvsp[-1])->target_jmp = ip_rec;
                (yyval) = list_create((yyvsp[-1]));
          }
-#line 2739 "awkgram.c" /* yacc.c:1646  */
+#line 2734 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 57:
-#line 930 "awkgram.y" /* yacc.c:1646  */
+#line 925 "awkgram.y" /* yacc.c:1646  */
     {
                /* if inside function (rule = 0), resolve context at run-time */
                if (rule == BEGIN || rule == END || rule == ENDFILE)
@@ -2750,11 +2745,11 @@ regular_loop:
                (yyvsp[-1])->target_endfile = ip_endfile;
                (yyval) = list_create((yyvsp[-1]));
          }
-#line 2754 "awkgram.c" /* yacc.c:1646  */
+#line 2749 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 58:
-#line 941 "awkgram.y" /* yacc.c:1646  */
+#line 936 "awkgram.y" /* yacc.c:1646  */
     {
                /* Initialize the two possible jump targets, the actual target
                 * is resolved at run-time. 
@@ -2769,20 +2764,20 @@ regular_loop:
                } else
                        (yyval) = list_append((yyvsp[-1]), (yyvsp[-2]));
          }
-#line 2773 "awkgram.c" /* yacc.c:1646  */
+#line 2768 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 59:
-#line 956 "awkgram.y" /* yacc.c:1646  */
+#line 951 "awkgram.y" /* yacc.c:1646  */
     {
                if (! in_function)
                        yyerror(_("`return' used outside function context"));
          }
-#line 2782 "awkgram.c" /* yacc.c:1646  */
+#line 2777 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 60:
-#line 959 "awkgram.y" /* yacc.c:1646  */
+#line 954 "awkgram.y" /* yacc.c:1646  */
     {
                if ((yyvsp[-1]) == NULL) {
                        (yyval) = list_create((yyvsp[-3]));
@@ -2803,17 +2798,17 @@ regular_loop:
                        (yyval) = list_append((yyvsp[-1]), (yyvsp[-3]));
                }
          }
-#line 2807 "awkgram.c" /* yacc.c:1646  */
+#line 2802 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 62:
-#line 991 "awkgram.y" /* yacc.c:1646  */
+#line 986 "awkgram.y" /* yacc.c:1646  */
     { in_print = true; in_parens = 0; }
-#line 2813 "awkgram.c" /* yacc.c:1646  */
+#line 2808 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 63:
-#line 992 "awkgram.y" /* yacc.c:1646  */
+#line 987 "awkgram.y" /* yacc.c:1646  */
     {
                /*
                 * Optimization: plain `print' has no expression list, so $3 is 
null.
@@ -2910,17 +2905,17 @@ regular_print:
                        }
                }
          }
-#line 2914 "awkgram.c" /* yacc.c:1646  */
+#line 2909 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 64:
-#line 1089 "awkgram.y" /* yacc.c:1646  */
+#line 1084 "awkgram.y" /* yacc.c:1646  */
     { sub_counter = 0; }
-#line 2920 "awkgram.c" /* yacc.c:1646  */
+#line 2915 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 65:
-#line 1090 "awkgram.y" /* yacc.c:1646  */
+#line 1085 "awkgram.y" /* yacc.c:1646  */
     {
                char *arr = (yyvsp[-2])->lextok;
 
@@ -2953,11 +2948,11 @@ regular_print:
                        (yyval) = list_append(list_append((yyvsp[0]), 
(yyvsp[-2])), (yyvsp[-3]));
                }
          }
-#line 2957 "awkgram.c" /* yacc.c:1646  */
+#line 2952 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 66:
-#line 1127 "awkgram.y" /* yacc.c:1646  */
+#line 1122 "awkgram.y" /* yacc.c:1646  */
     {
                static bool warned = false;
                char *arr = (yyvsp[-1])->lextok;
@@ -2983,52 +2978,52 @@ regular_print:
                                fatal(_("`delete' is not allowed with 
FUNCTAB"));
                }
          }
-#line 2987 "awkgram.c" /* yacc.c:1646  */
+#line 2982 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 67:
-#line 1153 "awkgram.y" /* yacc.c:1646  */
+#line 1148 "awkgram.y" /* yacc.c:1646  */
     {  (yyval) = optimize_assignment((yyvsp[0])); }
-#line 2993 "awkgram.c" /* yacc.c:1646  */
+#line 2988 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 68:
-#line 1158 "awkgram.y" /* yacc.c:1646  */
+#line 1153 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 2999 "awkgram.c" /* yacc.c:1646  */
+#line 2994 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 69:
-#line 1160 "awkgram.y" /* yacc.c:1646  */
+#line 1155 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3005 "awkgram.c" /* yacc.c:1646  */
+#line 3000 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 70:
-#line 1165 "awkgram.y" /* yacc.c:1646  */
+#line 1160 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 3011 "awkgram.c" /* yacc.c:1646  */
+#line 3006 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 71:
-#line 1167 "awkgram.y" /* yacc.c:1646  */
+#line 1162 "awkgram.y" /* yacc.c:1646  */
     {
                if ((yyvsp[-1]) == NULL)
                        (yyval) = list_create((yyvsp[0]));
                else
                        (yyval) = list_prepend((yyvsp[-1]), (yyvsp[0]));
          }
-#line 3022 "awkgram.c" /* yacc.c:1646  */
+#line 3017 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 72:
-#line 1174 "awkgram.y" /* yacc.c:1646  */
+#line 1169 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 3028 "awkgram.c" /* yacc.c:1646  */
+#line 3023 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 73:
-#line 1179 "awkgram.y" /* yacc.c:1646  */
+#line 1174 "awkgram.y" /* yacc.c:1646  */
     {
                INSTRUCTION *casestmt = (yyvsp[0]);
                if ((yyvsp[0]) == NULL)
@@ -3040,11 +3035,11 @@ regular_print:
                bcfree((yyvsp[-2]));
                (yyval) = (yyvsp[-4]);
          }
-#line 3044 "awkgram.c" /* yacc.c:1646  */
+#line 3039 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 74:
-#line 1191 "awkgram.y" /* yacc.c:1646  */
+#line 1186 "awkgram.y" /* yacc.c:1646  */
     {
                INSTRUCTION *casestmt = (yyvsp[0]);
                if ((yyvsp[0]) == NULL)
@@ -3055,17 +3050,17 @@ regular_print:
                (yyvsp[-3])->case_stmt = casestmt;
                (yyval) = (yyvsp[-3]);
          }
-#line 3059 "awkgram.c" /* yacc.c:1646  */
+#line 3054 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 75:
-#line 1205 "awkgram.y" /* yacc.c:1646  */
+#line 1200 "awkgram.y" /* yacc.c:1646  */
     {  (yyval) = (yyvsp[0]); }
-#line 3065 "awkgram.c" /* yacc.c:1646  */
+#line 3060 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 76:
-#line 1207 "awkgram.y" /* yacc.c:1646  */
+#line 1202 "awkgram.y" /* yacc.c:1646  */
     { 
                NODE *n = (yyvsp[0])->memory;
                (void) force_number(n);
@@ -3073,26 +3068,26 @@ regular_print:
                bcfree((yyvsp[-1]));
                (yyval) = (yyvsp[0]);
          }
-#line 3077 "awkgram.c" /* yacc.c:1646  */
+#line 3072 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 77:
-#line 1215 "awkgram.y" /* yacc.c:1646  */
+#line 1210 "awkgram.y" /* yacc.c:1646  */
     {
                bcfree((yyvsp[-1]));
                (yyval) = (yyvsp[0]);
          }
-#line 3086 "awkgram.c" /* yacc.c:1646  */
+#line 3081 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 78:
-#line 1220 "awkgram.y" /* yacc.c:1646  */
+#line 1215 "awkgram.y" /* yacc.c:1646  */
     {  (yyval) = (yyvsp[0]); }
-#line 3092 "awkgram.c" /* yacc.c:1646  */
+#line 3087 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 79:
-#line 1222 "awkgram.y" /* yacc.c:1646  */
+#line 1217 "awkgram.y" /* yacc.c:1646  */
     {
                if ((yyvsp[0])->memory->type == Node_regex)
                        (yyvsp[0])->opcode = Op_push_re;
@@ -3100,57 +3095,57 @@ regular_print:
                        (yyvsp[0])->opcode = Op_push;
                (yyval) = (yyvsp[0]);
          }
-#line 3104 "awkgram.c" /* yacc.c:1646  */
+#line 3099 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 80:
-#line 1230 "awkgram.y" /* yacc.c:1646  */
+#line 1225 "awkgram.y" /* yacc.c:1646  */
     {
                assert((yyvsp[0])->memory->type == Node_hardregex);
                (yyvsp[0])->opcode = Op_push_re;
                (yyval) = (yyvsp[0]);
          }
-#line 3114 "awkgram.c" /* yacc.c:1646  */
+#line 3109 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 81:
-#line 1239 "awkgram.y" /* yacc.c:1646  */
+#line 1234 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3120 "awkgram.c" /* yacc.c:1646  */
+#line 3115 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 82:
-#line 1241 "awkgram.y" /* yacc.c:1646  */
+#line 1236 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3126 "awkgram.c" /* yacc.c:1646  */
+#line 3121 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 84:
-#line 1251 "awkgram.y" /* yacc.c:1646  */
+#line 1246 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = (yyvsp[-1]);
          }
-#line 3134 "awkgram.c" /* yacc.c:1646  */
+#line 3129 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 85:
-#line 1258 "awkgram.y" /* yacc.c:1646  */
+#line 1253 "awkgram.y" /* yacc.c:1646  */
     {
                in_print = false;
                in_parens = 0;
                (yyval) = NULL;
          }
-#line 3144 "awkgram.c" /* yacc.c:1646  */
+#line 3139 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 86:
-#line 1263 "awkgram.y" /* yacc.c:1646  */
+#line 1258 "awkgram.y" /* yacc.c:1646  */
     { in_print = false; in_parens = 0; }
-#line 3150 "awkgram.c" /* yacc.c:1646  */
+#line 3145 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 87:
-#line 1264 "awkgram.y" /* yacc.c:1646  */
+#line 1259 "awkgram.y" /* yacc.c:1646  */
     {
                if ((yyvsp[-2])->redir_type == redirect_twoway
                        && (yyvsp[0])->lasti->opcode == Op_K_getline_redir
@@ -3158,136 +3153,136 @@ regular_print:
                        yyerror(_("multistage two-way pipelines don't work"));
                (yyval) = list_prepend((yyvsp[0]), (yyvsp[-2]));
          }
-#line 3162 "awkgram.c" /* yacc.c:1646  */
+#line 3157 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 88:
-#line 1275 "awkgram.y" /* yacc.c:1646  */
+#line 1270 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = mk_condition((yyvsp[-3]), (yyvsp[-5]), (yyvsp[0]), 
NULL, NULL);
          }
-#line 3170 "awkgram.c" /* yacc.c:1646  */
+#line 3165 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 89:
-#line 1280 "awkgram.y" /* yacc.c:1646  */
+#line 1275 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = mk_condition((yyvsp[-6]), (yyvsp[-8]), (yyvsp[-3]), 
(yyvsp[-2]), (yyvsp[0]));
          }
-#line 3178 "awkgram.c" /* yacc.c:1646  */
+#line 3173 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 94:
-#line 1297 "awkgram.y" /* yacc.c:1646  */
+#line 1292 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 3184 "awkgram.c" /* yacc.c:1646  */
+#line 3179 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 95:
-#line 1299 "awkgram.y" /* yacc.c:1646  */
+#line 1294 "awkgram.y" /* yacc.c:1646  */
     {
                bcfree((yyvsp[-1]));
                (yyval) = (yyvsp[0]);
          }
-#line 3193 "awkgram.c" /* yacc.c:1646  */
+#line 3188 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 96:
-#line 1307 "awkgram.y" /* yacc.c:1646  */
+#line 1302 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 3199 "awkgram.c" /* yacc.c:1646  */
+#line 3194 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 97:
-#line 1309 "awkgram.y" /* yacc.c:1646  */
+#line 1304 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3205 "awkgram.c" /* yacc.c:1646  */
+#line 3200 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 98:
-#line 1314 "awkgram.y" /* yacc.c:1646  */
+#line 1309 "awkgram.y" /* yacc.c:1646  */
     {
                (yyvsp[0])->param_count = 0;
                (yyval) = list_create((yyvsp[0]));
          }
-#line 3214 "awkgram.c" /* yacc.c:1646  */
+#line 3209 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 99:
-#line 1319 "awkgram.y" /* yacc.c:1646  */
+#line 1314 "awkgram.y" /* yacc.c:1646  */
     {
                (yyvsp[0])->param_count =  (yyvsp[-2])->lasti->param_count + 1;
                (yyval) = list_append((yyvsp[-2]), (yyvsp[0]));
                yyerrok;
          }
-#line 3224 "awkgram.c" /* yacc.c:1646  */
+#line 3219 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 100:
-#line 1325 "awkgram.y" /* yacc.c:1646  */
+#line 1320 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 3230 "awkgram.c" /* yacc.c:1646  */
+#line 3225 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 101:
-#line 1327 "awkgram.y" /* yacc.c:1646  */
+#line 1322 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[-1]); }
-#line 3236 "awkgram.c" /* yacc.c:1646  */
+#line 3231 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 102:
-#line 1329 "awkgram.y" /* yacc.c:1646  */
+#line 1324 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[-2]); }
-#line 3242 "awkgram.c" /* yacc.c:1646  */
+#line 3237 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 103:
-#line 1335 "awkgram.y" /* yacc.c:1646  */
+#line 1330 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 3248 "awkgram.c" /* yacc.c:1646  */
+#line 3243 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 104:
-#line 1337 "awkgram.y" /* yacc.c:1646  */
+#line 1332 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3254 "awkgram.c" /* yacc.c:1646  */
+#line 3249 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 105:
-#line 1342 "awkgram.y" /* yacc.c:1646  */
+#line 1337 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 3260 "awkgram.c" /* yacc.c:1646  */
+#line 3255 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 106:
-#line 1344 "awkgram.y" /* yacc.c:1646  */
+#line 1339 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3266 "awkgram.c" /* yacc.c:1646  */
+#line 3261 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 107:
-#line 1349 "awkgram.y" /* yacc.c:1646  */
+#line 1344 "awkgram.y" /* yacc.c:1646  */
     {  (yyval) = mk_expression_list(NULL, (yyvsp[0])); }
-#line 3272 "awkgram.c" /* yacc.c:1646  */
+#line 3267 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 108:
-#line 1351 "awkgram.y" /* yacc.c:1646  */
+#line 1346 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
                yyerrok;
          }
-#line 3281 "awkgram.c" /* yacc.c:1646  */
+#line 3276 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 109:
-#line 1356 "awkgram.y" /* yacc.c:1646  */
+#line 1351 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 3287 "awkgram.c" /* yacc.c:1646  */
+#line 3282 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 110:
-#line 1358 "awkgram.y" /* yacc.c:1646  */
+#line 1353 "awkgram.y" /* yacc.c:1646  */
     {
                /*
                 * Returning the expression list instead of NULL lets
@@ -3295,62 +3290,62 @@ regular_print:
                 */
                (yyval) = (yyvsp[-1]);
          }
-#line 3299 "awkgram.c" /* yacc.c:1646  */
+#line 3294 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 111:
-#line 1366 "awkgram.y" /* yacc.c:1646  */
+#line 1361 "awkgram.y" /* yacc.c:1646  */
     {
                /* Ditto */
                (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
          }
-#line 3308 "awkgram.c" /* yacc.c:1646  */
+#line 3303 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 112:
-#line 1371 "awkgram.y" /* yacc.c:1646  */
+#line 1366 "awkgram.y" /* yacc.c:1646  */
     {
                /* Ditto */
                (yyval) = (yyvsp[-2]);
          }
-#line 3317 "awkgram.c" /* yacc.c:1646  */
+#line 3312 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 113:
-#line 1379 "awkgram.y" /* yacc.c:1646  */
+#line 1374 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 3323 "awkgram.c" /* yacc.c:1646  */
+#line 3318 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 114:
-#line 1381 "awkgram.y" /* yacc.c:1646  */
+#line 1376 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3329 "awkgram.c" /* yacc.c:1646  */
+#line 3324 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 115:
-#line 1386 "awkgram.y" /* yacc.c:1646  */
+#line 1381 "awkgram.y" /* yacc.c:1646  */
     {  (yyval) = mk_expression_list(NULL, (yyvsp[0])); }
-#line 3335 "awkgram.c" /* yacc.c:1646  */
+#line 3330 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 116:
-#line 1388 "awkgram.y" /* yacc.c:1646  */
+#line 1383 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
                yyerrok;
          }
-#line 3344 "awkgram.c" /* yacc.c:1646  */
+#line 3339 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 117:
-#line 1393 "awkgram.y" /* yacc.c:1646  */
+#line 1388 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 3350 "awkgram.c" /* yacc.c:1646  */
+#line 3345 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 118:
-#line 1395 "awkgram.y" /* yacc.c:1646  */
+#line 1390 "awkgram.y" /* yacc.c:1646  */
     {
                /*
                 * Returning the expression list instead of NULL lets
@@ -3358,72 +3353,72 @@ regular_print:
                 */
                (yyval) = (yyvsp[-1]);
          }
-#line 3362 "awkgram.c" /* yacc.c:1646  */
+#line 3357 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 119:
-#line 1403 "awkgram.y" /* yacc.c:1646  */
+#line 1398 "awkgram.y" /* yacc.c:1646  */
     {
                /* Ditto */
                (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
          }
-#line 3371 "awkgram.c" /* yacc.c:1646  */
+#line 3366 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 120:
-#line 1408 "awkgram.y" /* yacc.c:1646  */
+#line 1403 "awkgram.y" /* yacc.c:1646  */
     {
                /* Ditto */
                (yyval) = (yyvsp[-2]);
          }
-#line 3380 "awkgram.c" /* yacc.c:1646  */
+#line 3375 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 121:
-#line 1415 "awkgram.y" /* yacc.c:1646  */
+#line 1410 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3386 "awkgram.c" /* yacc.c:1646  */
+#line 3381 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 122:
-#line 1416 "awkgram.y" /* yacc.c:1646  */
+#line 1411 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = list_create((yyvsp[0])); }
-#line 3392 "awkgram.c" /* yacc.c:1646  */
+#line 3387 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 123:
-#line 1422 "awkgram.y" /* yacc.c:1646  */
+#line 1417 "awkgram.y" /* yacc.c:1646  */
     {
                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 3403 "awkgram.c" /* yacc.c:1646  */
+#line 3398 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 124:
-#line 1429 "awkgram.y" /* yacc.c:1646  */
+#line 1424 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = mk_assignment((yyvsp[-2]), list_create((yyvsp[0])), 
(yyvsp[-1]));
          }
-#line 3411 "awkgram.c" /* yacc.c:1646  */
+#line 3406 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 125:
-#line 1433 "awkgram.y" /* yacc.c:1646  */
+#line 1428 "awkgram.y" /* yacc.c:1646  */
     {  (yyval) = mk_boolean((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3417 "awkgram.c" /* yacc.c:1646  */
+#line 3412 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 126:
-#line 1435 "awkgram.y" /* yacc.c:1646  */
+#line 1430 "awkgram.y" /* yacc.c:1646  */
     {  (yyval) = mk_boolean((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3423 "awkgram.c" /* yacc.c:1646  */
+#line 3418 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 127:
-#line 1437 "awkgram.y" /* yacc.c:1646  */
+#line 1432 "awkgram.y" /* yacc.c:1646  */
     {
                if ((yyvsp[-2])->lasti->opcode == Op_match_rec)
                        warning_ln((yyvsp[-1])->source_line,
@@ -3436,11 +3431,11 @@ regular_print:
                bcfree((yyvsp[0]));
                (yyval) = list_append((yyvsp[-2]), (yyvsp[-1]));
          }
-#line 3440 "awkgram.c" /* yacc.c:1646  */
+#line 3435 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 128:
-#line 1450 "awkgram.y" /* yacc.c:1646  */
+#line 1445 "awkgram.y" /* yacc.c:1646  */
     {
                if ((yyvsp[-2])->lasti->opcode == Op_match_rec)
                        warning_ln((yyvsp[-1])->source_line,
@@ -3457,11 +3452,11 @@ regular_print:
                        (yyval) = list_append(list_merge((yyvsp[-2]), 
(yyvsp[0])), (yyvsp[-1]));
                }
          }
-#line 3461 "awkgram.c" /* yacc.c:1646  */
+#line 3456 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 129:
-#line 1467 "awkgram.y" /* yacc.c:1646  */
+#line 1462 "awkgram.y" /* yacc.c:1646  */
     {
                if (do_lint_old)
                        warning_ln((yyvsp[-1])->source_line,
@@ -3471,91 +3466,91 @@ regular_print:
                (yyvsp[-1])->expr_count = 1;
                (yyval) = list_append(list_merge((yyvsp[-2]), (yyvsp[0])), 
(yyvsp[-1]));
          }
-#line 3475 "awkgram.c" /* yacc.c:1646  */
+#line 3470 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 130:
-#line 1477 "awkgram.y" /* yacc.c:1646  */
+#line 1472 "awkgram.y" /* yacc.c:1646  */
     {
                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 3486 "awkgram.c" /* yacc.c:1646  */
+#line 3481 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 131:
-#line 1484 "awkgram.y" /* yacc.c:1646  */
+#line 1479 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_condition((yyvsp[-4]), (yyvsp[-3]), (yyvsp[-2]), 
(yyvsp[-1]), (yyvsp[0])); }
-#line 3492 "awkgram.c" /* yacc.c:1646  */
+#line 3487 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 132:
-#line 1486 "awkgram.y" /* yacc.c:1646  */
+#line 1481 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3498 "awkgram.c" /* yacc.c:1646  */
+#line 3493 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 133:
-#line 1491 "awkgram.y" /* yacc.c:1646  */
+#line 1486 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3504 "awkgram.c" /* yacc.c:1646  */
+#line 3499 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 134:
-#line 1493 "awkgram.y" /* yacc.c:1646  */
+#line 1488 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3510 "awkgram.c" /* yacc.c:1646  */
+#line 3505 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 135:
-#line 1495 "awkgram.y" /* yacc.c:1646  */
+#line 1490 "awkgram.y" /* yacc.c:1646  */
     {  
                (yyvsp[0])->opcode = Op_assign_quotient;
                (yyval) = (yyvsp[0]);
          }
-#line 3519 "awkgram.c" /* yacc.c:1646  */
+#line 3514 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 136:
-#line 1503 "awkgram.y" /* yacc.c:1646  */
+#line 1498 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3525 "awkgram.c" /* yacc.c:1646  */
+#line 3520 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 137:
-#line 1505 "awkgram.y" /* yacc.c:1646  */
+#line 1500 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3531 "awkgram.c" /* yacc.c:1646  */
+#line 3526 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 138:
-#line 1510 "awkgram.y" /* yacc.c:1646  */
+#line 1505 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3537 "awkgram.c" /* yacc.c:1646  */
+#line 3532 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 139:
-#line 1512 "awkgram.y" /* yacc.c:1646  */
+#line 1507 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3543 "awkgram.c" /* yacc.c:1646  */
+#line 3538 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 140:
-#line 1517 "awkgram.y" /* yacc.c:1646  */
+#line 1512 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3549 "awkgram.c" /* yacc.c:1646  */
+#line 3544 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 141:
-#line 1519 "awkgram.y" /* yacc.c:1646  */
+#line 1514 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3555 "awkgram.c" /* yacc.c:1646  */
+#line 3550 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 142:
-#line 1521 "awkgram.y" /* yacc.c:1646  */
+#line 1516 "awkgram.y" /* yacc.c:1646  */
     {
                int count = 2;
                bool is_simple_var = false;
@@ -3602,47 +3597,47 @@ regular_print:
                                max_args = count;
                }
          }
-#line 3606 "awkgram.c" /* yacc.c:1646  */
+#line 3601 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 144:
-#line 1573 "awkgram.y" /* yacc.c:1646  */
+#line 1568 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3612 "awkgram.c" /* yacc.c:1646  */
+#line 3607 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 145:
-#line 1575 "awkgram.y" /* yacc.c:1646  */
+#line 1570 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3618 "awkgram.c" /* yacc.c:1646  */
+#line 3613 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 146:
-#line 1577 "awkgram.y" /* yacc.c:1646  */
+#line 1572 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3624 "awkgram.c" /* yacc.c:1646  */
+#line 3619 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 147:
-#line 1579 "awkgram.y" /* yacc.c:1646  */
+#line 1574 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3630 "awkgram.c" /* yacc.c:1646  */
+#line 3625 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 148:
-#line 1581 "awkgram.y" /* yacc.c:1646  */
+#line 1576 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3636 "awkgram.c" /* yacc.c:1646  */
+#line 3631 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 149:
-#line 1583 "awkgram.y" /* yacc.c:1646  */
+#line 1578 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3642 "awkgram.c" /* yacc.c:1646  */
+#line 3637 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 150:
-#line 1585 "awkgram.y" /* yacc.c:1646  */
+#line 1580 "awkgram.y" /* yacc.c:1646  */
     {
                /*
                 * In BEGINFILE/ENDFILE, allow `getline [var] < file'
@@ -3656,29 +3651,29 @@ regular_print:
                                _("non-redirected `getline' undefined inside 
END action"));
                (yyval) = mk_getline((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]), 
redirect_input);
          }
-#line 3660 "awkgram.c" /* yacc.c:1646  */
+#line 3655 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 151:
-#line 1599 "awkgram.y" /* yacc.c:1646  */
+#line 1594 "awkgram.y" /* yacc.c:1646  */
     {
                (yyvsp[0])->opcode = Op_postincrement;
                (yyval) = mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
          }
-#line 3669 "awkgram.c" /* yacc.c:1646  */
+#line 3664 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 152:
-#line 1604 "awkgram.y" /* yacc.c:1646  */
+#line 1599 "awkgram.y" /* yacc.c:1646  */
     {
                (yyvsp[0])->opcode = Op_postdecrement;
                (yyval) = mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
          }
-#line 3678 "awkgram.c" /* yacc.c:1646  */
+#line 3673 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 153:
-#line 1609 "awkgram.y" /* yacc.c:1646  */
+#line 1604 "awkgram.y" /* yacc.c:1646  */
     {
                if (do_lint_old) {
                    warning_ln((yyvsp[-1])->source_line,
@@ -3698,64 +3693,64 @@ regular_print:
                        (yyval) = list_append(list_merge(t, (yyvsp[0])), 
(yyvsp[-1]));
                }
          }
-#line 3702 "awkgram.c" /* yacc.c:1646  */
+#line 3697 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 154:
-#line 1634 "awkgram.y" /* yacc.c:1646  */
+#line 1629 "awkgram.y" /* yacc.c:1646  */
     {
                  (yyval) = mk_getline((yyvsp[-1]), (yyvsp[0]), (yyvsp[-3]), 
(yyvsp[-2])->redir_type);
                  bcfree((yyvsp[-2]));
                }
-#line 3711 "awkgram.c" /* yacc.c:1646  */
+#line 3706 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 155:
-#line 1640 "awkgram.y" /* yacc.c:1646  */
+#line 1635 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3717 "awkgram.c" /* yacc.c:1646  */
+#line 3712 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 156:
-#line 1642 "awkgram.y" /* yacc.c:1646  */
+#line 1637 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3723 "awkgram.c" /* yacc.c:1646  */
+#line 3718 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 157:
-#line 1644 "awkgram.y" /* yacc.c:1646  */
+#line 1639 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3729 "awkgram.c" /* yacc.c:1646  */
+#line 3724 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 158:
-#line 1646 "awkgram.y" /* yacc.c:1646  */
+#line 1641 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3735 "awkgram.c" /* yacc.c:1646  */
+#line 3730 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 159:
-#line 1648 "awkgram.y" /* yacc.c:1646  */
+#line 1643 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3741 "awkgram.c" /* yacc.c:1646  */
+#line 3736 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 160:
-#line 1650 "awkgram.y" /* yacc.c:1646  */
+#line 1645 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3747 "awkgram.c" /* yacc.c:1646  */
+#line 3742 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 161:
-#line 1655 "awkgram.y" /* yacc.c:1646  */
+#line 1650 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = list_create((yyvsp[0]));
          }
-#line 3755 "awkgram.c" /* yacc.c:1646  */
+#line 3750 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 162:
-#line 1659 "awkgram.y" /* yacc.c:1646  */
+#line 1654 "awkgram.y" /* yacc.c:1646  */
     {
                if ((yyvsp[0])->opcode == Op_match_rec) {
                        (yyvsp[0])->opcode = Op_nomatch;
@@ -3787,37 +3782,37 @@ regular_print:
                        }
                }
           }
-#line 3791 "awkgram.c" /* yacc.c:1646  */
+#line 3786 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 163:
-#line 1691 "awkgram.y" /* yacc.c:1646  */
+#line 1686 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[-1]); }
-#line 3797 "awkgram.c" /* yacc.c:1646  */
+#line 3792 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 164:
-#line 1693 "awkgram.y" /* yacc.c:1646  */
+#line 1688 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = snode((yyvsp[-1]), (yyvsp[-3]));
                if ((yyval) == NULL)
                        YYABORT;
          }
-#line 3807 "awkgram.c" /* yacc.c:1646  */
+#line 3802 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 165:
-#line 1699 "awkgram.y" /* yacc.c:1646  */
+#line 1694 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = snode((yyvsp[-1]), (yyvsp[-3]));
                if ((yyval) == NULL)
                        YYABORT;
          }
-#line 3817 "awkgram.c" /* yacc.c:1646  */
+#line 3812 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 166:
-#line 1705 "awkgram.y" /* yacc.c:1646  */
+#line 1700 "awkgram.y" /* yacc.c:1646  */
     {
                static bool warned = false;
 
@@ -3830,45 +3825,45 @@ regular_print:
                if ((yyval) == NULL)
                        YYABORT;
          }
-#line 3834 "awkgram.c" /* yacc.c:1646  */
+#line 3829 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 169:
-#line 1720 "awkgram.y" /* yacc.c:1646  */
+#line 1715 "awkgram.y" /* yacc.c:1646  */
     {
                (yyvsp[-1])->opcode = Op_preincrement;
                (yyval) = mk_assignment((yyvsp[0]), NULL, (yyvsp[-1]));
          }
-#line 3843 "awkgram.c" /* yacc.c:1646  */
+#line 3838 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 170:
-#line 1725 "awkgram.y" /* yacc.c:1646  */
+#line 1720 "awkgram.y" /* yacc.c:1646  */
     {
                (yyvsp[-1])->opcode = Op_predecrement;
                (yyval) = mk_assignment((yyvsp[0]), NULL, (yyvsp[-1]));
          }
-#line 3852 "awkgram.c" /* yacc.c:1646  */
+#line 3847 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 171:
-#line 1730 "awkgram.y" /* yacc.c:1646  */
+#line 1725 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = list_create((yyvsp[0]));
          }
-#line 3860 "awkgram.c" /* yacc.c:1646  */
+#line 3855 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 172:
-#line 1734 "awkgram.y" /* yacc.c:1646  */
+#line 1729 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = list_create((yyvsp[0]));
          }
-#line 3868 "awkgram.c" /* yacc.c:1646  */
+#line 3863 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 173:
-#line 1738 "awkgram.y" /* yacc.c:1646  */
+#line 1733 "awkgram.y" /* yacc.c:1646  */
     {
                if ((yyvsp[0])->lasti->opcode == Op_push_i
                        && ((yyvsp[0])->lasti->memory->flags & (STRCUR|STRING)) 
== 0
@@ -3883,11 +3878,11 @@ regular_print:
                        (yyval) = list_append((yyvsp[0]), (yyvsp[-1]));
                }
          }
-#line 3887 "awkgram.c" /* yacc.c:1646  */
+#line 3882 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 174:
-#line 1753 "awkgram.y" /* yacc.c:1646  */
+#line 1748 "awkgram.y" /* yacc.c:1646  */
     {
            /*
             * was: $$ = $2
@@ -3897,20 +3892,20 @@ regular_print:
                (yyvsp[-1])->memory = make_number(0.0);
                (yyval) = list_append((yyvsp[0]), (yyvsp[-1]));
          }
-#line 3901 "awkgram.c" /* yacc.c:1646  */
+#line 3896 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 175:
-#line 1766 "awkgram.y" /* yacc.c:1646  */
+#line 1761 "awkgram.y" /* yacc.c:1646  */
     {
                func_use((yyvsp[0])->lasti->func_name, FUNC_USE);
                (yyval) = (yyvsp[0]);
          }
-#line 3910 "awkgram.c" /* yacc.c:1646  */
+#line 3905 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 176:
-#line 1771 "awkgram.y" /* yacc.c:1646  */
+#line 1766 "awkgram.y" /* yacc.c:1646  */
     {
                /* indirect function call */
                INSTRUCTION *f, *t;
@@ -3944,11 +3939,11 @@ regular_print:
                (yyval) = list_prepend((yyvsp[0]), t);
                at_seen = false;
          }
-#line 3948 "awkgram.c" /* yacc.c:1646  */
+#line 3943 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 177:
-#line 1808 "awkgram.y" /* yacc.c:1646  */
+#line 1803 "awkgram.y" /* yacc.c:1646  */
     {
                NODE *n;
 
@@ -3973,49 +3968,49 @@ regular_print:
                        (yyval) = list_append(t, (yyvsp[-3]));
                }
          }
-#line 3977 "awkgram.c" /* yacc.c:1646  */
+#line 3972 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 178:
-#line 1836 "awkgram.y" /* yacc.c:1646  */
+#line 1831 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 3983 "awkgram.c" /* yacc.c:1646  */
+#line 3978 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 179:
-#line 1838 "awkgram.y" /* yacc.c:1646  */
+#line 1833 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3989 "awkgram.c" /* yacc.c:1646  */
+#line 3984 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 180:
-#line 1843 "awkgram.y" /* yacc.c:1646  */
+#line 1838 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 3995 "awkgram.c" /* yacc.c:1646  */
+#line 3990 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 181:
-#line 1845 "awkgram.y" /* yacc.c:1646  */
+#line 1840 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[-1]); }
-#line 4001 "awkgram.c" /* yacc.c:1646  */
+#line 3996 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 182:
-#line 1850 "awkgram.y" /* yacc.c:1646  */
+#line 1845 "awkgram.y" /* yacc.c:1646  */
     {  (yyval) = (yyvsp[0]); }
-#line 4007 "awkgram.c" /* yacc.c:1646  */
+#line 4002 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 183:
-#line 1852 "awkgram.y" /* yacc.c:1646  */
+#line 1847 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = list_merge((yyvsp[-1]), (yyvsp[0]));
          }
-#line 4015 "awkgram.c" /* yacc.c:1646  */
+#line 4010 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 184:
-#line 1859 "awkgram.y" /* yacc.c:1646  */
+#line 1854 "awkgram.y" /* yacc.c:1646  */
     {
                INSTRUCTION *ip = (yyvsp[0])->lasti; 
                int count = ip->sub_count;      /* # of SUBSEP-seperated 
expressions */
@@ -4029,11 +4024,11 @@ regular_print:
                sub_counter++;  /* count # of dimensions */
                (yyval) = (yyvsp[0]);
          }
-#line 4033 "awkgram.c" /* yacc.c:1646  */
+#line 4028 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 185:
-#line 1876 "awkgram.y" /* yacc.c:1646  */
+#line 1871 "awkgram.y" /* yacc.c:1646  */
     {
                INSTRUCTION *t = (yyvsp[-1]);
                if ((yyvsp[-1]) == NULL) {
@@ -4047,31 +4042,31 @@ regular_print:
                        (yyvsp[0])->sub_count = count_expressions(&t, false);
                (yyval) = list_append(t, (yyvsp[0]));
          }
-#line 4051 "awkgram.c" /* yacc.c:1646  */
+#line 4046 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 186:
-#line 1893 "awkgram.y" /* yacc.c:1646  */
+#line 1888 "awkgram.y" /* yacc.c:1646  */
     {  (yyval) = (yyvsp[0]); }
-#line 4057 "awkgram.c" /* yacc.c:1646  */
+#line 4052 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 187:
-#line 1895 "awkgram.y" /* yacc.c:1646  */
+#line 1890 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = list_merge((yyvsp[-1]), (yyvsp[0]));
          }
-#line 4065 "awkgram.c" /* yacc.c:1646  */
+#line 4060 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 188:
-#line 1902 "awkgram.y" /* yacc.c:1646  */
+#line 1897 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[-1]); }
-#line 4071 "awkgram.c" /* yacc.c:1646  */
+#line 4066 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 189:
-#line 1907 "awkgram.y" /* yacc.c:1646  */
+#line 1902 "awkgram.y" /* yacc.c:1646  */
     {
                char *var_name = (yyvsp[0])->lextok;
 
@@ -4079,22 +4074,22 @@ regular_print:
                (yyvsp[0])->memory = variable((yyvsp[0])->source_line, 
var_name, Node_var_new);
                (yyval) = list_create((yyvsp[0]));
          }
-#line 4083 "awkgram.c" /* yacc.c:1646  */
+#line 4078 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 190:
-#line 1915 "awkgram.y" /* yacc.c:1646  */
+#line 1910 "awkgram.y" /* yacc.c:1646  */
     {
                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 4094 "awkgram.c" /* yacc.c:1646  */
+#line 4089 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 191:
-#line 1925 "awkgram.y" /* yacc.c:1646  */
+#line 1920 "awkgram.y" /* yacc.c:1646  */
     {
                INSTRUCTION *ip = (yyvsp[0])->nexti;
                if (ip->opcode == Op_push
@@ -4106,73 +4101,73 @@ regular_print:
                } else
                        (yyval) = (yyvsp[0]);
          }
-#line 4110 "awkgram.c" /* yacc.c:1646  */
+#line 4105 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 192:
-#line 1937 "awkgram.y" /* yacc.c:1646  */
+#line 1932 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = list_append((yyvsp[-1]), (yyvsp[-2]));
                if ((yyvsp[0]) != NULL)
                        mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
          }
-#line 4120 "awkgram.c" /* yacc.c:1646  */
+#line 4115 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 193:
-#line 1946 "awkgram.y" /* yacc.c:1646  */
+#line 1941 "awkgram.y" /* yacc.c:1646  */
     {
                (yyvsp[0])->opcode = Op_postincrement;
          }
-#line 4128 "awkgram.c" /* yacc.c:1646  */
+#line 4123 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 194:
-#line 1950 "awkgram.y" /* yacc.c:1646  */
+#line 1945 "awkgram.y" /* yacc.c:1646  */
     {
                (yyvsp[0])->opcode = Op_postdecrement;
          }
-#line 4136 "awkgram.c" /* yacc.c:1646  */
+#line 4131 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 195:
-#line 1953 "awkgram.y" /* yacc.c:1646  */
+#line 1948 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 4142 "awkgram.c" /* yacc.c:1646  */
+#line 4137 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 197:
-#line 1961 "awkgram.y" /* yacc.c:1646  */
+#line 1956 "awkgram.y" /* yacc.c:1646  */
     { yyerrok; }
-#line 4148 "awkgram.c" /* yacc.c:1646  */
+#line 4143 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 198:
-#line 1965 "awkgram.y" /* yacc.c:1646  */
+#line 1960 "awkgram.y" /* yacc.c:1646  */
     { yyerrok; }
-#line 4154 "awkgram.c" /* yacc.c:1646  */
+#line 4149 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 201:
-#line 1974 "awkgram.y" /* yacc.c:1646  */
+#line 1969 "awkgram.y" /* yacc.c:1646  */
     { yyerrok; }
-#line 4160 "awkgram.c" /* yacc.c:1646  */
+#line 4155 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 202:
-#line 1978 "awkgram.y" /* yacc.c:1646  */
+#line 1973 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); yyerrok; }
-#line 4166 "awkgram.c" /* yacc.c:1646  */
+#line 4161 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 203:
-#line 1982 "awkgram.y" /* yacc.c:1646  */
+#line 1977 "awkgram.y" /* yacc.c:1646  */
     { yyerrok; }
-#line 4172 "awkgram.c" /* yacc.c:1646  */
+#line 4167 "awkgram.c" /* yacc.c:1646  */
     break;
 
 
-#line 4176 "awkgram.c" /* yacc.c:1646  */
+#line 4171 "awkgram.c" /* yacc.c:1646  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -4400,7 +4395,7 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 1984 "awkgram.y" /* yacc.c:1906  */
+#line 1979 "awkgram.y" /* yacc.c:1906  */
 
 
 struct token {
diff --git a/awkgram.y b/awkgram.y
index f4a5e9c..db70ccb 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -516,12 +516,7 @@ hard_regexp
                        YYABORT;
                  }
                  $$ = $1;
-#if 0
-                 /* Don't set this, on purpose */
-                 /* $$->opcode = Op_match_rec; */
-#else
                  $$->opcode = Op_push_re;
-#endif
                  $$->memory = n;
                }
 
diff --git a/builtin.c b/builtin.c
index 0241c29..afa06e4 100644
--- a/builtin.c
+++ b/builtin.c
@@ -481,6 +481,12 @@ do_isarray(int nargs)
 {
        NODE *tmp;
        int ret = 1;
+       static bool warned = false;
+
+       if (do_lint && ! warned) {
+               warned = true;
+               lintwarn(_("isarray is deprecated. Use typeof() instead"));
+       }
 
        tmp = POP();
        if (tmp->type != Node_var_array) {

http://git.sv.gnu.org/cgit/gawk.git/commit/?id=6853b3e94c03194200c5a7c4450820a8eaa0920f

commit 6853b3e94c03194200c5a7c4450820a8eaa0920f
Merge: 020be4c b4ef28f
Author: Arnold D. Robbins <address@hidden>
Date:   Tue Apr 28 16:46:05 2015 +0300

    Merge branch 'master' into feature/regex-type

diff --cc ChangeLog
index 4499f94,171fc15..3b78f84
--- a/ChangeLog
+++ b/ChangeLog
@@@ -48,9 -82,17 +82,23 @@@
        * builtin.c (call_sub): Fix for indirect gensub, 3 args now works.
  
        Unrelated:
+ 
+       * builtin.c (do_sub): Improve some variable names for readability
+       and add / expand some comments.
+ 
++      Unrelated:
++
 +      * builtin.c (call_sub, call_match, call_split_func): Allow for
 +      regex to be Node_hardregex.
 +
+ 2015-04-14         Andrew J. Schorr      <address@hidden>
+                  Arnold D. Robbins     <address@hidden>
+ 
+       * builtin.c (do_sub): Make computations smarter; initial len
+       to malloc, test for final amount after all matches done and
+       need to copy in the final part of the original string.
+ 
++
  2015-04-13         Arnold D. Robbins     <address@hidden>
  
        * regcomp.c (analyze): Prevent malloc(0).
diff --cc awkgram.c
index b4f71d4,ea8c48d..d3481c8
--- a/awkgram.c
+++ b/awkgram.c
@@@ -358,7 -361,7 +363,7 @@@ int yyparse (void)
  
  /* Copy the second part of user declarations.  */
  
- #line 362 "awkgram.c" /* yacc.c:358  */
 -#line 365 "awkgram.c" /* yacc.c:358  */
++#line 367 "awkgram.c" /* yacc.c:358  */
  
  #ifdef short
  # undef short
@@@ -600,16 -603,16 +605,16 @@@ union yyallo
  /* YYFINAL -- State number of the termination state.  */
  #define YYFINAL  2
  /* YYLAST -- Last index in YYTABLE.  */
- #define YYLAST   1220
 -#define YYLAST   1098
++#define YYLAST   1236
  
  /* YYNTOKENS -- Number of terminals.  */
 -#define YYNTOKENS  75
 +#define YYNTOKENS  76
  /* YYNNTS -- Number of nonterminals.  */
- #define YYNNTS  69
 -#define YYNNTS  66
++#define YYNNTS  70
  /* YYNRULES -- Number of rules.  */
- #define YYNRULES  202
 -#define YYNRULES  189
++#define YYNRULES  203
  /* YYNSTATES -- Number of states.  */
- #define YYNSTATES  349
 -#define YYNSTATES  336
++#define YYNSTATES  350
  
  /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
     by yylex, with out-of-bounds checking.  */
@@@ -660,27 -663,25 +665,27 @@@ static const yytype_uint8 yytranslate[
    /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
  static const yytype_uint16 yyrline[] =
  {
-        0,   205,   205,   207,   212,   213,   217,   229,   234,   245,
-      251,   257,   266,   274,   276,   281,   289,   291,   297,   305,
-      315,   345,   359,   373,   381,   392,   404,   406,   408,   414,
-      422,   423,   427,   462,   461,   495,   522,   524,   529,   535,
-      563,   568,   569,   573,   575,   577,   584,   674,   716,   758,
-      871,   878,   885,   895,   904,   913,   922,   933,   949,   948,
-      972,   984,   984,  1082,  1082,  1115,  1145,  1151,  1152,  1158,
-     1159,  1166,  1171,  1183,  1197,  1199,  1207,  1212,  1214,  1222,
-     1231,  1233,  1242,  1243,  1251,  1256,  1256,  1267,  1271,  1279,
-     1280,  1283,  1285,  1290,  1291,  1300,  1301,  1306,  1311,  1317,
-     1319,  1321,  1328,  1329,  1335,  1336,  1341,  1343,  1348,  1350,
-     1358,  1363,  1372,  1373,  1378,  1380,  1385,  1387,  1395,  1400,
-     1408,  1409,  1414,  1421,  1425,  1427,  1429,  1442,  1459,  1469,
-     1476,  1478,  1483,  1485,  1487,  1495,  1497,  1502,  1504,  1509,
-     1511,  1513,  1563,  1565,  1567,  1569,  1571,  1573,  1575,  1577,
-     1591,  1596,  1601,  1626,  1632,  1634,  1636,  1638,  1640,  1642,
-     1647,  1651,  1683,  1685,  1691,  1697,  1710,  1711,  1712,  1717,
-     1722,  1726,  1730,  1745,  1758,  1763,  1800,  1829,  1830,  1836,
-     1837,  1842,  1844,  1851,  1868,  1885,  1887,  1894,  1899,  1907,
-     1917,  1929,  1938,  1942,  1946,  1950,  1954,  1958,  1961,  1963,
-     1967,  1971,  1975
+        0,   210,   210,   212,   217,   218,   222,   234,   239,   250,
+      257,   263,   272,   280,   282,   287,   295,   297,   303,   311,
+      321,   351,   365,   379,   387,   398,   410,   412,   414,   420,
 -     428,   429,   433,   433,   469,   468,   502,   504,   509,   515,
 -     543,   548,   549,   553,   555,   557,   564,   654,   696,   738,
 -     851,   858,   865,   875,   884,   893,   902,   913,   929,   928,
 -     952,   964,   964,  1062,  1062,  1095,  1125,  1131,  1132,  1138,
 -    1139,  1146,  1151,  1163,  1177,  1179,  1187,  1192,  1194,  1202,
 -    1204,  1213,  1214,  1222,  1227,  1227,  1238,  1242,  1250,  1251,
 -    1254,  1256,  1261,  1262,  1271,  1272,  1277,  1282,  1288,  1290,
 -    1292,  1299,  1300,  1306,  1307,  1312,  1314,  1319,  1321,  1329,
 -    1334,  1343,  1350,  1352,  1354,  1370,  1380,  1387,  1389,  1394,
 -    1396,  1398,  1406,  1408,  1413,  1415,  1420,  1422,  1424,  1474,
 -    1476,  1478,  1480,  1482,  1484,  1486,  1488,  1502,  1507,  1512,
 -    1537,  1543,  1545,  1547,  1549,  1551,  1553,  1558,  1562,  1594,
 -    1596,  1602,  1608,  1621,  1622,  1623,  1628,  1633,  1637,  1641,
 -    1656,  1669,  1674,  1711,  1740,  1741,  1747,  1748,  1753,  1755,
 -    1762,  1779,  1796,  1798,  1805,  1810,  1818,  1828,  1840,  1849,
 -    1853,  1857,  1861,  1865,  1869,  1872,  1874,  1878,  1882,  1886
++     428,   429,   433,   433,   469,   468,   502,   529,   531,   536,
++     542,   570,   575,   576,   580,   582,   584,   591,   681,   723,
++     765,   878,   885,   892,   902,   911,   920,   929,   940,   956,
++     955,   979,   991,   991,  1089,  1089,  1122,  1152,  1158,  1159,
++    1165,  1166,  1173,  1178,  1190,  1204,  1206,  1214,  1219,  1221,
++    1229,  1238,  1240,  1249,  1250,  1258,  1263,  1263,  1274,  1278,
++    1286,  1287,  1290,  1292,  1297,  1298,  1307,  1308,  1313,  1318,
++    1324,  1326,  1328,  1335,  1336,  1342,  1343,  1348,  1350,  1355,
++    1357,  1365,  1370,  1379,  1380,  1385,  1387,  1392,  1394,  1402,
++    1407,  1415,  1416,  1421,  1428,  1432,  1434,  1436,  1449,  1466,
++    1476,  1483,  1485,  1490,  1492,  1494,  1502,  1504,  1509,  1511,
++    1516,  1518,  1520,  1570,  1572,  1574,  1576,  1578,  1580,  1582,
++    1584,  1598,  1603,  1608,  1633,  1639,  1641,  1643,  1645,  1647,
++    1649,  1654,  1658,  1690,  1692,  1698,  1704,  1717,  1718,  1719,
++    1724,  1729,  1733,  1737,  1752,  1765,  1770,  1807,  1836,  1837,
++    1843,  1844,  1849,  1851,  1858,  1875,  1892,  1894,  1901,  1906,
++    1914,  1924,  1936,  1945,  1949,  1953,  1957,  1961,  1965,  1968,
++    1970,  1974,  1978,  1982
  };
  #endif
  
@@@ -690,32 -691,30 +695,32 @@@
  static const char *const yytname[] =
  {
    "$end", "error", "$undefined", "FUNC_CALL", "NAME", "REGEXP",
 -  "FILENAME", "YNUMBER", "YSTRING", "RELOP", "IO_OUT", "IO_IN", "ASSIGNOP",
 -  "ASSIGN", "MATCHOP", "CONCAT_OP", "SUBSCRIPT", "LEX_BEGIN", "LEX_END",
 -  "LEX_IF", "LEX_ELSE", "LEX_RETURN", "LEX_DELETE", "LEX_SWITCH",
 -  "LEX_CASE", "LEX_DEFAULT", "LEX_WHILE", "LEX_DO", "LEX_FOR", "LEX_BREAK",
 -  "LEX_CONTINUE", "LEX_PRINT", "LEX_PRINTF", "LEX_NEXT", "LEX_EXIT",
 -  "LEX_FUNCTION", "LEX_BEGINFILE", "LEX_ENDFILE", "LEX_GETLINE",
 -  "LEX_NEXTFILE", "LEX_IN", "LEX_AND", "LEX_OR", "INCREMENT", "DECREMENT",
 -  "LEX_BUILTIN", "LEX_LENGTH", "LEX_EOF", "LEX_INCLUDE", "LEX_EVAL",
 -  "LEX_LOAD", "NEWLINE", "SLASH_BEFORE_EQUAL", "'?'", "':'", "','", "'<'",
 -  "'>'", "'+'", "'-'", "'*'", "'/'", "'%'", "'!'", "UNARY", "'^'", "'$'",
 -  "'('", "')'", "'@'", "'['", "']'", "'{'", "'}'", "';'", "$accept",
 -  "program", "rule", "source", "library", "pattern", "action", "func_name",
 -  "lex_builtin", "function_prologue", "address@hidden", "regexp", 
"address@hidden", "a_slash",
 -  "statements", "statement_term", "statement", "non_compound_stmt", 
"address@hidden",
 -  "simple_stmt", "address@hidden", "address@hidden", "opt_simple_stmt", 
"case_statements",
 -  "case_statement", "case_value", "print", "print_expression_list",
 -  "output_redir", "address@hidden", "if_statement", "nls", "opt_nls", 
"input_redir",
 -  "opt_param_list", "param_list", "opt_exp", "opt_expression_list",
 -  "expression_list", "exp", "assign_operator", "relop_or_less", "a_relop",
 -  "common_exp", "simp_exp", "simp_exp_nc", "non_post_simp_exp",
 -  "func_call", "direct_func_call", "opt_variable", "delete_subscript_list",
 -  "delete_subscript", "delete_exp_list", "bracketed_exp_list", "subscript",
 -  "subscript_list", "simple_variable", "variable", "opt_incdec", "l_brace",
 -  "r_brace", "r_paren", "opt_semi", "semi", "colon", "comma", YY_NULLPTR
 +  "FILENAME", "YNUMBER", "YSTRING", "HARD_REGEXP", "RELOP", "IO_OUT",
 +  "IO_IN", "ASSIGNOP", "ASSIGN", "MATCHOP", "CONCAT_OP", "SUBSCRIPT",
 +  "LEX_BEGIN", "LEX_END", "LEX_IF", "LEX_ELSE", "LEX_RETURN", "LEX_DELETE",
 +  "LEX_SWITCH", "LEX_CASE", "LEX_DEFAULT", "LEX_WHILE", "LEX_DO",
 +  "LEX_FOR", "LEX_BREAK", "LEX_CONTINUE", "LEX_PRINT", "LEX_PRINTF",
 +  "LEX_NEXT", "LEX_EXIT", "LEX_FUNCTION", "LEX_BEGINFILE", "LEX_ENDFILE",
 +  "LEX_GETLINE", "LEX_NEXTFILE", "LEX_IN", "LEX_AND", "LEX_OR",
 +  "INCREMENT", "DECREMENT", "LEX_BUILTIN", "LEX_LENGTH", "LEX_EOF",
 +  "LEX_INCLUDE", "LEX_EVAL", "LEX_LOAD", "NEWLINE", "SLASH_BEFORE_EQUAL",
 +  "'?'", "':'", "','", "'<'", "'>'", "'+'", "'-'", "'*'", "'/'", "'%'",
 +  "'!'", "UNARY", "'^'", "'$'", "'('", "')'", "'@'", "'['", "']'", "'{'",
 +  "'}'", "';'", "$accept", "program", "rule", "source", "library",
 +  "pattern", "action", "func_name", "lex_builtin", "function_prologue",
-   "regexp", "address@hidden", "hard_regexp", "a_slash", "statements",
-   "statement_term", "statement", "non_compound_stmt", "address@hidden", 
"simple_stmt",
-   "address@hidden", "address@hidden", "opt_simple_stmt", "case_statements", 
"case_statement",
-   "case_value", "print", "print_expression_list", "output_redir", 
"address@hidden",
++  "address@hidden", "regexp", "address@hidden", "hard_regexp", "a_slash", 
"statements",
++  "statement_term", "statement", "non_compound_stmt", "address@hidden", 
"simple_stmt",
++  "address@hidden", "address@hidden", "opt_simple_stmt", "case_statements", 
"case_statement",
++  "case_value", "print", "print_expression_list", "output_redir", 
"address@hidden",
 +  "if_statement", "nls", "opt_nls", "input_redir", "opt_param_list",
 +  "param_list", "opt_exp", "opt_expression_list", "expression_list",
 +  "opt_fcall_expression_list", "fcall_expression_list", "fcall_exp", "exp",
 +  "assign_operator", "relop_or_less", "a_relop", "common_exp", "simp_exp",
 +  "simp_exp_nc", "non_post_simp_exp", "func_call", "direct_func_call",
 +  "opt_variable", "delete_subscript_list", "delete_subscript",
 +  "delete_exp_list", "bracketed_exp_list", "subscript", "subscript_list",
 +  "simple_variable", "variable", "opt_incdec", "l_brace", "r_brace",
 +  "r_paren", "opt_semi", "semi", "colon", "comma", YY_NULLPTR
  };
  #endif
  
@@@ -735,55 -734,54 +740,55 @@@ static const yytype_uint16 yytoknum[] 
  };
  # endif
  
- #define YYPACT_NINF -274
 -#define YYPACT_NINF -271
++#define YYPACT_NINF -275
  
  #define yypact_value_is_default(Yystate) \
-   (!!((Yystate) == (-274)))
 -  (!!((Yystate) == (-271)))
++  (!!((Yystate) == (-275)))
  
- #define YYTABLE_NINF -114
 -#define YYTABLE_NINF -105
++#define YYTABLE_NINF -115
  
  #define yytable_value_is_error(Yytable_value) \
-   (!!((Yytable_value) == (-114)))
 -  (!!((Yytable_value) == (-105)))
++  (!!((Yytable_value) == (-115)))
  
    /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
       STATE-NUM.  */
  static const yytype_int16 yypact[] =
  {
-     -274,   360,  -274,  -274,   -17,   -23,  -274,  -274,  -274,  -274,
-      128,  -274,  -274,    14,    14,    14,   -11,     8,  -274,  -274,
-     -274,  1123,  1123,  -274,  1123,  1150,   853,   151,  -274,   -20,
-      -10,  -274,  -274,    20,   868,  1049,   252,   276,  -274,  -274,
-     -274,  -274,   264,   779,   853,  -274,     9,  -274,  -274,  -274,
-     -274,  -274,    28,    45,  -274,    10,  -274,  -274,  -274,   779,
-      779,   134,    75,   104,    75,    75,  1123,   127,  -274,  -274,
-       15,   333,    44,    63,  -274,   106,  -274,  -274,  -274,    20,
-     -274,   106,  -274,   157,  -274,  -274,  1076,   152,  1123,  1123,
-     1123,   106,  -274,  -274,  -274,  1123,   145,   252,  1123,  1123,
-     1123,  1123,  1123,  1123,  1123,  1123,  1123,  1123,  1123,  1123,
-     -274,   164,  -274,  -274,   172,  1123,  -274,  -274,  -274,    97,
-       73,  -274,  1091,    36,  1091,  -274,  -274,  -274,    26,  1123,
-     -274,    97,    97,   333,  -274,  -274,  -274,  1123,   106,  -274,
-      146,   900,  -274,  -274,    16,   -21,  -274,    34,   -21,    20,
-     -274,   583,  -274,  -274,  -274,   173,  -274,   209,   374,  1032,
-     1123,   215,    14,   102,   102,    75,    75,    75,    75,   102,
-      102,    75,    75,    75,    75,  -274,  -274,  1091,  -274,  1076,
-      826,  -274,  -274,  -274,    97,   111,   252,  -274,  -274,  1091,
-     -274,   152,  -274,  1091,  -274,  -274,  -274,  -274,  -274,   120,
-     -274,    42,   126,   131,   106,   135,   -21,   -21,  -274,  -274,
-      -21,  1123,   -21,   106,  -274,  -274,   -21,  -274,  -274,  1091,
-     -274,   115,   106,  1123,  1091,  -274,  -274,  -274,  -274,   106,
-     -274,    43,  -274,  1123,  1123,  -274,   203,  1123,  1123,   699,
-      933,  -274,  -274,  -274,   -21,  1091,  -274,  -274,  -274,   630,
-      583,   106,  -274,  -274,  1091,  -274,  -274,  -274,   333,   -21,
-      -23,   147,   333,   333,   199,    -5,  -274,   115,  -274,   853,
-      216,  -274,     4,  -274,  -274,   106,  -274,  -274,   122,  -274,
-     -274,  -274,   106,   106,   167,   152,   106,    15,  -274,  -274,
-      699,  -274,  -274,   -10,   699,  1123,    97,   746,   146,  1123,
-      218,  -274,  -274,   333,   106,   246,   106,  1049,   106,   144,
-      106,   699,   106,   981,   699,  -274,   272,   185,  -274,   168,
-     -274,  -274,   981,    97,  -274,  -274,  -274,   236,   238,  -274,
-     -274,   185,  -274,   106,  -274,    97,   106,  -274,  -274,   106,
-     -274,   106,   699,  -274,   433,   699,  -274,   508,  -274
 -    -271,   359,  -271,  -271,   -35,     3,  -271,  -271,  -271,  -271,
 -     241,  -271,  -271,    42,    42,    42,     9,    50,  -271,  -271,
 -    -271,  1002,  1002,  -271,  1002,   287,   804,    31,  -271,    83,
 -       5,  -271,  -271,    72,   219,   975,   426,   456,  -271,  -271,
 -    -271,  -271,   162,   772,   804,  -271,    14,  -271,  -271,  -271,
 -    -271,  -271,    77,    66,  -271,    80,  -271,  -271,  -271,   772,
 -     772,   168,    93,    -6,    93,    93,  1002,    10,  -271,  -271,
 -      27,   333,    44,   124,  -271,   114,  -271,  -271,  -271,    72,
 -    -271,   114,  -271,   173,  -271,  -271,  1002,   169,  1002,  1002,
 -    1002,   114,  -271,  -271,  -271,  1002,   142,   426,  1002,  1002,
 -    1002,  1002,  1002,  1002,  1002,  1002,  1002,  1002,  1002,  1002,
 -    -271,  -271,  -271,  -271,   172,  1002,   119,   158,   741,    15,
 -    -271,  -271,  -271,  -271,  1002,  -271,   119,   119,   333,  -271,
 -    -271,  -271,  1002,   114,  -271,   151,   850,  -271,  -271,     4,
 -     -10,  -271,    17,   -10,    72,  -271,   579,  -271,  -271,    62,
 -    -271,   249,   373,  1041,  1002,   104,    42,   -13,   -13,    93,
 -      93,    93,    93,   -13,   -13,    93,    93,    93,    93,  -271,
 -     741,  -271,  -271,    25,   426,  -271,  -271,   741,  -271,   169,
 -    -271,   741,  -271,  -271,  -271,  -271,  -271,   125,  -271,    23,
 -     127,   133,   114,   134,   -10,   -10,  -271,  -271,   -10,  1002,
 -     -10,   114,  -271,  -271,   -10,  -271,  -271,   741,  -271,   130,
 -     114,  1002,   741,  -271,  -271,  -271,   119,    61,  -271,  1002,
 -    1002,  -271,   189,  1002,  1002,   693,   883,  -271,  -271,  -271,
 -     -10,   741,  -271,  -271,  -271,   625,   579,   114,  -271,  -271,
 -     741,   114,  -271,    35,   333,   -10,     3,   148,   333,   333,
 -     194,   -19,  -271,   130,  -271,   804,   226,  -271,  -271,  -271,
 -    -271,  -271,  -271,   114,  -271,  -271,    41,  -271,  -271,  -271,
 -     114,   114,   175,   169,   114,    27,  -271,  -271,   693,  -271,
 -    -271,     5,   693,  1002,   119,   726,   151,  1002,   220,  -271,
 -    -271,   333,   114,   155,   114,   975,   114,   126,   114,   693,
 -     114,   929,   693,  -271,   384,   192,  -271,   176,  -271,  -271,
 -     929,   119,  -271,  -271,  -271,   243,   245,  -271,   192,  -271,
 -     114,  -271,   119,   114,  -271,  -271,   114,  -271,   114,   693,
 -    -271,   431,   693,  -271,   505,  -271
++    -275,   376,  -275,  -275,   -12,    -9,  -275,  -275,  -275,  -275,
++     171,  -275,  -275,    44,    44,    44,     5,    40,  -275,  -275,
++    -275,  1139,  1139,  -275,  1139,  1166,   869,    27,  -275,   -18,
++       2,  -275,  -275,    89,   884,  1065,   192,   214,  -275,  -275,
++    -275,  -275,   248,   795,   869,  -275,    10,  -275,  -275,  -275,
++    -275,  -275,   116,    82,  -275,   115,  -275,  -275,  -275,   795,
++     795,   166,   107,   104,   107,   107,  1139,   117,  -275,  -275,
++      15,   349,    23,    45,  -275,   125,  -275,  -275,  -275,    89,
++    -275,   125,  -275,   178,  -275,  -275,  1092,   172,  1139,  1139,
++    1139,   125,  -275,  -275,  -275,  1139,   146,   192,  1139,  1139,
++    1139,  1139,  1139,  1139,  1139,  1139,  1139,  1139,  1139,  1139,
++    -275,   181,  -275,  -275,   173,  1139,  -275,  -275,  -275,   128,
++      73,  -275,  1107,    14,  1107,  -275,  -275,  -275,  -275,  1139,
++    -275,   128,   128,   349,  -275,  -275,  -275,  1139,   125,  -275,
++     152,   916,  -275,  -275,    16,    92,  -275,    20,    92,    89,
++    -275,   599,  -275,  -275,  -275,   148,  -275,   124,    22,  1048,
++    1139,   199,    44,   265,   265,   107,   107,   107,   107,   265,
++     265,   107,   107,   107,   107,  -275,  -275,  1107,  -275,  1092,
++     842,  -275,    43,   192,  -275,  -275,  1107,  -275,   172,  -275,
++    1107,  -275,  -275,  -275,  -275,  -275,   133,  -275,    41,   144,
++     145,   125,   147,    92,    92,  -275,  -275,    92,  1139,    92,
++     125,  -275,  -275,    92,  -275,  -275,  1107,  -275,   151,   125,
++    1139,  1107,  -275,  -275,  -275,  -275,  -275,  -275,   128,    76,
++    -275,  1139,  1139,  -275,   224,  1139,  1139,   715,   949,  -275,
++    -275,  -275,    92,  1107,  -275,  -275,  -275,   646,   599,   125,
++    -275,  -275,  1107,   125,  -275,    49,   349,    92,    -9,   160,
++     349,   349,   206,   113,  -275,   151,  -275,   869,   225,  -275,
++     169,  -275,  -275,  -275,  -275,  -275,   125,  -275,  -275,    11,
++    -275,  -275,  -275,   125,   125,   179,   172,   125,    15,  -275,
++    -275,   715,  -275,  -275,     2,   715,  1139,   128,   762,   152,
++    1139,   219,  -275,  -275,   349,   125,   275,   125,  1065,   125,
++     112,   125,   715,   125,   997,   715,  -275,   261,   205,  -275,
++     191,  -275,  -275,   997,   128,  -275,  -275,  -275,   271,   272,
++    -275,  -275,   205,  -275,   125,  -275,   128,   125,  -275,  -275,
++     125,  -275,   125,   715,  -275,   449,   715,  -275,   524,  -275
  };
  
    /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@@ -791,65 -789,64 +796,65 @@@
       means the default is an error.  */
  static const yytype_uint8 yydefact[] =
  {
-        2,     0,     1,     6,     0,   188,   170,   171,    21,    22,
-        0,    23,    24,   177,     0,     0,     0,   165,     5,    89,
-       37,     0,     0,    36,     0,     0,     0,     0,     3,     0,
-        0,   160,    33,     4,    19,   131,   139,   140,   142,   166,
-      174,   190,   167,     0,     0,   185,     0,   189,    27,    26,
-       30,    31,     0,     0,    28,    93,   178,   168,   169,     0,
-        0,     0,   173,   167,   172,   161,     0,   194,   167,   108,
-        0,   106,     0,     0,   175,    91,   200,     7,     8,    41,
-       38,    91,     9,     0,    90,   135,     0,     0,     0,     0,
-        0,    91,   136,   138,   137,     0,     0,   141,     0,     0,
 -       2,     0,     1,     6,     0,   175,   157,   158,    21,    22,
 -       0,    23,    24,   164,     0,     0,     0,   152,     5,    88,
 -      37,     0,     0,    36,     0,     0,     0,     0,     3,     0,
 -       0,   147,    34,     4,    19,   118,   126,   127,   129,   153,
 -     161,   177,   154,     0,     0,   172,     0,   176,    27,    26,
 -      30,    31,     0,     0,    28,    92,   165,   155,   156,     0,
 -       0,     0,   160,   154,   159,   148,     0,   181,   154,   107,
 -       0,   105,     0,     0,   162,    90,   187,     7,     8,    41,
 -      38,    90,     9,     0,    89,   122,     0,     0,     0,     0,
 -       0,    90,   123,   125,   124,     0,     0,   128,     0,     0,
++       2,     0,     1,     6,     0,   189,   171,   172,    21,    22,
++       0,    23,    24,   178,     0,     0,     0,   166,     5,    90,
++      38,     0,     0,    37,     0,     0,     0,     0,     3,     0,
++       0,   161,    34,     4,    19,   132,   140,   141,   143,   167,
++     175,   191,   168,     0,     0,   186,     0,   190,    27,    26,
++      30,    31,     0,     0,    28,    94,   179,   169,   170,     0,
++       0,     0,   174,   168,   173,   162,     0,   195,   168,   109,
++       0,   107,     0,     0,   176,    92,   201,     7,     8,    42,
++      39,    92,     9,     0,    91,   136,     0,     0,     0,     0,
++       0,    92,   137,   139,   138,     0,     0,   142,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      133,   132,   150,   151,     0,     0,   116,    35,   121,     0,
-        0,   114,   120,     0,   106,   187,   186,    29,     0,     0,
-      149,     0,     0,     0,   192,   193,   191,   109,    91,   197,
-        0,     0,   162,    14,     0,     0,    17,     0,     0,    92,
-      195,     0,    42,    34,   126,   127,   128,   124,   125,     0,
-        0,   129,   177,   147,   148,   144,   145,   146,   143,   158,
-      159,   155,   156,   157,   154,   123,   134,   122,   176,   117,
-        0,   184,    99,    97,     0,     0,    94,   163,   164,   110,
-      202,     0,   111,   107,    13,    10,    16,    11,    40,     0,
-       58,     0,     0,     0,    91,     0,     0,     0,    80,    81,
-        0,   102,     0,    91,    39,    52,     0,    61,    45,    66,
-       38,   198,    91,     0,    20,   153,   118,   119,   115,    91,
-      100,     0,   152,     0,   102,    63,     0,     0,     0,     0,
-       67,    53,    54,    55,     0,   103,    56,   196,    60,     0,
-        0,    91,   199,    43,   130,    32,   101,    98,     0,     0,
-      179,     0,     0,     0,     0,   188,    68,     0,    57,     0,
-       84,    82,     0,    44,    25,    91,    59,    64,     0,   181,
-      183,    65,    91,    91,     0,     0,    91,     0,    85,    62,
-        0,   180,   182,     0,     0,     0,     0,     0,    83,     0,
-       87,    69,    47,     0,    91,     0,    91,    86,    91,     0,
-       91,     0,    91,    67,     0,    71,     0,     0,    70,     0,
-       48,    49,    67,     0,    88,    74,    77,     0,     0,    78,
-       79,     0,   201,    91,    46,     0,    91,    76,    75,    91,
-       38,    91,     0,    38,     0,     0,    51,     0,    50
 -     120,   119,   137,   138,     0,     0,     0,     0,   105,     0,
 -     174,   173,    29,    32,     0,   136,     0,     0,     0,   179,
 -     180,   178,   108,    90,   184,     0,     0,   149,    14,     0,
 -       0,    17,     0,     0,    91,   182,     0,    42,    35,   114,
 -     115,   112,   113,     0,     0,   116,   164,   134,   135,   131,
 -     132,   133,   130,   145,   146,   142,   143,   144,   141,   121,
 -     111,   163,   171,     0,    93,   150,   151,   109,   189,     0,
 -     110,   106,    13,    10,    16,    11,    40,     0,    58,     0,
 -       0,     0,    90,     0,     0,     0,    79,    80,     0,   101,
 -       0,    90,    39,    52,     0,    61,    45,    66,    38,   185,
 -      90,     0,    20,   140,    98,    96,     0,     0,   139,     0,
 -     101,    63,     0,     0,     0,     0,    67,    53,    54,    55,
 -       0,   102,    56,   183,    60,     0,     0,    90,   186,    43,
 -     117,    90,    99,     0,     0,     0,   166,     0,     0,     0,
 -       0,   175,    68,     0,    57,     0,    83,    81,    44,    25,
 -      33,   100,    97,    90,    59,    64,     0,   168,   170,    65,
 -      90,    90,     0,     0,    90,     0,    84,    62,     0,   167,
 -     169,     0,     0,     0,     0,     0,    82,     0,    86,    69,
 -      47,     0,    90,     0,    90,    85,    90,     0,    90,     0,
 -      90,    67,     0,    71,     0,     0,    70,     0,    48,    49,
 -      67,     0,    87,    74,    77,     0,     0,    78,     0,   188,
 -      90,    46,     0,    90,    76,    75,    90,    38,    90,     0,
 -      38,     0,     0,    51,     0,    50
++     134,   133,   151,   152,     0,     0,   117,    36,   122,     0,
++       0,   115,   121,     0,   107,   188,   187,    29,    32,     0,
++     150,     0,     0,     0,   193,   194,   192,   110,    92,   198,
++       0,     0,   163,    14,     0,     0,    17,     0,     0,    93,
++     196,     0,    43,    35,   127,   128,   129,   125,   126,     0,
++       0,   130,   178,   148,   149,   145,   146,   147,   144,   159,
++     160,   156,   157,   158,   155,   124,   135,   123,   177,   118,
++       0,   185,     0,    95,   164,   165,   111,   203,     0,   112,
++     108,    13,    10,    16,    11,    41,     0,    59,     0,     0,
++       0,    92,     0,     0,     0,    81,    82,     0,   103,     0,
++      92,    40,    53,     0,    62,    46,    67,    39,   199,    92,
++       0,    20,   154,   119,   120,   116,   100,    98,     0,     0,
++     153,     0,   103,    64,     0,     0,     0,     0,    68,    54,
++      55,    56,     0,   104,    57,   197,    61,     0,     0,    92,
++     200,    44,   131,    92,   101,     0,     0,     0,   180,     0,
++       0,     0,     0,   189,    69,     0,    58,     0,    85,    83,
++       0,    45,    25,    33,   102,    99,    92,    60,    65,     0,
++     182,   184,    66,    92,    92,     0,     0,    92,     0,    86,
++      63,     0,   181,   183,     0,     0,     0,     0,     0,    84,
++       0,    88,    70,    48,     0,    92,     0,    92,    87,    92,
++       0,    92,     0,    92,    68,     0,    72,     0,     0,    71,
++       0,    49,    50,    68,     0,    89,    75,    78,     0,     0,
++      79,    80,     0,   202,    92,    47,     0,    92,    77,    76,
++      92,    39,    92,     0,    39,     0,     0,    52,     0,    51
  };
  
    /* YYPGOTO[NTERM-NUM].  */
  static const yytype_int16 yypgoto[] =
  {
-     -274,  -274,  -274,  -274,  -274,  -274,   223,  -274,  -274,  -274,
-      -70,  -274,   -82,  -274,  -196,   -55,   -19,  -274,  -274,  -179,
-     -274,  -274,  -273,  -274,  -274,  -274,  -274,  -274,  -274,  -274,
-     -274,     5,    47,  -274,  -274,  -274,    21,  -274,   -41,   117,
-     -274,     2,    -1,  -274,  -274,  -274,   -42,    17,  -274,   233,
-     -274,     1,   100,  -274,  -274,    -8,   -37,  -274,  -274,   -80,
-       -2,  -274,   -28,  -242,   -49,  -274,   -15,   -72,  -110
 -    -271,  -271,  -271,  -271,  -271,  -271,   218,  -271,  -271,  -271,
 -    -271,   -40,  -271,  -271,  -206,   113,  -150,  -271,  -271,  -218,
 -    -271,  -271,  -270,  -271,  -271,  -271,  -271,  -271,  -271,  -271,
 -    -271,    43,    29,  -271,  -271,  -271,    47,   -45,   -20,    -1,
 -    -271,  -271,  -271,   -18,    39,  -271,   246,  -271,     8,   112,
 -    -271,  -271,    11,   -39,  -271,  -271,   -70,    -2,  -271,   -26,
 -    -227,   -60,  -271,   -28,   -38,    64
++    -275,  -275,  -275,  -275,  -275,  -275,   252,  -275,  -275,  -275,
++    -275,   -33,  -275,   -80,  -275,  -213,   100,  -144,  -275,  -275,
++    -231,  -275,  -275,  -274,  -275,  -275,  -275,  -275,  -275,  -275,
++    -275,  -275,     7,    62,  -275,  -275,  -275,    54,  -275,   -43,
++       1,  -275,   -23,    -1,  -275,  -275,  -275,   -13,    17,  -275,
++     263,  -275,     8,   127,  -275,  -275,    21,   -36,  -275,  -275,
++     -78,    -2,  -275,   -27,  -230,   -65,  -275,   -15,   -38,   -94
  };
  
    /* YYDEFGOTO[NTERM-NUM].  */
  static const yytype_int16 yydefgoto[] =
  {
 -      -1,     1,    28,   140,   143,    29,    77,    53,    54,    30,
 -     173,    31,    83,    32,   146,    78,   202,   203,   220,   204,
 -     235,   246,   253,   297,   306,   318,   205,   256,   277,   287,
 -     206,   144,   145,   125,   216,   217,   230,   116,   117,   207,
 -     115,    94,    95,    35,    36,    37,    38,    39,    40,    55,
 -     265,   266,   267,    45,    46,    47,    41,    42,   131,   208,
 -     209,   137,   237,   210,   320,   136
 +      -1,     1,    28,   145,   148,    29,    77,    53,    54,    30,
-       31,    83,   118,    32,   151,    78,   214,   215,   234,   216,
-      249,   260,   267,   309,   318,   331,   217,   270,   289,   299,
-      218,   149,   150,   130,   184,   185,   244,   271,    70,   119,
-      120,   121,   219,   115,    94,    95,    35,    36,    37,    38,
-       39,    40,    55,   277,   278,   279,    45,    46,    47,    41,
-       42,   136,   220,   221,   142,   251,   222,   333,   141
++     182,    31,    83,   118,    32,   151,    78,   211,   212,   232,
++     213,   247,   258,   265,   310,   319,   332,   214,   268,   290,
++     300,   215,   149,   150,   130,   228,   229,   242,   269,    70,
++     119,   120,   121,   216,   115,    94,    95,    35,    36,    37,
++      38,    39,    40,    55,   278,   279,   280,    45,    46,    47,
++      41,    42,   136,   217,   218,   142,   249,   219,   334,   141
  };
  
    /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
@@@ -857,323 -854,294 +862,325 @@@
       number is the opposite.  If YYTABLE_NINF, syntax error.  */
  static const yytype_int16 yytable[] =
  {
-       34,    80,    80,   123,   154,   137,    33,   156,   273,   126,
-      180,    56,    57,    58,    81,  -105,   137,   194,     5,    63,
-       63,   140,    63,    68,   250,    71,   125,   182,    74,   175,
-      183,    19,    19,    63,    79,   196,   285,   137,    62,    64,
-      323,    65,   122,   124,   256,   143,   235,   257,    44,   335,
-      144,    43,    97,    75,    76,    76,  -105,    59,   122,   122,
-      138,   266,    74,    75,   146,   133,    44,   129,   -12,   147,
-      178,   138,    84,  -105,   179,   231,    60,   334,   127,  -105,
-       44,    25,   187,   188,   139,   155,   -15,   157,   158,   159,
-      195,   -12,   138,   197,   161,   -95,    63,    63,    63,    63,
-       63,    63,    63,    63,    63,    63,    63,    63,   181,   -15,
-      236,   232,   230,   128,   177,   163,   164,   165,   166,   167,
-      168,   169,   170,   171,   172,   173,   174,    63,   152,   138,
-       81,    48,    49,    81,   266,   229,   189,     4,   160,   291,
-      193,   103,  -113,   266,   344,   315,   186,   347,   112,   113,
-       79,   241,   242,    79,     4,   243,     5,   246,    19,   224,
-       56,   248,   153,   100,   101,   102,   139,   138,   103,   316,
-      317,   134,   135,   117,    50,    51,   131,   132,   122,   122,
-      -96,   226,   228,    85,   162,   190,   176,   191,   233,   268,
-       76,    81,    81,    44,   237,    81,    19,    81,    52,   238,
-       72,    81,    73,   240,   276,   296,   252,   261,   272,   275,
-      245,    79,    79,   282,   283,    79,   281,    79,   -91,    85,
-      264,    79,   254,   280,    86,  -114,   284,   288,   287,    81,
-       92,    93,   258,   245,   330,   295,   262,   263,   298,   308,
-      332,   280,   213,   337,    81,   338,   329,   304,   124,    79,
-       87,   239,   286,    82,   310,   259,    85,   307,    67,   339,
-      247,    86,   225,     0,    79,   301,    92,    93,    71,   253,
-      292,   300,  -114,  -114,   336,   302,   255,   110,   111,   325,
-      326,   117,   306,     0,     0,     0,   341,    87,    88,    89,
-      312,     0,   321,     0,   303,   324,   305,    63,   274,     0,
-       90,     0,     0,    92,    93,    63,     0,     0,   112,   113,
-        0,    98,    99,   100,   101,   102,     0,   114,   103,     0,
-        0,    76,   290,   346,    97,    20,   348,     0,     0,   293,
-      294,   327,   328,   297,    23,   104,   105,   106,   107,   108,
-        0,     0,   109,    85,     0,     0,     0,     0,    86,     0,
-        0,   311,     0,   313,     0,   314,   319,   320,     0,   322,
-        2,     3,     0,     4,     5,     0,     0,     6,     7,     0,
-        0,     0,     0,     0,    87,    88,    89,     0,     8,     9,
-      340,     0,     0,   342,    85,     0,   343,    90,   345,    86,
-       92,    93,     0,     0,     0,     0,    10,    11,    12,    13,
-        0,     0,   139,     0,    14,    15,    16,    17,    18,     0,
-        0,     0,    19,    20,     0,    87,    88,     0,     0,    21,
-       22,     0,    23,     0,    24,     0,     0,    25,    26,     0,
-       27,    92,    93,   -18,   198,   -18,     4,     5,     0,     0,
-        6,     7,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,   199,     0,   200,   201,   202,   -73,   -73,
-      203,   204,   205,   206,   207,   208,   209,   210,   211,     0,
-        0,     0,    13,   212,     0,     0,     0,    14,    15,    16,
-       17,     0,     0,     0,     0,   -73,    20,     0,     0,     0,
-        0,     0,    21,    22,     0,    23,     0,    24,     0,     0,
-       25,    26,     0,    61,     0,     0,    75,   -73,    76,   198,
-        0,     4,     5,     0,     0,     6,     7,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,   199,     0,
-      200,   201,   202,   -72,   -72,   203,   204,   205,   206,   207,
-      208,   209,   210,   211,     0,     0,     0,    13,   212,     0,
-        0,     0,    14,    15,    16,    17,     0,     0,     0,     0,
-      -72,    20,     0,     0,     0,     0,     0,    21,    22,     0,
-       23,     0,    24,     0,     0,    25,    26,     0,    61,     0,
-        0,    75,   -72,    76,   198,     0,     4,     5,     0,     0,
-        6,     7,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,   199,     0,   200,   201,   202,     0,     0,
-      203,   204,   205,   206,   207,   208,   209,   210,   211,     0,
-        0,     0,    13,   212,     0,     0,     0,    14,    15,    16,
-       17,    69,     0,     4,     5,     0,    20,     6,     7,     0,
-        0,  -104,    21,    22,     0,    23,     0,    24,     0,     0,
-       25,    26,     0,    61,     0,     0,    75,   213,    76,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    13,
-        0,     0,     0,     0,    14,    15,    16,    17,     0,     0,
-        0,     0,  -104,    20,     0,     0,     0,     0,     0,    21,
-       22,     0,    23,     0,    24,     0,     0,    25,   269,  -104,
-       61,     0,     4,     5,     0,  -104,     6,     7,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,   199,
-        0,   200,   201,   202,     0,     0,   203,   204,   205,   206,
-      207,   208,   209,   210,   211,     0,     0,     0,    13,   212,
-        0,     0,     0,    14,    15,    16,    17,     0,     0,     4,
-        5,     0,    20,     6,     7,     0,     0,     0,    21,    22,
 -      34,    81,   236,    80,    80,   182,    70,   121,   252,   258,
 -     135,    56,    57,    58,   126,   127,   132,   150,   184,    63,
 -      63,   273,    63,    68,   119,    71,   214,   221,   132,   215,
 -     120,   311,    43,    63,     4,    74,   261,   112,   113,   262,
 -     322,    19,   118,   118,    33,   138,     5,   100,   101,   102,
 -     139,    44,   103,   129,   130,   -12,   171,   279,   118,   118,
 -      62,    64,   242,    65,    76,   128,   175,   176,   -15,    74,
 -     133,    85,    79,    44,    97,   250,    59,    75,   -12,    72,
 -     321,    73,   133,   252,    44,   149,   172,   151,   152,   153,
 -     222,   -15,   252,   -94,   155,   134,    63,    63,    63,    63,
 -      63,    63,    63,    63,    63,    63,    63,    63,    25,   218,
 -     147,    44,    81,  -105,   170,    81,   133,    60,    92,    93,
 -     154,   331,    63,    84,   334,   141,   122,   303,   288,   -95,
 -     142,   177,   290,   123,    19,   181,   124,   157,   158,   159,
 -     160,   161,   162,   163,   164,   165,   166,   167,   168,   309,
 -     304,   305,   312,   212,    56,    75,   241,    76,   103,   132,
 -    -105,  -105,   178,   174,    85,    19,    81,    81,  -104,    86,
 -      81,     4,    81,     5,   110,   111,    81,    19,   148,   333,
 -     156,   238,   335,    79,   263,   169,    79,   134,   270,   271,
 -     257,   179,   219,   247,   223,    87,    88,    89,   231,   -90,
 -     224,   226,    81,   284,    76,   112,   113,   268,    90,  -104,
 -     240,    92,    93,   133,   114,   286,   269,    81,   244,   231,
 -     272,   225,   248,   249,   292,   274,  -104,   268,    85,    76,
 -     233,   298,  -104,    86,   118,   275,   276,    79,    79,   239,
 -     296,    79,   283,    79,    48,    49,   319,    79,    82,   201,
 -     324,   323,   325,   183,    71,   289,   185,   294,    85,    87,
 -      88,    89,   328,    86,   317,   300,   259,   245,   213,   295,
 -     260,    67,    90,    79,    91,    92,    93,   280,     0,     0,
 -     326,   243,   291,     0,   293,    63,    50,    51,    79,    87,
 -       4,     5,   278,    63,     6,     7,     0,     0,     0,   281,
 -     282,     0,     0,   285,     0,    92,    93,   227,   228,     0,
 -      52,   229,     0,   232,     0,     0,     0,   234,     0,     0,
 -       0,   299,     0,   301,     0,   302,   307,   308,     0,   310,
 -      14,    15,    16,    17,    97,     0,     0,     0,     0,    20,
 -       0,     0,    85,   254,     0,    21,    22,    86,    23,   327,
 -      24,     0,   329,    25,    66,   330,    61,   332,   264,     2,
 -       3,     0,     4,     5,     0,     0,     6,     7,     0,     0,
 -       0,     0,     0,    87,    88,    89,     8,     9,     0,     0,
 -       0,     0,    85,     0,     0,     0,    90,    86,     0,    92,
 -      93,   313,   314,     0,    10,    11,    12,    13,     0,     0,
 -       0,   134,    14,    15,    16,    17,    18,     0,     0,     0,
 -      19,    20,     0,    87,    88,     0,     0,    21,    22,     0,
 -      23,     0,    24,     0,     0,    25,    26,     0,    27,    92,
 -      93,   -18,   186,   -18,     4,     5,    20,     0,     6,     7,
 -       0,     0,   315,   316,     0,    23,     0,     0,     0,     0,
 -     187,     0,   188,   189,   190,   -73,   -73,   191,   192,   193,
 -     194,   195,   196,   197,   198,   199,     0,     0,     0,    13,
 -     200,     0,     0,     0,    14,    15,    16,    17,     0,     0,
 -       0,     0,   -73,    20,    98,    99,   100,   101,   102,    21,
 -      22,   103,    23,     0,    24,     0,     0,    25,    26,     0,
 -      61,     0,     0,    75,   -73,    76,   186,     0,     4,     5,
 -       0,     0,     6,     7,   104,   105,   106,   107,   108,     0,
 -       0,   109,     0,     0,   187,     0,   188,   189,   190,   -72,
 -     -72,   191,   192,   193,   194,   195,   196,   197,   198,   199,
 -       0,     0,     0,    13,   200,     0,     0,     0,    14,    15,
 -      16,    17,     0,     0,     0,     0,   -72,    20,     0,     0,
++      34,   123,    80,    80,   248,   140,   154,   264,    33,   156,
++     126,    56,    57,    58,    81,   137,   137,   191,   271,    63,
++      63,   193,    63,    68,   143,    71,   180,   125,   292,   144,
++       4,   175,    85,    63,    19,    74,    79,    86,    62,    64,
++     324,    65,   122,   124,   226,   233,   146,   227,     5,   336,
++     274,   147,    97,   275,   178,    75,    43,    76,   122,   122,
++     131,   132,    44,    87,    88,   133,   184,   185,   -12,    74,
++     138,   138,   -15,    59,   179,    75,    72,   254,    73,    92,
++      93,    44,    44,   264,   139,   155,   181,   157,   158,   159,
++     335,   -12,   264,   262,   161,   -15,    63,    63,    63,    63,
++      63,    63,    63,    63,    63,    63,    63,    63,    60,   234,
++     230,    25,   -96,   316,   177,   163,   164,   165,   166,   167,
++     168,   169,   170,   171,   172,   173,   174,    63,   345,   138,
++      81,   348,   138,    81,    85,   255,   186,   317,   318,    86,
++     190,    84,  -114,   152,    19,   -97,   183,   301,   112,   113,
++     128,   303,    79,   160,   286,    79,   223,   225,    85,   221,
++      56,   134,   135,   253,    19,    87,   127,    76,   322,     4,
++     137,   325,   129,   103,    48,    49,     5,    19,   122,   122,
++    -106,    92,    93,   153,    44,   162,   -92,   176,    81,    81,
++     117,   276,    81,   188,    81,   283,   284,   139,    81,   347,
++     187,   231,   349,   250,   270,    92,    93,   243,   297,  -115,
++      79,    79,   235,   236,    79,   238,    79,    50,    51,   252,
++      79,  -106,   281,   299,   288,   138,    76,    81,   259,   282,
++     256,   243,   305,   285,   260,   261,   289,   331,  -106,   311,
++     309,    52,    81,   281,  -106,   192,   124,   296,   194,    79,
++     287,    98,    99,   100,   101,   102,  -115,  -115,   103,   337,
++     333,   110,   111,   237,    79,   210,    71,   302,   326,   327,
++     117,   342,   245,   104,   105,   106,   107,   108,   338,   339,
++     109,   251,    82,   307,   330,    85,   257,   308,    67,   222,
++      86,   313,   112,   113,   340,   304,     0,   306,    63,     0,
++     293,   114,     0,   239,   240,     0,    63,   241,     0,   244,
++       0,   272,     0,   246,    20,   273,    87,    88,    89,     0,
++     328,   329,     0,    23,     0,    97,   100,   101,   102,    90,
++       0,   103,    92,    93,     0,     0,     0,     0,   291,     0,
++       0,     0,   266,     0,     0,   294,   295,     0,     0,   298,
++      76,     0,     0,     0,     0,     0,     0,   277,     0,    85,
++       0,     0,     0,     0,    86,     0,     0,   312,     0,   314,
++       0,   315,   320,   321,     0,   323,     2,     3,     0,     4,
++       5,     0,     0,     6,     7,     0,     0,     0,     0,     0,
++      87,    88,    89,     0,     8,     9,   341,     0,     0,   343,
++       0,     0,   344,    90,   346,     0,    92,    93,     0,     0,
++       0,     0,    10,    11,    12,    13,     0,     0,   139,     0,
++      14,    15,    16,    17,    18,     0,     0,     0,    19,    20,
++       0,     0,     0,     0,     0,    21,    22,     0,    23,     0,
++      24,     0,     0,    25,    26,     0,    27,     0,     0,   -18,
++     195,   -18,     4,     5,     0,     0,     6,     7,     0,     0,
++       0,     0,     0,     0,     0,     0,     0,     0,     0,   196,
++       0,   197,   198,   199,   -74,   -74,   200,   201,   202,   203,
++     204,   205,   206,   207,   208,     0,     0,     0,    13,   209,
++       0,     0,     0,    14,    15,    16,    17,     0,     0,     0,
++       0,   -74,    20,     0,     0,     0,     0,     0,    21,    22,
++       0,    23,     0,    24,     0,     0,    25,    26,     0,    61,
++       0,     0,    75,   -74,    76,   195,     0,     4,     5,     0,
++       0,     6,     7,     0,     0,     0,     0,     0,     0,     0,
++       0,     0,     0,     0,   196,     0,   197,   198,   199,   -73,
++     -73,   200,   201,   202,   203,   204,   205,   206,   207,   208,
++       0,     0,     0,    13,   209,     0,     0,     0,    14,    15,
++      16,    17,     0,     0,     0,     0,   -73,    20,     0,     0,
+        0,     0,     0,    21,    22,     0,    23,     0,    24,     0,
 -       0,    25,    26,     0,    61,     0,     0,    75,   -72,    76,
 -     186,     0,     4,     5,     0,     0,     6,     7,     0,     0,
 -       0,     0,     0,     0,     0,     0,     0,     0,   187,     0,
 -     188,   189,   190,     0,     0,   191,   192,   193,   194,   195,
 -     196,   197,   198,   199,     0,     0,     0,    13,   200,     0,
 -       0,     0,    14,    15,    16,    17,    69,     0,     4,     5,
 -       0,    20,     6,     7,     0,  -103,     0,    21,    22,     0,
 -      23,     0,    24,     0,     0,    25,    26,     0,    61,     0,
 -       0,    75,   201,    76,     0,     0,     0,     0,     0,     0,
 -       0,     0,     0,    13,     0,     0,     0,     0,    14,    15,
 -      16,    17,     0,     0,     0,     0,  -103,    20,     0,     0,
 -       0,     0,     0,    21,    22,     0,    23,     0,    24,     0,
 -       0,    25,   255,  -103,    61,     0,     4,     5,     0,  -103,
 -       6,     7,     0,     0,     0,     0,     0,     0,     0,     0,
 -       0,     0,   187,     0,   188,   189,   190,     0,     0,   191,
 -     192,   193,   194,   195,   196,   197,   198,   199,     0,     4,
 -       5,    13,   200,     6,     7,     0,    14,    15,    16,    17,
++       0,    25,    26,     0,    61,     0,     0,    75,   -73,    76,
++     195,     0,     4,     5,     0,     0,     6,     7,     0,     0,
++       0,     0,     0,     0,     0,     0,     0,     0,     0,   196,
++       0,   197,   198,   199,     0,     0,   200,   201,   202,   203,
++     204,   205,   206,   207,   208,     0,     0,     0,    13,   209,
++       0,     0,     0,    14,    15,    16,    17,    69,     0,     4,
++       5,     0,    20,     6,     7,     0,     0,  -105,    21,    22,
++       0,    23,     0,    24,     0,     0,    25,    26,     0,    61,
++       0,     0,    75,   210,    76,     0,     0,     0,     0,     0,
++       0,     0,     0,     0,     0,    13,     0,     0,     0,     0,
++      14,    15,    16,    17,     0,     0,     0,     0,  -105,    20,
++       0,     0,     0,     0,     0,    21,    22,     0,    23,     0,
++      24,     0,     0,    25,   267,  -105,    61,     0,     4,     5,
++       0,  -105,     6,     7,     0,     0,     0,     0,     0,     0,
++       0,     0,     0,     0,     0,   196,     0,   197,   198,   199,
++       0,     0,   200,   201,   202,   203,   204,   205,   206,   207,
++     208,     0,     0,     0,    13,   209,     0,     0,     0,    14,
++      15,    16,    17,     0,     0,     4,     5,     0,    20,     6,
++       7,     0,     0,     0,    21,    22,     0,    23,     0,    24,
++       0,     0,    25,    26,     0,    61,     0,     0,    75,     0,
++      76,     0,     0,     0,     0,     0,   116,     0,     4,     5,
++       0,    13,     6,     7,   117,     0,    14,    15,    16,    17,
+        0,     0,     0,     0,     0,    20,     0,     0,     0,     0,
 -      85,    21,    22,     0,    23,    86,    24,     0,     0,    25,
 -      26,     0,    61,     0,    13,    75,     0,    76,     0,    14,
 -      15,    16,    17,    69,     0,     4,     5,     0,    20,     6,
 -       7,    87,    88,    89,    21,    22,     0,    23,     0,    24,
 -       0,     0,    25,    26,    90,    61,     0,    92,    93,     0,
 -      76,     0,     0,     0,     0,    69,     0,     4,     5,     0,
 -      13,     6,     7,     0,     0,    14,    15,    16,    17,     0,
 -       0,     0,     0,     0,    20,     0,     0,     0,     0,     0,
 -      21,    22,     0,    23,     0,    24,     0,     0,    25,    26,
 -    -103,    61,    13,     0,     0,     0,     0,    14,    15,    16,
 -      17,   180,     0,     4,     5,     0,    20,     6,     7,     0,
 -       0,     0,    21,    22,     0,    23,     0,    24,     0,     0,
 -      25,    26,     0,    61,     0,     0,     0,     0,     0,     0,
 -       0,     0,     0,     0,     0,     0,     4,   251,    13,     0,
 -       6,     7,     0,    14,    15,    16,    17,     0,     0,     0,
 -       0,     0,    20,     0,     0,   189,     0,     0,    21,    22,
 -       0,    23,     0,    24,   196,   197,    25,    26,     0,    61,
 -       0,    13,     0,     0,     0,     0,    14,    15,    16,    17,
 -       0,     0,     4,     5,     0,    20,     6,     7,     0,     0,
+        0,    21,    22,     0,    23,     0,    24,     0,     0,    25,
 -      26,   189,    61,     0,     0,     0,     0,     0,     0,     0,
 -     196,   197,     0,     0,     0,     0,     0,    13,     0,     0,
 -       0,     0,    14,    15,    16,    17,     0,     0,     4,     5,
 -       0,    20,     6,     7,     0,     0,    96,    21,    22,     0,
 -      23,     0,    24,     0,     0,    25,    26,     0,    61,     0,
 -       0,     0,     0,     0,     0,     4,     5,     0,     0,     6,
 -       7,     0,     0,    13,     0,     0,     0,     0,    14,    15,
 -      16,    17,     0,     0,     0,     0,     0,    20,     0,     0,
 -       0,     0,     0,    21,    22,     0,    23,     0,    24,     0,
 -      13,    25,    26,     0,    61,    14,    15,    16,    17,     0,
 -      85,     0,     0,     0,    20,    86,     0,     0,     0,     0,
 -      21,    22,     0,    23,     0,    24,     0,     0,    25,    26,
 -       0,    61,     0,     0,     0,     0,     0,     0,     0,     0,
 -       0,    87,    88,    89,     0,     0,     0,     0,     0,     0,
 -       0,     0,     0,     0,    90,   211,     0,    92,    93
++      26,     0,    61,     0,    13,     0,     0,    76,     0,    14,
++      15,    16,    17,   224,     0,     4,     5,     0,    20,     6,
++       7,   117,     0,     0,    21,    22,     0,    23,     0,    24,
++       0,     0,    25,    26,  -113,    61,     0,     0,     0,     0,
++      69,     0,     4,     5,     0,     0,     6,     7,     0,     0,
++       0,    13,     0,     0,     0,     0,    14,    15,    16,    17,
++       0,     0,     0,     0,    85,    20,     0,     0,     0,    86,
++       0,    21,    22,     0,    23,     0,    24,     0,    13,    25,
++      26,     0,    61,    14,    15,    16,    17,   189,     0,     4,
++       5,     0,    20,     6,     7,    87,    88,    89,    21,    22,
++       0,    23,     0,    24,     0,     0,    25,    26,    90,    61,
++      91,    92,    93,     0,     0,     0,     0,     0,     0,     0,
++       0,     0,     4,   263,     0,    13,     6,     7,     0,     0,
++      14,    15,    16,    17,     0,     0,     0,     0,     0,    20,
++       0,     0,   198,     0,     0,    21,    22,     0,    23,     0,
++      24,   205,   206,    25,    26,     0,    61,     0,    13,     0,
++       0,     0,     0,    14,    15,    16,    17,     0,     0,     0,
++       4,     5,    20,     0,     6,     7,     0,     0,    21,    22,
++       0,    23,     0,    24,     0,     0,    25,    26,     0,    61,
++     198,     0,     0,     0,     0,     0,     0,     0,     0,   205,
++     206,     0,     0,     0,     0,     0,    13,     0,     0,     0,
++       0,    14,    15,    16,    17,     0,     0,     0,     0,     0,
++      20,     0,     0,     0,     0,     0,    21,    22,    85,    23,
++       0,    24,     0,    86,    25,    26,     0,    61,     4,     5,
++       0,     0,     6,     7,     0,     0,     0,    96,     0,     0,
++       0,     0,     0,     0,     0,     0,     0,     0,     0,    87,
++      88,    89,     0,     0,     0,     4,     5,     0,     0,     6,
++       7,   117,    90,   220,    13,    92,    93,     0,     0,    14,
++      15,    16,    17,     0,     0,     0,     0,    85,    20,     0,
++       0,     0,    86,     0,    21,    22,     0,    23,     0,    24,
++       0,    13,    25,    26,     0,    61,    14,    15,    16,    17,
++       0,     0,     4,     5,     0,    20,     6,     7,    87,    88,
++      89,    21,    22,     0,    23,     0,    24,     0,     0,    25,
++      26,    90,    61,     0,    92,    93,     0,     0,     0,     4,
++       5,     0,     0,     6,     7,     0,     0,     0,    13,     0,
++       0,     0,     0,    14,    15,    16,    17,     0,     0,     0,
++       0,     0,    20,     0,     0,     0,     0,     0,    21,    22,
 +       0,    23,     0,    24,     0,     0,    25,    26,     0,    61,
-        0,     0,    75,     0,    76,     0,     0,     0,     0,     0,
-      116,     0,     4,     5,     0,    13,     6,     7,   117,     0,
 +      14,    15,    16,    17,     0,     0,     0,     0,     0,    20,
 +       0,     0,     0,     0,     0,    21,    22,     0,    23,     0,
-       24,     0,     0,    25,    26,     0,    61,     0,    13,     0,
-        0,    76,     0,    14,    15,    16,    17,   227,     0,     4,
-        5,     0,    20,     6,     7,   117,     0,     0,    21,    22,
-        0,    23,     0,    24,     0,     0,    25,    26,  -112,    61,
-        0,     0,     0,     0,    69,     0,     4,     5,     0,     0,
-        6,     7,     0,     0,     0,    13,     0,     0,     0,     0,
-       14,    15,    16,    17,     0,     0,     0,     0,    85,    20,
-        0,     0,     0,    86,     0,    21,    22,     0,    23,     0,
-       24,     0,    13,    25,    26,     0,    61,    14,    15,    16,
-       17,   192,     0,     4,     5,     0,    20,     6,     7,    87,
-       88,    89,    21,    22,     0,    23,     0,    24,     0,     0,
-       25,    26,    90,    61,    91,    92,    93,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     4,   265,     0,    13,
-        6,     7,     0,     0,    14,    15,    16,    17,     0,     0,
-        0,     0,     0,    20,     0,     0,   201,     0,     0,    21,
-       22,     0,    23,     0,    24,   208,   209,    25,    26,     0,
-       61,     0,    13,     0,     0,     0,     0,    14,    15,    16,
-       17,     0,     0,     0,     4,     5,    20,     0,     6,     7,
-        0,     0,    21,    22,     0,    23,     0,    24,     0,     0,
-       25,    26,     0,    61,   201,     0,     0,     0,     0,     0,
-        0,     0,     0,   208,   209,     0,     0,     0,     0,     0,
-       13,     0,     0,     0,     0,    14,    15,    16,    17,     0,
-        0,     0,     0,     0,    20,     0,     0,     0,     0,     0,
-       21,    22,    85,    23,     0,    24,     0,    86,    25,    26,
-        0,    61,     4,     5,     0,     0,     6,     7,     0,     0,
-        0,    96,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,    87,    88,    89,     0,     0,     0,     4,
-        5,     0,     0,     6,     7,   117,    90,   223,    13,    92,
-       93,     0,     0,    14,    15,    16,    17,     0,     0,     0,
-        0,    85,    20,     0,     0,     0,    86,     0,    21,    22,
-        0,    23,     0,    24,     0,    13,    25,    26,     0,    61,
-       14,    15,    16,    17,     0,     0,     4,     5,     0,    20,
-        6,     7,    87,    88,    89,    21,    22,     0,    23,     0,
-       24,     0,     0,    25,    26,    90,    61,     0,    92,    93,
-        0,     0,     0,     4,     5,     0,     0,     6,     7,     0,
-        0,     0,    13,     0,     0,     0,     0,    14,    15,    16,
-       17,     0,     0,     0,     0,     0,    20,     0,     0,     0,
-        0,     0,    21,    22,     0,    23,     0,    24,     0,     0,
-       25,    26,     0,    61,    14,    15,    16,    17,     0,     0,
-        0,     0,     0,    20,     0,     0,     0,     0,     0,    21,
-       22,     0,    23,     0,    24,     0,     0,    25,    66,     0,
-       61
++      24,     0,     0,    25,    66,     0,    61
  };
  
  static const yytype_int16 yycheck[] =
  {
-        1,    29,    30,    44,    86,     1,     1,    87,   250,    46,
-      120,    13,    14,    15,    29,    11,     1,     1,     4,    21,
-       22,    70,    24,    25,   220,    26,    17,     1,    27,   111,
-        4,    52,    52,    35,    29,     1,    41,     1,    21,    22,
-      313,    24,    43,    44,     1,     1,     4,     4,    71,   322,
-        6,    68,    35,    73,    75,    75,    52,    68,    59,    60,
-       56,   240,    61,    73,     1,    66,    71,    57,    52,     6,
-      119,    56,    52,    69,     1,   185,    68,   319,    50,    75,
-       71,    67,   131,   132,    69,    86,    52,    88,    89,    90,
-      145,    75,    56,   148,    95,    69,    98,    99,   100,   101,
-      102,   103,   104,   105,   106,   107,   108,   109,    72,    75,
-       68,   191,     1,    68,   115,    98,    99,   100,   101,   102,
-      103,   104,   105,   106,   107,   108,   109,   129,    81,    56,
-      145,     3,     4,   148,   313,   184,   137,     3,    91,    17,
-      141,    66,    69,   322,   340,     1,   129,   343,    44,    45,
-      145,   206,   207,   148,     3,   210,     4,   212,    52,   160,
-      162,   216,     5,    61,    62,    63,    69,    56,    66,    25,
-       26,    44,    45,     9,    46,    47,    59,    60,   179,   180,
-       69,   179,   180,    10,    39,   138,    14,    41,    68,   244,
-       75,   206,   207,    71,    68,   210,    52,   212,    70,    68,
-       49,   216,    51,    68,   259,   285,   221,     4,   249,   258,
-      211,   206,   207,   262,   263,   210,    69,   212,    74,    10,
-      239,   216,   223,   260,    15,    10,    27,    11,   269,   244,
-       57,    58,   233,   234,   316,    68,   237,   238,   287,    21,
-       55,   278,    74,     7,   259,     7,   316,   296,   249,   244,
-       41,   204,   267,    30,   303,   234,    10,   299,    25,   331,
-      213,    15,   162,    -1,   259,   293,    57,    58,   269,   222,
-      278,   290,    57,    58,   323,   294,   229,    13,    14,     7,
-        8,     9,   297,    -1,    -1,    -1,   335,    41,    42,    43,
-      305,    -1,   311,    -1,   295,   314,   297,   299,   251,    -1,
-       54,    -1,    -1,    57,    58,   307,    -1,    -1,    44,    45,
-       -1,    59,    60,    61,    62,    63,    -1,    53,    66,    -1,
-       -1,    75,   275,   342,   307,    53,   345,    -1,    -1,   282,
-      283,    59,    60,   286,    62,    59,    60,    61,    62,    63,
-       -1,    -1,    66,    10,    -1,    -1,    -1,    -1,    15,    -1,
-       -1,   304,    -1,   306,    -1,   308,   309,   310,    -1,   312,
-        0,     1,    -1,     3,     4,    -1,    -1,     7,     8,    -1,
-       -1,    -1,    -1,    -1,    41,    42,    43,    -1,    18,    19,
-      333,    -1,    -1,   336,    10,    -1,   339,    54,   341,    15,
-       57,    58,    -1,    -1,    -1,    -1,    36,    37,    38,    39,
-       -1,    -1,    69,    -1,    44,    45,    46,    47,    48,    -1,
-       -1,    -1,    52,    53,    -1,    41,    42,    -1,    -1,    59,
-       60,    -1,    62,    -1,    64,    -1,    -1,    67,    68,    -1,
-       70,    57,    58,    73,     1,    75,     3,     4,    -1,    -1,
-        7,     8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    20,    -1,    22,    23,    24,    25,    26,
-       27,    28,    29,    30,    31,    32,    33,    34,    35,    -1,
-       -1,    -1,    39,    40,    -1,    -1,    -1,    44,    45,    46,
-       47,    -1,    -1,    -1,    -1,    52,    53,    -1,    -1,    -1,
-       -1,    -1,    59,    60,    -1,    62,    -1,    64,    -1,    -1,
-       67,    68,    -1,    70,    -1,    -1,    73,    74,    75,     1,
-       -1,     3,     4,    -1,    -1,     7,     8,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,    -1,
-       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-       32,    33,    34,    35,    -1,    -1,    -1,    39,    40,    -1,
-       -1,    -1,    44,    45,    46,    47,    -1,    -1,    -1,    -1,
-       52,    53,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,
-       62,    -1,    64,    -1,    -1,    67,    68,    -1,    70,    -1,
-       -1,    73,    74,    75,     1,    -1,     3,     4,    -1,    -1,
-        7,     8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    20,    -1,    22,    23,    24,    -1,    -1,
-       27,    28,    29,    30,    31,    32,    33,    34,    35,    -1,
-       -1,    -1,    39,    40,    -1,    -1,    -1,    44,    45,    46,
-       47,     1,    -1,     3,     4,    -1,    53,     7,     8,    -1,
-       -1,    11,    59,    60,    -1,    62,    -1,    64,    -1,    -1,
-       67,    68,    -1,    70,    -1,    -1,    73,    74,    75,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    39,
-       -1,    -1,    -1,    -1,    44,    45,    46,    47,    -1,    -1,
-       -1,    -1,    52,    53,    -1,    -1,    -1,    -1,    -1,    59,
-       60,    -1,    62,    -1,    64,    -1,    -1,    67,    68,    69,
-       70,    -1,     3,     4,    -1,    75,     7,     8,    -1,    -1,
 -       1,    29,   208,    29,    30,     1,    26,    46,   226,   236,
 -      70,    13,    14,    15,    59,    60,     1,    87,     1,    21,
 -      22,    40,    24,    25,    44,    26,     1,     4,     1,     4,
 -      16,   301,    67,    35,     3,    27,     1,    43,    44,     4,
 -     310,    51,    43,    44,     1,     1,     4,    60,    61,    62,
 -       6,    70,    65,    43,    44,    51,   116,    16,    59,    60,
 -      21,    22,     1,    24,    74,    66,   126,   127,    51,    61,
 -      55,     9,    29,    70,    35,   225,    67,    72,    74,    48,
 -     307,    50,    55,   301,    70,    86,    71,    88,    89,    90,
 -      67,    74,   310,    68,    95,    68,    98,    99,   100,   101,
 -     102,   103,   104,   105,   106,   107,   108,   109,    66,   179,
 -      81,    70,   140,     9,   115,   143,    55,    67,    56,    57,
 -      91,   327,   124,    51,   330,     1,    49,     1,   278,    68,
 -       6,   132,   282,    67,    51,   136,    56,    98,    99,   100,
 -     101,   102,   103,   104,   105,   106,   107,   108,   109,   299,
 -      24,    25,   302,   154,   156,    72,   216,    74,    65,     1,
 -      56,    57,   133,   124,     9,    51,   194,   195,    10,    14,
 -     198,     3,   200,     4,    12,    13,   204,    51,     5,   329,
 -      38,   209,   332,   140,   244,    13,   143,    68,   248,   249,
 -     235,    40,    67,     4,    67,    40,    41,    42,   199,    73,
 -      67,    67,   230,   273,    74,    43,    44,   246,    53,    51,
 -     211,    56,    57,    55,    52,   275,    68,   245,   219,   220,
 -      26,   192,   223,   224,   284,   253,    68,   266,     9,    74,
 -     201,   291,    74,    14,   235,   255,    10,   194,   195,   210,
 -      20,   198,    67,   200,     3,     4,    54,   204,    30,    73,
 -       7,   311,     7,   140,   255,   281,   143,   285,     9,    40,
 -      41,    42,   322,    14,   304,   293,   237,   220,   156,   287,
 -     241,    25,    53,   230,    55,    56,    57,   266,    -1,    -1,
 -     318,   217,   283,    -1,   285,   287,    45,    46,   245,    40,
 -       3,     4,   263,   295,     7,     8,    -1,    -1,    -1,   270,
 -     271,    -1,    -1,   274,    -1,    56,    57,   194,   195,    -1,
 -      69,   198,    -1,   200,    -1,    -1,    -1,   204,    -1,    -1,
 -      -1,   292,    -1,   294,    -1,   296,   297,   298,    -1,   300,
 -      43,    44,    45,    46,   295,    -1,    -1,    -1,    -1,    52,
 -      -1,    -1,     9,   230,    -1,    58,    59,    14,    61,   320,
 -      63,    -1,   323,    66,    67,   326,    69,   328,   245,     0,
++       1,    44,    29,    30,   217,    70,    86,   238,     1,    87,
++      46,    13,    14,    15,    29,     1,     1,     1,   248,    21,
++      22,     1,    24,    25,     1,    26,   120,    17,    17,     6,
++       3,   111,    10,    35,    52,    27,    29,    15,    21,    22,
++     314,    24,    43,    44,     1,     4,     1,     4,     4,   323,
++       1,     6,    35,     4,   119,    73,    68,    75,    59,    60,
++      59,    60,    71,    41,    42,    66,   131,   132,    52,    61,
++      56,    56,    52,    68,     1,    73,    49,     1,    51,    57,
++      58,    71,    71,   314,    69,    86,    72,    88,    89,    90,
++     320,    75,   323,   237,    95,    75,    98,    99,   100,   101,
++     102,   103,   104,   105,   106,   107,   108,   109,    68,    68,
++     188,    67,    69,     1,   115,    98,    99,   100,   101,   102,
++     103,   104,   105,   106,   107,   108,   109,   129,   341,    56,
++     145,   344,    56,   148,    10,   229,   137,    25,    26,    15,
++     141,    52,    69,    81,    52,    69,   129,   291,    44,    45,
++      68,   295,   145,    91,    41,   148,   179,   180,    10,   160,
++     162,    44,    45,   228,    52,    41,    50,    75,   312,     3,
++       1,   315,    57,    66,     3,     4,     4,    52,   179,   180,
++      11,    57,    58,     5,    71,    39,    74,    14,   203,   204,
++       9,   256,   207,    41,   209,   260,   261,    69,   213,   343,
++     138,    68,   346,   218,   247,    57,    58,   208,   286,    10,
++     203,   204,    68,    68,   207,    68,   209,    46,    47,   220,
++     213,    52,   258,   288,   267,    56,    75,   242,     4,    69,
++     231,   232,   297,    27,   235,   236,    11,   317,    69,   304,
++      21,    70,   257,   279,    75,   145,   247,    68,   148,   242,
++     265,    59,    60,    61,    62,    63,    57,    58,    66,   324,
++      55,    13,    14,   201,   257,    74,   267,   294,     7,     8,
++       9,   336,   210,    59,    60,    61,    62,    63,     7,     7,
++      66,   219,    30,   298,   317,    10,   232,   300,    25,   162,
++      15,   306,    44,    45,   332,   296,    -1,   298,   300,    -1,
++     279,    53,    -1,   203,   204,    -1,   308,   207,    -1,   209,
++      -1,   249,    -1,   213,    53,   253,    41,    42,    43,    -1,
++      59,    60,    -1,    62,    -1,   308,    61,    62,    63,    54,
++      -1,    66,    57,    58,    -1,    -1,    -1,    -1,   276,    -1,
++      -1,    -1,   242,    -1,    -1,   283,   284,    -1,    -1,   287,
++      75,    -1,    -1,    -1,    -1,    -1,    -1,   257,    -1,    10,
++      -1,    -1,    -1,    -1,    15,    -1,    -1,   305,    -1,   307,
++      -1,   309,   310,   311,    -1,   313,     0,     1,    -1,     3,
++       4,    -1,    -1,     7,     8,    -1,    -1,    -1,    -1,    -1,
++      41,    42,    43,    -1,    18,    19,   334,    -1,    -1,   337,
++      -1,    -1,   340,    54,   342,    -1,    57,    58,    -1,    -1,
++      -1,    -1,    36,    37,    38,    39,    -1,    -1,    69,    -1,
++      44,    45,    46,    47,    48,    -1,    -1,    -1,    52,    53,
++      -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    62,    -1,
++      64,    -1,    -1,    67,    68,    -1,    70,    -1,    -1,    73,
++       1,    75,     3,     4,    -1,    -1,     7,     8,    -1,    -1,
++      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,
++      -1,    22,    23,    24,    25,    26,    27,    28,    29,    30,
++      31,    32,    33,    34,    35,    -1,    -1,    -1,    39,    40,
++      -1,    -1,    -1,    44,    45,    46,    47,    -1,    -1,    -1,
++      -1,    52,    53,    -1,    -1,    -1,    -1,    -1,    59,    60,
++      -1,    62,    -1,    64,    -1,    -1,    67,    68,    -1,    70,
++      -1,    -1,    73,    74,    75,     1,    -1,     3,     4,    -1,
++      -1,     7,     8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
++      -1,    -1,    -1,    -1,    20,    -1,    22,    23,    24,    25,
++      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
++      -1,    -1,    -1,    39,    40,    -1,    -1,    -1,    44,    45,
++      46,    47,    -1,    -1,    -1,    -1,    52,    53,    -1,    -1,
++      -1,    -1,    -1,    59,    60,    -1,    62,    -1,    64,    -1,
++      -1,    67,    68,    -1,    70,    -1,    -1,    73,    74,    75,
+        1,    -1,     3,     4,    -1,    -1,     7,     8,    -1,    -1,
 -      -1,    -1,    -1,    40,    41,    42,    17,    18,    -1,    -1,
 -      -1,    -1,     9,    -1,    -1,    -1,    53,    14,    -1,    56,
 -      57,     7,     8,    -1,    35,    36,    37,    38,    -1,    -1,
 -      -1,    68,    43,    44,    45,    46,    47,    -1,    -1,    -1,
 -      51,    52,    -1,    40,    41,    -1,    -1,    58,    59,    -1,
 -      61,    -1,    63,    -1,    -1,    66,    67,    -1,    69,    56,
 -      57,    72,     1,    74,     3,     4,    52,    -1,     7,     8,
 -      -1,    -1,    58,    59,    -1,    61,    -1,    -1,    -1,    -1,
 -      19,    -1,    21,    22,    23,    24,    25,    26,    27,    28,
 -      29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    38,
 -      39,    -1,    -1,    -1,    43,    44,    45,    46,    -1,    -1,
 -      -1,    -1,    51,    52,    58,    59,    60,    61,    62,    58,
 -      59,    65,    61,    -1,    63,    -1,    -1,    66,    67,    -1,
 -      69,    -1,    -1,    72,    73,    74,     1,    -1,     3,     4,
 -      -1,    -1,     7,     8,    58,    59,    60,    61,    62,    -1,
 -      -1,    65,    -1,    -1,    19,    -1,    21,    22,    23,    24,
 -      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
 -      -1,    -1,    -1,    38,    39,    -1,    -1,    -1,    43,    44,
 -      45,    46,    -1,    -1,    -1,    -1,    51,    52,    -1,    -1,
 -      -1,    -1,    -1,    58,    59,    -1,    61,    -1,    63,    -1,
 -      -1,    66,    67,    -1,    69,    -1,    -1,    72,    73,    74,
 +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,
 +      -1,    22,    23,    24,    -1,    -1,    27,    28,    29,    30,
 +      31,    32,    33,    34,    35,    -1,    -1,    -1,    39,    40,
-       -1,    -1,    -1,    44,    45,    46,    47,    -1,    -1,     3,
-        4,    -1,    53,     7,     8,    -1,    -1,    -1,    59,    60,
++      -1,    -1,    -1,    44,    45,    46,    47,     1,    -1,     3,
++       4,    -1,    53,     7,     8,    -1,    -1,    11,    59,    60,
++      -1,    62,    -1,    64,    -1,    -1,    67,    68,    -1,    70,
++      -1,    -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,
++      -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,
++      44,    45,    46,    47,    -1,    -1,    -1,    -1,    52,    53,
++      -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    62,    -1,
++      64,    -1,    -1,    67,    68,    69,    70,    -1,     3,     4,
++      -1,    75,     7,     8,    -1,    -1,    -1,    -1,    -1,    -1,
++      -1,    -1,    -1,    -1,    -1,    20,    -1,    22,    23,    24,
++      -1,    -1,    27,    28,    29,    30,    31,    32,    33,    34,
++      35,    -1,    -1,    -1,    39,    40,    -1,    -1,    -1,    44,
++      45,    46,    47,    -1,    -1,     3,     4,    -1,    53,     7,
++       8,    -1,    -1,    -1,    59,    60,    -1,    62,    -1,    64,
++      -1,    -1,    67,    68,    -1,    70,    -1,    -1,    73,    -1,
++      75,    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,
++      -1,    39,     7,     8,     9,    -1,    44,    45,    46,    47,
++      -1,    -1,    -1,    -1,    -1,    53,    -1,    -1,    -1,    -1,
++      -1,    59,    60,    -1,    62,    -1,    64,    -1,    -1,    67,
++      68,    -1,    70,    -1,    39,    -1,    -1,    75,    -1,    44,
++      45,    46,    47,     1,    -1,     3,     4,    -1,    53,     7,
++       8,     9,    -1,    -1,    59,    60,    -1,    62,    -1,    64,
++      -1,    -1,    67,    68,    69,    70,    -1,    -1,    -1,    -1,
+        1,    -1,     3,     4,    -1,    -1,     7,     8,    -1,    -1,
 -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    19,    -1,
 -      21,    22,    23,    -1,    -1,    26,    27,    28,    29,    30,
 -      31,    32,    33,    34,    -1,    -1,    -1,    38,    39,    -1,
 -      -1,    -1,    43,    44,    45,    46,     1,    -1,     3,     4,
 -      -1,    52,     7,     8,    -1,    10,    -1,    58,    59,    -1,
 -      61,    -1,    63,    -1,    -1,    66,    67,    -1,    69,    -1,
 -      -1,    72,    73,    74,    -1,    -1,    -1,    -1,    -1,    -1,
 -      -1,    -1,    -1,    38,    -1,    -1,    -1,    -1,    43,    44,
 -      45,    46,    -1,    -1,    -1,    -1,    51,    52,    -1,    -1,
 -      -1,    -1,    -1,    58,    59,    -1,    61,    -1,    63,    -1,
 -      -1,    66,    67,    68,    69,    -1,     3,     4,    -1,    74,
 -       7,     8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 -      -1,    -1,    19,    -1,    21,    22,    23,    -1,    -1,    26,
 -      27,    28,    29,    30,    31,    32,    33,    34,    -1,     3,
 -       4,    38,    39,     7,     8,    -1,    43,    44,    45,    46,
 -      -1,    -1,    -1,    -1,    -1,    52,    -1,    -1,    -1,    -1,
 -       9,    58,    59,    -1,    61,    14,    63,    -1,    -1,    66,
 -      67,    -1,    69,    -1,    38,    72,    -1,    74,    -1,    43,
 -      44,    45,    46,     1,    -1,     3,     4,    -1,    52,     7,
 -       8,    40,    41,    42,    58,    59,    -1,    61,    -1,    63,
 -      -1,    -1,    66,    67,    53,    69,    -1,    56,    57,    -1,
 -      74,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,    -1,
 -      38,     7,     8,    -1,    -1,    43,    44,    45,    46,    -1,
 -      -1,    -1,    -1,    -1,    52,    -1,    -1,    -1,    -1,    -1,
 -      58,    59,    -1,    61,    -1,    63,    -1,    -1,    66,    67,
 -      68,    69,    38,    -1,    -1,    -1,    -1,    43,    44,    45,
 -      46,     1,    -1,     3,     4,    -1,    52,     7,     8,    -1,
 -      -1,    -1,    58,    59,    -1,    61,    -1,    63,    -1,    -1,
 -      66,    67,    -1,    69,    -1,    -1,    -1,    -1,    -1,    -1,
 -      -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    38,    -1,
 -       7,     8,    -1,    43,    44,    45,    46,    -1,    -1,    -1,
 -      -1,    -1,    52,    -1,    -1,    22,    -1,    -1,    58,    59,
 -      -1,    61,    -1,    63,    31,    32,    66,    67,    -1,    69,
 -      -1,    38,    -1,    -1,    -1,    -1,    43,    44,    45,    46,
 -      -1,    -1,     3,     4,    -1,    52,     7,     8,    -1,    -1,
 -      -1,    58,    59,    -1,    61,    -1,    63,    -1,    -1,    66,
 -      67,    22,    69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 -      31,    32,    -1,    -1,    -1,    -1,    -1,    38,    -1,    -1,
 -      -1,    -1,    43,    44,    45,    46,    -1,    -1,     3,     4,
 -      -1,    52,     7,     8,    -1,    -1,    11,    58,    59,    -1,
 -      61,    -1,    63,    -1,    -1,    66,    67,    -1,    69,    -1,
 -      -1,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,     7,
 -       8,    -1,    -1,    38,    -1,    -1,    -1,    -1,    43,    44,
 -      45,    46,    -1,    -1,    -1,    -1,    -1,    52,    -1,    -1,
 -      -1,    -1,    -1,    58,    59,    -1,    61,    -1,    63,    -1,
 -      38,    66,    67,    -1,    69,    43,    44,    45,    46,    -1,
 -       9,    -1,    -1,    -1,    52,    14,    -1,    -1,    -1,    -1,
 -      58,    59,    -1,    61,    -1,    63,    -1,    -1,    66,    67,
 -      -1,    69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 -      -1,    40,    41,    42,    -1,    -1,    -1,    -1,    -1,    -1,
 -      -1,    -1,    -1,    -1,    53,    54,    -1,    56,    57
++      -1,    39,    -1,    -1,    -1,    -1,    44,    45,    46,    47,
++      -1,    -1,    -1,    -1,    10,    53,    -1,    -1,    -1,    15,
++      -1,    59,    60,    -1,    62,    -1,    64,    -1,    39,    67,
++      68,    -1,    70,    44,    45,    46,    47,     1,    -1,     3,
++       4,    -1,    53,     7,     8,    41,    42,    43,    59,    60,
++      -1,    62,    -1,    64,    -1,    -1,    67,    68,    54,    70,
++      56,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
++      -1,    -1,     3,     4,    -1,    39,     7,     8,    -1,    -1,
++      44,    45,    46,    47,    -1,    -1,    -1,    -1,    -1,    53,
++      -1,    -1,    23,    -1,    -1,    59,    60,    -1,    62,    -1,
++      64,    32,    33,    67,    68,    -1,    70,    -1,    39,    -1,
++      -1,    -1,    -1,    44,    45,    46,    47,    -1,    -1,    -1,
++       3,     4,    53,    -1,     7,     8,    -1,    -1,    59,    60,
++      -1,    62,    -1,    64,    -1,    -1,    67,    68,    -1,    70,
++      23,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    32,
++      33,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,
++      -1,    44,    45,    46,    47,    -1,    -1,    -1,    -1,    -1,
++      53,    -1,    -1,    -1,    -1,    -1,    59,    60,    10,    62,
++      -1,    64,    -1,    15,    67,    68,    -1,    70,     3,     4,
++      -1,    -1,     7,     8,    -1,    -1,    -1,    12,    -1,    -1,
++      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,
++      42,    43,    -1,    -1,    -1,     3,     4,    -1,    -1,     7,
++       8,     9,    54,    55,    39,    57,    58,    -1,    -1,    44,
++      45,    46,    47,    -1,    -1,    -1,    -1,    10,    53,    -1,
++      -1,    -1,    15,    -1,    59,    60,    -1,    62,    -1,    64,
++      -1,    39,    67,    68,    -1,    70,    44,    45,    46,    47,
++      -1,    -1,     3,     4,    -1,    53,     7,     8,    41,    42,
++      43,    59,    60,    -1,    62,    -1,    64,    -1,    -1,    67,
++      68,    54,    70,    -1,    57,    58,    -1,    -1,    -1,     3,
++       4,    -1,    -1,     7,     8,    -1,    -1,    -1,    39,    -1,
++      -1,    -1,    -1,    44,    45,    46,    47,    -1,    -1,    -1,
++      -1,    -1,    53,    -1,    -1,    -1,    -1,    -1,    59,    60,
 +      -1,    62,    -1,    64,    -1,    -1,    67,    68,    -1,    70,
-       -1,    -1,    73,    -1,    75,    -1,    -1,    -1,    -1,    -1,
-        1,    -1,     3,     4,    -1,    39,     7,     8,     9,    -1,
 +      44,    45,    46,    47,    -1,    -1,    -1,    -1,    -1,    53,
 +      -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    62,    -1,
-       64,    -1,    -1,    67,    68,    -1,    70,    -1,    39,    -1,
-       -1,    75,    -1,    44,    45,    46,    47,     1,    -1,     3,
-        4,    -1,    53,     7,     8,     9,    -1,    -1,    59,    60,
-       -1,    62,    -1,    64,    -1,    -1,    67,    68,    69,    70,
-       -1,    -1,    -1,    -1,     1,    -1,     3,     4,    -1,    -1,
-        7,     8,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,
-       44,    45,    46,    47,    -1,    -1,    -1,    -1,    10,    53,
-       -1,    -1,    -1,    15,    -1,    59,    60,    -1,    62,    -1,
-       64,    -1,    39,    67,    68,    -1,    70,    44,    45,    46,
-       47,     1,    -1,     3,     4,    -1,    53,     7,     8,    41,
-       42,    43,    59,    60,    -1,    62,    -1,    64,    -1,    -1,
-       67,    68,    54,    70,    56,    57,    58,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    -1,    39,
-        7,     8,    -1,    -1,    44,    45,    46,    47,    -1,    -1,
-       -1,    -1,    -1,    53,    -1,    -1,    23,    -1,    -1,    59,
-       60,    -1,    62,    -1,    64,    32,    33,    67,    68,    -1,
-       70,    -1,    39,    -1,    -1,    -1,    -1,    44,    45,    46,
-       47,    -1,    -1,    -1,     3,     4,    53,    -1,     7,     8,
-       -1,    -1,    59,    60,    -1,    62,    -1,    64,    -1,    -1,
-       67,    68,    -1,    70,    23,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    32,    33,    -1,    -1,    -1,    -1,    -1,
-       39,    -1,    -1,    -1,    -1,    44,    45,    46,    47,    -1,
-       -1,    -1,    -1,    -1,    53,    -1,    -1,    -1,    -1,    -1,
-       59,    60,    10,    62,    -1,    64,    -1,    15,    67,    68,
-       -1,    70,     3,     4,    -1,    -1,     7,     8,    -1,    -1,
-       -1,    12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    41,    42,    43,    -1,    -1,    -1,     3,
-        4,    -1,    -1,     7,     8,     9,    54,    55,    39,    57,
-       58,    -1,    -1,    44,    45,    46,    47,    -1,    -1,    -1,
-       -1,    10,    53,    -1,    -1,    -1,    15,    -1,    59,    60,
-       -1,    62,    -1,    64,    -1,    39,    67,    68,    -1,    70,
-       44,    45,    46,    47,    -1,    -1,     3,     4,    -1,    53,
-        7,     8,    41,    42,    43,    59,    60,    -1,    62,    -1,
-       64,    -1,    -1,    67,    68,    54,    70,    -1,    57,    58,
-       -1,    -1,    -1,     3,     4,    -1,    -1,     7,     8,    -1,
-       -1,    -1,    39,    -1,    -1,    -1,    -1,    44,    45,    46,
-       47,    -1,    -1,    -1,    -1,    -1,    53,    -1,    -1,    -1,
-       -1,    -1,    59,    60,    -1,    62,    -1,    64,    -1,    -1,
-       67,    68,    -1,    70,    44,    45,    46,    47,    -1,    -1,
-       -1,    -1,    -1,    53,    -1,    -1,    -1,    -1,    -1,    59,
-       60,    -1,    62,    -1,    64,    -1,    -1,    67,    68,    -1,
-       70
++      64,    -1,    -1,    67,    68,    -1,    70
  };
  
    /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
       symbol of state STATE-NUM.  */
  static const yytype_uint8 yystos[] =
  {
 -       0,    76,     0,     1,     3,     4,     7,     8,    17,    18,
 -      35,    36,    37,    38,    43,    44,    45,    46,    47,    51,
 -      52,    58,    59,    61,    63,    66,    67,    69,    77,    80,
 -      84,    86,    88,   106,   114,   118,   119,   120,   121,   122,
 -     123,   131,   132,    67,    70,   128,   129,   130,     3,     4,
 -      45,    46,    69,    82,    83,   124,   132,   132,   132,    67,
 -      67,    69,   119,   132,   119,   119,    67,   121,   132,     1,
 -     113,   114,    48,    50,   123,    72,    74,    81,    90,   106,
 -     134,   138,    81,    87,    51,     9,    14,    40,    41,    42,
 -      53,    55,    56,    57,   116,   117,    11,   119,    58,    59,
 -      60,    61,    62,    65,    58,    59,    60,    61,    62,    65,
 -      12,    13,    43,    44,    52,   115,   112,   113,   114,   113,
 -      16,   128,    49,    67,    56,   108,   112,   112,   114,    43,
 -      44,   133,     1,    55,    68,   136,   140,   136,     1,     6,
 -      78,     1,     6,    79,   106,   107,    89,   107,     5,   114,
 -     131,   114,   114,   114,   107,   114,    38,   119,   119,   119,
 -     119,   119,   119,   119,   119,   119,   119,   119,   119,    13,
 -     114,   136,    71,    85,   119,   136,   136,   114,   107,    40,
 -       1,   114,     1,    90,     1,    90,     1,    19,    21,    22,
 -      23,    26,    27,    28,    29,    30,    31,    32,    33,    34,
 -      39,    73,    91,    92,    94,   101,   105,   114,   134,   135,
 -     138,    54,   114,   124,     1,     4,   109,   110,   131,    67,
 -      93,     4,    67,    67,    67,   107,    67,    90,    90,    90,
 -     111,   114,    90,   107,    90,    95,    89,   137,   138,   107,
 -     114,   136,     1,   140,   114,   111,    96,     4,   114,   114,
 -      91,     4,    94,    97,    90,    67,   102,   112,   135,   107,
 -     107,     1,     4,   136,    90,   125,   126,   127,   128,    68,
 -     136,   136,    26,    40,   138,   113,    10,   103,   107,    16,
 -     127,   107,   107,    67,   131,   107,   136,   104,    91,   134,
 -      91,   114,   136,   114,   138,   118,    20,    98,   136,   107,
 -     138,   107,   107,     1,    24,    25,    99,   107,   107,    91,
 -     107,    97,    91,     7,     8,    58,    59,    86,   100,    54,
 -     139,   135,    97,   136,     7,     7,   139,   107,   136,   107,
 -     107,    89,   107,    91,    89,    91
 +       0,    77,     0,     1,     3,     4,     7,     8,    18,    19,
 +      36,    37,    38,    39,    44,    45,    46,    47,    48,    52,
 +      53,    59,    60,    62,    64,    67,    68,    70,    78,    81,
-       85,    86,    89,   107,   118,   122,   123,   124,   125,   126,
-      127,   135,   136,    68,    71,   132,   133,   134,     3,     4,
-       46,    47,    70,    83,    84,   128,   136,   136,   136,    68,
-       68,    70,   123,   136,   123,   123,    68,   125,   136,     1,
-      114,   118,    49,    51,   127,    73,    75,    82,    91,   107,
-      138,   142,    82,    87,    52,    10,    15,    41,    42,    43,
-       54,    56,    57,    58,   120,   121,    12,   123,    59,    60,
++      85,    87,    90,   108,   119,   123,   124,   125,   126,   127,
++     128,   136,   137,    68,    71,   133,   134,   135,     3,     4,
++      46,    47,    70,    83,    84,   129,   137,   137,   137,    68,
++      68,    70,   124,   137,   124,   124,    68,   126,   137,     1,
++     115,   119,    49,    51,   128,    73,    75,    82,    92,   108,
++     139,   143,    82,    88,    52,    10,    15,    41,    42,    43,
++      54,    56,    57,    58,   121,   122,    12,   124,    59,    60,
 +      61,    62,    63,    66,    59,    60,    61,    62,    63,    66,
-       13,    14,    44,    45,    53,   119,     1,     9,    88,   115,
-      116,   117,   118,   114,   118,    17,   132,    50,    68,    57,
-      109,   115,   115,   118,    44,    45,   137,     1,    56,    69,
-      140,   144,   140,     1,     6,    79,     1,     6,    80,   107,
-      108,    90,   108,     5,    88,   118,   135,   118,   118,   118,
-      108,   118,    39,   123,   123,   123,   123,   123,   123,   123,
-      123,   123,   123,   123,   123,    88,    14,   118,   140,     1,
-      144,    72,     1,     4,   110,   111,   123,   140,   140,   118,
-      108,    41,     1,   118,     1,    91,     1,    91,     1,    20,
-       22,    23,    24,    27,    28,    29,    30,    31,    32,    33,
-       34,    35,    40,    74,    92,    93,    95,   102,   106,   118,
-      138,   139,   142,    55,   118,   128,   117,     1,   117,   140,
-        1,   144,   135,    68,    94,     4,    68,    68,    68,   108,
-       68,    91,    91,    91,   112,   118,    91,   108,    91,    96,
-       90,   141,   142,   108,   118,   108,     1,     4,   118,   112,
-       97,     4,   118,   118,    92,     4,    95,    98,    91,    68,
-      103,   113,   114,   139,   108,   140,    91,   129,   130,   131,
-      132,    69,   140,   140,    27,    41,   142,   114,    11,   104,
-      108,    17,   131,   108,   108,    68,   135,   108,   140,   105,
-       92,   138,    92,   118,   140,   118,   142,   122,    21,    99,
-      140,   108,   142,   108,   108,     1,    25,    26,   100,   108,
-      108,    92,   108,    98,    92,     7,     8,    59,    60,    86,
-       88,   101,    55,   143,   139,    98,   140,     7,     7,   143,
-      108,   140,   108,   108,    90,   108,    92,    90,    92
++      13,    14,    44,    45,    53,   120,     1,     9,    89,   116,
++     117,   118,   119,   115,   119,    17,   133,    50,    68,    57,
++     110,   116,   116,   119,    44,    45,   138,     1,    56,    69,
++     141,   145,   141,     1,     6,    79,     1,     6,    80,   108,
++     109,    91,   109,     5,    89,   119,   136,   119,   119,   119,
++     109,   119,    39,   124,   124,   124,   124,   124,   124,   124,
++     124,   124,   124,   124,   124,    89,    14,   119,   141,     1,
++     145,    72,    86,   124,   141,   141,   119,   109,    41,     1,
++     119,     1,    92,     1,    92,     1,    20,    22,    23,    24,
++      27,    28,    29,    30,    31,    32,    33,    34,    35,    40,
++      74,    93,    94,    96,   103,   107,   119,   139,   140,   143,
++      55,   119,   129,   118,     1,   118,     1,     4,   111,   112,
++     136,    68,    95,     4,    68,    68,    68,   109,    68,    92,
++      92,    92,   113,   119,    92,   109,    92,    97,    91,   142,
++     143,   109,   119,   141,     1,   145,   119,   113,    98,     4,
++     119,   119,    93,     4,    96,    99,    92,    68,   104,   114,
++     115,   140,   109,   109,     1,     4,   141,    92,   130,   131,
++     132,   133,    69,   141,   141,    27,    41,   143,   115,    11,
++     105,   109,    17,   132,   109,   109,    68,   136,   109,   141,
++     106,    93,   139,    93,   119,   141,   119,   143,   123,    21,
++     100,   141,   109,   143,   109,   109,     1,    25,    26,   101,
++     109,   109,    93,   109,    99,    93,     7,     8,    59,    60,
++      87,    89,   102,    55,   144,   140,    99,   141,     7,     7,
++     144,   109,   141,   109,   109,    91,   109,    93,    91,    93
  };
  
    /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
  static const yytype_uint8 yyr1[] =
  {
 -       0,    75,    76,    76,    76,    76,    76,    77,    77,    77,
 -      77,    77,    78,    78,    78,    79,    79,    79,    80,    80,
 -      80,    80,    80,    80,    80,    81,    82,    82,    82,    82,
 -      83,    83,    85,    84,    87,    86,    88,    88,    89,    89,
 -      89,    90,    90,    91,    91,    91,    91,    91,    91,    91,
 -      91,    91,    91,    92,    92,    92,    92,    92,    93,    92,
 -      92,    95,    94,    96,    94,    94,    94,    97,    97,    98,
 -      98,    98,    99,    99,   100,   100,   100,   100,   100,   101,
 -     101,   102,   102,   103,   104,   103,   105,   105,   106,   106,
 -     107,   107,   108,   108,   109,   109,   110,   110,   110,   110,
 -     110,   111,   111,   112,   112,   113,   113,   113,   113,   113,
 -     113,   114,   114,   114,   114,   114,   114,   114,   114,   115,
 -     115,   115,   116,   116,   117,   117,   118,   118,   118,   119,
 -     119,   119,   119,   119,   119,   119,   119,   119,   119,   119,
 -     120,   120,   120,   120,   120,   120,   120,   121,   121,   121,
 -     121,   121,   121,   121,   121,   121,   121,   121,   121,   121,
 -     121,   122,   122,   123,   124,   124,   125,   125,   126,   126,
 -     127,   128,   129,   129,   130,   131,   131,   132,   132,   133,
 -     133,   133,   134,   135,   136,   137,   137,   138,   139,   140
 +       0,    76,    77,    77,    77,    77,    77,    78,    78,    78,
 +      78,    78,    79,    79,    79,    80,    80,    80,    81,    81,
 +      81,    81,    81,    81,    81,    82,    83,    83,    83,    83,
-       84,    84,    85,    87,    86,    88,    89,    89,    90,    90,
-       90,    91,    91,    92,    92,    92,    92,    92,    92,    92,
-       92,    92,    92,    93,    93,    93,    93,    93,    94,    93,
-       93,    96,    95,    97,    95,    95,    95,    98,    98,    99,
-       99,    99,   100,   100,   101,   101,   101,   101,   101,   101,
-      102,   102,   103,   103,   104,   105,   104,   106,   106,   107,
-      107,   108,   108,   109,   109,   110,   110,   111,   111,   111,
-      111,   111,   112,   112,   113,   113,   114,   114,   114,   114,
-      114,   114,   115,   115,   116,   116,   116,   116,   116,   116,
-      117,   117,   118,   118,   118,   118,   118,   118,   118,   118,
-      118,   118,   119,   119,   119,   120,   120,   121,   121,   122,
-      122,   122,   123,   123,   123,   123,   123,   123,   123,   123,
++      84,    84,    86,    85,    88,    87,    89,    90,    90,    91,
++      91,    91,    92,    92,    93,    93,    93,    93,    93,    93,
++      93,    93,    93,    93,    94,    94,    94,    94,    94,    95,
++      94,    94,    97,    96,    98,    96,    96,    96,    99,    99,
++     100,   100,   100,   101,   101,   102,   102,   102,   102,   102,
++     102,   103,   103,   104,   104,   105,   106,   105,   107,   107,
++     108,   108,   109,   109,   110,   110,   111,   111,   112,   112,
++     112,   112,   112,   113,   113,   114,   114,   115,   115,   115,
++     115,   115,   115,   116,   116,   117,   117,   117,   117,   117,
++     117,   118,   118,   119,   119,   119,   119,   119,   119,   119,
++     119,   119,   119,   120,   120,   120,   121,   121,   122,   122,
 +     123,   123,   123,   124,   124,   124,   124,   124,   124,   124,
-      125,   125,   125,   125,   125,   125,   125,   125,   125,   125,
-      125,   125,   125,   125,   126,   126,   127,   128,   128,   129,
-      129,   130,   130,   131,   132,   133,   133,   134,   135,   135,
-      136,   136,   137,   137,   137,   138,   139,   140,   141,   141,
-      142,   143,   144
++     124,   124,   124,   124,   125,   125,   125,   125,   125,   125,
++     125,   126,   126,   126,   126,   126,   126,   126,   126,   126,
++     126,   126,   126,   126,   126,   127,   127,   128,   129,   129,
++     130,   130,   131,   131,   132,   133,   134,   134,   135,   136,
++     136,   137,   137,   138,   138,   138,   139,   140,   141,   142,
++     142,   143,   144,   145
  };
  
    /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
@@@ -1182,24 -1150,22 +1189,24 @@@ static const yytype_uint8 yyr2[] 
         0,     2,     0,     2,     2,     2,     2,     2,     2,     2,
         4,     4,     1,     2,     1,     1,     2,     1,     0,     1,
         4,     1,     1,     1,     1,     5,     1,     1,     1,     2,
-        1,     1,     6,     0,     3,     1,     1,     1,     0,     2,
-        2,     1,     2,     2,     3,     1,     9,     6,     8,     8,
-       12,    11,     1,     2,     2,     2,     2,     3,     0,     4,
-        2,     0,     4,     0,     4,     4,     1,     0,     1,     0,
-        2,     2,     5,     4,     1,     2,     2,     1,     1,     1,
-        1,     1,     1,     3,     0,     0,     3,     6,     9,     1,
-        2,     0,     1,     0,     2,     0,     1,     1,     3,     1,
-        2,     3,     0,     1,     0,     1,     1,     3,     1,     2,
-        3,     3,     0,     1,     1,     3,     1,     2,     3,     3,
-        1,     1,     3,     3,     3,     3,     3,     3,     3,     3,
-        5,     1,     1,     1,     2,     1,     1,     1,     1,     1,
-        1,     2,     1,     3,     3,     3,     3,     3,     3,     3,
-        2,     2,     5,     4,     3,     3,     3,     3,     3,     3,
-        1,     2,     3,     4,     4,     1,     1,     1,     2,     2,
-        1,     1,     2,     2,     1,     2,     4,     0,     1,     0,
-        2,     1,     2,     1,     3,     1,     2,     2,     1,     2,
-        1,     3,     1,     1,     0,     2,     2,     1,     0,     1,
-        1,     1,     2
 -       1,     1,     0,     7,     0,     3,     1,     1,     0,     2,
 -       2,     1,     2,     2,     3,     1,     9,     6,     8,     8,
 -      12,    11,     1,     2,     2,     2,     2,     3,     0,     4,
 -       2,     0,     4,     0,     4,     4,     1,     0,     1,     0,
 -       2,     2,     5,     4,     1,     2,     2,     1,     1,     1,
 -       1,     1,     3,     0,     0,     3,     6,     9,     1,     2,
 -       0,     1,     0,     2,     0,     1,     1,     3,     1,     2,
 -       3,     0,     1,     0,     1,     1,     3,     1,     2,     3,
 -       3,     3,     3,     3,     3,     3,     3,     5,     1,     1,
 -       1,     2,     1,     1,     1,     1,     1,     1,     2,     1,
 -       3,     3,     3,     3,     3,     3,     3,     2,     2,     5,
 -       4,     3,     3,     3,     3,     3,     3,     1,     2,     3,
 -       4,     4,     1,     1,     1,     2,     2,     1,     1,     2,
 -       2,     1,     2,     4,     0,     1,     0,     2,     1,     2,
 -       1,     3,     1,     2,     2,     1,     2,     1,     3,     1,
 -       1,     0,     2,     2,     1,     0,     1,     1,     1,     2
++       1,     1,     0,     7,     0,     3,     1,     1,     1,     0,
++       2,     2,     1,     2,     2,     3,     1,     9,     6,     8,
++       8,    12,    11,     1,     2,     2,     2,     2,     3,     0,
++       4,     2,     0,     4,     0,     4,     4,     1,     0,     1,
++       0,     2,     2,     5,     4,     1,     2,     2,     1,     1,
++       1,     1,     1,     1,     3,     0,     0,     3,     6,     9,
++       1,     2,     0,     1,     0,     2,     0,     1,     1,     3,
++       1,     2,     3,     0,     1,     0,     1,     1,     3,     1,
++       2,     3,     3,     0,     1,     1,     3,     1,     2,     3,
++       3,     1,     1,     3,     3,     3,     3,     3,     3,     3,
++       3,     5,     1,     1,     1,     2,     1,     1,     1,     1,
++       1,     1,     2,     1,     3,     3,     3,     3,     3,     3,
++       3,     2,     2,     5,     4,     3,     3,     3,     3,     3,
++       3,     1,     2,     3,     4,     4,     1,     1,     1,     2,
++       2,     1,     1,     2,     2,     1,     2,     4,     0,     1,
++       0,     2,     1,     2,     1,     3,     1,     2,     2,     1,
++       2,     1,     3,     1,     1,     0,     2,     2,     1,     0,
++       1,     1,     1,     2
  };
  
  
@@@ -1881,7 -1847,7 +1888,7 @@@ yyreduce
                rule = 0;
                yyerrok;
          }
- #line 1885 "awkgram.c" /* yacc.c:1646  */
 -#line 1851 "awkgram.c" /* yacc.c:1646  */
++#line 1892 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 5:
@@@ -1889,7 -1855,7 +1896,7 @@@
      {
                next_sourcefile();
          }
- #line 1893 "awkgram.c" /* yacc.c:1646  */
 -#line 1859 "awkgram.c" /* yacc.c:1646  */
++#line 1900 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 6:
@@@ -1902,7 -1868,7 +1909,7 @@@
                 */
                /* yyerrok; */
          }
- #line 1906 "awkgram.c" /* yacc.c:1646  */
 -#line 1872 "awkgram.c" /* yacc.c:1646  */
++#line 1913 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 7:
@@@ -1911,7 -1877,7 +1918,7 @@@
                (void) append_rule((yyvsp[-1]), (yyvsp[0]));
                first_rule = false;
          }
- #line 1915 "awkgram.c" /* yacc.c:1646  */
 -#line 1881 "awkgram.c" /* yacc.c:1646  */
++#line 1922 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 8:
@@@ -1926,7 -1892,7 +1933,7 @@@
                } else          /* pattern rule with non-empty pattern */
                        (void) append_rule((yyvsp[-1]), NULL);
          }
- #line 1930 "awkgram.c" /* yacc.c:1646  */
 -#line 1896 "awkgram.c" /* yacc.c:1646  */
++#line 1937 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 9:
@@@ -1934,9 -1900,10 +1941,10 @@@
      {
                in_function = NULL;
                (void) mk_function((yyvsp[-1]), (yyvsp[0]));
+               want_param_names = DONT_CHECK;
                yyerrok;
          }
- #line 1940 "awkgram.c" /* yacc.c:1646  */
 -#line 1907 "awkgram.c" /* yacc.c:1646  */
++#line 1948 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 10:
@@@ -1946,7 -1913,7 +1954,7 @@@
                at_seen = false;
                yyerrok;
          }
- #line 1950 "awkgram.c" /* yacc.c:1646  */
 -#line 1917 "awkgram.c" /* yacc.c:1646  */
++#line 1958 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 11:
@@@ -1956,7 -1923,7 +1964,7 @@@
                at_seen = false;
                yyerrok;
          }
- #line 1960 "awkgram.c" /* yacc.c:1646  */
 -#line 1927 "awkgram.c" /* yacc.c:1646  */
++#line 1968 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 12:
@@@ -1968,19 -1935,19 +1976,19 @@@
                bcfree((yyvsp[0]));
                (yyval) = NULL;
          }
- #line 1972 "awkgram.c" /* yacc.c:1646  */
 -#line 1939 "awkgram.c" /* yacc.c:1646  */
++#line 1980 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 13:
- #line 275 "awkgram.y" /* yacc.c:1646  */
+ #line 281 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 1978 "awkgram.c" /* yacc.c:1646  */
 -#line 1945 "awkgram.c" /* yacc.c:1646  */
++#line 1986 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 14:
- #line 277 "awkgram.y" /* yacc.c:1646  */
+ #line 283 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 1984 "awkgram.c" /* yacc.c:1646  */
 -#line 1951 "awkgram.c" /* yacc.c:1646  */
++#line 1992 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 15:
@@@ -1992,19 -1959,19 +2000,19 @@@
                bcfree((yyvsp[0]));
                (yyval) = NULL;
          }
- #line 1996 "awkgram.c" /* yacc.c:1646  */
 -#line 1963 "awkgram.c" /* yacc.c:1646  */
++#line 2004 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 16:
- #line 290 "awkgram.y" /* yacc.c:1646  */
+ #line 296 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 2002 "awkgram.c" /* yacc.c:1646  */
 -#line 1969 "awkgram.c" /* yacc.c:1646  */
++#line 2010 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 17:
- #line 292 "awkgram.y" /* yacc.c:1646  */
+ #line 298 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 2008 "awkgram.c" /* yacc.c:1646  */
 -#line 1975 "awkgram.c" /* yacc.c:1646  */
++#line 2016 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 18:
@@@ -2017,7 -1984,7 +2025,7 @@@
                } else
                        (yyval) = NULL;
          }
- #line 2021 "awkgram.c" /* yacc.c:1646  */
 -#line 1988 "awkgram.c" /* yacc.c:1646  */
++#line 2029 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 19:
@@@ -2030,7 -1997,7 +2038,7 @@@
                } else
                        (yyval) = (yyvsp[0]);
          }
- #line 2034 "awkgram.c" /* yacc.c:1646  */
 -#line 2001 "awkgram.c" /* yacc.c:1646  */
++#line 2042 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 20:
@@@ -2064,7 -2031,7 +2072,7 @@@
                        (yyval) = list_append(list_merge((yyvsp[-3]), 
(yyvsp[0])), tp);
                rule = Rule;
          }
- #line 2068 "awkgram.c" /* yacc.c:1646  */
 -#line 2035 "awkgram.c" /* yacc.c:1646  */
++#line 2076 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 21:
@@@ -2082,7 -2049,7 +2090,7 @@@
                check_comment();
                (yyval) = (yyvsp[0]);
          }
- #line 2086 "awkgram.c" /* yacc.c:1646  */
 -#line 2053 "awkgram.c" /* yacc.c:1646  */
++#line 2094 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 22:
@@@ -2100,7 -2067,7 +2108,7 @@@
                check_comment();
                (yyval) = (yyvsp[0]);
          }
- #line 2104 "awkgram.c" /* yacc.c:1646  */
 -#line 2071 "awkgram.c" /* yacc.c:1646  */
++#line 2112 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 23:
@@@ -2112,7 -2079,7 +2120,7 @@@
                check_comment();
                (yyval) = (yyvsp[0]);
          }
- #line 2116 "awkgram.c" /* yacc.c:1646  */
 -#line 2083 "awkgram.c" /* yacc.c:1646  */
++#line 2124 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 24:
@@@ -2124,7 -2091,7 +2132,7 @@@
                check_comment();
                (yyval) = (yyvsp[0]);
          }
- #line 2128 "awkgram.c" /* yacc.c:1646  */
 -#line 2095 "awkgram.c" /* yacc.c:1646  */
++#line 2136 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 25:
@@@ -2137,19 -2104,19 +2145,19 @@@
                        ip = (yyvsp[-3]);
                (yyval) = ip;
          }
- #line 2141 "awkgram.c" /* yacc.c:1646  */
 -#line 2108 "awkgram.c" /* yacc.c:1646  */
++#line 2149 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 26:
- #line 405 "awkgram.y" /* yacc.c:1646  */
+ #line 411 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 2147 "awkgram.c" /* yacc.c:1646  */
 -#line 2114 "awkgram.c" /* yacc.c:1646  */
++#line 2155 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 27:
- #line 407 "awkgram.y" /* yacc.c:1646  */
+ #line 413 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 2153 "awkgram.c" /* yacc.c:1646  */
 -#line 2120 "awkgram.c" /* yacc.c:1646  */
++#line 2161 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 28:
@@@ -2159,7 -2126,7 +2167,7 @@@
                                        tokstart);
                YYABORT;
          }
- #line 2163 "awkgram.c" /* yacc.c:1646  */
 -#line 2130 "awkgram.c" /* yacc.c:1646  */
++#line 2171 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 29:
@@@ -2168,11 -2135,17 +2176,17 @@@
                (yyval) = (yyvsp[0]);
                at_seen = false;
          }
- #line 2172 "awkgram.c" /* yacc.c:1646  */
 -#line 2139 "awkgram.c" /* yacc.c:1646  */
++#line 2180 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 32:
- #line 428 "awkgram.y" /* yacc.c:1646  */
+ #line 433 "awkgram.y" /* yacc.c:1646  */
+     { want_param_names = FUNC_HEADER; }
 -#line 2145 "awkgram.c" /* yacc.c:1646  */
++#line 2186 "awkgram.c" /* yacc.c:1646  */
+     break;
+ 
+   case 33:
+ #line 434 "awkgram.y" /* yacc.c:1646  */
      {
                /*
                 *  treat any comments between BOF and the first function
@@@ -2190,26 -2163,27 +2204,27 @@@
                        comment = NULL;
                }
                func_first = false;
-               (yyvsp[-5])->source_file = source;
-               if (install_function((yyvsp[-4])->lextok, (yyvsp[-5]), 
(yyvsp[-2])) < 0)
+               (yyvsp[-6])->source_file = source;
+               if (install_function((yyvsp[-5])->lextok, (yyvsp[-6]), 
(yyvsp[-2])) < 0)
                        YYABORT;
-               in_function = (yyvsp[-4])->lextok;
-               (yyvsp[-4])->lextok = NULL;
-               bcfree((yyvsp[-4]));
-               /* $4 already free'd in install_function */
-               (yyval) = (yyvsp[-5]);
+               in_function = (yyvsp[-5])->lextok;
+               (yyvsp[-5])->lextok = NULL;
+               bcfree((yyvsp[-5]));
+               /* $5 already free'd in install_function */
+               (yyval) = (yyvsp[-6]);
+               want_param_names = FUNC_BODY;
          }
- #line 2203 "awkgram.c" /* yacc.c:1646  */
 -#line 2177 "awkgram.c" /* yacc.c:1646  */
++#line 2218 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 33:
- #line 462 "awkgram.y" /* yacc.c:1646  */
+   case 34:
+ #line 469 "awkgram.y" /* yacc.c:1646  */
      { want_regexp = true; }
- #line 2209 "awkgram.c" /* yacc.c:1646  */
 -#line 2183 "awkgram.c" /* yacc.c:1646  */
++#line 2224 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 34:
- #line 464 "awkgram.y" /* yacc.c:1646  */
+   case 35:
+ #line 471 "awkgram.y" /* yacc.c:1646  */
      {
                  NODE *n, *exp;
                  char *re;
@@@ -2238,57 -2212,28 +2253,57 @@@
                  (yyval)->opcode = Op_match_rec;
                  (yyval)->memory = n;
                }
- #line 2242 "awkgram.c" /* yacc.c:1646  */
 -#line 2216 "awkgram.c" /* yacc.c:1646  */
++#line 2257 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 35:
- #line 496 "awkgram.y" /* yacc.c:1646  */
+   case 36:
+ #line 503 "awkgram.y" /* yacc.c:1646  */
 +    {
 +                NODE *n, *exp;
 +                char *re;
 +                size_t len;
 +
 +                re = (yyvsp[0])->lextok;
 +                (yyvsp[0])->lextok = NULL;
 +                len = strlen(re);
 +
 +                exp = make_str_node(re, len, ALREADY_MALLOCED);
 +                n = make_regnode(Node_hardregex, exp);
 +                if (n == NULL) {
 +                      unref(exp);
 +                      YYABORT;
 +                }
 +                (yyval) = (yyvsp[0]);
 +#if 0
 +                /* Don't set this, on purpose */
 +                /* $$->opcode = Op_match_rec; */
 +#else
 +                (yyval)->opcode = Op_push_re;
 +#endif
 +                (yyval)->memory = n;
 +              }
- #line 2271 "awkgram.c" /* yacc.c:1646  */
++#line 2286 "awkgram.c" /* yacc.c:1646  */
 +    break;
 +
-   case 36:
- #line 523 "awkgram.y" /* yacc.c:1646  */
++  case 37:
++#line 530 "awkgram.y" /* yacc.c:1646  */
      { bcfree((yyvsp[0])); }
- #line 2277 "awkgram.c" /* yacc.c:1646  */
 -#line 2222 "awkgram.c" /* yacc.c:1646  */
++#line 2292 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 38:
- #line 529 "awkgram.y" /* yacc.c:1646  */
 -#line 509 "awkgram.y" /* yacc.c:1646  */
++  case 39:
++#line 536 "awkgram.y" /* yacc.c:1646  */
      {
                if (comment != NULL) {
                        (yyval) = list_create(comment);
                        comment = NULL;
                } else (yyval) = NULL;
          }
- #line 2288 "awkgram.c" /* yacc.c:1646  */
 -#line 2233 "awkgram.c" /* yacc.c:1646  */
++#line 2303 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 39:
- #line 536 "awkgram.y" /* yacc.c:1646  */
 -#line 516 "awkgram.y" /* yacc.c:1646  */
++  case 40:
++#line 543 "awkgram.y" /* yacc.c:1646  */
      {
                if ((yyvsp[0]) == NULL) {
                        if (comment == NULL)
@@@ -2316,40 -2261,40 +2331,40 @@@
                }
                yyerrok;
          }
- #line 2320 "awkgram.c" /* yacc.c:1646  */
 -#line 2265 "awkgram.c" /* yacc.c:1646  */
++#line 2335 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 40:
- #line 564 "awkgram.y" /* yacc.c:1646  */
 -#line 544 "awkgram.y" /* yacc.c:1646  */
++  case 41:
++#line 571 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 2326 "awkgram.c" /* yacc.c:1646  */
 -#line 2271 "awkgram.c" /* yacc.c:1646  */
++#line 2341 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 43:
- #line 574 "awkgram.y" /* yacc.c:1646  */
 -#line 554 "awkgram.y" /* yacc.c:1646  */
++  case 44:
++#line 581 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 2332 "awkgram.c" /* yacc.c:1646  */
 -#line 2277 "awkgram.c" /* yacc.c:1646  */
++#line 2347 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 44:
- #line 576 "awkgram.y" /* yacc.c:1646  */
 -#line 556 "awkgram.y" /* yacc.c:1646  */
++  case 45:
++#line 583 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[-1]); }
- #line 2338 "awkgram.c" /* yacc.c:1646  */
 -#line 2283 "awkgram.c" /* yacc.c:1646  */
++#line 2353 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 45:
- #line 578 "awkgram.y" /* yacc.c:1646  */
 -#line 558 "awkgram.y" /* yacc.c:1646  */
++  case 46:
++#line 585 "awkgram.y" /* yacc.c:1646  */
      {
                if (do_pretty_print)
                        (yyval) = list_prepend((yyvsp[0]), 
instruction(Op_exec_count));
                else
                        (yyval) = (yyvsp[0]);
          }
- #line 2349 "awkgram.c" /* yacc.c:1646  */
 -#line 2294 "awkgram.c" /* yacc.c:1646  */
++#line 2364 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 46:
- #line 585 "awkgram.y" /* yacc.c:1646  */
 -#line 565 "awkgram.y" /* yacc.c:1646  */
++  case 47:
++#line 592 "awkgram.y" /* yacc.c:1646  */
      {
                INSTRUCTION *dflt, *curr = NULL, *cexp, *cstmt;
                INSTRUCTION *ip, *nextc, *tbreak;
@@@ -2439,11 -2384,11 +2454,11 @@@
                break_allowed--;                        
                fix_break_continue(ip, tbreak, NULL);
          }
- #line 2443 "awkgram.c" /* yacc.c:1646  */
 -#line 2388 "awkgram.c" /* yacc.c:1646  */
++#line 2458 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 47:
- #line 675 "awkgram.y" /* yacc.c:1646  */
 -#line 655 "awkgram.y" /* yacc.c:1646  */
++  case 48:
++#line 682 "awkgram.y" /* yacc.c:1646  */
      { 
                /*
                 *    -----------------
@@@ -2485,11 -2430,11 +2500,11 @@@
                continue_allowed--;
                fix_break_continue(ip, tbreak, tcont);
          }
- #line 2489 "awkgram.c" /* yacc.c:1646  */
 -#line 2434 "awkgram.c" /* yacc.c:1646  */
++#line 2504 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 48:
- #line 717 "awkgram.y" /* yacc.c:1646  */
 -#line 697 "awkgram.y" /* yacc.c:1646  */
++  case 49:
++#line 724 "awkgram.y" /* yacc.c:1646  */
      {
                /*
                 *    -----------------
@@@ -2531,11 -2476,11 +2546,11 @@@
                } /* else
                        $1 and $4 are NULLs */
          }
- #line 2535 "awkgram.c" /* yacc.c:1646  */
 -#line 2480 "awkgram.c" /* yacc.c:1646  */
++#line 2550 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 49:
- #line 759 "awkgram.y" /* yacc.c:1646  */
 -#line 739 "awkgram.y" /* yacc.c:1646  */
++  case 50:
++#line 766 "awkgram.y" /* yacc.c:1646  */
      {
                INSTRUCTION *ip;
                char *var_name = (yyvsp[-5])->lextok;
@@@ -2648,44 -2593,44 +2663,44 @@@ regular_loop
                break_allowed--;
                continue_allowed--;
          }
- #line 2652 "awkgram.c" /* yacc.c:1646  */
 -#line 2597 "awkgram.c" /* yacc.c:1646  */
++#line 2667 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 50:
- #line 872 "awkgram.y" /* yacc.c:1646  */
 -#line 852 "awkgram.y" /* yacc.c:1646  */
++  case 51:
++#line 879 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = mk_for_loop((yyvsp[-11]), (yyvsp[-9]), (yyvsp[-6]), 
(yyvsp[-3]), (yyvsp[0]));
  
                break_allowed--;
                continue_allowed--;
          }
- #line 2663 "awkgram.c" /* yacc.c:1646  */
 -#line 2608 "awkgram.c" /* yacc.c:1646  */
++#line 2678 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 51:
- #line 879 "awkgram.y" /* yacc.c:1646  */
 -#line 859 "awkgram.y" /* yacc.c:1646  */
++  case 52:
++#line 886 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = mk_for_loop((yyvsp[-10]), (yyvsp[-8]), (INSTRUCTION 
*) NULL, (yyvsp[-3]), (yyvsp[0]));
  
                break_allowed--;
                continue_allowed--;
          }
- #line 2674 "awkgram.c" /* yacc.c:1646  */
 -#line 2619 "awkgram.c" /* yacc.c:1646  */
++#line 2689 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 52:
- #line 886 "awkgram.y" /* yacc.c:1646  */
 -#line 866 "awkgram.y" /* yacc.c:1646  */
++  case 53:
++#line 893 "awkgram.y" /* yacc.c:1646  */
      {
                if (do_pretty_print)
                        (yyval) = list_prepend((yyvsp[0]), 
instruction(Op_exec_count));
                else
                        (yyval) = (yyvsp[0]);
          }
- #line 2685 "awkgram.c" /* yacc.c:1646  */
 -#line 2630 "awkgram.c" /* yacc.c:1646  */
++#line 2700 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 53:
- #line 896 "awkgram.y" /* yacc.c:1646  */
 -#line 876 "awkgram.y" /* yacc.c:1646  */
++  case 54:
++#line 903 "awkgram.y" /* yacc.c:1646  */
      { 
                if (! break_allowed)
                        error_ln((yyvsp[-1])->source_line,
@@@ -2694,11 -2639,11 +2709,11 @@@
                (yyval) = list_create((yyvsp[-1]));
  
          }
- #line 2698 "awkgram.c" /* yacc.c:1646  */
 -#line 2643 "awkgram.c" /* yacc.c:1646  */
++#line 2713 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 54:
- #line 905 "awkgram.y" /* yacc.c:1646  */
 -#line 885 "awkgram.y" /* yacc.c:1646  */
++  case 55:
++#line 912 "awkgram.y" /* yacc.c:1646  */
      {
                if (! continue_allowed)
                        error_ln((yyvsp[-1])->source_line,
@@@ -2707,11 -2652,11 +2722,11 @@@
                (yyval) = list_create((yyvsp[-1]));
  
          }
- #line 2711 "awkgram.c" /* yacc.c:1646  */
 -#line 2656 "awkgram.c" /* yacc.c:1646  */
++#line 2726 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 55:
- #line 914 "awkgram.y" /* yacc.c:1646  */
 -#line 894 "awkgram.y" /* yacc.c:1646  */
++  case 56:
++#line 921 "awkgram.y" /* yacc.c:1646  */
      {
                /* if inside function (rule = 0), resolve context at run-time */
                if (rule && rule != Rule)
@@@ -2720,11 -2665,11 +2735,11 @@@
                (yyvsp[-1])->target_jmp = ip_rec;
                (yyval) = list_create((yyvsp[-1]));
          }
- #line 2724 "awkgram.c" /* yacc.c:1646  */
 -#line 2669 "awkgram.c" /* yacc.c:1646  */
++#line 2739 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 56:
- #line 923 "awkgram.y" /* yacc.c:1646  */
 -#line 903 "awkgram.y" /* yacc.c:1646  */
++  case 57:
++#line 930 "awkgram.y" /* yacc.c:1646  */
      {
                /* if inside function (rule = 0), resolve context at run-time */
                if (rule == BEGIN || rule == END || rule == ENDFILE)
@@@ -2735,11 -2680,11 +2750,11 @@@
                (yyvsp[-1])->target_endfile = ip_endfile;
                (yyval) = list_create((yyvsp[-1]));
          }
- #line 2739 "awkgram.c" /* yacc.c:1646  */
 -#line 2684 "awkgram.c" /* yacc.c:1646  */
++#line 2754 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 57:
- #line 934 "awkgram.y" /* yacc.c:1646  */
 -#line 914 "awkgram.y" /* yacc.c:1646  */
++  case 58:
++#line 941 "awkgram.y" /* yacc.c:1646  */
      {
                /* Initialize the two possible jump targets, the actual target
                 * is resolved at run-time. 
@@@ -2754,20 -2699,20 +2769,20 @@@
                } else
                        (yyval) = list_append((yyvsp[-1]), (yyvsp[-2]));
          }
- #line 2758 "awkgram.c" /* yacc.c:1646  */
 -#line 2703 "awkgram.c" /* yacc.c:1646  */
++#line 2773 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 58:
- #line 949 "awkgram.y" /* yacc.c:1646  */
 -#line 929 "awkgram.y" /* yacc.c:1646  */
++  case 59:
++#line 956 "awkgram.y" /* yacc.c:1646  */
      {
                if (! in_function)
                        yyerror(_("`return' used outside function context"));
          }
- #line 2767 "awkgram.c" /* yacc.c:1646  */
 -#line 2712 "awkgram.c" /* yacc.c:1646  */
++#line 2782 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 59:
- #line 952 "awkgram.y" /* yacc.c:1646  */
 -#line 932 "awkgram.y" /* yacc.c:1646  */
++  case 60:
++#line 959 "awkgram.y" /* yacc.c:1646  */
      {
                if ((yyvsp[-1]) == NULL) {
                        (yyval) = list_create((yyvsp[-3]));
@@@ -2788,17 -2733,17 +2803,17 @@@
                        (yyval) = list_append((yyvsp[-1]), (yyvsp[-3]));
                }
          }
- #line 2792 "awkgram.c" /* yacc.c:1646  */
 -#line 2737 "awkgram.c" /* yacc.c:1646  */
++#line 2807 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 61:
- #line 984 "awkgram.y" /* yacc.c:1646  */
 -#line 964 "awkgram.y" /* yacc.c:1646  */
++  case 62:
++#line 991 "awkgram.y" /* yacc.c:1646  */
      { in_print = true; in_parens = 0; }
- #line 2798 "awkgram.c" /* yacc.c:1646  */
 -#line 2743 "awkgram.c" /* yacc.c:1646  */
++#line 2813 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 62:
- #line 985 "awkgram.y" /* yacc.c:1646  */
 -#line 965 "awkgram.y" /* yacc.c:1646  */
++  case 63:
++#line 992 "awkgram.y" /* yacc.c:1646  */
      {
                /*
                 * Optimization: plain `print' has no expression list, so $3 is 
null.
@@@ -2895,17 -2840,17 +2910,17 @@@ regular_print
                        }
                }
          }
- #line 2899 "awkgram.c" /* yacc.c:1646  */
 -#line 2844 "awkgram.c" /* yacc.c:1646  */
++#line 2914 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 63:
- #line 1082 "awkgram.y" /* yacc.c:1646  */
 -#line 1062 "awkgram.y" /* yacc.c:1646  */
++  case 64:
++#line 1089 "awkgram.y" /* yacc.c:1646  */
      { sub_counter = 0; }
- #line 2905 "awkgram.c" /* yacc.c:1646  */
 -#line 2850 "awkgram.c" /* yacc.c:1646  */
++#line 2920 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 64:
- #line 1083 "awkgram.y" /* yacc.c:1646  */
 -#line 1063 "awkgram.y" /* yacc.c:1646  */
++  case 65:
++#line 1090 "awkgram.y" /* yacc.c:1646  */
      {
                char *arr = (yyvsp[-2])->lextok;
  
@@@ -2938,11 -2883,11 +2953,11 @@@
                        (yyval) = list_append(list_append((yyvsp[0]), 
(yyvsp[-2])), (yyvsp[-3]));
                }
          }
- #line 2942 "awkgram.c" /* yacc.c:1646  */
 -#line 2887 "awkgram.c" /* yacc.c:1646  */
++#line 2957 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 65:
- #line 1120 "awkgram.y" /* yacc.c:1646  */
 -#line 1100 "awkgram.y" /* yacc.c:1646  */
++  case 66:
++#line 1127 "awkgram.y" /* yacc.c:1646  */
      {
                static bool warned = false;
                char *arr = (yyvsp[-1])->lextok;
@@@ -2968,52 -2913,52 +2983,52 @@@
                                fatal(_("`delete' is not allowed with 
FUNCTAB"));
                }
          }
- #line 2972 "awkgram.c" /* yacc.c:1646  */
 -#line 2917 "awkgram.c" /* yacc.c:1646  */
++#line 2987 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 66:
- #line 1146 "awkgram.y" /* yacc.c:1646  */
 -#line 1126 "awkgram.y" /* yacc.c:1646  */
++  case 67:
++#line 1153 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = optimize_assignment((yyvsp[0])); }
- #line 2978 "awkgram.c" /* yacc.c:1646  */
 -#line 2923 "awkgram.c" /* yacc.c:1646  */
++#line 2993 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 67:
- #line 1151 "awkgram.y" /* yacc.c:1646  */
 -#line 1131 "awkgram.y" /* yacc.c:1646  */
++  case 68:
++#line 1158 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 2984 "awkgram.c" /* yacc.c:1646  */
 -#line 2929 "awkgram.c" /* yacc.c:1646  */
++#line 2999 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 68:
- #line 1153 "awkgram.y" /* yacc.c:1646  */
 -#line 1133 "awkgram.y" /* yacc.c:1646  */
++  case 69:
++#line 1160 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 2990 "awkgram.c" /* yacc.c:1646  */
 -#line 2935 "awkgram.c" /* yacc.c:1646  */
++#line 3005 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 69:
- #line 1158 "awkgram.y" /* yacc.c:1646  */
 -#line 1138 "awkgram.y" /* yacc.c:1646  */
++  case 70:
++#line 1165 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 2996 "awkgram.c" /* yacc.c:1646  */
 -#line 2941 "awkgram.c" /* yacc.c:1646  */
++#line 3011 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 70:
- #line 1160 "awkgram.y" /* yacc.c:1646  */
 -#line 1140 "awkgram.y" /* yacc.c:1646  */
++  case 71:
++#line 1167 "awkgram.y" /* yacc.c:1646  */
      {
                if ((yyvsp[-1]) == NULL)
                        (yyval) = list_create((yyvsp[0]));
                else
                        (yyval) = list_prepend((yyvsp[-1]), (yyvsp[0]));
          }
- #line 3007 "awkgram.c" /* yacc.c:1646  */
 -#line 2952 "awkgram.c" /* yacc.c:1646  */
++#line 3022 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 71:
- #line 1167 "awkgram.y" /* yacc.c:1646  */
 -#line 1147 "awkgram.y" /* yacc.c:1646  */
++  case 72:
++#line 1174 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 3013 "awkgram.c" /* yacc.c:1646  */
 -#line 2958 "awkgram.c" /* yacc.c:1646  */
++#line 3028 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 72:
- #line 1172 "awkgram.y" /* yacc.c:1646  */
 -#line 1152 "awkgram.y" /* yacc.c:1646  */
++  case 73:
++#line 1179 "awkgram.y" /* yacc.c:1646  */
      {
                INSTRUCTION *casestmt = (yyvsp[0]);
                if ((yyvsp[0]) == NULL)
@@@ -3025,11 -2970,11 +3040,11 @@@
                bcfree((yyvsp[-2]));
                (yyval) = (yyvsp[-4]);
          }
- #line 3029 "awkgram.c" /* yacc.c:1646  */
 -#line 2974 "awkgram.c" /* yacc.c:1646  */
++#line 3044 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 73:
- #line 1184 "awkgram.y" /* yacc.c:1646  */
 -#line 1164 "awkgram.y" /* yacc.c:1646  */
++  case 74:
++#line 1191 "awkgram.y" /* yacc.c:1646  */
      {
                INSTRUCTION *casestmt = (yyvsp[0]);
                if ((yyvsp[0]) == NULL)
@@@ -3040,17 -2985,17 +3055,17 @@@
                (yyvsp[-3])->case_stmt = casestmt;
                (yyval) = (yyvsp[-3]);
          }
- #line 3044 "awkgram.c" /* yacc.c:1646  */
 -#line 2989 "awkgram.c" /* yacc.c:1646  */
++#line 3059 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 74:
- #line 1198 "awkgram.y" /* yacc.c:1646  */
 -#line 1178 "awkgram.y" /* yacc.c:1646  */
++  case 75:
++#line 1205 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3050 "awkgram.c" /* yacc.c:1646  */
 -#line 2995 "awkgram.c" /* yacc.c:1646  */
++#line 3065 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 75:
- #line 1200 "awkgram.y" /* yacc.c:1646  */
 -#line 1180 "awkgram.y" /* yacc.c:1646  */
++  case 76:
++#line 1207 "awkgram.y" /* yacc.c:1646  */
      { 
                NODE *n = (yyvsp[0])->memory;
                (void) force_number(n);
@@@ -3058,84 -3003,71 +3073,84 @@@
                bcfree((yyvsp[-1]));
                (yyval) = (yyvsp[0]);
          }
- #line 3062 "awkgram.c" /* yacc.c:1646  */
 -#line 3007 "awkgram.c" /* yacc.c:1646  */
++#line 3077 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 76:
- #line 1208 "awkgram.y" /* yacc.c:1646  */
 -#line 1188 "awkgram.y" /* yacc.c:1646  */
++  case 77:
++#line 1215 "awkgram.y" /* yacc.c:1646  */
      {
                bcfree((yyvsp[-1]));
                (yyval) = (yyvsp[0]);
          }
- #line 3071 "awkgram.c" /* yacc.c:1646  */
 -#line 3016 "awkgram.c" /* yacc.c:1646  */
++#line 3086 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 77:
- #line 1213 "awkgram.y" /* yacc.c:1646  */
 -#line 1193 "awkgram.y" /* yacc.c:1646  */
++  case 78:
++#line 1220 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3077 "awkgram.c" /* yacc.c:1646  */
 -#line 3022 "awkgram.c" /* yacc.c:1646  */
++#line 3092 "awkgram.c" /* yacc.c:1646  */
      break;
  
--  case 78:
- #line 1215 "awkgram.y" /* yacc.c:1646  */
 -#line 1195 "awkgram.y" /* yacc.c:1646  */
++  case 79:
++#line 1222 "awkgram.y" /* yacc.c:1646  */
      {
 +              if ((yyvsp[0])->memory->type == Node_regex)
 +                      (yyvsp[0])->opcode = Op_push_re;
 +              else
 +                      (yyvsp[0])->opcode = Op_push;
 +              (yyval) = (yyvsp[0]);
 +        }
- #line 3089 "awkgram.c" /* yacc.c:1646  */
++#line 3104 "awkgram.c" /* yacc.c:1646  */
 +    break;
 +
-   case 79:
- #line 1223 "awkgram.y" /* yacc.c:1646  */
++  case 80:
++#line 1230 "awkgram.y" /* yacc.c:1646  */
 +    {
 +              assert((yyvsp[0])->memory->type == Node_hardregex);
                (yyvsp[0])->opcode = Op_push_re;
                (yyval) = (yyvsp[0]);
          }
- #line 3099 "awkgram.c" /* yacc.c:1646  */
 -#line 3031 "awkgram.c" /* yacc.c:1646  */
++#line 3114 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 80:
- #line 1232 "awkgram.y" /* yacc.c:1646  */
 -  case 79:
 -#line 1203 "awkgram.y" /* yacc.c:1646  */
++  case 81:
++#line 1239 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3105 "awkgram.c" /* yacc.c:1646  */
 -#line 3037 "awkgram.c" /* yacc.c:1646  */
++#line 3120 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 81:
- #line 1234 "awkgram.y" /* yacc.c:1646  */
 -  case 80:
 -#line 1205 "awkgram.y" /* yacc.c:1646  */
++  case 82:
++#line 1241 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3111 "awkgram.c" /* yacc.c:1646  */
 -#line 3043 "awkgram.c" /* yacc.c:1646  */
++#line 3126 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 83:
- #line 1244 "awkgram.y" /* yacc.c:1646  */
 -  case 82:
 -#line 1215 "awkgram.y" /* yacc.c:1646  */
++  case 84:
++#line 1251 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = (yyvsp[-1]);
          }
- #line 3119 "awkgram.c" /* yacc.c:1646  */
 -#line 3051 "awkgram.c" /* yacc.c:1646  */
++#line 3134 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 84:
- #line 1251 "awkgram.y" /* yacc.c:1646  */
 -  case 83:
 -#line 1222 "awkgram.y" /* yacc.c:1646  */
++  case 85:
++#line 1258 "awkgram.y" /* yacc.c:1646  */
      {
                in_print = false;
                in_parens = 0;
                (yyval) = NULL;
          }
- #line 3129 "awkgram.c" /* yacc.c:1646  */
 -#line 3061 "awkgram.c" /* yacc.c:1646  */
++#line 3144 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 85:
- #line 1256 "awkgram.y" /* yacc.c:1646  */
 -  case 84:
 -#line 1227 "awkgram.y" /* yacc.c:1646  */
++  case 86:
++#line 1263 "awkgram.y" /* yacc.c:1646  */
      { in_print = false; in_parens = 0; }
- #line 3135 "awkgram.c" /* yacc.c:1646  */
 -#line 3067 "awkgram.c" /* yacc.c:1646  */
++#line 3150 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 86:
- #line 1257 "awkgram.y" /* yacc.c:1646  */
 -  case 85:
 -#line 1228 "awkgram.y" /* yacc.c:1646  */
++  case 87:
++#line 1264 "awkgram.y" /* yacc.c:1646  */
      {
                if ((yyvsp[-2])->redir_type == redirect_twoway
                        && (yyvsp[0])->lasti->opcode == Op_K_getline_redir
@@@ -3143,136 -3075,136 +3158,136 @@@
                        yyerror(_("multistage two-way pipelines don't work"));
                (yyval) = list_prepend((yyvsp[0]), (yyvsp[-2]));
          }
- #line 3147 "awkgram.c" /* yacc.c:1646  */
 -#line 3079 "awkgram.c" /* yacc.c:1646  */
++#line 3162 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 87:
- #line 1268 "awkgram.y" /* yacc.c:1646  */
 -  case 86:
 -#line 1239 "awkgram.y" /* yacc.c:1646  */
++  case 88:
++#line 1275 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = mk_condition((yyvsp[-3]), (yyvsp[-5]), (yyvsp[0]), 
NULL, NULL);
          }
- #line 3155 "awkgram.c" /* yacc.c:1646  */
 -#line 3087 "awkgram.c" /* yacc.c:1646  */
++#line 3170 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 88:
- #line 1273 "awkgram.y" /* yacc.c:1646  */
 -  case 87:
 -#line 1244 "awkgram.y" /* yacc.c:1646  */
++  case 89:
++#line 1280 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = mk_condition((yyvsp[-6]), (yyvsp[-8]), (yyvsp[-3]), 
(yyvsp[-2]), (yyvsp[0]));
          }
- #line 3163 "awkgram.c" /* yacc.c:1646  */
 -#line 3095 "awkgram.c" /* yacc.c:1646  */
++#line 3178 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 93:
- #line 1290 "awkgram.y" /* yacc.c:1646  */
 -  case 92:
 -#line 1261 "awkgram.y" /* yacc.c:1646  */
++  case 94:
++#line 1297 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 3169 "awkgram.c" /* yacc.c:1646  */
 -#line 3101 "awkgram.c" /* yacc.c:1646  */
++#line 3184 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 94:
- #line 1292 "awkgram.y" /* yacc.c:1646  */
 -  case 93:
 -#line 1263 "awkgram.y" /* yacc.c:1646  */
++  case 95:
++#line 1299 "awkgram.y" /* yacc.c:1646  */
      {
                bcfree((yyvsp[-1]));
                (yyval) = (yyvsp[0]);
          }
- #line 3178 "awkgram.c" /* yacc.c:1646  */
 -#line 3110 "awkgram.c" /* yacc.c:1646  */
++#line 3193 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 95:
- #line 1300 "awkgram.y" /* yacc.c:1646  */
 -  case 94:
 -#line 1271 "awkgram.y" /* yacc.c:1646  */
++  case 96:
++#line 1307 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 3184 "awkgram.c" /* yacc.c:1646  */
 -#line 3116 "awkgram.c" /* yacc.c:1646  */
++#line 3199 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 96:
- #line 1302 "awkgram.y" /* yacc.c:1646  */
 -  case 95:
 -#line 1273 "awkgram.y" /* yacc.c:1646  */
++  case 97:
++#line 1309 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3190 "awkgram.c" /* yacc.c:1646  */
 -#line 3122 "awkgram.c" /* yacc.c:1646  */
++#line 3205 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 97:
- #line 1307 "awkgram.y" /* yacc.c:1646  */
 -  case 96:
 -#line 1278 "awkgram.y" /* yacc.c:1646  */
++  case 98:
++#line 1314 "awkgram.y" /* yacc.c:1646  */
      {
                (yyvsp[0])->param_count = 0;
                (yyval) = list_create((yyvsp[0]));
          }
- #line 3199 "awkgram.c" /* yacc.c:1646  */
 -#line 3131 "awkgram.c" /* yacc.c:1646  */
++#line 3214 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 98:
- #line 1312 "awkgram.y" /* yacc.c:1646  */
 -  case 97:
 -#line 1283 "awkgram.y" /* yacc.c:1646  */
++  case 99:
++#line 1319 "awkgram.y" /* yacc.c:1646  */
      {
                (yyvsp[0])->param_count =  (yyvsp[-2])->lasti->param_count + 1;
                (yyval) = list_append((yyvsp[-2]), (yyvsp[0]));
                yyerrok;
          }
- #line 3209 "awkgram.c" /* yacc.c:1646  */
 -#line 3141 "awkgram.c" /* yacc.c:1646  */
++#line 3224 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 99:
- #line 1318 "awkgram.y" /* yacc.c:1646  */
 -  case 98:
 -#line 1289 "awkgram.y" /* yacc.c:1646  */
++  case 100:
++#line 1325 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 3215 "awkgram.c" /* yacc.c:1646  */
 -#line 3147 "awkgram.c" /* yacc.c:1646  */
++#line 3230 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 100:
- #line 1320 "awkgram.y" /* yacc.c:1646  */
 -  case 99:
 -#line 1291 "awkgram.y" /* yacc.c:1646  */
++  case 101:
++#line 1327 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[-1]); }
- #line 3221 "awkgram.c" /* yacc.c:1646  */
 -#line 3153 "awkgram.c" /* yacc.c:1646  */
++#line 3236 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 101:
- #line 1322 "awkgram.y" /* yacc.c:1646  */
 -  case 100:
 -#line 1293 "awkgram.y" /* yacc.c:1646  */
++  case 102:
++#line 1329 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[-2]); }
- #line 3227 "awkgram.c" /* yacc.c:1646  */
 -#line 3159 "awkgram.c" /* yacc.c:1646  */
++#line 3242 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 102:
- #line 1328 "awkgram.y" /* yacc.c:1646  */
 -  case 101:
 -#line 1299 "awkgram.y" /* yacc.c:1646  */
++  case 103:
++#line 1335 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 3233 "awkgram.c" /* yacc.c:1646  */
 -#line 3165 "awkgram.c" /* yacc.c:1646  */
++#line 3248 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 103:
- #line 1330 "awkgram.y" /* yacc.c:1646  */
 -  case 102:
 -#line 1301 "awkgram.y" /* yacc.c:1646  */
++  case 104:
++#line 1337 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3239 "awkgram.c" /* yacc.c:1646  */
 -#line 3171 "awkgram.c" /* yacc.c:1646  */
++#line 3254 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 104:
- #line 1335 "awkgram.y" /* yacc.c:1646  */
 -  case 103:
 -#line 1306 "awkgram.y" /* yacc.c:1646  */
++  case 105:
++#line 1342 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 3245 "awkgram.c" /* yacc.c:1646  */
 -#line 3177 "awkgram.c" /* yacc.c:1646  */
++#line 3260 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 105:
- #line 1337 "awkgram.y" /* yacc.c:1646  */
 -  case 104:
 -#line 1308 "awkgram.y" /* yacc.c:1646  */
++  case 106:
++#line 1344 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3251 "awkgram.c" /* yacc.c:1646  */
 -#line 3183 "awkgram.c" /* yacc.c:1646  */
++#line 3266 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 106:
- #line 1342 "awkgram.y" /* yacc.c:1646  */
 -  case 105:
 -#line 1313 "awkgram.y" /* yacc.c:1646  */
++  case 107:
++#line 1349 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_expression_list(NULL, (yyvsp[0])); }
- #line 3257 "awkgram.c" /* yacc.c:1646  */
 -#line 3189 "awkgram.c" /* yacc.c:1646  */
++#line 3272 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 107:
- #line 1344 "awkgram.y" /* yacc.c:1646  */
 -  case 106:
 -#line 1315 "awkgram.y" /* yacc.c:1646  */
++  case 108:
++#line 1351 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
                yyerrok;
          }
- #line 3266 "awkgram.c" /* yacc.c:1646  */
 -#line 3198 "awkgram.c" /* yacc.c:1646  */
++#line 3281 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 108:
- #line 1349 "awkgram.y" /* yacc.c:1646  */
 -  case 107:
 -#line 1320 "awkgram.y" /* yacc.c:1646  */
++  case 109:
++#line 1356 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 3272 "awkgram.c" /* yacc.c:1646  */
 -#line 3204 "awkgram.c" /* yacc.c:1646  */
++#line 3287 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 109:
- #line 1351 "awkgram.y" /* yacc.c:1646  */
 -  case 108:
 -#line 1322 "awkgram.y" /* yacc.c:1646  */
++  case 110:
++#line 1358 "awkgram.y" /* yacc.c:1646  */
      {
                /*
                 * Returning the expression list instead of NULL lets
@@@ -3280,152 -3212,52 +3295,152 @@@
                 */
                (yyval) = (yyvsp[-1]);
          }
- #line 3284 "awkgram.c" /* yacc.c:1646  */
 -#line 3216 "awkgram.c" /* yacc.c:1646  */
++#line 3299 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 110:
- #line 1359 "awkgram.y" /* yacc.c:1646  */
 -  case 109:
 -#line 1330 "awkgram.y" /* yacc.c:1646  */
++  case 111:
++#line 1366 "awkgram.y" /* yacc.c:1646  */
      {
                /* Ditto */
                (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
          }
- #line 3293 "awkgram.c" /* yacc.c:1646  */
 -#line 3225 "awkgram.c" /* yacc.c:1646  */
++#line 3308 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 111:
- #line 1364 "awkgram.y" /* yacc.c:1646  */
 -  case 110:
 -#line 1335 "awkgram.y" /* yacc.c:1646  */
++  case 112:
++#line 1371 "awkgram.y" /* yacc.c:1646  */
      {
                /* Ditto */
                (yyval) = (yyvsp[-2]);
          }
- #line 3302 "awkgram.c" /* yacc.c:1646  */
 -#line 3234 "awkgram.c" /* yacc.c:1646  */
++#line 3317 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 112:
- #line 1372 "awkgram.y" /* yacc.c:1646  */
 -  case 111:
 -#line 1344 "awkgram.y" /* yacc.c:1646  */
++  case 113:
++#line 1379 "awkgram.y" /* yacc.c:1646  */
 +    { (yyval) = NULL; }
- #line 3308 "awkgram.c" /* yacc.c:1646  */
++#line 3323 "awkgram.c" /* yacc.c:1646  */
 +    break;
 +
-   case 113:
- #line 1374 "awkgram.y" /* yacc.c:1646  */
++  case 114:
++#line 1381 "awkgram.y" /* yacc.c:1646  */
 +    { (yyval) = (yyvsp[0]); }
- #line 3314 "awkgram.c" /* yacc.c:1646  */
++#line 3329 "awkgram.c" /* yacc.c:1646  */
 +    break;
 +
-   case 114:
- #line 1379 "awkgram.y" /* yacc.c:1646  */
++  case 115:
++#line 1386 "awkgram.y" /* yacc.c:1646  */
 +    { (yyval) = mk_expression_list(NULL, (yyvsp[0])); }
- #line 3320 "awkgram.c" /* yacc.c:1646  */
++#line 3335 "awkgram.c" /* yacc.c:1646  */
 +    break;
 +
-   case 115:
- #line 1381 "awkgram.y" /* yacc.c:1646  */
++  case 116:
++#line 1388 "awkgram.y" /* yacc.c:1646  */
 +    {
 +              (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
 +              yyerrok;
 +        }
- #line 3329 "awkgram.c" /* yacc.c:1646  */
++#line 3344 "awkgram.c" /* yacc.c:1646  */
 +    break;
 +
-   case 116:
- #line 1386 "awkgram.y" /* yacc.c:1646  */
++  case 117:
++#line 1393 "awkgram.y" /* yacc.c:1646  */
 +    { (yyval) = NULL; }
- #line 3335 "awkgram.c" /* yacc.c:1646  */
++#line 3350 "awkgram.c" /* yacc.c:1646  */
 +    break;
 +
-   case 117:
- #line 1388 "awkgram.y" /* yacc.c:1646  */
++  case 118:
++#line 1395 "awkgram.y" /* yacc.c:1646  */
 +    {
 +              /*
 +               * Returning the expression list instead of NULL lets
 +               * snode get a list of arguments that it can count.
 +               */
 +              (yyval) = (yyvsp[-1]);
 +        }
- #line 3347 "awkgram.c" /* yacc.c:1646  */
++#line 3362 "awkgram.c" /* yacc.c:1646  */
 +    break;
 +
-   case 118:
- #line 1396 "awkgram.y" /* yacc.c:1646  */
++  case 119:
++#line 1403 "awkgram.y" /* yacc.c:1646  */
 +    {
 +              /* Ditto */
 +              (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
 +        }
- #line 3356 "awkgram.c" /* yacc.c:1646  */
++#line 3371 "awkgram.c" /* yacc.c:1646  */
 +    break;
 +
-   case 119:
- #line 1401 "awkgram.y" /* yacc.c:1646  */
++  case 120:
++#line 1408 "awkgram.y" /* yacc.c:1646  */
 +    {
 +              /* Ditto */
 +              (yyval) = (yyvsp[-2]);
 +        }
- #line 3365 "awkgram.c" /* yacc.c:1646  */
++#line 3380 "awkgram.c" /* yacc.c:1646  */
 +    break;
 +
-   case 120:
- #line 1408 "awkgram.y" /* yacc.c:1646  */
++  case 121:
++#line 1415 "awkgram.y" /* yacc.c:1646  */
 +    { (yyval) = (yyvsp[0]); }
- #line 3371 "awkgram.c" /* yacc.c:1646  */
++#line 3386 "awkgram.c" /* yacc.c:1646  */
 +    break;
 +
-   case 121:
- #line 1409 "awkgram.y" /* yacc.c:1646  */
++  case 122:
++#line 1416 "awkgram.y" /* yacc.c:1646  */
 +    { (yyval) = list_create((yyvsp[0])); }
- #line 3377 "awkgram.c" /* yacc.c:1646  */
++#line 3392 "awkgram.c" /* yacc.c:1646  */
 +    break;
 +
-   case 122:
- #line 1415 "awkgram.y" /* yacc.c:1646  */
++  case 123:
++#line 1422 "awkgram.y" /* yacc.c:1646  */
      {
                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 3388 "awkgram.c" /* yacc.c:1646  */
 -#line 3245 "awkgram.c" /* yacc.c:1646  */
++#line 3403 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 123:
- #line 1422 "awkgram.y" /* yacc.c:1646  */
 -  case 112:
 -#line 1351 "awkgram.y" /* yacc.c:1646  */
++  case 124:
++#line 1429 "awkgram.y" /* yacc.c:1646  */
 +    {
 +              (yyval) = mk_assignment((yyvsp[-2]), list_create((yyvsp[0])), 
(yyvsp[-1]));
 +        }
- #line 3396 "awkgram.c" /* yacc.c:1646  */
++#line 3411 "awkgram.c" /* yacc.c:1646  */
 +    break;
 +
-   case 124:
- #line 1426 "awkgram.y" /* yacc.c:1646  */
++  case 125:
++#line 1433 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_boolean((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3402 "awkgram.c" /* yacc.c:1646  */
 -#line 3251 "awkgram.c" /* yacc.c:1646  */
++#line 3417 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 125:
- #line 1428 "awkgram.y" /* yacc.c:1646  */
 -  case 113:
 -#line 1353 "awkgram.y" /* yacc.c:1646  */
++  case 126:
++#line 1435 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_boolean((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3408 "awkgram.c" /* yacc.c:1646  */
 -#line 3257 "awkgram.c" /* yacc.c:1646  */
++#line 3423 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 126:
- #line 1430 "awkgram.y" /* yacc.c:1646  */
 -  case 114:
 -#line 1355 "awkgram.y" /* yacc.c:1646  */
++  case 127:
++#line 1437 "awkgram.y" /* yacc.c:1646  */
 +    {
 +              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->type == Node_hardregex);
 +              /* RHS is @/.../ */
 +              (yyvsp[-1])->memory = (yyvsp[0])->memory;
 +              bcfree((yyvsp[0]));
 +              (yyval) = list_append((yyvsp[-2]), (yyvsp[-1]));
 +        }
- #line 3425 "awkgram.c" /* yacc.c:1646  */
++#line 3440 "awkgram.c" /* yacc.c:1646  */
 +    break;
 +
-   case 127:
- #line 1443 "awkgram.y" /* yacc.c:1646  */
++  case 128:
++#line 1450 "awkgram.y" /* yacc.c:1646  */
      {
                if ((yyvsp[-2])->lasti->opcode == Op_match_rec)
                        warning_ln((yyvsp[-1])->source_line,
@@@ -3442,11 -3273,11 +3457,11 @@@
                        (yyval) = list_append(list_merge((yyvsp[-2]), 
(yyvsp[0])), (yyvsp[-1]));
                }
          }
- #line 3446 "awkgram.c" /* yacc.c:1646  */
 -#line 3277 "awkgram.c" /* yacc.c:1646  */
++#line 3461 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 128:
- #line 1460 "awkgram.y" /* yacc.c:1646  */
 -  case 115:
 -#line 1371 "awkgram.y" /* yacc.c:1646  */
++  case 129:
++#line 1467 "awkgram.y" /* yacc.c:1646  */
      {
                if (do_lint_old)
                        warning_ln((yyvsp[-1])->source_line,
@@@ -3456,91 -3287,91 +3471,91 @@@
                (yyvsp[-1])->expr_count = 1;
                (yyval) = list_append(list_merge((yyvsp[-2]), (yyvsp[0])), 
(yyvsp[-1]));
          }
- #line 3460 "awkgram.c" /* yacc.c:1646  */
 -#line 3291 "awkgram.c" /* yacc.c:1646  */
++#line 3475 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 129:
- #line 1470 "awkgram.y" /* yacc.c:1646  */
 -  case 116:
 -#line 1381 "awkgram.y" /* yacc.c:1646  */
++  case 130:
++#line 1477 "awkgram.y" /* yacc.c:1646  */
      {
                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 3471 "awkgram.c" /* yacc.c:1646  */
-     break;
- 
-   case 130:
- #line 1477 "awkgram.y" /* yacc.c:1646  */
-     { (yyval) = mk_condition((yyvsp[-4]), (yyvsp[-3]), (yyvsp[-2]), 
(yyvsp[-1]), (yyvsp[0])); }
- #line 3477 "awkgram.c" /* yacc.c:1646  */
 -#line 3302 "awkgram.c" /* yacc.c:1646  */
++#line 3486 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 117:
 -#line 1388 "awkgram.y" /* yacc.c:1646  */
 +  case 131:
- #line 1479 "awkgram.y" /* yacc.c:1646  */
-     { (yyval) = (yyvsp[0]); }
- #line 3483 "awkgram.c" /* yacc.c:1646  */
++#line 1484 "awkgram.y" /* yacc.c:1646  */
+     { (yyval) = mk_condition((yyvsp[-4]), (yyvsp[-3]), (yyvsp[-2]), 
(yyvsp[-1]), (yyvsp[0])); }
 -#line 3308 "awkgram.c" /* yacc.c:1646  */
++#line 3492 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 118:
 -#line 1390 "awkgram.y" /* yacc.c:1646  */
 +  case 132:
- #line 1484 "awkgram.y" /* yacc.c:1646  */
++#line 1486 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3489 "awkgram.c" /* yacc.c:1646  */
 -#line 3314 "awkgram.c" /* yacc.c:1646  */
++#line 3498 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 119:
 -#line 1395 "awkgram.y" /* yacc.c:1646  */
 +  case 133:
- #line 1486 "awkgram.y" /* yacc.c:1646  */
++#line 1491 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3495 "awkgram.c" /* yacc.c:1646  */
 -#line 3320 "awkgram.c" /* yacc.c:1646  */
++#line 3504 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 120:
 -#line 1397 "awkgram.y" /* yacc.c:1646  */
 +  case 134:
- #line 1488 "awkgram.y" /* yacc.c:1646  */
++#line 1493 "awkgram.y" /* yacc.c:1646  */
+     { (yyval) = (yyvsp[0]); }
 -#line 3326 "awkgram.c" /* yacc.c:1646  */
++#line 3510 "awkgram.c" /* yacc.c:1646  */
+     break;
+ 
 -  case 121:
 -#line 1399 "awkgram.y" /* yacc.c:1646  */
++  case 135:
++#line 1495 "awkgram.y" /* yacc.c:1646  */
      { 
                (yyvsp[0])->opcode = Op_assign_quotient;
                (yyval) = (yyvsp[0]);
          }
- #line 3504 "awkgram.c" /* yacc.c:1646  */
-     break;
- 
-   case 135:
- #line 1496 "awkgram.y" /* yacc.c:1646  */
-     { (yyval) = (yyvsp[0]); }
- #line 3510 "awkgram.c" /* yacc.c:1646  */
 -#line 3335 "awkgram.c" /* yacc.c:1646  */
++#line 3519 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 122:
 -#line 1407 "awkgram.y" /* yacc.c:1646  */
 +  case 136:
- #line 1498 "awkgram.y" /* yacc.c:1646  */
++#line 1503 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3516 "awkgram.c" /* yacc.c:1646  */
 -#line 3341 "awkgram.c" /* yacc.c:1646  */
++#line 3525 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 123:
 -#line 1409 "awkgram.y" /* yacc.c:1646  */
 +  case 137:
- #line 1503 "awkgram.y" /* yacc.c:1646  */
++#line 1505 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3522 "awkgram.c" /* yacc.c:1646  */
 -#line 3347 "awkgram.c" /* yacc.c:1646  */
++#line 3531 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 124:
 -#line 1414 "awkgram.y" /* yacc.c:1646  */
 +  case 138:
- #line 1505 "awkgram.y" /* yacc.c:1646  */
++#line 1510 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3528 "awkgram.c" /* yacc.c:1646  */
 -#line 3353 "awkgram.c" /* yacc.c:1646  */
++#line 3537 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 125:
 -#line 1416 "awkgram.y" /* yacc.c:1646  */
 +  case 139:
- #line 1510 "awkgram.y" /* yacc.c:1646  */
++#line 1512 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3534 "awkgram.c" /* yacc.c:1646  */
 -#line 3359 "awkgram.c" /* yacc.c:1646  */
++#line 3543 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 126:
 -#line 1421 "awkgram.y" /* yacc.c:1646  */
 +  case 140:
- #line 1512 "awkgram.y" /* yacc.c:1646  */
++#line 1517 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3540 "awkgram.c" /* yacc.c:1646  */
 -#line 3365 "awkgram.c" /* yacc.c:1646  */
++#line 3549 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 127:
 -#line 1423 "awkgram.y" /* yacc.c:1646  */
 +  case 141:
- #line 1514 "awkgram.y" /* yacc.c:1646  */
++#line 1519 "awkgram.y" /* yacc.c:1646  */
+     { (yyval) = (yyvsp[0]); }
 -#line 3371 "awkgram.c" /* yacc.c:1646  */
++#line 3555 "awkgram.c" /* yacc.c:1646  */
+     break;
+ 
 -  case 128:
 -#line 1425 "awkgram.y" /* yacc.c:1646  */
++  case 142:
++#line 1521 "awkgram.y" /* yacc.c:1646  */
      {
                int count = 2;
                bool is_simple_var = false;
@@@ -3587,47 -3418,47 +3602,47 @@@
                                max_args = count;
                }
          }
- #line 3591 "awkgram.c" /* yacc.c:1646  */
-     break;
- 
-   case 143:
- #line 1566 "awkgram.y" /* yacc.c:1646  */
-     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3597 "awkgram.c" /* yacc.c:1646  */
 -#line 3422 "awkgram.c" /* yacc.c:1646  */
++#line 3606 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 130:
 -#line 1477 "awkgram.y" /* yacc.c:1646  */
 +  case 144:
- #line 1568 "awkgram.y" /* yacc.c:1646  */
++#line 1573 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3603 "awkgram.c" /* yacc.c:1646  */
 -#line 3428 "awkgram.c" /* yacc.c:1646  */
++#line 3612 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 131:
 -#line 1479 "awkgram.y" /* yacc.c:1646  */
 +  case 145:
- #line 1570 "awkgram.y" /* yacc.c:1646  */
++#line 1575 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3609 "awkgram.c" /* yacc.c:1646  */
 -#line 3434 "awkgram.c" /* yacc.c:1646  */
++#line 3618 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 132:
 -#line 1481 "awkgram.y" /* yacc.c:1646  */
 +  case 146:
- #line 1572 "awkgram.y" /* yacc.c:1646  */
++#line 1577 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3615 "awkgram.c" /* yacc.c:1646  */
 -#line 3440 "awkgram.c" /* yacc.c:1646  */
++#line 3624 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 133:
 -#line 1483 "awkgram.y" /* yacc.c:1646  */
 +  case 147:
- #line 1574 "awkgram.y" /* yacc.c:1646  */
++#line 1579 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3621 "awkgram.c" /* yacc.c:1646  */
 -#line 3446 "awkgram.c" /* yacc.c:1646  */
++#line 3630 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 134:
 -#line 1485 "awkgram.y" /* yacc.c:1646  */
 +  case 148:
- #line 1576 "awkgram.y" /* yacc.c:1646  */
++#line 1581 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3627 "awkgram.c" /* yacc.c:1646  */
 -#line 3452 "awkgram.c" /* yacc.c:1646  */
++#line 3636 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 135:
 -#line 1487 "awkgram.y" /* yacc.c:1646  */
 +  case 149:
- #line 1578 "awkgram.y" /* yacc.c:1646  */
++#line 1583 "awkgram.y" /* yacc.c:1646  */
+     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
 -#line 3458 "awkgram.c" /* yacc.c:1646  */
++#line 3642 "awkgram.c" /* yacc.c:1646  */
+     break;
+ 
 -  case 136:
 -#line 1489 "awkgram.y" /* yacc.c:1646  */
++  case 150:
++#line 1585 "awkgram.y" /* yacc.c:1646  */
      {
                /*
                 * In BEGINFILE/ENDFILE, allow `getline [var] < file'
@@@ -3641,29 -3472,29 +3656,29 @@@
                                _("non-redirected `getline' undefined inside 
END action"));
                (yyval) = mk_getline((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]), 
redirect_input);
          }
- #line 3645 "awkgram.c" /* yacc.c:1646  */
 -#line 3476 "awkgram.c" /* yacc.c:1646  */
++#line 3660 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 150:
- #line 1592 "awkgram.y" /* yacc.c:1646  */
 -  case 137:
 -#line 1503 "awkgram.y" /* yacc.c:1646  */
++  case 151:
++#line 1599 "awkgram.y" /* yacc.c:1646  */
      {
                (yyvsp[0])->opcode = Op_postincrement;
                (yyval) = mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
          }
- #line 3654 "awkgram.c" /* yacc.c:1646  */
 -#line 3485 "awkgram.c" /* yacc.c:1646  */
++#line 3669 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 151:
- #line 1597 "awkgram.y" /* yacc.c:1646  */
 -  case 138:
 -#line 1508 "awkgram.y" /* yacc.c:1646  */
++  case 152:
++#line 1604 "awkgram.y" /* yacc.c:1646  */
      {
                (yyvsp[0])->opcode = Op_postdecrement;
                (yyval) = mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
          }
- #line 3663 "awkgram.c" /* yacc.c:1646  */
 -#line 3494 "awkgram.c" /* yacc.c:1646  */
++#line 3678 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 152:
- #line 1602 "awkgram.y" /* yacc.c:1646  */
 -  case 139:
 -#line 1513 "awkgram.y" /* yacc.c:1646  */
++  case 153:
++#line 1609 "awkgram.y" /* yacc.c:1646  */
      {
                if (do_lint_old) {
                    warning_ln((yyvsp[-1])->source_line,
@@@ -3683,64 -3514,64 +3698,64 @@@
                        (yyval) = list_append(list_merge(t, (yyvsp[0])), 
(yyvsp[-1]));
                }
          }
- #line 3687 "awkgram.c" /* yacc.c:1646  */
 -#line 3518 "awkgram.c" /* yacc.c:1646  */
++#line 3702 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 153:
- #line 1627 "awkgram.y" /* yacc.c:1646  */
 -  case 140:
 -#line 1538 "awkgram.y" /* yacc.c:1646  */
++  case 154:
++#line 1634 "awkgram.y" /* yacc.c:1646  */
      {
                  (yyval) = mk_getline((yyvsp[-1]), (yyvsp[0]), (yyvsp[-3]), 
(yyvsp[-2])->redir_type);
                  bcfree((yyvsp[-2]));
                }
- #line 3696 "awkgram.c" /* yacc.c:1646  */
-     break;
- 
-   case 154:
- #line 1633 "awkgram.y" /* yacc.c:1646  */
-     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3702 "awkgram.c" /* yacc.c:1646  */
 -#line 3527 "awkgram.c" /* yacc.c:1646  */
++#line 3711 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 141:
 -#line 1544 "awkgram.y" /* yacc.c:1646  */
 +  case 155:
- #line 1635 "awkgram.y" /* yacc.c:1646  */
++#line 1640 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3708 "awkgram.c" /* yacc.c:1646  */
 -#line 3533 "awkgram.c" /* yacc.c:1646  */
++#line 3717 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 142:
 -#line 1546 "awkgram.y" /* yacc.c:1646  */
 +  case 156:
- #line 1637 "awkgram.y" /* yacc.c:1646  */
++#line 1642 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3714 "awkgram.c" /* yacc.c:1646  */
 -#line 3539 "awkgram.c" /* yacc.c:1646  */
++#line 3723 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 143:
 -#line 1548 "awkgram.y" /* yacc.c:1646  */
 +  case 157:
- #line 1639 "awkgram.y" /* yacc.c:1646  */
++#line 1644 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3720 "awkgram.c" /* yacc.c:1646  */
 -#line 3545 "awkgram.c" /* yacc.c:1646  */
++#line 3729 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 144:
 -#line 1550 "awkgram.y" /* yacc.c:1646  */
 +  case 158:
- #line 1641 "awkgram.y" /* yacc.c:1646  */
++#line 1646 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3726 "awkgram.c" /* yacc.c:1646  */
 -#line 3551 "awkgram.c" /* yacc.c:1646  */
++#line 3735 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 145:
 -#line 1552 "awkgram.y" /* yacc.c:1646  */
 +  case 159:
- #line 1643 "awkgram.y" /* yacc.c:1646  */
++#line 1648 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3732 "awkgram.c" /* yacc.c:1646  */
 -#line 3557 "awkgram.c" /* yacc.c:1646  */
++#line 3741 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 146:
 -#line 1554 "awkgram.y" /* yacc.c:1646  */
 +  case 160:
- #line 1648 "awkgram.y" /* yacc.c:1646  */
++#line 1650 "awkgram.y" /* yacc.c:1646  */
+     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
 -#line 3563 "awkgram.c" /* yacc.c:1646  */
++#line 3747 "awkgram.c" /* yacc.c:1646  */
+     break;
+ 
 -  case 147:
 -#line 1559 "awkgram.y" /* yacc.c:1646  */
++  case 161:
++#line 1655 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = list_create((yyvsp[0]));
          }
- #line 3740 "awkgram.c" /* yacc.c:1646  */
 -#line 3571 "awkgram.c" /* yacc.c:1646  */
++#line 3755 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 161:
- #line 1652 "awkgram.y" /* yacc.c:1646  */
 -  case 148:
 -#line 1563 "awkgram.y" /* yacc.c:1646  */
++  case 162:
++#line 1659 "awkgram.y" /* yacc.c:1646  */
      {
                if ((yyvsp[0])->opcode == Op_match_rec) {
                        (yyvsp[0])->opcode = Op_nomatch;
@@@ -3772,37 -3603,37 +3787,37 @@@
                        }
                }
           }
- #line 3776 "awkgram.c" /* yacc.c:1646  */
 -#line 3607 "awkgram.c" /* yacc.c:1646  */
++#line 3791 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 162:
- #line 1684 "awkgram.y" /* yacc.c:1646  */
 -  case 149:
 -#line 1595 "awkgram.y" /* yacc.c:1646  */
++  case 163:
++#line 1691 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[-1]); }
- #line 3782 "awkgram.c" /* yacc.c:1646  */
 -#line 3613 "awkgram.c" /* yacc.c:1646  */
++#line 3797 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 163:
- #line 1686 "awkgram.y" /* yacc.c:1646  */
 -  case 150:
 -#line 1597 "awkgram.y" /* yacc.c:1646  */
++  case 164:
++#line 1693 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = snode((yyvsp[-1]), (yyvsp[-3]));
                if ((yyval) == NULL)
                        YYABORT;
          }
- #line 3792 "awkgram.c" /* yacc.c:1646  */
 -#line 3623 "awkgram.c" /* yacc.c:1646  */
++#line 3807 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 164:
- #line 1692 "awkgram.y" /* yacc.c:1646  */
 -  case 151:
 -#line 1603 "awkgram.y" /* yacc.c:1646  */
++  case 165:
++#line 1699 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = snode((yyvsp[-1]), (yyvsp[-3]));
                if ((yyval) == NULL)
                        YYABORT;
          }
- #line 3802 "awkgram.c" /* yacc.c:1646  */
 -#line 3633 "awkgram.c" /* yacc.c:1646  */
++#line 3817 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 165:
- #line 1698 "awkgram.y" /* yacc.c:1646  */
 -  case 152:
 -#line 1609 "awkgram.y" /* yacc.c:1646  */
++  case 166:
++#line 1705 "awkgram.y" /* yacc.c:1646  */
      {
                static bool warned = false;
  
@@@ -3815,45 -3646,45 +3830,45 @@@
                if ((yyval) == NULL)
                        YYABORT;
          }
- #line 3819 "awkgram.c" /* yacc.c:1646  */
 -#line 3650 "awkgram.c" /* yacc.c:1646  */
++#line 3834 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 168:
- #line 1713 "awkgram.y" /* yacc.c:1646  */
 -  case 155:
 -#line 1624 "awkgram.y" /* yacc.c:1646  */
++  case 169:
++#line 1720 "awkgram.y" /* yacc.c:1646  */
      {
                (yyvsp[-1])->opcode = Op_preincrement;
                (yyval) = mk_assignment((yyvsp[0]), NULL, (yyvsp[-1]));
          }
- #line 3828 "awkgram.c" /* yacc.c:1646  */
 -#line 3659 "awkgram.c" /* yacc.c:1646  */
++#line 3843 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 169:
- #line 1718 "awkgram.y" /* yacc.c:1646  */
 -  case 156:
 -#line 1629 "awkgram.y" /* yacc.c:1646  */
++  case 170:
++#line 1725 "awkgram.y" /* yacc.c:1646  */
      {
                (yyvsp[-1])->opcode = Op_predecrement;
                (yyval) = mk_assignment((yyvsp[0]), NULL, (yyvsp[-1]));
          }
- #line 3837 "awkgram.c" /* yacc.c:1646  */
 -#line 3668 "awkgram.c" /* yacc.c:1646  */
++#line 3852 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 170:
- #line 1723 "awkgram.y" /* yacc.c:1646  */
 -  case 157:
 -#line 1634 "awkgram.y" /* yacc.c:1646  */
++  case 171:
++#line 1730 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = list_create((yyvsp[0]));
          }
- #line 3845 "awkgram.c" /* yacc.c:1646  */
 -#line 3676 "awkgram.c" /* yacc.c:1646  */
++#line 3860 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 171:
- #line 1727 "awkgram.y" /* yacc.c:1646  */
 -  case 158:
 -#line 1638 "awkgram.y" /* yacc.c:1646  */
++  case 172:
++#line 1734 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = list_create((yyvsp[0]));
          }
- #line 3853 "awkgram.c" /* yacc.c:1646  */
 -#line 3684 "awkgram.c" /* yacc.c:1646  */
++#line 3868 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 172:
- #line 1731 "awkgram.y" /* yacc.c:1646  */
 -  case 159:
 -#line 1642 "awkgram.y" /* yacc.c:1646  */
++  case 173:
++#line 1738 "awkgram.y" /* yacc.c:1646  */
      {
                if ((yyvsp[0])->lasti->opcode == Op_push_i
                        && ((yyvsp[0])->lasti->memory->flags & (STRCUR|STRING)) 
== 0
@@@ -3868,11 -3699,11 +3883,11 @@@
                        (yyval) = list_append((yyvsp[0]), (yyvsp[-1]));
                }
          }
- #line 3872 "awkgram.c" /* yacc.c:1646  */
 -#line 3703 "awkgram.c" /* yacc.c:1646  */
++#line 3887 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 173:
- #line 1746 "awkgram.y" /* yacc.c:1646  */
 -  case 160:
 -#line 1657 "awkgram.y" /* yacc.c:1646  */
++  case 174:
++#line 1753 "awkgram.y" /* yacc.c:1646  */
      {
            /*
             * was: $$ = $2
@@@ -3882,20 -3713,20 +3897,20 @@@
                (yyvsp[-1])->memory = make_number(0.0);
                (yyval) = list_append((yyvsp[0]), (yyvsp[-1]));
          }
- #line 3886 "awkgram.c" /* yacc.c:1646  */
 -#line 3717 "awkgram.c" /* yacc.c:1646  */
++#line 3901 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 174:
- #line 1759 "awkgram.y" /* yacc.c:1646  */
 -  case 161:
 -#line 1670 "awkgram.y" /* yacc.c:1646  */
++  case 175:
++#line 1766 "awkgram.y" /* yacc.c:1646  */
      {
                func_use((yyvsp[0])->lasti->func_name, FUNC_USE);
                (yyval) = (yyvsp[0]);
          }
- #line 3895 "awkgram.c" /* yacc.c:1646  */
 -#line 3726 "awkgram.c" /* yacc.c:1646  */
++#line 3910 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 175:
- #line 1764 "awkgram.y" /* yacc.c:1646  */
 -  case 162:
 -#line 1675 "awkgram.y" /* yacc.c:1646  */
++  case 176:
++#line 1771 "awkgram.y" /* yacc.c:1646  */
      {
                /* indirect function call */
                INSTRUCTION *f, *t;
@@@ -3929,11 -3760,11 +3944,11 @@@
                (yyval) = list_prepend((yyvsp[0]), t);
                at_seen = false;
          }
- #line 3933 "awkgram.c" /* yacc.c:1646  */
 -#line 3764 "awkgram.c" /* yacc.c:1646  */
++#line 3948 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 176:
- #line 1801 "awkgram.y" /* yacc.c:1646  */
 -  case 163:
 -#line 1712 "awkgram.y" /* yacc.c:1646  */
++  case 177:
++#line 1808 "awkgram.y" /* yacc.c:1646  */
      {
                NODE *n;
  
@@@ -3958,49 -3789,49 +3973,49 @@@
                        (yyval) = list_append(t, (yyvsp[-3]));
                }
          }
- #line 3962 "awkgram.c" /* yacc.c:1646  */
 -#line 3793 "awkgram.c" /* yacc.c:1646  */
++#line 3977 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 177:
- #line 1829 "awkgram.y" /* yacc.c:1646  */
 -  case 164:
 -#line 1740 "awkgram.y" /* yacc.c:1646  */
++  case 178:
++#line 1836 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 3968 "awkgram.c" /* yacc.c:1646  */
 -#line 3799 "awkgram.c" /* yacc.c:1646  */
++#line 3983 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 178:
- #line 1831 "awkgram.y" /* yacc.c:1646  */
 -  case 165:
 -#line 1742 "awkgram.y" /* yacc.c:1646  */
++  case 179:
++#line 1838 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3974 "awkgram.c" /* yacc.c:1646  */
 -#line 3805 "awkgram.c" /* yacc.c:1646  */
++#line 3989 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 179:
- #line 1836 "awkgram.y" /* yacc.c:1646  */
 -  case 166:
 -#line 1747 "awkgram.y" /* yacc.c:1646  */
++  case 180:
++#line 1843 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 3980 "awkgram.c" /* yacc.c:1646  */
 -#line 3811 "awkgram.c" /* yacc.c:1646  */
++#line 3995 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 180:
- #line 1838 "awkgram.y" /* yacc.c:1646  */
 -  case 167:
 -#line 1749 "awkgram.y" /* yacc.c:1646  */
++  case 181:
++#line 1845 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[-1]); }
- #line 3986 "awkgram.c" /* yacc.c:1646  */
 -#line 3817 "awkgram.c" /* yacc.c:1646  */
++#line 4001 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 181:
- #line 1843 "awkgram.y" /* yacc.c:1646  */
 -  case 168:
 -#line 1754 "awkgram.y" /* yacc.c:1646  */
++  case 182:
++#line 1850 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3992 "awkgram.c" /* yacc.c:1646  */
 -#line 3823 "awkgram.c" /* yacc.c:1646  */
++#line 4007 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 182:
- #line 1845 "awkgram.y" /* yacc.c:1646  */
 -  case 169:
 -#line 1756 "awkgram.y" /* yacc.c:1646  */
++  case 183:
++#line 1852 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = list_merge((yyvsp[-1]), (yyvsp[0]));
          }
- #line 4000 "awkgram.c" /* yacc.c:1646  */
 -#line 3831 "awkgram.c" /* yacc.c:1646  */
++#line 4015 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 183:
- #line 1852 "awkgram.y" /* yacc.c:1646  */
 -  case 170:
 -#line 1763 "awkgram.y" /* yacc.c:1646  */
++  case 184:
++#line 1859 "awkgram.y" /* yacc.c:1646  */
      {
                INSTRUCTION *ip = (yyvsp[0])->lasti; 
                int count = ip->sub_count;      /* # of SUBSEP-seperated 
expressions */
@@@ -4014,11 -3845,11 +4029,11 @@@
                sub_counter++;  /* count # of dimensions */
                (yyval) = (yyvsp[0]);
          }
- #line 4018 "awkgram.c" /* yacc.c:1646  */
 -#line 3849 "awkgram.c" /* yacc.c:1646  */
++#line 4033 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 184:
- #line 1869 "awkgram.y" /* yacc.c:1646  */
 -  case 171:
 -#line 1780 "awkgram.y" /* yacc.c:1646  */
++  case 185:
++#line 1876 "awkgram.y" /* yacc.c:1646  */
      {
                INSTRUCTION *t = (yyvsp[-1]);
                if ((yyvsp[-1]) == NULL) {
@@@ -4032,31 -3863,31 +4047,31 @@@
                        (yyvsp[0])->sub_count = count_expressions(&t, false);
                (yyval) = list_append(t, (yyvsp[0]));
          }
- #line 4036 "awkgram.c" /* yacc.c:1646  */
 -#line 3867 "awkgram.c" /* yacc.c:1646  */
++#line 4051 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 185:
- #line 1886 "awkgram.y" /* yacc.c:1646  */
 -  case 172:
 -#line 1797 "awkgram.y" /* yacc.c:1646  */
++  case 186:
++#line 1893 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 4042 "awkgram.c" /* yacc.c:1646  */
 -#line 3873 "awkgram.c" /* yacc.c:1646  */
++#line 4057 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 186:
- #line 1888 "awkgram.y" /* yacc.c:1646  */
 -  case 173:
 -#line 1799 "awkgram.y" /* yacc.c:1646  */
++  case 187:
++#line 1895 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = list_merge((yyvsp[-1]), (yyvsp[0]));
          }
- #line 4050 "awkgram.c" /* yacc.c:1646  */
 -#line 3881 "awkgram.c" /* yacc.c:1646  */
++#line 4065 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 187:
- #line 1895 "awkgram.y" /* yacc.c:1646  */
 -  case 174:
 -#line 1806 "awkgram.y" /* yacc.c:1646  */
++  case 188:
++#line 1902 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[-1]); }
- #line 4056 "awkgram.c" /* yacc.c:1646  */
 -#line 3887 "awkgram.c" /* yacc.c:1646  */
++#line 4071 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 188:
- #line 1900 "awkgram.y" /* yacc.c:1646  */
 -  case 175:
 -#line 1811 "awkgram.y" /* yacc.c:1646  */
++  case 189:
++#line 1907 "awkgram.y" /* yacc.c:1646  */
      {
                char *var_name = (yyvsp[0])->lextok;
  
@@@ -4064,22 -3895,22 +4079,22 @@@
                (yyvsp[0])->memory = variable((yyvsp[0])->source_line, 
var_name, Node_var_new);
                (yyval) = list_create((yyvsp[0]));
          }
- #line 4068 "awkgram.c" /* yacc.c:1646  */
 -#line 3899 "awkgram.c" /* yacc.c:1646  */
++#line 4083 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 189:
- #line 1908 "awkgram.y" /* yacc.c:1646  */
 -  case 176:
 -#line 1819 "awkgram.y" /* yacc.c:1646  */
++  case 190:
++#line 1915 "awkgram.y" /* yacc.c:1646  */
      {
                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 4079 "awkgram.c" /* yacc.c:1646  */
 -#line 3910 "awkgram.c" /* yacc.c:1646  */
++#line 4094 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 190:
- #line 1918 "awkgram.y" /* yacc.c:1646  */
 -  case 177:
 -#line 1829 "awkgram.y" /* yacc.c:1646  */
++  case 191:
++#line 1925 "awkgram.y" /* yacc.c:1646  */
      {
                INSTRUCTION *ip = (yyvsp[0])->nexti;
                if (ip->opcode == Op_push
@@@ -4091,73 -3922,73 +4106,73 @@@
                } else
                        (yyval) = (yyvsp[0]);
          }
- #line 4095 "awkgram.c" /* yacc.c:1646  */
 -#line 3926 "awkgram.c" /* yacc.c:1646  */
++#line 4110 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 191:
- #line 1930 "awkgram.y" /* yacc.c:1646  */
 -  case 178:
 -#line 1841 "awkgram.y" /* yacc.c:1646  */
++  case 192:
++#line 1937 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = list_append((yyvsp[-1]), (yyvsp[-2]));
                if ((yyvsp[0]) != NULL)
                        mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
          }
- #line 4105 "awkgram.c" /* yacc.c:1646  */
 -#line 3936 "awkgram.c" /* yacc.c:1646  */
++#line 4120 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 192:
- #line 1939 "awkgram.y" /* yacc.c:1646  */
 -  case 179:
 -#line 1850 "awkgram.y" /* yacc.c:1646  */
++  case 193:
++#line 1946 "awkgram.y" /* yacc.c:1646  */
      {
                (yyvsp[0])->opcode = Op_postincrement;
          }
- #line 4113 "awkgram.c" /* yacc.c:1646  */
 -#line 3944 "awkgram.c" /* yacc.c:1646  */
++#line 4128 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 193:
- #line 1943 "awkgram.y" /* yacc.c:1646  */
 -  case 180:
 -#line 1854 "awkgram.y" /* yacc.c:1646  */
++  case 194:
++#line 1950 "awkgram.y" /* yacc.c:1646  */
      {
                (yyvsp[0])->opcode = Op_postdecrement;
          }
- #line 4121 "awkgram.c" /* yacc.c:1646  */
 -#line 3952 "awkgram.c" /* yacc.c:1646  */
++#line 4136 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 194:
- #line 1946 "awkgram.y" /* yacc.c:1646  */
 -  case 181:
 -#line 1857 "awkgram.y" /* yacc.c:1646  */
++  case 195:
++#line 1953 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 4127 "awkgram.c" /* yacc.c:1646  */
 -#line 3958 "awkgram.c" /* yacc.c:1646  */
++#line 4142 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 196:
- #line 1954 "awkgram.y" /* yacc.c:1646  */
 -  case 183:
 -#line 1865 "awkgram.y" /* yacc.c:1646  */
++  case 197:
++#line 1961 "awkgram.y" /* yacc.c:1646  */
      { yyerrok; }
- #line 4133 "awkgram.c" /* yacc.c:1646  */
 -#line 3964 "awkgram.c" /* yacc.c:1646  */
++#line 4148 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 197:
- #line 1958 "awkgram.y" /* yacc.c:1646  */
 -  case 184:
 -#line 1869 "awkgram.y" /* yacc.c:1646  */
++  case 198:
++#line 1965 "awkgram.y" /* yacc.c:1646  */
      { yyerrok; }
- #line 4139 "awkgram.c" /* yacc.c:1646  */
 -#line 3970 "awkgram.c" /* yacc.c:1646  */
++#line 4154 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 200:
- #line 1967 "awkgram.y" /* yacc.c:1646  */
 -  case 187:
 -#line 1878 "awkgram.y" /* yacc.c:1646  */
++  case 201:
++#line 1974 "awkgram.y" /* yacc.c:1646  */
      { yyerrok; }
- #line 4145 "awkgram.c" /* yacc.c:1646  */
 -#line 3976 "awkgram.c" /* yacc.c:1646  */
++#line 4160 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 201:
- #line 1971 "awkgram.y" /* yacc.c:1646  */
 -  case 188:
 -#line 1882 "awkgram.y" /* yacc.c:1646  */
++  case 202:
++#line 1978 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); yyerrok; }
- #line 4151 "awkgram.c" /* yacc.c:1646  */
 -#line 3982 "awkgram.c" /* yacc.c:1646  */
++#line 4166 "awkgram.c" /* yacc.c:1646  */
      break;
  
-   case 202:
- #line 1975 "awkgram.y" /* yacc.c:1646  */
 -  case 189:
 -#line 1886 "awkgram.y" /* yacc.c:1646  */
++  case 203:
++#line 1982 "awkgram.y" /* yacc.c:1646  */
      { yyerrok; }
- #line 4157 "awkgram.c" /* yacc.c:1646  */
 -#line 3988 "awkgram.c" /* yacc.c:1646  */
++#line 4172 "awkgram.c" /* yacc.c:1646  */
      break;
  
  
- #line 4161 "awkgram.c" /* yacc.c:1646  */
 -#line 3992 "awkgram.c" /* yacc.c:1646  */
++#line 4176 "awkgram.c" /* yacc.c:1646  */
        default: break;
      }
    /* User semantic actions sometimes alter yychar, and that requires
@@@ -4385,7 -4216,7 +4400,7 @@@ yyreturn
  #endif
    return yyresult;
  }
- #line 1977 "awkgram.y" /* yacc.c:1906  */
 -#line 1888 "awkgram.y" /* yacc.c:1906  */
++#line 1984 "awkgram.y" /* yacc.c:1906  */
  
  
  struct token {
@@@ -5727,24 -5546,26 +5732,27 @@@ yylex(void
  
        lexeme = lexptr;
        thisline = NULL;
 +collect_regexp:
        if (want_regexp) {
                int in_brack = 0;       /* count brackets, [[:alnum:]] allowed 
*/
+               int b_index = -1;
+               int cur_index = 0;
+ 
                /*
-                * Counting brackets is non-trivial. [[] is ok,
-                * and so is [\]], with a point being that /[/]/ as a regexp
-                * constant has to work.
+                * Here is what's ok with brackets:
+                *
+                * [[] [^[] []] [^]] [.../...]
+                * [...\[...] [...\]...] [...\/...]
+                * 
+                * (Remember that all of the above are inside /.../)
+                *
+                * The code for \ handles \[, \] and \/.
                 *
-                * Do not count [ or ] if either one is preceded by a \.
-                * A `[' should be counted if
-                *  a) it is the first one so far (in_brack == 0)
-                *  b) it is the `[' in `[:'
-                * A ']' should be counted if not preceded by a \, since
-                * it is either closing `:]' or just a plain list.
-                * According to POSIX, []] is how you put a ] into a set.
-                * Try to handle that too.
+                * Otherwise, track the first open [ position, and if
+                * an embedded [ or ] occurs, allow it to pass through
+                * if it's right after the first [ or after [^.
                 *
-                * The code for \ handles \[ and \].
+                * Whew!
                 */
  
                want_regexp = false;
diff --cc awkgram.y
index 027bfa9,3b555a6..f4a5e9c
--- a/awkgram.y
+++ b/awkgram.y
@@@ -3315,24 -3214,26 +3312,27 @@@ yylex(void
  
        lexeme = lexptr;
        thisline = NULL;
 +collect_regexp:
        if (want_regexp) {
                int in_brack = 0;       /* count brackets, [[:alnum:]] allowed 
*/
+               int b_index = -1;
+               int cur_index = 0;
+ 
                /*
-                * Counting brackets is non-trivial. [[] is ok,
-                * and so is [\]], with a point being that /[/]/ as a regexp
-                * constant has to work.
+                * Here is what's ok with brackets:
                 *
-                * Do not count [ or ] if either one is preceded by a \.
-                * A `[' should be counted if
-                *  a) it is the first one so far (in_brack == 0)
-                *  b) it is the `[' in `[:'
-                * A ']' should be counted if not preceded by a \, since
-                * it is either closing `:]' or just a plain list.
-                * According to POSIX, []] is how you put a ] into a set.
-                * Try to handle that too.
+                * [[] [^[] []] [^]] [.../...]
+                * [...\[...] [...\]...] [...\/...]
+                * 
+                * (Remember that all of the above are inside /.../)
                 *
-                * The code for \ handles \[ and \].
+                * The code for \ handles \[, \] and \/.
+                *
+                * Otherwise, track the first open [ position, and if
+                * an embedded [ or ] occurs, allow it to pass through
+                * if it's right after the first [ or after [^.
+                *
+                * Whew!
                 */
  
                want_regexp = false;

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

Summary of changes:
 ChangeLog                             |   89 ++
 array.c                               |    2 +-
 awkgram.c                             | 1940 +++++++++++++++++----------------
 awkgram.y                             |  106 ++-
 builtin.c                             |  125 ++-
 command.c                             |   10 +-
 command.y                             |   10 +-
 debug.c                               |   16 +-
 doc/ChangeLog                         |    4 +
 doc/gawk.texi                         |    7 +
 doc/gawktexi.in                       |    7 +
 eval.c                                |   12 +-
 extension/ChangeLog                   |    7 +
 extension/readfile.c                  |    4 +-
 extension/rwarray.c                   |    4 +-
 extension/rwarray0.c                  |    4 +-
 field.c                               |    4 +-
 gawkapi.h                             |    2 +-
 helpers/ChangeLog                     |    8 +
 helpers/testdfa.c                     |   21 +-
 interpret.h                           |    7 +-
 io.c                                  |   11 +-
 node.c                                |   14 +-
 old-extension/ChangeLog               |    9 +
 old-extension/bindarr.c               |    2 +-
 old-extension/fileop.c                |    2 +-
 po/da.po                              | 1062 +++++++++---------
 po/it.po                              |   20 +-
 po/sv.po                              |   16 +-
 profile.c                             |    9 +-
 re.c                                  |    4 +-
 test/ChangeLog                        |   16 +
 test/Makefile.am                      |   15 +-
 test/Makefile.in                      |   30 +-
 test/Maketests                        |   15 +
 test/inpref.awk                       |    9 +
 test/inpref.in                        |    2 +
 test/inpref.ok                        |    2 +
 test/regexpbrack2.awk                 |    2 +
 test/regexpbrack2.in                  |    2 +
 test/regexpbrack2.ok                  |    2 +
 test/shadowbuiltin.awk                |   10 +
 test/{rtlenmb.ok => shadowbuiltin.ok} |    1 -
 43 files changed, 1972 insertions(+), 1672 deletions(-)
 create mode 100644 test/inpref.awk
 create mode 100644 test/inpref.in
 create mode 100644 test/inpref.ok
 create mode 100644 test/regexpbrack2.awk
 create mode 100644 test/regexpbrack2.in
 create mode 100644 test/regexpbrack2.ok
 create mode 100644 test/shadowbuiltin.awk
 copy test/{rtlenmb.ok => shadowbuiltin.ok} (66%)


hooks/post-receive
-- 
gawk



reply via email to

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