gawk-diffs
[Top][All Lists]
Advanced

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

[gawk-diffs] [SCM] gawk branch, comment, updated. gawk-4.1.0-808-g7ac81e


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, comment, updated. gawk-4.1.0-808-g7ac81ef
Date: Mon, 15 Sep 2014 20:16:48 +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, comment has been updated
       via  7ac81efe10795318427ad71f9c05b9c93442acfb (commit)
       via  dc510090126eb27d2e0514f42a4da4863873903d (commit)
       via  3fcce8a32e825dd10384d5276c420c2514442fe2 (commit)
       via  23681ec5b179a4e981781ce2daa08f61cb7317d4 (commit)
       via  8a1df492afae19d544fa5e5b636ed427b2d1c3f5 (commit)
       via  7796fb7a2e70c0252531bd224889baccacae1c9e (commit)
       via  1684dfc1f5abd1e0093feb586ae428ce42d1a827 (commit)
       via  dc03ae8d25acc19f27f015ab568e07f7d24fe2f6 (commit)
       via  33acaac51cd9087eb7a9b7e73c11f58da396df9a (commit)
       via  9b21de890a81179e951ffa5bea2099673f584b16 (commit)
      from  2323f97d55a79c302457d75443b2ffd529983083 (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=7ac81efe10795318427ad71f9c05b9c93442acfb

commit 7ac81efe10795318427ad71f9c05b9c93442acfb
Merge: 2323f97 dc51009
Author: Arnold D. Robbins <address@hidden>
Date:   Mon Sep 15 23:14:23 2014 +0300

    Merge branch 'master' into comment, update ChangeLogs

diff --cc ChangeLog
index 11b4261,69d9a56..d63dcdd
--- a/ChangeLog
+++ b/ChangeLog
@@@ -1,38 -1,24 +1,63 @@@
+ 2014-09-15         Arnold D. Robbins     <address@hidden>
+ 
+       Finish removing use of isalpha and isalnum.
+ 
+       * awk.h (is_alpha, is_alnum, is_identchar): Add declarations.
+       * awkgram.y (yylex): Use is_alpha.
+       (is_alpha, is_alnum): New functions.
+       (is_identchar): Use is_alnum.
+       * builtin.c (r_format_tree): Use is_alpha, is_alnum.
+       * command.y (yylex): Use is_alpha, is_identchar.
+       * ext.c (is_letter): Use is_alpha.
+       (is_identifier_char): Removed; replaced uses with is_identchar.
+       * main.c (arg_assign): Use is_alpha, is_alnum.
+       * node.c (r_force_number): Use is_alpha.
+ 
+ 2014-09-14         Arnold D. Robbins     <address@hidden>
+ 
+       * awkgram.y (is_identchar): Change from simple macro to function
+       since use of isalnum() let non-ASCII letters slip through into
+       identifiers.
+ 
 +2014-09-13    Stephen Davies          <address@hidden>
-       When doing pretty-print (but not profiling), include the original 
comments in the output.
++
++      When doing pretty-printing (but not profiling), include the original
++      comments in the output.
++
 +      General rules:
-       Pretty priting:
++
++      Pretty printing:
 +              - Do NOT indent by a tab
 +              - Do NOT print the header comments ("# BEGIN rules", etc.)
 +              - DO print the comments that are in the program
 +
 +      Profiling:
 +              - DO indent by a tab
 +              - DO print the header comments
 +              - Do NOT print the program's original comments
 +
-       *awkgram.y:     add variables comment0 and commentf as pointers to 
program and function comments
-                       add function get_comment (retrieve consecutive comment 
lines and empty lines as a unit)
-                       add function split_comment (iff first block in the 
program is a function and it is predeeded by comments, 
-                       take the last non-blank line as function comment and 
any preceeding lines as program comment.)
++      * awkgram.y (comment0, commentf): New varibles that are  pointers to 
program
++      and function comments.
++      (get_comment): New function that retrieves consecutive comment lines 
and empty
++      lines as a unit).
++      (split_comment): New function: iff first block in the program is a 
function and
++      it is predeeded by comments, take the last non-blank line as function 
comment
++      and any preceeding lines as program comment.)
 +
-                       Following token rules were changed to handle comments:
-                        pattern, LEX_BEGIN, LEX_END, LEX_BEGINFILE, 
LEX_ENDFILE, action, function_prologue and statements.
-                               
-                       Following functions were changed to handle comments:
-                         mk_program, mk_function, allow_newline and yylex. 
(Also fixed typo in case '\\'.)
++      Following token rules were changed to handle comments:
 +
-       *profile.c
-                       added function print_comment to format comment printing.
- 
-                       Following functions were changed to handle comments and 
the revised indent rules:
-                         indent, pprint, dump_prog, pp_func.
++      * awkgram.y (pattern, LEX_BEGIN, LEX_END, LEX_BEGINFILE, LEX_ENDFILE,
++      action, function_prologue, statements): Update to handle comments.
++                              
++      Following functions were changed to handle comments:
 +
-       *test/Makefile(.am and .in)
-                       Change processing of profile4 and profile5 to not 
delete first two lines (no longer necessary).
++      * awkgram.y (mk_program, mk_function, allow_newline and yylex): Update 
to
++      handle comments. (Also fixed typo in case '\\'.)
 +
-       *profile4.ok and profile5.ok changed to suit new rules and comments.
++      * profile.c (print_comment): New function to format comment printing.
++      (indent, pprint, dump_prog, pp_func): Changed to handle comments and the
++      revised indentation rules.
 +
  2014-09-07         Arnold D. Robbins     <address@hidden>
  
        * awk.h: Move libsigsegv stuff to ...
diff --cc awkgram.c
index 3ea5d6c,4369666..fac2070
--- a/awkgram.c
+++ b/awkgram.c
@@@ -202,9 -195,7 +202,7 @@@ extern double fmod(double x, double y)
  
  #define YYSTYPE INSTRUCTION *
  
- #define is_identchar(c)               (isalnum(c) || (c) == '_')
- 
- #line 208 "awkgram.c" /* yacc.c:339  */
 -#line 199 "awkgram.c" /* yacc.c:339  */
++#line 206 "awkgram.c" /* yacc.c:339  */
  
  # ifndef YY_NULLPTR
  #  if defined __cplusplus && 201103L <= __cplusplus
@@@ -358,7 -349,7 +356,7 @@@ int yyparse (void)
  
  /* Copy the second part of user declarations.  */
  
- #line 362 "awkgram.c" /* yacc.c:358  */
 -#line 353 "awkgram.c" /* yacc.c:358  */
++#line 360 "awkgram.c" /* yacc.c:358  */
  
  #ifdef short
  # undef short
@@@ -660,25 -651,25 +658,25 @@@ static const yytype_uint8 yytranslate[
    /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
  static const yytype_uint16 yyrline[] =
  {
-        0,   207,   207,   209,   214,   215,   221,   233,   237,   248,
-      254,   259,   267,   275,   277,   282,   290,   292,   298,   305,
-      314,   340,   353,   365,   372,   382,   394,   396,   398,   404,
-      409,   410,   414,   449,   448,   482,   484,   489,   495,   523,
-      528,   529,   533,   535,   537,   544,   634,   676,   718,   831,
-      838,   845,   855,   864,   873,   882,   893,   909,   908,   932,
-      944,   944,  1042,  1042,  1075,  1105,  1111,  1112,  1118,  1119,
-     1126,  1131,  1143,  1157,  1159,  1167,  1172,  1174,  1182,  1184,
-     1193,  1194,  1202,  1207,  1207,  1218,  1222,  1230,  1231,  1234,
-     1236,  1241,  1242,  1251,  1252,  1257,  1262,  1268,  1270,  1272,
-     1279,  1280,  1286,  1287,  1292,  1294,  1299,  1301,  1309,  1314,
-     1323,  1330,  1332,  1334,  1350,  1360,  1367,  1369,  1374,  1376,
-     1378,  1386,  1388,  1393,  1395,  1400,  1402,  1404,  1454,  1456,
-     1458,  1460,  1462,  1464,  1466,  1468,  1482,  1487,  1492,  1517,
-     1523,  1525,  1527,  1529,  1531,  1533,  1538,  1542,  1574,  1576,
-     1582,  1588,  1601,  1602,  1603,  1608,  1613,  1617,  1621,  1636,
-     1649,  1654,  1690,  1708,  1709,  1715,  1716,  1721,  1723,  1730,
-     1747,  1764,  1766,  1773,  1778,  1786,  1796,  1808,  1817,  1821,
-     1825,  1829,  1833,  1837,  1840,  1842,  1846,  1850,  1854
 -       0,   198,   198,   200,   205,   206,   212,   224,   228,   239,
 -     245,   250,   258,   266,   268,   273,   281,   283,   289,   290,
 -     292,   318,   329,   340,   346,   355,   365,   367,   369,   375,
 -     380,   381,   385,   404,   403,   437,   439,   444,   445,   458,
 -     463,   464,   468,   470,   472,   479,   569,   611,   653,   766,
 -     773,   780,   790,   799,   808,   817,   828,   844,   843,   867,
 -     879,   879,   977,   977,  1010,  1040,  1046,  1047,  1053,  1054,
 -    1061,  1066,  1078,  1092,  1094,  1102,  1107,  1109,  1117,  1119,
 -    1128,  1129,  1137,  1142,  1142,  1153,  1157,  1165,  1166,  1169,
 -    1171,  1176,  1177,  1186,  1187,  1192,  1197,  1203,  1205,  1207,
 -    1214,  1215,  1221,  1222,  1227,  1229,  1234,  1236,  1244,  1249,
 -    1258,  1265,  1267,  1269,  1285,  1295,  1302,  1304,  1309,  1311,
 -    1313,  1321,  1323,  1328,  1330,  1335,  1337,  1339,  1389,  1391,
 -    1393,  1395,  1397,  1399,  1401,  1403,  1417,  1422,  1427,  1452,
 -    1458,  1460,  1462,  1464,  1466,  1468,  1473,  1477,  1509,  1511,
 -    1517,  1523,  1536,  1537,  1538,  1543,  1548,  1552,  1556,  1571,
 -    1584,  1589,  1625,  1643,  1644,  1650,  1651,  1656,  1658,  1665,
 -    1682,  1699,  1701,  1708,  1713,  1721,  1731,  1743,  1752,  1756,
 -    1760,  1764,  1768,  1772,  1775,  1777,  1781,  1785,  1789
++       0,   205,   205,   207,   212,   213,   219,   231,   235,   246,
++     252,   257,   265,   273,   275,   280,   288,   290,   296,   303,
++     312,   338,   351,   363,   370,   380,   392,   394,   396,   402,
++     407,   408,   412,   447,   446,   480,   482,   487,   493,   521,
++     526,   527,   531,   533,   535,   542,   632,   674,   716,   829,
++     836,   843,   853,   862,   871,   880,   891,   907,   906,   930,
++     942,   942,  1040,  1040,  1073,  1103,  1109,  1110,  1116,  1117,
++    1124,  1129,  1141,  1155,  1157,  1165,  1170,  1172,  1180,  1182,
++    1191,  1192,  1200,  1205,  1205,  1216,  1220,  1228,  1229,  1232,
++    1234,  1239,  1240,  1249,  1250,  1255,  1260,  1266,  1268,  1270,
++    1277,  1278,  1284,  1285,  1290,  1292,  1297,  1299,  1307,  1312,
++    1321,  1328,  1330,  1332,  1348,  1358,  1365,  1367,  1372,  1374,
++    1376,  1384,  1386,  1391,  1393,  1398,  1400,  1402,  1452,  1454,
++    1456,  1458,  1460,  1462,  1464,  1466,  1480,  1485,  1490,  1515,
++    1521,  1523,  1525,  1527,  1529,  1531,  1536,  1540,  1572,  1574,
++    1580,  1586,  1599,  1600,  1601,  1606,  1611,  1615,  1619,  1634,
++    1647,  1652,  1688,  1706,  1707,  1713,  1714,  1719,  1721,  1728,
++    1745,  1762,  1764,  1771,  1776,  1784,  1794,  1806,  1815,  1819,
++    1823,  1827,  1831,  1835,  1838,  1840,  1844,  1848,  1852
  };
  #endif
  
@@@ -1851,26 -1842,26 +1849,26 @@@ yyreduce
    switch (yyn)
      {
          case 3:
- #line 210 "awkgram.y" /* yacc.c:1646  */
 -#line 201 "awkgram.y" /* yacc.c:1646  */
++#line 208 "awkgram.y" /* yacc.c:1646  */
      {
                rule = 0;
                yyerrok;
          }
- #line 1860 "awkgram.c" /* yacc.c:1646  */
 -#line 1851 "awkgram.c" /* yacc.c:1646  */
++#line 1858 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 5:
- #line 216 "awkgram.y" /* yacc.c:1646  */
 -#line 207 "awkgram.y" /* yacc.c:1646  */
++#line 214 "awkgram.y" /* yacc.c:1646  */
      {
                next_sourcefile();
                if (sourcefile == srcfiles)
                        process_deferred();
          }
- #line 1870 "awkgram.c" /* yacc.c:1646  */
 -#line 1861 "awkgram.c" /* yacc.c:1646  */
++#line 1868 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 6:
- #line 222 "awkgram.y" /* yacc.c:1646  */
 -#line 213 "awkgram.y" /* yacc.c:1646  */
++#line 220 "awkgram.y" /* yacc.c:1646  */
      {
                rule = 0;
                /*
@@@ -1879,19 -1870,19 +1877,19 @@@
                 */
                /* yyerrok; */
          }
- #line 1883 "awkgram.c" /* yacc.c:1646  */
 -#line 1874 "awkgram.c" /* yacc.c:1646  */
++#line 1881 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 7:
- #line 234 "awkgram.y" /* yacc.c:1646  */
 -#line 225 "awkgram.y" /* yacc.c:1646  */
++#line 232 "awkgram.y" /* yacc.c:1646  */
      {
                (void) append_rule((yyvsp[-1]), (yyvsp[0]));
          }
- #line 1891 "awkgram.c" /* yacc.c:1646  */
 -#line 1882 "awkgram.c" /* yacc.c:1646  */
++#line 1889 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 8:
- #line 238 "awkgram.y" /* yacc.c:1646  */
 -#line 229 "awkgram.y" /* yacc.c:1646  */
++#line 236 "awkgram.y" /* yacc.c:1646  */
      {
                if (rule != Rule) {
                        msg(_("%s blocks must have an action part"), 
ruletab[rule]);
@@@ -1902,39 -1893,39 +1900,39 @@@
                } else          /* pattern rule with non-empty pattern */
                        (void) append_rule((yyvsp[-1]), NULL);
          }
- #line 1906 "awkgram.c" /* yacc.c:1646  */
 -#line 1897 "awkgram.c" /* yacc.c:1646  */
++#line 1904 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 9:
- #line 249 "awkgram.y" /* yacc.c:1646  */
 -#line 240 "awkgram.y" /* yacc.c:1646  */
++#line 247 "awkgram.y" /* yacc.c:1646  */
      {
                in_function = NULL;
                (void) mk_function((yyvsp[-1]), (yyvsp[0]));
                yyerrok;
          }
- #line 1916 "awkgram.c" /* yacc.c:1646  */
 -#line 1907 "awkgram.c" /* yacc.c:1646  */
++#line 1914 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 10:
- #line 255 "awkgram.y" /* yacc.c:1646  */
 -#line 246 "awkgram.y" /* yacc.c:1646  */
++#line 253 "awkgram.y" /* yacc.c:1646  */
      {
                want_source = false;
                yyerrok;
          }
- #line 1925 "awkgram.c" /* yacc.c:1646  */
 -#line 1916 "awkgram.c" /* yacc.c:1646  */
++#line 1923 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 11:
- #line 260 "awkgram.y" /* yacc.c:1646  */
 -#line 251 "awkgram.y" /* yacc.c:1646  */
++#line 258 "awkgram.y" /* yacc.c:1646  */
      {
                want_source = false;
                yyerrok;
          }
- #line 1934 "awkgram.c" /* yacc.c:1646  */
 -#line 1925 "awkgram.c" /* yacc.c:1646  */
++#line 1932 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 12:
- #line 268 "awkgram.y" /* yacc.c:1646  */
 -#line 259 "awkgram.y" /* yacc.c:1646  */
++#line 266 "awkgram.y" /* yacc.c:1646  */
      {
                if (include_source((yyvsp[0])) < 0)
                        YYABORT;
@@@ -1942,23 -1933,23 +1940,23 @@@
                bcfree((yyvsp[0]));
                (yyval) = NULL;
          }
- #line 1946 "awkgram.c" /* yacc.c:1646  */
 -#line 1937 "awkgram.c" /* yacc.c:1646  */
++#line 1944 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 13:
- #line 276 "awkgram.y" /* yacc.c:1646  */
 -#line 267 "awkgram.y" /* yacc.c:1646  */
++#line 274 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 1952 "awkgram.c" /* yacc.c:1646  */
 -#line 1943 "awkgram.c" /* yacc.c:1646  */
++#line 1950 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 14:
- #line 278 "awkgram.y" /* yacc.c:1646  */
 -#line 269 "awkgram.y" /* yacc.c:1646  */
++#line 276 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 1958 "awkgram.c" /* yacc.c:1646  */
 -#line 1949 "awkgram.c" /* yacc.c:1646  */
++#line 1956 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 15:
- #line 283 "awkgram.y" /* yacc.c:1646  */
 -#line 274 "awkgram.y" /* yacc.c:1646  */
++#line 281 "awkgram.y" /* yacc.c:1646  */
      {
                if (load_library((yyvsp[0])) < 0)
                        YYABORT;
@@@ -1966,47 -1957,35 +1964,47 @@@
                bcfree((yyvsp[0]));
                (yyval) = NULL;
          }
- #line 1970 "awkgram.c" /* yacc.c:1646  */
 -#line 1961 "awkgram.c" /* yacc.c:1646  */
++#line 1968 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 16:
- #line 291 "awkgram.y" /* yacc.c:1646  */
 -#line 282 "awkgram.y" /* yacc.c:1646  */
++#line 289 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 1976 "awkgram.c" /* yacc.c:1646  */
 -#line 1967 "awkgram.c" /* yacc.c:1646  */
++#line 1974 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 17:
- #line 293 "awkgram.y" /* yacc.c:1646  */
 -#line 284 "awkgram.y" /* yacc.c:1646  */
++#line 291 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 1982 "awkgram.c" /* yacc.c:1646  */
 -#line 1973 "awkgram.c" /* yacc.c:1646  */
++#line 1980 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 18:
- #line 298 "awkgram.y" /* yacc.c:1646  */
 -#line 289 "awkgram.y" /* yacc.c:1646  */
 -    { (yyval) = NULL; rule = Rule; }
 -#line 1979 "awkgram.c" /* yacc.c:1646  */
++#line 296 "awkgram.y" /* yacc.c:1646  */
 +    { rule = Rule;
 +              if (comment != NULL) {
 +                      (yyval) = list_create(comment);
 +                      comment = NULL;
 +              } else
 +                      (yyval) = NULL;
 +        }
- #line 1994 "awkgram.c" /* yacc.c:1646  */
++#line 1992 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 19:
- #line 306 "awkgram.y" /* yacc.c:1646  */
 -#line 291 "awkgram.y" /* yacc.c:1646  */
 -    { (yyval) = (yyvsp[0]); rule = Rule; }
 -#line 1985 "awkgram.c" /* yacc.c:1646  */
++#line 304 "awkgram.y" /* yacc.c:1646  */
 +    { rule = Rule;
 +              if (comment != NULL) {
 +                      (yyval) = list_prepend((yyvsp[0]), comment);
 +                      comment = NULL;
 +              } else
 +                      (yyval) = (yyvsp[0]);
 +        }
- #line 2006 "awkgram.c" /* yacc.c:1646  */
++#line 2004 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 20:
- #line 315 "awkgram.y" /* yacc.c:1646  */
 -#line 293 "awkgram.y" /* yacc.c:1646  */
++#line 313 "awkgram.y" /* yacc.c:1646  */
      {
                INSTRUCTION *tp;
  
@@@ -2032,15 -2011,13 +2030,15 @@@
                (yyval) = list_append(list_merge((yyvsp[-3]), (yyvsp[0])), tp);
                rule = Rule;
          }
- #line 2036 "awkgram.c" /* yacc.c:1646  */
 -#line 2015 "awkgram.c" /* yacc.c:1646  */
++#line 2034 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 21:
- #line 341 "awkgram.y" /* yacc.c:1646  */
 -#line 319 "awkgram.y" /* yacc.c:1646  */
++#line 339 "awkgram.y" /* yacc.c:1646  */
      {
                static int begin_seen = 0;
 +              func_first = false;
 +              INSTRUCTION *ip;
                if (do_lint_old && ++begin_seen == 2)
                        warning_ln((yyvsp[0])->source_line,
                                _("old awk does not support multiple `BEGIN' or 
`END' rules"));
@@@ -2049,14 -2026,13 +2047,14 @@@
                (yyvsp[0])->source_file = source;
                (yyval) = (yyvsp[0]);
          }
- #line 2053 "awkgram.c" /* yacc.c:1646  */
 -#line 2030 "awkgram.c" /* yacc.c:1646  */
++#line 2051 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 22:
- #line 354 "awkgram.y" /* yacc.c:1646  */
 -#line 330 "awkgram.y" /* yacc.c:1646  */
++#line 352 "awkgram.y" /* yacc.c:1646  */
      {
                static int end_seen = 0;
 +              func_first = false;
                if (do_lint_old && ++end_seen == 2)
                        warning_ln((yyvsp[0])->source_line,
                                _("old awk does not support multiple `BEGIN' or 
`END' rules"));
@@@ -2065,91 -2041,71 +2063,91 @@@
                (yyvsp[0])->source_file = source;
                (yyval) = (yyvsp[0]);
          }
- #line 2069 "awkgram.c" /* yacc.c:1646  */
 -#line 2045 "awkgram.c" /* yacc.c:1646  */
++#line 2067 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 23:
- #line 366 "awkgram.y" /* yacc.c:1646  */
 -#line 341 "awkgram.y" /* yacc.c:1646  */
++#line 364 "awkgram.y" /* yacc.c:1646  */
      {
 +              func_first = false;
                (yyvsp[0])->in_rule = rule = BEGINFILE;
                (yyvsp[0])->source_file = source;
                (yyval) = (yyvsp[0]);
          }
- #line 2080 "awkgram.c" /* yacc.c:1646  */
 -#line 2055 "awkgram.c" /* yacc.c:1646  */
++#line 2078 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 24:
- #line 373 "awkgram.y" /* yacc.c:1646  */
 -#line 347 "awkgram.y" /* yacc.c:1646  */
++#line 371 "awkgram.y" /* yacc.c:1646  */
      {
 +              func_first = false;
                (yyvsp[0])->in_rule = rule = ENDFILE;
                (yyvsp[0])->source_file = source;
                (yyval) = (yyvsp[0]);
          }
- #line 2091 "awkgram.c" /* yacc.c:1646  */
 -#line 2065 "awkgram.c" /* yacc.c:1646  */
++#line 2089 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 25:
- #line 383 "awkgram.y" /* yacc.c:1646  */
 -#line 356 "awkgram.y" /* yacc.c:1646  */
++#line 381 "awkgram.y" /* yacc.c:1646  */
      {
 +              INSTRUCTION *ip;
                if ((yyvsp[-3]) == NULL)
 -                      (yyval) = list_create(instruction(Op_no_op));
 +                      ip = list_create(instruction(Op_no_op));
                else
 -                      (yyval) = (yyvsp[-3]);
 +                      ip = (yyvsp[-3]);
 +              (yyval) = ip;
          }
- #line 2104 "awkgram.c" /* yacc.c:1646  */
 -#line 2076 "awkgram.c" /* yacc.c:1646  */
++#line 2102 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 26:
- #line 395 "awkgram.y" /* yacc.c:1646  */
 -#line 366 "awkgram.y" /* yacc.c:1646  */
++#line 393 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 2110 "awkgram.c" /* yacc.c:1646  */
 -#line 2082 "awkgram.c" /* yacc.c:1646  */
++#line 2108 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 27:
- #line 397 "awkgram.y" /* yacc.c:1646  */
 -#line 368 "awkgram.y" /* yacc.c:1646  */
++#line 395 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 2116 "awkgram.c" /* yacc.c:1646  */
 -#line 2088 "awkgram.c" /* yacc.c:1646  */
++#line 2114 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 28:
- #line 399 "awkgram.y" /* yacc.c:1646  */
 -#line 370 "awkgram.y" /* yacc.c:1646  */
++#line 397 "awkgram.y" /* yacc.c:1646  */
      {
                yyerror(_("`%s' is a built-in function, it cannot be 
redefined"),
                                        tokstart);
                YYABORT;
          }
- #line 2126 "awkgram.c" /* yacc.c:1646  */
 -#line 2098 "awkgram.c" /* yacc.c:1646  */
++#line 2124 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 29:
- #line 405 "awkgram.y" /* yacc.c:1646  */
 -#line 376 "awkgram.y" /* yacc.c:1646  */
++#line 403 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 2132 "awkgram.c" /* yacc.c:1646  */
 -#line 2104 "awkgram.c" /* yacc.c:1646  */
++#line 2130 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 32:
- #line 415 "awkgram.y" /* yacc.c:1646  */
 -#line 386 "awkgram.y" /* yacc.c:1646  */
++#line 413 "awkgram.y" /* yacc.c:1646  */
      {
 +              /*
 +               *  treat any comments between BOF and the first function
 +               *  definition (with no intervening BEGIN etc block) as
 +               *  program comments.  Special kludge: iff there are more
 +               *  than one such comments, treat the last as a function
 +               *  comment.
 +               */
 +              if (comment != NULL && func_first
 +                  && strstr(comment->memory->stptr, "\n\n") != NULL)
 +                      split_comment();
 +              /* save any other pre-function comment as function comment  */
 +              if (comment != NULL) {
 +                      commentf = comment;
 +                      comment = NULL;
 +              }
 +              func_first = false;
                (yyvsp[-5])->source_file = source;
                if (install_function((yyvsp[-4])->lextok, (yyvsp[-5]), 
(yyvsp[-2])) < 0)
                        YYABORT;
@@@ -2159,17 -2115,17 +2157,17 @@@
                /* $4 already free'd in install_function */
                (yyval) = (yyvsp[-5]);
          }
- #line 2163 "awkgram.c" /* yacc.c:1646  */
 -#line 2119 "awkgram.c" /* yacc.c:1646  */
++#line 2161 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 33:
- #line 449 "awkgram.y" /* yacc.c:1646  */
 -#line 404 "awkgram.y" /* yacc.c:1646  */
++#line 447 "awkgram.y" /* yacc.c:1646  */
      { want_regexp = true; }
- #line 2169 "awkgram.c" /* yacc.c:1646  */
 -#line 2125 "awkgram.c" /* yacc.c:1646  */
++#line 2167 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 34:
- #line 451 "awkgram.y" /* yacc.c:1646  */
 -#line 406 "awkgram.y" /* yacc.c:1646  */
++#line 449 "awkgram.y" /* yacc.c:1646  */
      {
                  NODE *n, *exp;
                  char *re;
@@@ -2198,89 -2154,69 +2196,89 @@@
                  (yyval)->opcode = Op_match_rec;
                  (yyval)->memory = n;
                }
- #line 2202 "awkgram.c" /* yacc.c:1646  */
 -#line 2158 "awkgram.c" /* yacc.c:1646  */
++#line 2200 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 35:
- #line 483 "awkgram.y" /* yacc.c:1646  */
 -#line 438 "awkgram.y" /* yacc.c:1646  */
++#line 481 "awkgram.y" /* yacc.c:1646  */
      { bcfree((yyvsp[0])); }
- #line 2208 "awkgram.c" /* yacc.c:1646  */
 -#line 2164 "awkgram.c" /* yacc.c:1646  */
++#line 2206 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 37:
- #line 489 "awkgram.y" /* yacc.c:1646  */
 -#line 444 "awkgram.y" /* yacc.c:1646  */
 -    { (yyval) = NULL; }
 -#line 2170 "awkgram.c" /* yacc.c:1646  */
++#line 487 "awkgram.y" /* yacc.c:1646  */
 +    {
 +              if (comment != NULL) {
 +                      (yyval) = list_create(comment);
 +                      comment = NULL;
 +              } else (yyval) = NULL;
 +        }
- #line 2219 "awkgram.c" /* yacc.c:1646  */
++#line 2217 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 38:
- #line 496 "awkgram.y" /* yacc.c:1646  */
 -#line 446 "awkgram.y" /* yacc.c:1646  */
++#line 494 "awkgram.y" /* yacc.c:1646  */
      {
 -              if ((yyvsp[0]) == NULL)
 -                      (yyval) = (yyvsp[-1]);
 -              else {
 +              if ((yyvsp[0]) == NULL) {
 +                      if (comment == NULL)
 +                              (yyval) = (yyvsp[-1]);
 +                      else {
 +                              (yyval) = list_append((yyvsp[-1]), comment);
 +                              comment = NULL;
 +                      }
 +              } else {
                        add_lint((yyvsp[0]), LINT_no_effect);
 -                      if ((yyvsp[-1]) == NULL)
 -                              (yyval) = (yyvsp[0]);
 -                      else
 +                      if ((yyvsp[-1]) == NULL) {
 +                              if (comment == NULL)
 +                                      (yyval) = (yyvsp[0]);
 +                              else {
 +                                      (yyval) = list_append((yyvsp[0]), 
comment);
 +                                      comment = NULL;
 +                              }
 +                      } else {
 +                              if (comment != NULL) {
 +                                      list_append((yyvsp[0]), comment);
 +                                      comment = NULL;
 +                              }
                                (yyval) = list_merge((yyvsp[-1]), (yyvsp[0]));
 +                      }
                }
 -          yyerrok;
 +              yyerrok;
          }
- #line 2251 "awkgram.c" /* yacc.c:1646  */
 -#line 2187 "awkgram.c" /* yacc.c:1646  */
++#line 2249 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 39:
- #line 524 "awkgram.y" /* yacc.c:1646  */
 -#line 459 "awkgram.y" /* yacc.c:1646  */
++#line 522 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 2257 "awkgram.c" /* yacc.c:1646  */
 -#line 2193 "awkgram.c" /* yacc.c:1646  */
++#line 2255 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 42:
- #line 534 "awkgram.y" /* yacc.c:1646  */
 -#line 469 "awkgram.y" /* yacc.c:1646  */
++#line 532 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 2263 "awkgram.c" /* yacc.c:1646  */
 -#line 2199 "awkgram.c" /* yacc.c:1646  */
++#line 2261 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 43:
- #line 536 "awkgram.y" /* yacc.c:1646  */
 -#line 471 "awkgram.y" /* yacc.c:1646  */
++#line 534 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[-1]); }
- #line 2269 "awkgram.c" /* yacc.c:1646  */
 -#line 2205 "awkgram.c" /* yacc.c:1646  */
++#line 2267 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 44:
- #line 538 "awkgram.y" /* yacc.c:1646  */
 -#line 473 "awkgram.y" /* yacc.c:1646  */
++#line 536 "awkgram.y" /* yacc.c:1646  */
      {
                if (do_pretty_print)
                        (yyval) = list_prepend((yyvsp[0]), 
instruction(Op_exec_count));
                else
                        (yyval) = (yyvsp[0]);
          }
- #line 2280 "awkgram.c" /* yacc.c:1646  */
 -#line 2216 "awkgram.c" /* yacc.c:1646  */
++#line 2278 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 45:
- #line 545 "awkgram.y" /* yacc.c:1646  */
 -#line 480 "awkgram.y" /* yacc.c:1646  */
++#line 543 "awkgram.y" /* yacc.c:1646  */
      {
                INSTRUCTION *dflt, *curr = NULL, *cexp, *cstmt;
                INSTRUCTION *ip, *nextc, *tbreak;
@@@ -2370,11 -2306,11 +2368,11 @@@
                break_allowed--;                        
                fix_break_continue(ip, tbreak, NULL);
          }
- #line 2374 "awkgram.c" /* yacc.c:1646  */
 -#line 2310 "awkgram.c" /* yacc.c:1646  */
++#line 2372 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 46:
- #line 635 "awkgram.y" /* yacc.c:1646  */
 -#line 570 "awkgram.y" /* yacc.c:1646  */
++#line 633 "awkgram.y" /* yacc.c:1646  */
      { 
                /*
                 *    -----------------
@@@ -2416,11 -2352,11 +2414,11 @@@
                continue_allowed--;
                fix_break_continue(ip, tbreak, tcont);
          }
- #line 2420 "awkgram.c" /* yacc.c:1646  */
 -#line 2356 "awkgram.c" /* yacc.c:1646  */
++#line 2418 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 47:
- #line 677 "awkgram.y" /* yacc.c:1646  */
 -#line 612 "awkgram.y" /* yacc.c:1646  */
++#line 675 "awkgram.y" /* yacc.c:1646  */
      {
                /*
                 *    -----------------
@@@ -2462,11 -2398,11 +2460,11 @@@
                } /* else
                        $1 and $4 are NULLs */
          }
- #line 2466 "awkgram.c" /* yacc.c:1646  */
 -#line 2402 "awkgram.c" /* yacc.c:1646  */
++#line 2464 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 48:
- #line 719 "awkgram.y" /* yacc.c:1646  */
 -#line 654 "awkgram.y" /* yacc.c:1646  */
++#line 717 "awkgram.y" /* yacc.c:1646  */
      {
                INSTRUCTION *ip;
                char *var_name = (yyvsp[-5])->lextok;
@@@ -2579,44 -2515,44 +2577,44 @@@ regular_loop
                break_allowed--;
                continue_allowed--;
          }
- #line 2583 "awkgram.c" /* yacc.c:1646  */
 -#line 2519 "awkgram.c" /* yacc.c:1646  */
++#line 2581 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 49:
- #line 832 "awkgram.y" /* yacc.c:1646  */
 -#line 767 "awkgram.y" /* yacc.c:1646  */
++#line 830 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = mk_for_loop((yyvsp[-11]), (yyvsp[-9]), (yyvsp[-6]), 
(yyvsp[-3]), (yyvsp[0]));
  
                break_allowed--;
                continue_allowed--;
          }
- #line 2594 "awkgram.c" /* yacc.c:1646  */
 -#line 2530 "awkgram.c" /* yacc.c:1646  */
++#line 2592 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 50:
- #line 839 "awkgram.y" /* yacc.c:1646  */
 -#line 774 "awkgram.y" /* yacc.c:1646  */
++#line 837 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = mk_for_loop((yyvsp[-10]), (yyvsp[-8]), (INSTRUCTION 
*) NULL, (yyvsp[-3]), (yyvsp[0]));
  
                break_allowed--;
                continue_allowed--;
          }
- #line 2605 "awkgram.c" /* yacc.c:1646  */
 -#line 2541 "awkgram.c" /* yacc.c:1646  */
++#line 2603 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 51:
- #line 846 "awkgram.y" /* yacc.c:1646  */
 -#line 781 "awkgram.y" /* yacc.c:1646  */
++#line 844 "awkgram.y" /* yacc.c:1646  */
      {
                if (do_pretty_print)
                        (yyval) = list_prepend((yyvsp[0]), 
instruction(Op_exec_count));
                else
                        (yyval) = (yyvsp[0]);
          }
- #line 2616 "awkgram.c" /* yacc.c:1646  */
 -#line 2552 "awkgram.c" /* yacc.c:1646  */
++#line 2614 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 52:
- #line 856 "awkgram.y" /* yacc.c:1646  */
 -#line 791 "awkgram.y" /* yacc.c:1646  */
++#line 854 "awkgram.y" /* yacc.c:1646  */
      { 
                if (! break_allowed)
                        error_ln((yyvsp[-1])->source_line,
@@@ -2625,11 -2561,11 +2623,11 @@@
                (yyval) = list_create((yyvsp[-1]));
  
          }
- #line 2629 "awkgram.c" /* yacc.c:1646  */
 -#line 2565 "awkgram.c" /* yacc.c:1646  */
++#line 2627 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 53:
- #line 865 "awkgram.y" /* yacc.c:1646  */
 -#line 800 "awkgram.y" /* yacc.c:1646  */
++#line 863 "awkgram.y" /* yacc.c:1646  */
      {
                if (! continue_allowed)
                        error_ln((yyvsp[-1])->source_line,
@@@ -2638,11 -2574,11 +2636,11 @@@
                (yyval) = list_create((yyvsp[-1]));
  
          }
- #line 2642 "awkgram.c" /* yacc.c:1646  */
 -#line 2578 "awkgram.c" /* yacc.c:1646  */
++#line 2640 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 54:
- #line 874 "awkgram.y" /* yacc.c:1646  */
 -#line 809 "awkgram.y" /* yacc.c:1646  */
++#line 872 "awkgram.y" /* yacc.c:1646  */
      {
                /* if inside function (rule = 0), resolve context at run-time */
                if (rule && rule != Rule)
@@@ -2651,11 -2587,11 +2649,11 @@@
                (yyvsp[-1])->target_jmp = ip_rec;
                (yyval) = list_create((yyvsp[-1]));
          }
- #line 2655 "awkgram.c" /* yacc.c:1646  */
 -#line 2591 "awkgram.c" /* yacc.c:1646  */
++#line 2653 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 55:
- #line 883 "awkgram.y" /* yacc.c:1646  */
 -#line 818 "awkgram.y" /* yacc.c:1646  */
++#line 881 "awkgram.y" /* yacc.c:1646  */
      {
                /* if inside function (rule = 0), resolve context at run-time */
                if (rule == BEGIN || rule == END || rule == ENDFILE)
@@@ -2666,11 -2602,11 +2664,11 @@@
                (yyvsp[-1])->target_endfile = ip_endfile;
                (yyval) = list_create((yyvsp[-1]));
          }
- #line 2670 "awkgram.c" /* yacc.c:1646  */
 -#line 2606 "awkgram.c" /* yacc.c:1646  */
++#line 2668 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 56:
- #line 894 "awkgram.y" /* yacc.c:1646  */
 -#line 829 "awkgram.y" /* yacc.c:1646  */
++#line 892 "awkgram.y" /* yacc.c:1646  */
      {
                /* Initialize the two possible jump targets, the actual target
                 * is resolved at run-time. 
@@@ -2685,20 -2621,20 +2683,20 @@@
                } else
                        (yyval) = list_append((yyvsp[-1]), (yyvsp[-2]));
          }
- #line 2689 "awkgram.c" /* yacc.c:1646  */
 -#line 2625 "awkgram.c" /* yacc.c:1646  */
++#line 2687 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 57:
- #line 909 "awkgram.y" /* yacc.c:1646  */
 -#line 844 "awkgram.y" /* yacc.c:1646  */
++#line 907 "awkgram.y" /* yacc.c:1646  */
      {
                if (! in_function)
                        yyerror(_("`return' used outside function context"));
          }
- #line 2698 "awkgram.c" /* yacc.c:1646  */
 -#line 2634 "awkgram.c" /* yacc.c:1646  */
++#line 2696 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 58:
- #line 912 "awkgram.y" /* yacc.c:1646  */
 -#line 847 "awkgram.y" /* yacc.c:1646  */
++#line 910 "awkgram.y" /* yacc.c:1646  */
      {
                if ((yyvsp[-1]) == NULL) {
                        (yyval) = list_create((yyvsp[-3]));
@@@ -2719,17 -2655,17 +2717,17 @@@
                        (yyval) = list_append((yyvsp[-1]), (yyvsp[-3]));
                }
          }
- #line 2723 "awkgram.c" /* yacc.c:1646  */
 -#line 2659 "awkgram.c" /* yacc.c:1646  */
++#line 2721 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 60:
- #line 944 "awkgram.y" /* yacc.c:1646  */
 -#line 879 "awkgram.y" /* yacc.c:1646  */
++#line 942 "awkgram.y" /* yacc.c:1646  */
      { in_print = true; in_parens = 0; }
- #line 2729 "awkgram.c" /* yacc.c:1646  */
 -#line 2665 "awkgram.c" /* yacc.c:1646  */
++#line 2727 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 61:
- #line 945 "awkgram.y" /* yacc.c:1646  */
 -#line 880 "awkgram.y" /* yacc.c:1646  */
++#line 943 "awkgram.y" /* yacc.c:1646  */
      {
                /*
                 * Optimization: plain `print' has no expression list, so $3 is 
null.
@@@ -2826,17 -2762,17 +2824,17 @@@ regular_print
                        }
                }
          }
- #line 2830 "awkgram.c" /* yacc.c:1646  */
 -#line 2766 "awkgram.c" /* yacc.c:1646  */
++#line 2828 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 62:
- #line 1042 "awkgram.y" /* yacc.c:1646  */
 -#line 977 "awkgram.y" /* yacc.c:1646  */
++#line 1040 "awkgram.y" /* yacc.c:1646  */
      { sub_counter = 0; }
- #line 2836 "awkgram.c" /* yacc.c:1646  */
 -#line 2772 "awkgram.c" /* yacc.c:1646  */
++#line 2834 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 63:
- #line 1043 "awkgram.y" /* yacc.c:1646  */
 -#line 978 "awkgram.y" /* yacc.c:1646  */
++#line 1041 "awkgram.y" /* yacc.c:1646  */
      {
                char *arr = (yyvsp[-2])->lextok;
  
@@@ -2869,11 -2805,11 +2867,11 @@@
                        (yyval) = list_append(list_append((yyvsp[0]), 
(yyvsp[-2])), (yyvsp[-3]));
                }
          }
- #line 2873 "awkgram.c" /* yacc.c:1646  */
 -#line 2809 "awkgram.c" /* yacc.c:1646  */
++#line 2871 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 64:
- #line 1080 "awkgram.y" /* yacc.c:1646  */
 -#line 1015 "awkgram.y" /* yacc.c:1646  */
++#line 1078 "awkgram.y" /* yacc.c:1646  */
      {
                static bool warned = false;
                char *arr = (yyvsp[-1])->lextok;
@@@ -2899,52 -2835,52 +2897,52 @@@
                                fatal(_("`delete' is not allowed with 
FUNCTAB"));
                }
          }
- #line 2903 "awkgram.c" /* yacc.c:1646  */
 -#line 2839 "awkgram.c" /* yacc.c:1646  */
++#line 2901 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 65:
- #line 1106 "awkgram.y" /* yacc.c:1646  */
 -#line 1041 "awkgram.y" /* yacc.c:1646  */
++#line 1104 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = optimize_assignment((yyvsp[0])); }
- #line 2909 "awkgram.c" /* yacc.c:1646  */
 -#line 2845 "awkgram.c" /* yacc.c:1646  */
++#line 2907 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 66:
- #line 1111 "awkgram.y" /* yacc.c:1646  */
 -#line 1046 "awkgram.y" /* yacc.c:1646  */
++#line 1109 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 2915 "awkgram.c" /* yacc.c:1646  */
 -#line 2851 "awkgram.c" /* yacc.c:1646  */
++#line 2913 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 67:
- #line 1113 "awkgram.y" /* yacc.c:1646  */
 -#line 1048 "awkgram.y" /* yacc.c:1646  */
++#line 1111 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 2921 "awkgram.c" /* yacc.c:1646  */
 -#line 2857 "awkgram.c" /* yacc.c:1646  */
++#line 2919 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 68:
- #line 1118 "awkgram.y" /* yacc.c:1646  */
 -#line 1053 "awkgram.y" /* yacc.c:1646  */
++#line 1116 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 2927 "awkgram.c" /* yacc.c:1646  */
 -#line 2863 "awkgram.c" /* yacc.c:1646  */
++#line 2925 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 69:
- #line 1120 "awkgram.y" /* yacc.c:1646  */
 -#line 1055 "awkgram.y" /* yacc.c:1646  */
++#line 1118 "awkgram.y" /* yacc.c:1646  */
      {
                if ((yyvsp[-1]) == NULL)
                        (yyval) = list_create((yyvsp[0]));
                else
                        (yyval) = list_prepend((yyvsp[-1]), (yyvsp[0]));
          }
- #line 2938 "awkgram.c" /* yacc.c:1646  */
 -#line 2874 "awkgram.c" /* yacc.c:1646  */
++#line 2936 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 70:
- #line 1127 "awkgram.y" /* yacc.c:1646  */
 -#line 1062 "awkgram.y" /* yacc.c:1646  */
++#line 1125 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 2944 "awkgram.c" /* yacc.c:1646  */
 -#line 2880 "awkgram.c" /* yacc.c:1646  */
++#line 2942 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 71:
- #line 1132 "awkgram.y" /* yacc.c:1646  */
 -#line 1067 "awkgram.y" /* yacc.c:1646  */
++#line 1130 "awkgram.y" /* yacc.c:1646  */
      {
                INSTRUCTION *casestmt = (yyvsp[0]);
                if ((yyvsp[0]) == NULL)
@@@ -2956,11 -2892,11 +2954,11 @@@
                bcfree((yyvsp[-2]));
                (yyval) = (yyvsp[-4]);
          }
- #line 2960 "awkgram.c" /* yacc.c:1646  */
 -#line 2896 "awkgram.c" /* yacc.c:1646  */
++#line 2958 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 72:
- #line 1144 "awkgram.y" /* yacc.c:1646  */
 -#line 1079 "awkgram.y" /* yacc.c:1646  */
++#line 1142 "awkgram.y" /* yacc.c:1646  */
      {
                INSTRUCTION *casestmt = (yyvsp[0]);
                if ((yyvsp[0]) == NULL)
@@@ -2971,17 -2907,17 +2969,17 @@@
                (yyvsp[-3])->case_stmt = casestmt;
                (yyval) = (yyvsp[-3]);
          }
- #line 2975 "awkgram.c" /* yacc.c:1646  */
 -#line 2911 "awkgram.c" /* yacc.c:1646  */
++#line 2973 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 73:
- #line 1158 "awkgram.y" /* yacc.c:1646  */
 -#line 1093 "awkgram.y" /* yacc.c:1646  */
++#line 1156 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 2981 "awkgram.c" /* yacc.c:1646  */
 -#line 2917 "awkgram.c" /* yacc.c:1646  */
++#line 2979 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 74:
- #line 1160 "awkgram.y" /* yacc.c:1646  */
 -#line 1095 "awkgram.y" /* yacc.c:1646  */
++#line 1158 "awkgram.y" /* yacc.c:1646  */
      { 
                NODE *n = (yyvsp[0])->memory;
                (void) force_number(n);
@@@ -2989,71 -2925,71 +2987,71 @@@
                bcfree((yyvsp[-1]));
                (yyval) = (yyvsp[0]);
          }
- #line 2993 "awkgram.c" /* yacc.c:1646  */
 -#line 2929 "awkgram.c" /* yacc.c:1646  */
++#line 2991 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 75:
- #line 1168 "awkgram.y" /* yacc.c:1646  */
 -#line 1103 "awkgram.y" /* yacc.c:1646  */
++#line 1166 "awkgram.y" /* yacc.c:1646  */
      {
                bcfree((yyvsp[-1]));
                (yyval) = (yyvsp[0]);
          }
- #line 3002 "awkgram.c" /* yacc.c:1646  */
 -#line 2938 "awkgram.c" /* yacc.c:1646  */
++#line 3000 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 76:
- #line 1173 "awkgram.y" /* yacc.c:1646  */
 -#line 1108 "awkgram.y" /* yacc.c:1646  */
++#line 1171 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3008 "awkgram.c" /* yacc.c:1646  */
 -#line 2944 "awkgram.c" /* yacc.c:1646  */
++#line 3006 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 77:
- #line 1175 "awkgram.y" /* yacc.c:1646  */
 -#line 1110 "awkgram.y" /* yacc.c:1646  */
++#line 1173 "awkgram.y" /* yacc.c:1646  */
      {
                (yyvsp[0])->opcode = Op_push_re;
                (yyval) = (yyvsp[0]);
          }
- #line 3017 "awkgram.c" /* yacc.c:1646  */
 -#line 2953 "awkgram.c" /* yacc.c:1646  */
++#line 3015 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 78:
- #line 1183 "awkgram.y" /* yacc.c:1646  */
 -#line 1118 "awkgram.y" /* yacc.c:1646  */
++#line 1181 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3023 "awkgram.c" /* yacc.c:1646  */
 -#line 2959 "awkgram.c" /* yacc.c:1646  */
++#line 3021 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 79:
- #line 1185 "awkgram.y" /* yacc.c:1646  */
 -#line 1120 "awkgram.y" /* yacc.c:1646  */
++#line 1183 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3029 "awkgram.c" /* yacc.c:1646  */
 -#line 2965 "awkgram.c" /* yacc.c:1646  */
++#line 3027 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 81:
- #line 1195 "awkgram.y" /* yacc.c:1646  */
 -#line 1130 "awkgram.y" /* yacc.c:1646  */
++#line 1193 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = (yyvsp[-1]);
          }
- #line 3037 "awkgram.c" /* yacc.c:1646  */
 -#line 2973 "awkgram.c" /* yacc.c:1646  */
++#line 3035 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 82:
- #line 1202 "awkgram.y" /* yacc.c:1646  */
 -#line 1137 "awkgram.y" /* yacc.c:1646  */
++#line 1200 "awkgram.y" /* yacc.c:1646  */
      {
                in_print = false;
                in_parens = 0;
                (yyval) = NULL;
          }
- #line 3047 "awkgram.c" /* yacc.c:1646  */
 -#line 2983 "awkgram.c" /* yacc.c:1646  */
++#line 3045 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 83:
- #line 1207 "awkgram.y" /* yacc.c:1646  */
 -#line 1142 "awkgram.y" /* yacc.c:1646  */
++#line 1205 "awkgram.y" /* yacc.c:1646  */
      { in_print = false; in_parens = 0; }
- #line 3053 "awkgram.c" /* yacc.c:1646  */
 -#line 2989 "awkgram.c" /* yacc.c:1646  */
++#line 3051 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 84:
- #line 1208 "awkgram.y" /* yacc.c:1646  */
 -#line 1143 "awkgram.y" /* yacc.c:1646  */
++#line 1206 "awkgram.y" /* yacc.c:1646  */
      {
                if ((yyvsp[-2])->redir_type == redirect_twoway
                        && (yyvsp[0])->lasti->opcode == Op_K_getline_redir
@@@ -3061,136 -2997,136 +3059,136 @@@
                        yyerror(_("multistage two-way pipelines don't work"));
                (yyval) = list_prepend((yyvsp[0]), (yyvsp[-2]));
          }
- #line 3065 "awkgram.c" /* yacc.c:1646  */
 -#line 3001 "awkgram.c" /* yacc.c:1646  */
++#line 3063 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 85:
- #line 1219 "awkgram.y" /* yacc.c:1646  */
 -#line 1154 "awkgram.y" /* yacc.c:1646  */
++#line 1217 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = mk_condition((yyvsp[-3]), (yyvsp[-5]), (yyvsp[0]), 
NULL, NULL);
          }
- #line 3073 "awkgram.c" /* yacc.c:1646  */
 -#line 3009 "awkgram.c" /* yacc.c:1646  */
++#line 3071 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 86:
- #line 1224 "awkgram.y" /* yacc.c:1646  */
 -#line 1159 "awkgram.y" /* yacc.c:1646  */
++#line 1222 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = mk_condition((yyvsp[-6]), (yyvsp[-8]), (yyvsp[-3]), 
(yyvsp[-2]), (yyvsp[0]));
          }
- #line 3081 "awkgram.c" /* yacc.c:1646  */
 -#line 3017 "awkgram.c" /* yacc.c:1646  */
++#line 3079 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 91:
- #line 1241 "awkgram.y" /* yacc.c:1646  */
 -#line 1176 "awkgram.y" /* yacc.c:1646  */
++#line 1239 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 3087 "awkgram.c" /* yacc.c:1646  */
 -#line 3023 "awkgram.c" /* yacc.c:1646  */
++#line 3085 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 92:
- #line 1243 "awkgram.y" /* yacc.c:1646  */
 -#line 1178 "awkgram.y" /* yacc.c:1646  */
++#line 1241 "awkgram.y" /* yacc.c:1646  */
      {
                bcfree((yyvsp[-1]));
                (yyval) = (yyvsp[0]);
          }
- #line 3096 "awkgram.c" /* yacc.c:1646  */
 -#line 3032 "awkgram.c" /* yacc.c:1646  */
++#line 3094 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 93:
- #line 1251 "awkgram.y" /* yacc.c:1646  */
 -#line 1186 "awkgram.y" /* yacc.c:1646  */
++#line 1249 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 3102 "awkgram.c" /* yacc.c:1646  */
 -#line 3038 "awkgram.c" /* yacc.c:1646  */
++#line 3100 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 94:
- #line 1253 "awkgram.y" /* yacc.c:1646  */
 -#line 1188 "awkgram.y" /* yacc.c:1646  */
++#line 1251 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]) ; }
- #line 3108 "awkgram.c" /* yacc.c:1646  */
 -#line 3044 "awkgram.c" /* yacc.c:1646  */
++#line 3106 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 95:
- #line 1258 "awkgram.y" /* yacc.c:1646  */
 -#line 1193 "awkgram.y" /* yacc.c:1646  */
++#line 1256 "awkgram.y" /* yacc.c:1646  */
      {
                (yyvsp[0])->param_count = 0;
                (yyval) = list_create((yyvsp[0]));
          }
- #line 3117 "awkgram.c" /* yacc.c:1646  */
 -#line 3053 "awkgram.c" /* yacc.c:1646  */
++#line 3115 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 96:
- #line 1263 "awkgram.y" /* yacc.c:1646  */
 -#line 1198 "awkgram.y" /* yacc.c:1646  */
++#line 1261 "awkgram.y" /* yacc.c:1646  */
      {
                (yyvsp[0])->param_count =  (yyvsp[-2])->lasti->param_count + 1;
                (yyval) = list_append((yyvsp[-2]), (yyvsp[0]));
                yyerrok;
          }
- #line 3127 "awkgram.c" /* yacc.c:1646  */
 -#line 3063 "awkgram.c" /* yacc.c:1646  */
++#line 3125 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 97:
- #line 1269 "awkgram.y" /* yacc.c:1646  */
 -#line 1204 "awkgram.y" /* yacc.c:1646  */
++#line 1267 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 3133 "awkgram.c" /* yacc.c:1646  */
 -#line 3069 "awkgram.c" /* yacc.c:1646  */
++#line 3131 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 98:
- #line 1271 "awkgram.y" /* yacc.c:1646  */
 -#line 1206 "awkgram.y" /* yacc.c:1646  */
++#line 1269 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[-1]); }
- #line 3139 "awkgram.c" /* yacc.c:1646  */
 -#line 3075 "awkgram.c" /* yacc.c:1646  */
++#line 3137 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 99:
- #line 1273 "awkgram.y" /* yacc.c:1646  */
 -#line 1208 "awkgram.y" /* yacc.c:1646  */
++#line 1271 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[-2]); }
- #line 3145 "awkgram.c" /* yacc.c:1646  */
 -#line 3081 "awkgram.c" /* yacc.c:1646  */
++#line 3143 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 100:
- #line 1279 "awkgram.y" /* yacc.c:1646  */
 -#line 1214 "awkgram.y" /* yacc.c:1646  */
++#line 1277 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 3151 "awkgram.c" /* yacc.c:1646  */
 -#line 3087 "awkgram.c" /* yacc.c:1646  */
++#line 3149 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 101:
- #line 1281 "awkgram.y" /* yacc.c:1646  */
 -#line 1216 "awkgram.y" /* yacc.c:1646  */
++#line 1279 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3157 "awkgram.c" /* yacc.c:1646  */
 -#line 3093 "awkgram.c" /* yacc.c:1646  */
++#line 3155 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 102:
- #line 1286 "awkgram.y" /* yacc.c:1646  */
 -#line 1221 "awkgram.y" /* yacc.c:1646  */
++#line 1284 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 3163 "awkgram.c" /* yacc.c:1646  */
 -#line 3099 "awkgram.c" /* yacc.c:1646  */
++#line 3161 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 103:
- #line 1288 "awkgram.y" /* yacc.c:1646  */
 -#line 1223 "awkgram.y" /* yacc.c:1646  */
++#line 1286 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3169 "awkgram.c" /* yacc.c:1646  */
 -#line 3105 "awkgram.c" /* yacc.c:1646  */
++#line 3167 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 104:
- #line 1293 "awkgram.y" /* yacc.c:1646  */
 -#line 1228 "awkgram.y" /* yacc.c:1646  */
++#line 1291 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_expression_list(NULL, (yyvsp[0])); }
- #line 3175 "awkgram.c" /* yacc.c:1646  */
 -#line 3111 "awkgram.c" /* yacc.c:1646  */
++#line 3173 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 105:
- #line 1295 "awkgram.y" /* yacc.c:1646  */
 -#line 1230 "awkgram.y" /* yacc.c:1646  */
++#line 1293 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
                yyerrok;
          }
- #line 3184 "awkgram.c" /* yacc.c:1646  */
 -#line 3120 "awkgram.c" /* yacc.c:1646  */
++#line 3182 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 106:
- #line 1300 "awkgram.y" /* yacc.c:1646  */
 -#line 1235 "awkgram.y" /* yacc.c:1646  */
++#line 1298 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 3190 "awkgram.c" /* yacc.c:1646  */
 -#line 3126 "awkgram.c" /* yacc.c:1646  */
++#line 3188 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 107:
- #line 1302 "awkgram.y" /* yacc.c:1646  */
 -#line 1237 "awkgram.y" /* yacc.c:1646  */
++#line 1300 "awkgram.y" /* yacc.c:1646  */
      {
                /*
                 * Returning the expression list instead of NULL lets
@@@ -3198,52 -3134,52 +3196,52 @@@
                 */
                (yyval) = (yyvsp[-1]);
          }
- #line 3202 "awkgram.c" /* yacc.c:1646  */
 -#line 3138 "awkgram.c" /* yacc.c:1646  */
++#line 3200 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 108:
- #line 1310 "awkgram.y" /* yacc.c:1646  */
 -#line 1245 "awkgram.y" /* yacc.c:1646  */
++#line 1308 "awkgram.y" /* yacc.c:1646  */
      {
                /* Ditto */
                (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
          }
- #line 3211 "awkgram.c" /* yacc.c:1646  */
 -#line 3147 "awkgram.c" /* yacc.c:1646  */
++#line 3209 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 109:
- #line 1315 "awkgram.y" /* yacc.c:1646  */
 -#line 1250 "awkgram.y" /* yacc.c:1646  */
++#line 1313 "awkgram.y" /* yacc.c:1646  */
      {
                /* Ditto */
                (yyval) = (yyvsp[-2]);
          }
- #line 3220 "awkgram.c" /* yacc.c:1646  */
 -#line 3156 "awkgram.c" /* yacc.c:1646  */
++#line 3218 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 110:
- #line 1324 "awkgram.y" /* yacc.c:1646  */
 -#line 1259 "awkgram.y" /* yacc.c:1646  */
++#line 1322 "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 3231 "awkgram.c" /* yacc.c:1646  */
 -#line 3167 "awkgram.c" /* yacc.c:1646  */
++#line 3229 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 111:
- #line 1331 "awkgram.y" /* yacc.c:1646  */
 -#line 1266 "awkgram.y" /* yacc.c:1646  */
++#line 1329 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_boolean((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3237 "awkgram.c" /* yacc.c:1646  */
 -#line 3173 "awkgram.c" /* yacc.c:1646  */
++#line 3235 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 112:
- #line 1333 "awkgram.y" /* yacc.c:1646  */
 -#line 1268 "awkgram.y" /* yacc.c:1646  */
++#line 1331 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_boolean((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3243 "awkgram.c" /* yacc.c:1646  */
 -#line 3179 "awkgram.c" /* yacc.c:1646  */
++#line 3241 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 113:
- #line 1335 "awkgram.y" /* yacc.c:1646  */
 -#line 1270 "awkgram.y" /* yacc.c:1646  */
++#line 1333 "awkgram.y" /* yacc.c:1646  */
      {
                if ((yyvsp[-2])->lasti->opcode == Op_match_rec)
                        warning_ln((yyvsp[-1])->source_line,
@@@ -3259,11 -3195,11 +3257,11 @@@
                        (yyval) = list_append(list_merge((yyvsp[-2]), 
(yyvsp[0])), (yyvsp[-1]));
                }
          }
- #line 3263 "awkgram.c" /* yacc.c:1646  */
 -#line 3199 "awkgram.c" /* yacc.c:1646  */
++#line 3261 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 114:
- #line 1351 "awkgram.y" /* yacc.c:1646  */
 -#line 1286 "awkgram.y" /* yacc.c:1646  */
++#line 1349 "awkgram.y" /* yacc.c:1646  */
      {
                if (do_lint_old)
                        warning_ln((yyvsp[-1])->source_line,
@@@ -3273,91 -3209,91 +3271,91 @@@
                (yyvsp[-1])->expr_count = 1;
                (yyval) = list_append(list_merge((yyvsp[-2]), (yyvsp[0])), 
(yyvsp[-1]));
          }
- #line 3277 "awkgram.c" /* yacc.c:1646  */
 -#line 3213 "awkgram.c" /* yacc.c:1646  */
++#line 3275 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 115:
- #line 1361 "awkgram.y" /* yacc.c:1646  */
 -#line 1296 "awkgram.y" /* yacc.c:1646  */
++#line 1359 "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 3288 "awkgram.c" /* yacc.c:1646  */
 -#line 3224 "awkgram.c" /* yacc.c:1646  */
++#line 3286 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 116:
- #line 1368 "awkgram.y" /* yacc.c:1646  */
 -#line 1303 "awkgram.y" /* yacc.c:1646  */
++#line 1366 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_condition((yyvsp[-4]), (yyvsp[-3]), (yyvsp[-2]), 
(yyvsp[-1]), (yyvsp[0])); }
- #line 3294 "awkgram.c" /* yacc.c:1646  */
 -#line 3230 "awkgram.c" /* yacc.c:1646  */
++#line 3292 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 117:
- #line 1370 "awkgram.y" /* yacc.c:1646  */
 -#line 1305 "awkgram.y" /* yacc.c:1646  */
++#line 1368 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3300 "awkgram.c" /* yacc.c:1646  */
 -#line 3236 "awkgram.c" /* yacc.c:1646  */
++#line 3298 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 118:
- #line 1375 "awkgram.y" /* yacc.c:1646  */
 -#line 1310 "awkgram.y" /* yacc.c:1646  */
++#line 1373 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3306 "awkgram.c" /* yacc.c:1646  */
 -#line 3242 "awkgram.c" /* yacc.c:1646  */
++#line 3304 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 119:
- #line 1377 "awkgram.y" /* yacc.c:1646  */
 -#line 1312 "awkgram.y" /* yacc.c:1646  */
++#line 1375 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3312 "awkgram.c" /* yacc.c:1646  */
 -#line 3248 "awkgram.c" /* yacc.c:1646  */
++#line 3310 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 120:
- #line 1379 "awkgram.y" /* yacc.c:1646  */
 -#line 1314 "awkgram.y" /* yacc.c:1646  */
++#line 1377 "awkgram.y" /* yacc.c:1646  */
      { 
                (yyvsp[0])->opcode = Op_assign_quotient;
                (yyval) = (yyvsp[0]);
          }
- #line 3321 "awkgram.c" /* yacc.c:1646  */
 -#line 3257 "awkgram.c" /* yacc.c:1646  */
++#line 3319 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 121:
- #line 1387 "awkgram.y" /* yacc.c:1646  */
 -#line 1322 "awkgram.y" /* yacc.c:1646  */
++#line 1385 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3327 "awkgram.c" /* yacc.c:1646  */
 -#line 3263 "awkgram.c" /* yacc.c:1646  */
++#line 3325 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 122:
- #line 1389 "awkgram.y" /* yacc.c:1646  */
 -#line 1324 "awkgram.y" /* yacc.c:1646  */
++#line 1387 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3333 "awkgram.c" /* yacc.c:1646  */
 -#line 3269 "awkgram.c" /* yacc.c:1646  */
++#line 3331 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 123:
- #line 1394 "awkgram.y" /* yacc.c:1646  */
 -#line 1329 "awkgram.y" /* yacc.c:1646  */
++#line 1392 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3339 "awkgram.c" /* yacc.c:1646  */
 -#line 3275 "awkgram.c" /* yacc.c:1646  */
++#line 3337 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 124:
- #line 1396 "awkgram.y" /* yacc.c:1646  */
 -#line 1331 "awkgram.y" /* yacc.c:1646  */
++#line 1394 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3345 "awkgram.c" /* yacc.c:1646  */
 -#line 3281 "awkgram.c" /* yacc.c:1646  */
++#line 3343 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 125:
- #line 1401 "awkgram.y" /* yacc.c:1646  */
 -#line 1336 "awkgram.y" /* yacc.c:1646  */
++#line 1399 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3351 "awkgram.c" /* yacc.c:1646  */
 -#line 3287 "awkgram.c" /* yacc.c:1646  */
++#line 3349 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 126:
- #line 1403 "awkgram.y" /* yacc.c:1646  */
 -#line 1338 "awkgram.y" /* yacc.c:1646  */
++#line 1401 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3357 "awkgram.c" /* yacc.c:1646  */
 -#line 3293 "awkgram.c" /* yacc.c:1646  */
++#line 3355 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 127:
- #line 1405 "awkgram.y" /* yacc.c:1646  */
 -#line 1340 "awkgram.y" /* yacc.c:1646  */
++#line 1403 "awkgram.y" /* yacc.c:1646  */
      {
                int count = 2;
                bool is_simple_var = false;
@@@ -3404,47 -3340,47 +3402,47 @@@
                                max_args = count;
                }
          }
- #line 3408 "awkgram.c" /* yacc.c:1646  */
 -#line 3344 "awkgram.c" /* yacc.c:1646  */
++#line 3406 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 129:
- #line 1457 "awkgram.y" /* yacc.c:1646  */
 -#line 1392 "awkgram.y" /* yacc.c:1646  */
++#line 1455 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3414 "awkgram.c" /* yacc.c:1646  */
 -#line 3350 "awkgram.c" /* yacc.c:1646  */
++#line 3412 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 130:
- #line 1459 "awkgram.y" /* yacc.c:1646  */
 -#line 1394 "awkgram.y" /* yacc.c:1646  */
++#line 1457 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3420 "awkgram.c" /* yacc.c:1646  */
 -#line 3356 "awkgram.c" /* yacc.c:1646  */
++#line 3418 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 131:
- #line 1461 "awkgram.y" /* yacc.c:1646  */
 -#line 1396 "awkgram.y" /* yacc.c:1646  */
++#line 1459 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3426 "awkgram.c" /* yacc.c:1646  */
 -#line 3362 "awkgram.c" /* yacc.c:1646  */
++#line 3424 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 132:
- #line 1463 "awkgram.y" /* yacc.c:1646  */
 -#line 1398 "awkgram.y" /* yacc.c:1646  */
++#line 1461 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3432 "awkgram.c" /* yacc.c:1646  */
 -#line 3368 "awkgram.c" /* yacc.c:1646  */
++#line 3430 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 133:
- #line 1465 "awkgram.y" /* yacc.c:1646  */
 -#line 1400 "awkgram.y" /* yacc.c:1646  */
++#line 1463 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3438 "awkgram.c" /* yacc.c:1646  */
 -#line 3374 "awkgram.c" /* yacc.c:1646  */
++#line 3436 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 134:
- #line 1467 "awkgram.y" /* yacc.c:1646  */
 -#line 1402 "awkgram.y" /* yacc.c:1646  */
++#line 1465 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3444 "awkgram.c" /* yacc.c:1646  */
 -#line 3380 "awkgram.c" /* yacc.c:1646  */
++#line 3442 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 135:
- #line 1469 "awkgram.y" /* yacc.c:1646  */
 -#line 1404 "awkgram.y" /* yacc.c:1646  */
++#line 1467 "awkgram.y" /* yacc.c:1646  */
      {
                /*
                 * In BEGINFILE/ENDFILE, allow `getline [var] < file'
@@@ -3458,29 -3394,29 +3456,29 @@@
                                _("non-redirected `getline' undefined inside 
END action"));
                (yyval) = mk_getline((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]), 
redirect_input);
          }
- #line 3462 "awkgram.c" /* yacc.c:1646  */
 -#line 3398 "awkgram.c" /* yacc.c:1646  */
++#line 3460 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 136:
- #line 1483 "awkgram.y" /* yacc.c:1646  */
 -#line 1418 "awkgram.y" /* yacc.c:1646  */
++#line 1481 "awkgram.y" /* yacc.c:1646  */
      {
                (yyvsp[0])->opcode = Op_postincrement;
                (yyval) = mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
          }
- #line 3471 "awkgram.c" /* yacc.c:1646  */
 -#line 3407 "awkgram.c" /* yacc.c:1646  */
++#line 3469 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 137:
- #line 1488 "awkgram.y" /* yacc.c:1646  */
 -#line 1423 "awkgram.y" /* yacc.c:1646  */
++#line 1486 "awkgram.y" /* yacc.c:1646  */
      {
                (yyvsp[0])->opcode = Op_postdecrement;
                (yyval) = mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
          }
- #line 3480 "awkgram.c" /* yacc.c:1646  */
 -#line 3416 "awkgram.c" /* yacc.c:1646  */
++#line 3478 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 138:
- #line 1493 "awkgram.y" /* yacc.c:1646  */
 -#line 1428 "awkgram.y" /* yacc.c:1646  */
++#line 1491 "awkgram.y" /* yacc.c:1646  */
      {
                if (do_lint_old) {
                    warning_ln((yyvsp[-1])->source_line,
@@@ -3500,64 -3436,64 +3498,64 @@@
                        (yyval) = list_append(list_merge(t, (yyvsp[0])), 
(yyvsp[-1]));
                }
          }
- #line 3504 "awkgram.c" /* yacc.c:1646  */
 -#line 3440 "awkgram.c" /* yacc.c:1646  */
++#line 3502 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 139:
- #line 1518 "awkgram.y" /* yacc.c:1646  */
 -#line 1453 "awkgram.y" /* yacc.c:1646  */
++#line 1516 "awkgram.y" /* yacc.c:1646  */
      {
                  (yyval) = mk_getline((yyvsp[-1]), (yyvsp[0]), (yyvsp[-3]), 
(yyvsp[-2])->redir_type);
                  bcfree((yyvsp[-2]));
                }
- #line 3513 "awkgram.c" /* yacc.c:1646  */
 -#line 3449 "awkgram.c" /* yacc.c:1646  */
++#line 3511 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 140:
- #line 1524 "awkgram.y" /* yacc.c:1646  */
 -#line 1459 "awkgram.y" /* yacc.c:1646  */
++#line 1522 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3519 "awkgram.c" /* yacc.c:1646  */
 -#line 3455 "awkgram.c" /* yacc.c:1646  */
++#line 3517 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 141:
- #line 1526 "awkgram.y" /* yacc.c:1646  */
 -#line 1461 "awkgram.y" /* yacc.c:1646  */
++#line 1524 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3525 "awkgram.c" /* yacc.c:1646  */
 -#line 3461 "awkgram.c" /* yacc.c:1646  */
++#line 3523 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 142:
- #line 1528 "awkgram.y" /* yacc.c:1646  */
 -#line 1463 "awkgram.y" /* yacc.c:1646  */
++#line 1526 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3531 "awkgram.c" /* yacc.c:1646  */
 -#line 3467 "awkgram.c" /* yacc.c:1646  */
++#line 3529 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 143:
- #line 1530 "awkgram.y" /* yacc.c:1646  */
 -#line 1465 "awkgram.y" /* yacc.c:1646  */
++#line 1528 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3537 "awkgram.c" /* yacc.c:1646  */
 -#line 3473 "awkgram.c" /* yacc.c:1646  */
++#line 3535 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 144:
- #line 1532 "awkgram.y" /* yacc.c:1646  */
 -#line 1467 "awkgram.y" /* yacc.c:1646  */
++#line 1530 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3543 "awkgram.c" /* yacc.c:1646  */
 -#line 3479 "awkgram.c" /* yacc.c:1646  */
++#line 3541 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 145:
- #line 1534 "awkgram.y" /* yacc.c:1646  */
 -#line 1469 "awkgram.y" /* yacc.c:1646  */
++#line 1532 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
- #line 3549 "awkgram.c" /* yacc.c:1646  */
 -#line 3485 "awkgram.c" /* yacc.c:1646  */
++#line 3547 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 146:
- #line 1539 "awkgram.y" /* yacc.c:1646  */
 -#line 1474 "awkgram.y" /* yacc.c:1646  */
++#line 1537 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = list_create((yyvsp[0]));
          }
- #line 3557 "awkgram.c" /* yacc.c:1646  */
 -#line 3493 "awkgram.c" /* yacc.c:1646  */
++#line 3555 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 147:
- #line 1543 "awkgram.y" /* yacc.c:1646  */
 -#line 1478 "awkgram.y" /* yacc.c:1646  */
++#line 1541 "awkgram.y" /* yacc.c:1646  */
      {
                if ((yyvsp[0])->opcode == Op_match_rec) {
                        (yyvsp[0])->opcode = Op_nomatch;
@@@ -3589,37 -3525,37 +3587,37 @@@
                        }
                }
           }
- #line 3593 "awkgram.c" /* yacc.c:1646  */
 -#line 3529 "awkgram.c" /* yacc.c:1646  */
++#line 3591 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 148:
- #line 1575 "awkgram.y" /* yacc.c:1646  */
 -#line 1510 "awkgram.y" /* yacc.c:1646  */
++#line 1573 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[-1]); }
- #line 3599 "awkgram.c" /* yacc.c:1646  */
 -#line 3535 "awkgram.c" /* yacc.c:1646  */
++#line 3597 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 149:
- #line 1577 "awkgram.y" /* yacc.c:1646  */
 -#line 1512 "awkgram.y" /* yacc.c:1646  */
++#line 1575 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = snode((yyvsp[-1]), (yyvsp[-3]));
                if ((yyval) == NULL)
                        YYABORT;
          }
- #line 3609 "awkgram.c" /* yacc.c:1646  */
 -#line 3545 "awkgram.c" /* yacc.c:1646  */
++#line 3607 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 150:
- #line 1583 "awkgram.y" /* yacc.c:1646  */
 -#line 1518 "awkgram.y" /* yacc.c:1646  */
++#line 1581 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = snode((yyvsp[-1]), (yyvsp[-3]));
                if ((yyval) == NULL)
                        YYABORT;
          }
- #line 3619 "awkgram.c" /* yacc.c:1646  */
 -#line 3555 "awkgram.c" /* yacc.c:1646  */
++#line 3617 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 151:
- #line 1589 "awkgram.y" /* yacc.c:1646  */
 -#line 1524 "awkgram.y" /* yacc.c:1646  */
++#line 1587 "awkgram.y" /* yacc.c:1646  */
      {
                static bool warned = false;
  
@@@ -3632,45 -3568,45 +3630,45 @@@
                if ((yyval) == NULL)
                        YYABORT;
          }
- #line 3636 "awkgram.c" /* yacc.c:1646  */
 -#line 3572 "awkgram.c" /* yacc.c:1646  */
++#line 3634 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 154:
- #line 1604 "awkgram.y" /* yacc.c:1646  */
 -#line 1539 "awkgram.y" /* yacc.c:1646  */
++#line 1602 "awkgram.y" /* yacc.c:1646  */
      {
                (yyvsp[-1])->opcode = Op_preincrement;
                (yyval) = mk_assignment((yyvsp[0]), NULL, (yyvsp[-1]));
          }
- #line 3645 "awkgram.c" /* yacc.c:1646  */
 -#line 3581 "awkgram.c" /* yacc.c:1646  */
++#line 3643 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 155:
- #line 1609 "awkgram.y" /* yacc.c:1646  */
 -#line 1544 "awkgram.y" /* yacc.c:1646  */
++#line 1607 "awkgram.y" /* yacc.c:1646  */
      {
                (yyvsp[-1])->opcode = Op_predecrement;
                (yyval) = mk_assignment((yyvsp[0]), NULL, (yyvsp[-1]));
          }
- #line 3654 "awkgram.c" /* yacc.c:1646  */
 -#line 3590 "awkgram.c" /* yacc.c:1646  */
++#line 3652 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 156:
- #line 1614 "awkgram.y" /* yacc.c:1646  */
 -#line 1549 "awkgram.y" /* yacc.c:1646  */
++#line 1612 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = list_create((yyvsp[0]));
          }
- #line 3662 "awkgram.c" /* yacc.c:1646  */
 -#line 3598 "awkgram.c" /* yacc.c:1646  */
++#line 3660 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 157:
- #line 1618 "awkgram.y" /* yacc.c:1646  */
 -#line 1553 "awkgram.y" /* yacc.c:1646  */
++#line 1616 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = list_create((yyvsp[0]));
          }
- #line 3670 "awkgram.c" /* yacc.c:1646  */
 -#line 3606 "awkgram.c" /* yacc.c:1646  */
++#line 3668 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 158:
- #line 1622 "awkgram.y" /* yacc.c:1646  */
 -#line 1557 "awkgram.y" /* yacc.c:1646  */
++#line 1620 "awkgram.y" /* yacc.c:1646  */
      {
                if ((yyvsp[0])->lasti->opcode == Op_push_i
                        && ((yyvsp[0])->lasti->memory->flags & (STRCUR|STRING)) 
== 0
@@@ -3685,11 -3621,11 +3683,11 @@@
                        (yyval) = list_append((yyvsp[0]), (yyvsp[-1]));
                }
          }
- #line 3689 "awkgram.c" /* yacc.c:1646  */
 -#line 3625 "awkgram.c" /* yacc.c:1646  */
++#line 3687 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 159:
- #line 1637 "awkgram.y" /* yacc.c:1646  */
 -#line 1572 "awkgram.y" /* yacc.c:1646  */
++#line 1635 "awkgram.y" /* yacc.c:1646  */
      {
            /*
             * was: $$ = $2
@@@ -3699,20 -3635,20 +3697,20 @@@
                (yyvsp[-1])->memory = make_number(0.0);
                (yyval) = list_append((yyvsp[0]), (yyvsp[-1]));
          }
- #line 3703 "awkgram.c" /* yacc.c:1646  */
 -#line 3639 "awkgram.c" /* yacc.c:1646  */
++#line 3701 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 160:
- #line 1650 "awkgram.y" /* yacc.c:1646  */
 -#line 1585 "awkgram.y" /* yacc.c:1646  */
++#line 1648 "awkgram.y" /* yacc.c:1646  */
      {
                func_use((yyvsp[0])->lasti->func_name, FUNC_USE);
                (yyval) = (yyvsp[0]);
          }
- #line 3712 "awkgram.c" /* yacc.c:1646  */
 -#line 3648 "awkgram.c" /* yacc.c:1646  */
++#line 3710 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 161:
- #line 1655 "awkgram.y" /* yacc.c:1646  */
 -#line 1590 "awkgram.y" /* yacc.c:1646  */
++#line 1653 "awkgram.y" /* yacc.c:1646  */
      {
                /* indirect function call */
                INSTRUCTION *f, *t;
@@@ -3745,11 -3681,11 +3743,11 @@@
  
                (yyval) = list_prepend((yyvsp[0]), t);
          }
- #line 3749 "awkgram.c" /* yacc.c:1646  */
 -#line 3685 "awkgram.c" /* yacc.c:1646  */
++#line 3747 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 162:
- #line 1691 "awkgram.y" /* yacc.c:1646  */
 -#line 1626 "awkgram.y" /* yacc.c:1646  */
++#line 1689 "awkgram.y" /* yacc.c:1646  */
      {
                param_sanity((yyvsp[-1]));
                (yyvsp[-3])->opcode = Op_func_call;
@@@ -3763,49 -3699,49 +3761,49 @@@
                        (yyval) = list_append(t, (yyvsp[-3]));
                }
          }
- #line 3767 "awkgram.c" /* yacc.c:1646  */
 -#line 3703 "awkgram.c" /* yacc.c:1646  */
++#line 3765 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 163:
- #line 1708 "awkgram.y" /* yacc.c:1646  */
 -#line 1643 "awkgram.y" /* yacc.c:1646  */
++#line 1706 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 3773 "awkgram.c" /* yacc.c:1646  */
 -#line 3709 "awkgram.c" /* yacc.c:1646  */
++#line 3771 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 164:
- #line 1710 "awkgram.y" /* yacc.c:1646  */
 -#line 1645 "awkgram.y" /* yacc.c:1646  */
++#line 1708 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3779 "awkgram.c" /* yacc.c:1646  */
 -#line 3715 "awkgram.c" /* yacc.c:1646  */
++#line 3777 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 165:
- #line 1715 "awkgram.y" /* yacc.c:1646  */
 -#line 1650 "awkgram.y" /* yacc.c:1646  */
++#line 1713 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 3785 "awkgram.c" /* yacc.c:1646  */
 -#line 3721 "awkgram.c" /* yacc.c:1646  */
++#line 3783 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 166:
- #line 1717 "awkgram.y" /* yacc.c:1646  */
 -#line 1652 "awkgram.y" /* yacc.c:1646  */
++#line 1715 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[-1]); }
- #line 3791 "awkgram.c" /* yacc.c:1646  */
 -#line 3727 "awkgram.c" /* yacc.c:1646  */
++#line 3789 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 167:
- #line 1722 "awkgram.y" /* yacc.c:1646  */
 -#line 1657 "awkgram.y" /* yacc.c:1646  */
++#line 1720 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3797 "awkgram.c" /* yacc.c:1646  */
 -#line 3733 "awkgram.c" /* yacc.c:1646  */
++#line 3795 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 168:
- #line 1724 "awkgram.y" /* yacc.c:1646  */
 -#line 1659 "awkgram.y" /* yacc.c:1646  */
++#line 1722 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = list_merge((yyvsp[-1]), (yyvsp[0]));
          }
- #line 3805 "awkgram.c" /* yacc.c:1646  */
 -#line 3741 "awkgram.c" /* yacc.c:1646  */
++#line 3803 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 169:
- #line 1731 "awkgram.y" /* yacc.c:1646  */
 -#line 1666 "awkgram.y" /* yacc.c:1646  */
++#line 1729 "awkgram.y" /* yacc.c:1646  */
      {
                INSTRUCTION *ip = (yyvsp[0])->lasti; 
                int count = ip->sub_count;      /* # of SUBSEP-seperated 
expressions */
@@@ -3819,11 -3755,11 +3817,11 @@@
                sub_counter++;  /* count # of dimensions */
                (yyval) = (yyvsp[0]);
          }
- #line 3823 "awkgram.c" /* yacc.c:1646  */
 -#line 3759 "awkgram.c" /* yacc.c:1646  */
++#line 3821 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 170:
- #line 1748 "awkgram.y" /* yacc.c:1646  */
 -#line 1683 "awkgram.y" /* yacc.c:1646  */
++#line 1746 "awkgram.y" /* yacc.c:1646  */
      {
                INSTRUCTION *t = (yyvsp[-1]);
                if ((yyvsp[-1]) == NULL) {
@@@ -3837,31 -3773,31 +3835,31 @@@
                        (yyvsp[0])->sub_count = count_expressions(&t, false);
                (yyval) = list_append(t, (yyvsp[0]));
          }
- #line 3841 "awkgram.c" /* yacc.c:1646  */
 -#line 3777 "awkgram.c" /* yacc.c:1646  */
++#line 3839 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 171:
- #line 1765 "awkgram.y" /* yacc.c:1646  */
 -#line 1700 "awkgram.y" /* yacc.c:1646  */
++#line 1763 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 3847 "awkgram.c" /* yacc.c:1646  */
 -#line 3783 "awkgram.c" /* yacc.c:1646  */
++#line 3845 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 172:
- #line 1767 "awkgram.y" /* yacc.c:1646  */
 -#line 1702 "awkgram.y" /* yacc.c:1646  */
++#line 1765 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = list_merge((yyvsp[-1]), (yyvsp[0]));
          }
- #line 3855 "awkgram.c" /* yacc.c:1646  */
 -#line 3791 "awkgram.c" /* yacc.c:1646  */
++#line 3853 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 173:
- #line 1774 "awkgram.y" /* yacc.c:1646  */
 -#line 1709 "awkgram.y" /* yacc.c:1646  */
++#line 1772 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[-1]); }
- #line 3861 "awkgram.c" /* yacc.c:1646  */
 -#line 3797 "awkgram.c" /* yacc.c:1646  */
++#line 3859 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 174:
- #line 1779 "awkgram.y" /* yacc.c:1646  */
 -#line 1714 "awkgram.y" /* yacc.c:1646  */
++#line 1777 "awkgram.y" /* yacc.c:1646  */
      {
                char *var_name = (yyvsp[0])->lextok;
  
@@@ -3869,22 -3805,22 +3867,22 @@@
                (yyvsp[0])->memory = variable((yyvsp[0])->source_line, 
var_name, Node_var_new);
                (yyval) = list_create((yyvsp[0]));
          }
- #line 3873 "awkgram.c" /* yacc.c:1646  */
 -#line 3809 "awkgram.c" /* yacc.c:1646  */
++#line 3871 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 175:
- #line 1787 "awkgram.y" /* yacc.c:1646  */
 -#line 1722 "awkgram.y" /* yacc.c:1646  */
++#line 1785 "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 3884 "awkgram.c" /* yacc.c:1646  */
 -#line 3820 "awkgram.c" /* yacc.c:1646  */
++#line 3882 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 176:
- #line 1797 "awkgram.y" /* yacc.c:1646  */
 -#line 1732 "awkgram.y" /* yacc.c:1646  */
++#line 1795 "awkgram.y" /* yacc.c:1646  */
      {
                INSTRUCTION *ip = (yyvsp[0])->nexti;
                if (ip->opcode == Op_push
@@@ -3896,73 -3832,73 +3894,73 @@@
                } else
                        (yyval) = (yyvsp[0]);
          }
- #line 3900 "awkgram.c" /* yacc.c:1646  */
 -#line 3836 "awkgram.c" /* yacc.c:1646  */
++#line 3898 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 177:
- #line 1809 "awkgram.y" /* yacc.c:1646  */
 -#line 1744 "awkgram.y" /* yacc.c:1646  */
++#line 1807 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = list_append((yyvsp[-1]), (yyvsp[-2]));
                if ((yyvsp[0]) != NULL)
                        mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
          }
- #line 3910 "awkgram.c" /* yacc.c:1646  */
 -#line 3846 "awkgram.c" /* yacc.c:1646  */
++#line 3908 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 178:
- #line 1818 "awkgram.y" /* yacc.c:1646  */
 -#line 1753 "awkgram.y" /* yacc.c:1646  */
++#line 1816 "awkgram.y" /* yacc.c:1646  */
      {
                (yyvsp[0])->opcode = Op_postincrement;
          }
- #line 3918 "awkgram.c" /* yacc.c:1646  */
 -#line 3854 "awkgram.c" /* yacc.c:1646  */
++#line 3916 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 179:
- #line 1822 "awkgram.y" /* yacc.c:1646  */
 -#line 1757 "awkgram.y" /* yacc.c:1646  */
++#line 1820 "awkgram.y" /* yacc.c:1646  */
      {
                (yyvsp[0])->opcode = Op_postdecrement;
          }
- #line 3926 "awkgram.c" /* yacc.c:1646  */
 -#line 3862 "awkgram.c" /* yacc.c:1646  */
++#line 3924 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 180:
- #line 1825 "awkgram.y" /* yacc.c:1646  */
 -#line 1760 "awkgram.y" /* yacc.c:1646  */
++#line 1823 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 3932 "awkgram.c" /* yacc.c:1646  */
 -#line 3868 "awkgram.c" /* yacc.c:1646  */
++#line 3930 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 182:
- #line 1833 "awkgram.y" /* yacc.c:1646  */
 -#line 1768 "awkgram.y" /* yacc.c:1646  */
++#line 1831 "awkgram.y" /* yacc.c:1646  */
      { yyerrok; }
- #line 3938 "awkgram.c" /* yacc.c:1646  */
 -#line 3874 "awkgram.c" /* yacc.c:1646  */
++#line 3936 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 183:
- #line 1837 "awkgram.y" /* yacc.c:1646  */
 -#line 1772 "awkgram.y" /* yacc.c:1646  */
++#line 1835 "awkgram.y" /* yacc.c:1646  */
      { yyerrok; }
- #line 3944 "awkgram.c" /* yacc.c:1646  */
 -#line 3880 "awkgram.c" /* yacc.c:1646  */
++#line 3942 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 186:
- #line 1846 "awkgram.y" /* yacc.c:1646  */
 -#line 1781 "awkgram.y" /* yacc.c:1646  */
++#line 1844 "awkgram.y" /* yacc.c:1646  */
      { yyerrok; }
- #line 3950 "awkgram.c" /* yacc.c:1646  */
 -#line 3886 "awkgram.c" /* yacc.c:1646  */
++#line 3948 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 187:
- #line 1850 "awkgram.y" /* yacc.c:1646  */
 -#line 1785 "awkgram.y" /* yacc.c:1646  */
++#line 1848 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); yyerrok; }
- #line 3956 "awkgram.c" /* yacc.c:1646  */
 -#line 3892 "awkgram.c" /* yacc.c:1646  */
++#line 3954 "awkgram.c" /* yacc.c:1646  */
      break;
  
    case 188:
- #line 1854 "awkgram.y" /* yacc.c:1646  */
 -#line 1789 "awkgram.y" /* yacc.c:1646  */
++#line 1852 "awkgram.y" /* yacc.c:1646  */
      { yyerrok; }
- #line 3962 "awkgram.c" /* yacc.c:1646  */
 -#line 3898 "awkgram.c" /* yacc.c:1646  */
++#line 3960 "awkgram.c" /* yacc.c:1646  */
      break;
  
  
- #line 3966 "awkgram.c" /* yacc.c:1646  */
 -#line 3902 "awkgram.c" /* yacc.c:1646  */
++#line 3964 "awkgram.c" /* yacc.c:1646  */
        default: break;
      }
    /* User semantic actions sometimes alter yychar, and that requires
@@@ -4190,7 -4126,7 +4188,7 @@@ yyreturn
  #endif
    return yyresult;
  }
- #line 1856 "awkgram.y" /* yacc.c:1906  */
 -#line 1791 "awkgram.y" /* yacc.c:1906  */
++#line 1854 "awkgram.y" /* yacc.c:1906  */
  
  
  struct token {
diff --cc test/ChangeLog
index 0cd7e5f,68cc18e..cfe2e9b
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@@ -1,7 -1,3 +1,13 @@@
++2014-09-13    Stephen Davies          <address@hidden>
++
++      * Makefile.am (profile4, profile5): Changes processing to not delete the
++      first two lines. This is no longer needed.
++      * profile4.ok, profile5.ok: Changed to suit new rules and comments.
++
 +2014-09-10         Arnold D. Robbins     <address@hidden>
 +
 +      * profile2.ok, profile4.ok, profile5.ok: Update for new code.
 +
  2014-09-05         Arnold D. Robbins     <address@hidden>
  
        * functab4.awk: Changed to use stat instead of chdir since

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

Summary of changes:
 ChangeLog                  |   63 ++-
 NEWS                       |    4 +
 awk.h                      |    3 +
 awkgram.c                  |  771 +++++++++++++++++++-----------------
 awkgram.y                  |   53 +++-
 awklib/eg/lib/strtonum.awk |    8 +-
 builtin.c                  |    2 +-
 command.c                  |    6 +-
 command.y                  |    6 +-
 doc/ChangeLog              |    9 +
 doc/gawk.info              |  943 ++++++++++++++++++++++----------------------
 doc/gawk.texi              |   76 +++--
 doc/gawktexi.in            |   64 ++--
 eval.c                     |    1 +
 ext.c                      |   30 +--
 main.c                     |    4 +-
 node.c                     |    4 +-
 test/ChangeLog             |    6 +
 18 files changed, 1110 insertions(+), 943 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

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