gawk-diffs
[Top][All Lists]
Advanced

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

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


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, feature/namespaces, updated. gawk-4.1.0-2598-g561addb
Date: Fri, 23 Jun 2017 05:47:32 -0400 (EDT)

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

The branch, feature/namespaces has been updated
       via  561addbd599af5f32977c0ced24cbfb2356f5879 (commit)
       via  44e29458a6355ad64e8d89676a441b224ce76cbc (commit)
       via  3f061027b6f0e2fe75b59d17efe93c0b84535b1a (commit)
       via  f4df3ba54ba5c2a4aec34d643424834c03645dd9 (commit)
       via  a702a6b6d6009068f4608a865bdd06a07259cf67 (commit)
       via  0ac746db72a0879bbd44325fe15b3ae33c63ecef (commit)
       via  288b15d0793936fa14b51ed860056f6ce6200c52 (commit)
       via  b7d8b6ebcd5dd714bc21acf7637d9a651e2f7ea7 (commit)
      from  b8a01f272650b5ed35e81f6ebdaa96af4e7d8f6f (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=561addbd599af5f32977c0ced24cbfb2356f5879

commit 561addbd599af5f32977c0ced24cbfb2356f5879
Merge: b8a01f2 44e2945
Author: Arnold D. Robbins <address@hidden>
Date:   Fri Jun 23 12:47:24 2017 +0300

    Merge branch 'master' into feature/namespaces

diff --cc awk.h
index 55de2f4,1ed5a4e..09bb282
--- a/awk.h
+++ b/awk.h
@@@ -735,8 -735,8 +735,9 @@@ typedef enum opcodeval 
        Op_K_if,
        Op_K_else,
        Op_K_function,
 +      Op_K_namespace,
        Op_cond_exp,
+       Op_parens,
        Op_final                        /* sentry value, not legal */
  } OPCODE;
  
diff --cc awkgram.c
index 4b24311,82ac358..5d21356
--- a/awkgram.c
+++ b/awkgram.c
@@@ -678,27 -670,27 +678,27 @@@ static const yytype_uint8 yytranslate[
    /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
  static const yytype_uint16 yyrline[] =
  {
 -       0,   215,   215,   217,   222,   223,   227,   239,   244,   255,
 -     262,   268,   277,   285,   287,   292,   300,   302,   308,   316,
 -     326,   356,   370,   384,   392,   403,   415,   417,   419,   425,
 -     433,   434,   438,   438,   484,   483,   517,   532,   534,   539,
 -     549,   596,   601,   602,   606,   608,   610,   617,   707,   749,
 -     791,   904,   911,   918,   929,   939,   949,   959,   971,   988,
 -     987,  1012,  1024,  1024,  1123,  1123,  1157,  1188,  1197,  1198,
 -    1204,  1205,  1212,  1217,  1229,  1243,  1245,  1253,  1260,  1262,
 -    1270,  1279,  1281,  1290,  1291,  1299,  1304,  1304,  1315,  1319,
 -    1327,  1328,  1331,  1333,  1338,  1339,  1348,  1349,  1354,  1359,
 -    1368,  1370,  1372,  1379,  1380,  1386,  1387,  1392,  1394,  1399,
 -    1401,  1409,  1414,  1423,  1424,  1429,  1431,  1436,  1438,  1446,
 -    1451,  1459,  1460,  1465,  1472,  1476,  1478,  1480,  1493,  1510,
 -    1520,  1527,  1529,  1534,  1536,  1538,  1546,  1548,  1553,  1555,
 -    1560,  1562,  1564,  1620,  1622,  1624,  1626,  1628,  1630,  1632,
 -    1634,  1648,  1653,  1658,  1683,  1689,  1691,  1693,  1695,  1697,
 -    1699,  1704,  1708,  1740,  1747,  1753,  1759,  1772,  1773,  1774,
 -    1779,  1784,  1788,  1792,  1807,  1828,  1833,  1870,  1899,  1900,
 -    1906,  1907,  1912,  1914,  1921,  1938,  1955,  1957,  1964,  1969,
 -    1977,  1987,  1999,  2008,  2012,  2016,  2020,  2024,  2028,  2031,
 -    2033,  2037,  2041,  2045
 +       0,   220,   220,   222,   227,   228,   232,   244,   249,   260,
 +     267,   273,   279,   293,   301,   303,   308,   316,   318,   323,
 +     325,   327,   333,   341,   351,   381,   395,   409,   417,   428,
 +     440,   442,   444,   450,   458,   459,   463,   463,   509,   508,
 +     542,   557,   559,   564,   574,   621,   626,   627,   631,   633,
 +     635,   642,   732,   774,   816,   929,   936,   943,   954,   964,
 +     974,   984,   996,  1013,  1012,  1037,  1049,  1049,  1148,  1148,
 +    1182,  1213,  1222,  1223,  1229,  1230,  1237,  1242,  1254,  1268,
 +    1270,  1278,  1285,  1287,  1295,  1304,  1306,  1315,  1316,  1324,
 +    1329,  1329,  1340,  1344,  1352,  1353,  1356,  1358,  1363,  1364,
 +    1373,  1374,  1379,  1384,  1393,  1395,  1397,  1404,  1405,  1411,
 +    1412,  1417,  1419,  1424,  1426,  1434,  1439,  1448,  1449,  1454,
 +    1456,  1461,  1463,  1471,  1476,  1484,  1485,  1490,  1497,  1501,
 +    1503,  1505,  1518,  1535,  1545,  1552,  1554,  1559,  1561,  1563,
 +    1571,  1573,  1578,  1580,  1585,  1587,  1589,  1645,  1647,  1649,
 +    1651,  1653,  1655,  1657,  1659,  1673,  1678,  1683,  1708,  1714,
-     1716,  1718,  1720,  1722,  1724,  1729,  1733,  1765,  1767,  1773,
-     1779,  1792,  1793,  1794,  1799,  1804,  1808,  1812,  1827,  1848,
-     1853,  1890,  1919,  1920,  1926,  1927,  1932,  1934,  1941,  1958,
-     1975,  1977,  1984,  1989,  1997,  2007,  2019,  2028,  2032,  2036,
-     2040,  2044,  2048,  2051,  2053,  2057,  2061,  2065
++    1716,  1718,  1720,  1722,  1724,  1729,  1733,  1765,  1772,  1778,
++    1784,  1797,  1798,  1799,  1804,  1809,  1813,  1817,  1832,  1853,
++    1858,  1895,  1924,  1925,  1931,  1932,  1937,  1939,  1946,  1963,
++    1980,  1982,  1989,  1994,  2002,  2012,  2024,  2033,  2037,  2041,
++    2045,  2049,  2053,  2056,  2058,  2062,  2066,  2070
  };
  #endif
  
@@@ -3876,37 -3837,42 +3876,42 @@@ regular_print
                        }
                }
           }
 -#line 3841 "awkgram.c" /* yacc.c:1646  */
 +#line 3880 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 163:
 -#line 1741 "awkgram.y" /* yacc.c:1646  */
 +  case 167:
 +#line 1766 "awkgram.y" /* yacc.c:1646  */
-     { (yyval) = (yyvsp[-1]); }
- #line 3886 "awkgram.c" /* yacc.c:1646  */
+     {
+               if (do_pretty_print)
+                       (yyval) = list_append((yyvsp[-1]), bcalloc(Op_parens, 
1, sourceline));
+               else
+                       (yyval) = (yyvsp[-1]);
+         }
 -#line 3852 "awkgram.c" /* yacc.c:1646  */
++#line 3891 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 164:
 -#line 1748 "awkgram.y" /* yacc.c:1646  */
 +  case 168:
- #line 1768 "awkgram.y" /* yacc.c:1646  */
++#line 1773 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = snode((yyvsp[-1]), (yyvsp[-3]));
                if ((yyval) == NULL)
                        YYABORT;
          }
- #line 3896 "awkgram.c" /* yacc.c:1646  */
 -#line 3862 "awkgram.c" /* yacc.c:1646  */
++#line 3901 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 165:
 -#line 1754 "awkgram.y" /* yacc.c:1646  */
 +  case 169:
- #line 1774 "awkgram.y" /* yacc.c:1646  */
++#line 1779 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = snode((yyvsp[-1]), (yyvsp[-3]));
                if ((yyval) == NULL)
                        YYABORT;
          }
- #line 3906 "awkgram.c" /* yacc.c:1646  */
 -#line 3872 "awkgram.c" /* yacc.c:1646  */
++#line 3911 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 166:
 -#line 1760 "awkgram.y" /* yacc.c:1646  */
 +  case 170:
- #line 1780 "awkgram.y" /* yacc.c:1646  */
++#line 1785 "awkgram.y" /* yacc.c:1646  */
      {
                static bool warned = false;
  
@@@ -3919,45 -3885,45 +3924,45 @@@
                if ((yyval) == NULL)
                        YYABORT;
          }
- #line 3923 "awkgram.c" /* yacc.c:1646  */
 -#line 3889 "awkgram.c" /* yacc.c:1646  */
++#line 3928 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 169:
 -#line 1775 "awkgram.y" /* yacc.c:1646  */
 +  case 173:
- #line 1795 "awkgram.y" /* yacc.c:1646  */
++#line 1800 "awkgram.y" /* yacc.c:1646  */
      {
                (yyvsp[-1])->opcode = Op_preincrement;
                (yyval) = mk_assignment((yyvsp[0]), NULL, (yyvsp[-1]));
          }
- #line 3932 "awkgram.c" /* yacc.c:1646  */
 -#line 3898 "awkgram.c" /* yacc.c:1646  */
++#line 3937 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 170:
 -#line 1780 "awkgram.y" /* yacc.c:1646  */
 +  case 174:
- #line 1800 "awkgram.y" /* yacc.c:1646  */
++#line 1805 "awkgram.y" /* yacc.c:1646  */
      {
                (yyvsp[-1])->opcode = Op_predecrement;
                (yyval) = mk_assignment((yyvsp[0]), NULL, (yyvsp[-1]));
          }
- #line 3941 "awkgram.c" /* yacc.c:1646  */
 -#line 3907 "awkgram.c" /* yacc.c:1646  */
++#line 3946 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 171:
 -#line 1785 "awkgram.y" /* yacc.c:1646  */
 +  case 175:
- #line 1805 "awkgram.y" /* yacc.c:1646  */
++#line 1810 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = list_create((yyvsp[0]));
          }
- #line 3949 "awkgram.c" /* yacc.c:1646  */
 -#line 3915 "awkgram.c" /* yacc.c:1646  */
++#line 3954 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 172:
 -#line 1789 "awkgram.y" /* yacc.c:1646  */
 +  case 176:
- #line 1809 "awkgram.y" /* yacc.c:1646  */
++#line 1814 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = list_create((yyvsp[0]));
          }
- #line 3957 "awkgram.c" /* yacc.c:1646  */
 -#line 3923 "awkgram.c" /* yacc.c:1646  */
++#line 3962 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 173:
 -#line 1793 "awkgram.y" /* yacc.c:1646  */
 +  case 177:
- #line 1813 "awkgram.y" /* yacc.c:1646  */
++#line 1818 "awkgram.y" /* yacc.c:1646  */
      {
                if ((yyvsp[0])->lasti->opcode == Op_push_i
                        && ((yyvsp[0])->lasti->memory->flags & STRING) == 0
@@@ -3972,11 -3938,11 +3977,11 @@@
                        (yyval) = list_append((yyvsp[0]), (yyvsp[-1]));
                }
          }
- #line 3976 "awkgram.c" /* yacc.c:1646  */
 -#line 3942 "awkgram.c" /* yacc.c:1646  */
++#line 3981 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 174:
 -#line 1808 "awkgram.y" /* yacc.c:1646  */
 +  case 178:
- #line 1828 "awkgram.y" /* yacc.c:1646  */
++#line 1833 "awkgram.y" /* yacc.c:1646  */
      {
                if ((yyvsp[0])->lasti->opcode == Op_push_i
                        && ((yyvsp[0])->lasti->memory->flags & STRING) == 0
@@@ -3994,20 -3960,20 +3999,20 @@@
                        (yyval) = list_append((yyvsp[0]), (yyvsp[-1]));
                }
          }
- #line 3998 "awkgram.c" /* yacc.c:1646  */
 -#line 3964 "awkgram.c" /* yacc.c:1646  */
++#line 4003 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 175:
 -#line 1829 "awkgram.y" /* yacc.c:1646  */
 +  case 179:
- #line 1849 "awkgram.y" /* yacc.c:1646  */
++#line 1854 "awkgram.y" /* yacc.c:1646  */
      {
                func_use((yyvsp[0])->lasti->func_name, FUNC_USE);
                (yyval) = (yyvsp[0]);
          }
- #line 4007 "awkgram.c" /* yacc.c:1646  */
 -#line 3973 "awkgram.c" /* yacc.c:1646  */
++#line 4012 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 176:
 -#line 1834 "awkgram.y" /* yacc.c:1646  */
 +  case 180:
- #line 1854 "awkgram.y" /* yacc.c:1646  */
++#line 1859 "awkgram.y" /* yacc.c:1646  */
      {
                /* indirect function call */
                INSTRUCTION *f, *t;
@@@ -4041,11 -4007,11 +4046,11 @@@
                (yyval) = list_prepend((yyvsp[0]), t);
                at_seen = false;
          }
- #line 4045 "awkgram.c" /* yacc.c:1646  */
 -#line 4011 "awkgram.c" /* yacc.c:1646  */
++#line 4050 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 177:
 -#line 1871 "awkgram.y" /* yacc.c:1646  */
 +  case 181:
- #line 1891 "awkgram.y" /* yacc.c:1646  */
++#line 1896 "awkgram.y" /* yacc.c:1646  */
      {
                NODE *n;
  
@@@ -4070,49 -4036,49 +4075,49 @@@
                        (yyval) = list_append(t, (yyvsp[-3]));
                }
          }
- #line 4074 "awkgram.c" /* yacc.c:1646  */
 -#line 4040 "awkgram.c" /* yacc.c:1646  */
++#line 4079 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 178:
 -#line 1899 "awkgram.y" /* yacc.c:1646  */
 +  case 182:
- #line 1919 "awkgram.y" /* yacc.c:1646  */
++#line 1924 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 4080 "awkgram.c" /* yacc.c:1646  */
 -#line 4046 "awkgram.c" /* yacc.c:1646  */
++#line 4085 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 179:
 -#line 1901 "awkgram.y" /* yacc.c:1646  */
 +  case 183:
- #line 1921 "awkgram.y" /* yacc.c:1646  */
++#line 1926 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 4086 "awkgram.c" /* yacc.c:1646  */
 -#line 4052 "awkgram.c" /* yacc.c:1646  */
++#line 4091 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 180:
 -#line 1906 "awkgram.y" /* yacc.c:1646  */
 +  case 184:
- #line 1926 "awkgram.y" /* yacc.c:1646  */
++#line 1931 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 4092 "awkgram.c" /* yacc.c:1646  */
 -#line 4058 "awkgram.c" /* yacc.c:1646  */
++#line 4097 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 181:
 -#line 1908 "awkgram.y" /* yacc.c:1646  */
 +  case 185:
- #line 1928 "awkgram.y" /* yacc.c:1646  */
++#line 1933 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[-1]); }
- #line 4098 "awkgram.c" /* yacc.c:1646  */
 -#line 4064 "awkgram.c" /* yacc.c:1646  */
++#line 4103 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 182:
 -#line 1913 "awkgram.y" /* yacc.c:1646  */
 +  case 186:
- #line 1933 "awkgram.y" /* yacc.c:1646  */
++#line 1938 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 4104 "awkgram.c" /* yacc.c:1646  */
 -#line 4070 "awkgram.c" /* yacc.c:1646  */
++#line 4109 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 183:
 -#line 1915 "awkgram.y" /* yacc.c:1646  */
 +  case 187:
- #line 1935 "awkgram.y" /* yacc.c:1646  */
++#line 1940 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = list_merge((yyvsp[-1]), (yyvsp[0]));
          }
- #line 4112 "awkgram.c" /* yacc.c:1646  */
 -#line 4078 "awkgram.c" /* yacc.c:1646  */
++#line 4117 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 184:
 -#line 1922 "awkgram.y" /* yacc.c:1646  */
 +  case 188:
- #line 1942 "awkgram.y" /* yacc.c:1646  */
++#line 1947 "awkgram.y" /* yacc.c:1646  */
      {
                INSTRUCTION *ip = (yyvsp[0])->lasti;
                int count = ip->sub_count;      /* # of SUBSEP-seperated 
expressions */
@@@ -4126,11 -4092,11 +4131,11 @@@
                sub_counter++;  /* count # of dimensions */
                (yyval) = (yyvsp[0]);
          }
- #line 4130 "awkgram.c" /* yacc.c:1646  */
 -#line 4096 "awkgram.c" /* yacc.c:1646  */
++#line 4135 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 185:
 -#line 1939 "awkgram.y" /* yacc.c:1646  */
 +  case 189:
- #line 1959 "awkgram.y" /* yacc.c:1646  */
++#line 1964 "awkgram.y" /* yacc.c:1646  */
      {
                INSTRUCTION *t = (yyvsp[-1]);
                if ((yyvsp[-1]) == NULL) {
@@@ -4144,31 -4110,31 +4149,31 @@@
                        (yyvsp[0])->sub_count = count_expressions(&t, false);
                (yyval) = list_append(t, (yyvsp[0]));
          }
- #line 4148 "awkgram.c" /* yacc.c:1646  */
 -#line 4114 "awkgram.c" /* yacc.c:1646  */
++#line 4153 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 186:
 -#line 1956 "awkgram.y" /* yacc.c:1646  */
 +  case 190:
- #line 1976 "awkgram.y" /* yacc.c:1646  */
++#line 1981 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); }
- #line 4154 "awkgram.c" /* yacc.c:1646  */
 -#line 4120 "awkgram.c" /* yacc.c:1646  */
++#line 4159 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 187:
 -#line 1958 "awkgram.y" /* yacc.c:1646  */
 +  case 191:
- #line 1978 "awkgram.y" /* yacc.c:1646  */
++#line 1983 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = list_merge((yyvsp[-1]), (yyvsp[0]));
          }
- #line 4162 "awkgram.c" /* yacc.c:1646  */
 -#line 4128 "awkgram.c" /* yacc.c:1646  */
++#line 4167 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 188:
 -#line 1965 "awkgram.y" /* yacc.c:1646  */
 +  case 192:
- #line 1985 "awkgram.y" /* yacc.c:1646  */
++#line 1990 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[-1]); }
- #line 4168 "awkgram.c" /* yacc.c:1646  */
 -#line 4134 "awkgram.c" /* yacc.c:1646  */
++#line 4173 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 189:
 -#line 1970 "awkgram.y" /* yacc.c:1646  */
 +  case 193:
- #line 1990 "awkgram.y" /* yacc.c:1646  */
++#line 1995 "awkgram.y" /* yacc.c:1646  */
      {
                char *var_name = (yyvsp[0])->lextok;
  
@@@ -4176,22 -4142,22 +4181,22 @@@
                (yyvsp[0])->memory = variable((yyvsp[0])->source_line, 
var_name, Node_var_new);
                (yyval) = list_create((yyvsp[0]));
          }
- #line 4180 "awkgram.c" /* yacc.c:1646  */
 -#line 4146 "awkgram.c" /* yacc.c:1646  */
++#line 4185 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 190:
 -#line 1978 "awkgram.y" /* yacc.c:1646  */
 +  case 194:
- #line 1998 "awkgram.y" /* yacc.c:1646  */
++#line 2003 "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 4191 "awkgram.c" /* yacc.c:1646  */
 -#line 4157 "awkgram.c" /* yacc.c:1646  */
++#line 4196 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 191:
 -#line 1988 "awkgram.y" /* yacc.c:1646  */
 +  case 195:
- #line 2008 "awkgram.y" /* yacc.c:1646  */
++#line 2013 "awkgram.y" /* yacc.c:1646  */
      {
                INSTRUCTION *ip = (yyvsp[0])->nexti;
                if (ip->opcode == Op_push
@@@ -4203,73 -4169,73 +4208,73 @@@
                } else
                        (yyval) = (yyvsp[0]);
          }
- #line 4207 "awkgram.c" /* yacc.c:1646  */
 -#line 4173 "awkgram.c" /* yacc.c:1646  */
++#line 4212 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 192:
 -#line 2000 "awkgram.y" /* yacc.c:1646  */
 +  case 196:
- #line 2020 "awkgram.y" /* yacc.c:1646  */
++#line 2025 "awkgram.y" /* yacc.c:1646  */
      {
                (yyval) = list_append((yyvsp[-1]), (yyvsp[-2]));
                if ((yyvsp[0]) != NULL)
                        mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
          }
- #line 4217 "awkgram.c" /* yacc.c:1646  */
 -#line 4183 "awkgram.c" /* yacc.c:1646  */
++#line 4222 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 193:
 -#line 2009 "awkgram.y" /* yacc.c:1646  */
 +  case 197:
- #line 2029 "awkgram.y" /* yacc.c:1646  */
++#line 2034 "awkgram.y" /* yacc.c:1646  */
      {
                (yyvsp[0])->opcode = Op_postincrement;
          }
- #line 4225 "awkgram.c" /* yacc.c:1646  */
 -#line 4191 "awkgram.c" /* yacc.c:1646  */
++#line 4230 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 194:
 -#line 2013 "awkgram.y" /* yacc.c:1646  */
 +  case 198:
- #line 2033 "awkgram.y" /* yacc.c:1646  */
++#line 2038 "awkgram.y" /* yacc.c:1646  */
      {
                (yyvsp[0])->opcode = Op_postdecrement;
          }
- #line 4233 "awkgram.c" /* yacc.c:1646  */
 -#line 4199 "awkgram.c" /* yacc.c:1646  */
++#line 4238 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 195:
 -#line 2016 "awkgram.y" /* yacc.c:1646  */
 +  case 199:
- #line 2036 "awkgram.y" /* yacc.c:1646  */
++#line 2041 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = NULL; }
- #line 4239 "awkgram.c" /* yacc.c:1646  */
 -#line 4205 "awkgram.c" /* yacc.c:1646  */
++#line 4244 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 197:
 -#line 2024 "awkgram.y" /* yacc.c:1646  */
 +  case 201:
- #line 2044 "awkgram.y" /* yacc.c:1646  */
++#line 2049 "awkgram.y" /* yacc.c:1646  */
      { yyerrok; }
- #line 4245 "awkgram.c" /* yacc.c:1646  */
 -#line 4211 "awkgram.c" /* yacc.c:1646  */
++#line 4250 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 198:
 -#line 2028 "awkgram.y" /* yacc.c:1646  */
 +  case 202:
- #line 2048 "awkgram.y" /* yacc.c:1646  */
++#line 2053 "awkgram.y" /* yacc.c:1646  */
      { yyerrok; }
- #line 4251 "awkgram.c" /* yacc.c:1646  */
 -#line 4217 "awkgram.c" /* yacc.c:1646  */
++#line 4256 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 201:
 -#line 2037 "awkgram.y" /* yacc.c:1646  */
 +  case 205:
- #line 2057 "awkgram.y" /* yacc.c:1646  */
++#line 2062 "awkgram.y" /* yacc.c:1646  */
      { yyerrok; }
- #line 4257 "awkgram.c" /* yacc.c:1646  */
 -#line 4223 "awkgram.c" /* yacc.c:1646  */
++#line 4262 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 202:
 -#line 2041 "awkgram.y" /* yacc.c:1646  */
 +  case 206:
- #line 2061 "awkgram.y" /* yacc.c:1646  */
++#line 2066 "awkgram.y" /* yacc.c:1646  */
      { (yyval) = (yyvsp[0]); yyerrok; }
- #line 4263 "awkgram.c" /* yacc.c:1646  */
 -#line 4229 "awkgram.c" /* yacc.c:1646  */
++#line 4268 "awkgram.c" /* yacc.c:1646  */
      break;
  
 -  case 203:
 -#line 2045 "awkgram.y" /* yacc.c:1646  */
 +  case 207:
- #line 2065 "awkgram.y" /* yacc.c:1646  */
++#line 2070 "awkgram.y" /* yacc.c:1646  */
      { yyerrok; }
- #line 4269 "awkgram.c" /* yacc.c:1646  */
 -#line 4235 "awkgram.c" /* yacc.c:1646  */
++#line 4274 "awkgram.c" /* yacc.c:1646  */
      break;
  
  
- #line 4273 "awkgram.c" /* yacc.c:1646  */
 -#line 4239 "awkgram.c" /* yacc.c:1646  */
++#line 4278 "awkgram.c" /* yacc.c:1646  */
        default: break;
      }
    /* User semantic actions sometimes alter yychar, and that requires
@@@ -4497,7 -4463,7 +4502,7 @@@ yyreturn
  #endif
    return yyresult;
  }
- #line 2067 "awkgram.y" /* yacc.c:1906  */
 -#line 2047 "awkgram.y" /* yacc.c:1906  */
++#line 2072 "awkgram.y" /* yacc.c:1906  */
  
  
  struct token {
diff --cc doc/gawk.info
index 8f4a710,752eec8..e0b0cef
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@@ -36052,588 -35750,580 +36059,588 @@@ Inde
  
  Tag Table:
  Node: Top1200
 -Node: Foreword343279
 -Node: Foreword447721
 -Node: Preface49253
 -Ref: Preface-Footnote-152112
 -Ref: Preface-Footnote-252219
 -Ref: Preface-Footnote-352453
 -Node: History52595
 -Node: Names54947
 -Ref: Names-Footnote-156041
 -Node: This Manual56188
 -Ref: This Manual-Footnote-162673
 -Node: Conventions62773
 -Node: Manual History65127
 -Ref: Manual History-Footnote-168122
 -Ref: Manual History-Footnote-268163
 -Node: How To Contribute68237
 -Node: Acknowledgments68888
 -Node: Getting Started73774
 -Node: Running gawk76213
 -Node: One-shot77403
 -Node: Read Terminal78666
 -Node: Long80659
 -Node: Executable Scripts82172
 -Ref: Executable Scripts-Footnote-184967
 -Node: Comments85070
 -Node: Quoting87554
 -Node: DOS Quoting93071
 -Node: Sample Data Files95126
 -Node: Very Simple97721
 -Node: Two Rules102623
 -Node: More Complex104508
 -Node: Statements/Lines107374
 -Ref: Statements/Lines-Footnote-1111833
 -Node: Other Features112098
 -Node: When113034
 -Ref: When-Footnote-1114788
 -Node: Intro Summary114853
 -Node: Invoking Gawk115737
 -Node: Command Line117251
 -Node: Options118049
 -Ref: Options-Footnote-1134668
 -Ref: Options-Footnote-2134898
 -Node: Other Arguments134923
 -Node: Naming Standard Input137870
 -Node: Environment Variables138963
 -Node: AWKPATH Variable139521
 -Ref: AWKPATH Variable-Footnote-1142932
 -Ref: AWKPATH Variable-Footnote-2142966
 -Node: AWKLIBPATH Variable143227
 -Node: Other Environment Variables144484
 -Node: Exit Status148305
 -Node: Include Files148982
 -Node: Loading Shared Libraries152577
 -Node: Obsolete154005
 -Node: Undocumented154697
 -Node: Invoking Summary154994
 -Node: Regexp156654
 -Node: Regexp Usage158108
 -Node: Escape Sequences160145
 -Node: Regexp Operators166377
 -Ref: Regexp Operators-Footnote-1173793
 -Ref: Regexp Operators-Footnote-2173940
 -Node: Bracket Expressions174038
 -Ref: table-char-classes176514
 -Node: Leftmost Longest179651
 -Node: Computed Regexps180954
 -Node: GNU Regexp Operators184381
 -Node: Case-sensitivity188060
 -Ref: Case-sensitivity-Footnote-1190947
 -Ref: Case-sensitivity-Footnote-2191182
 -Node: Regexp Summary191290
 -Node: Reading Files192756
 -Node: Records195025
 -Node: awk split records195758
 -Node: gawk split records200689
 -Ref: gawk split records-Footnote-1205229
 -Node: Fields205266
 -Node: Nonconstant Fields208007
 -Ref: Nonconstant Fields-Footnote-1210243
 -Node: Changing Fields210447
 -Node: Field Separators216375
 -Node: Default Field Splitting219073
 -Node: Regexp Field Splitting220191
 -Node: Single Character Fields223544
 -Node: Command Line Field Separator224604
 -Node: Full Line Fields227822
 -Ref: Full Line Fields-Footnote-1229344
 -Ref: Full Line Fields-Footnote-2229390
 -Node: Field Splitting Summary229491
 -Node: Constant Size231565
 -Node: Fixed width data232297
 -Node: Skipping intervening235764
 -Node: Allowing trailing data236562
 -Node: Fields with fixed data237599
 -Node: Splitting By Content239117
 -Ref: Splitting By Content-Footnote-1242767
 -Node: Testing field creation242930
 -Node: Multiple Line244551
 -Ref: Multiple Line-Footnote-1250435
 -Node: Getline250614
 -Node: Plain Getline253083
 -Node: Getline/Variable255724
 -Node: Getline/File256875
 -Node: Getline/Variable/File258263
 -Ref: Getline/Variable/File-Footnote-1259868
 -Node: Getline/Pipe259956
 -Node: Getline/Variable/Pipe262663
 -Node: Getline/Coprocess263798
 -Node: Getline/Variable/Coprocess265065
 -Node: Getline Notes265807
 -Node: Getline Summary268604
 -Ref: table-getline-variants269028
 -Node: Read Timeout269776
 -Ref: Read Timeout-Footnote-1273682
 -Node: Retrying Input273740
 -Node: Command-line directories274939
 -Node: Input Summary275845
 -Node: Input Exercises279017
 -Node: Printing279745
 -Node: Print281579
 -Node: Print Examples283036
 -Node: Output Separators285816
 -Node: OFMT287833
 -Node: Printf289189
 -Node: Basic Printf289974
 -Node: Control Letters291548
 -Node: Format Modifiers295536
 -Node: Printf Examples301551
 -Node: Redirection304037
 -Node: Special FD310878
 -Ref: Special FD-Footnote-1314046
 -Node: Special Files314120
 -Node: Other Inherited Files314737
 -Node: Special Network315738
 -Node: Special Caveats316598
 -Node: Close Files And Pipes317547
 -Ref: table-close-pipe-return-values324454
 -Ref: Close Files And Pipes-Footnote-1325237
 -Ref: Close Files And Pipes-Footnote-2325385
 -Node: Nonfatal325537
 -Node: Output Summary327862
 -Node: Output Exercises329084
 -Node: Expressions329763
 -Node: Values330951
 -Node: Constants331629
 -Node: Scalar Constants332320
 -Ref: Scalar Constants-Footnote-1333184
 -Node: Nondecimal-numbers333434
 -Node: Regexp Constants336435
 -Node: Using Constant Regexps336961
 -Node: Standard Regexp Constants337583
 -Node: Strong Regexp Constants340771
 -Node: Variables343729
 -Node: Using Variables344386
 -Node: Assignment Options346296
 -Node: Conversion348169
 -Node: Strings And Numbers348693
 -Ref: Strings And Numbers-Footnote-1351756
 -Node: Locale influences conversions351865
 -Ref: table-locale-affects354623
 -Node: All Operators355241
 -Node: Arithmetic Ops355870
 -Node: Concatenation358376
 -Ref: Concatenation-Footnote-1361223
 -Node: Assignment Ops361330
 -Ref: table-assign-ops366321
 -Node: Increment Ops367634
 -Node: Truth Values and Conditions371094
 -Node: Truth Values372168
 -Node: Typing and Comparison373216
 -Node: Variable Typing374036
 -Ref: Variable Typing-Footnote-1380499
 -Ref: Variable Typing-Footnote-2380571
 -Node: Comparison Operators380648
 -Ref: table-relational-ops381067
 -Node: POSIX String Comparison384562
 -Ref: POSIX String Comparison-Footnote-1386257
 -Ref: POSIX String Comparison-Footnote-2386396
 -Node: Boolean Ops386480
 -Ref: Boolean Ops-Footnote-1390962
 -Node: Conditional Exp391054
 -Node: Function Calls392790
 -Node: Precedence396667
 -Node: Locales400326
 -Node: Expressions Summary401958
 -Node: Patterns and Actions404531
 -Node: Pattern Overview405651
 -Node: Regexp Patterns407328
 -Node: Expression Patterns407870
 -Node: Ranges411651
 -Node: BEGIN/END414759
 -Node: Using BEGIN/END415520
 -Ref: Using BEGIN/END-Footnote-1418256
 -Node: I/O And BEGIN/END418362
 -Node: BEGINFILE/ENDFILE420676
 -Node: Empty423583
 -Node: Using Shell Variables423900
 -Node: Action Overview426174
 -Node: Statements428499
 -Node: If Statement430347
 -Node: While Statement431842
 -Node: Do Statement433870
 -Node: For Statement435018
 -Node: Switch Statement438176
 -Node: Break Statement440562
 -Node: Continue Statement442654
 -Node: Next Statement444481
 -Node: Nextfile Statement446864
 -Node: Exit Statement449516
 -Node: Built-in Variables451919
 -Node: User-modified453052
 -Node: Auto-set460819
 -Ref: Auto-set-Footnote-1476416
 -Ref: Auto-set-Footnote-2476622
 -Node: ARGC and ARGV476678
 -Node: Pattern Action Summary480891
 -Node: Arrays483321
 -Node: Array Basics484650
 -Node: Array Intro485494
 -Ref: figure-array-elements487469
 -Ref: Array Intro-Footnote-1490173
 -Node: Reference to Elements490301
 -Node: Assigning Elements492765
 -Node: Array Example493256
 -Node: Scanning an Array495015
 -Node: Controlling Scanning498037
 -Ref: Controlling Scanning-Footnote-1503436
 -Node: Numeric Array Subscripts503752
 -Node: Uninitialized Subscripts505936
 -Node: Delete507555
 -Ref: Delete-Footnote-1510307
 -Node: Multidimensional510364
 -Node: Multiscanning513459
 -Node: Arrays of Arrays515050
 -Node: Arrays Summary519817
 -Node: Functions521910
 -Node: Built-in522948
 -Node: Calling Built-in524029
 -Node: Numeric Functions526025
 -Ref: Numeric Functions-Footnote-1530970
 -Ref: Numeric Functions-Footnote-2531327
 -Ref: Numeric Functions-Footnote-3531375
 -Node: String Functions531647
 -Ref: String Functions-Footnote-1555305
 -Ref: String Functions-Footnote-2555433
 -Ref: String Functions-Footnote-3555681
 -Node: Gory Details555768
 -Ref: table-sub-escapes557559
 -Ref: table-sub-proposed559078
 -Ref: table-posix-sub560441
 -Ref: table-gensub-escapes561982
 -Ref: Gory Details-Footnote-1562805
 -Node: I/O Functions562959
 -Ref: table-system-return-values569541
 -Ref: I/O Functions-Footnote-1571521
 -Ref: I/O Functions-Footnote-2571669
 -Node: Time Functions571789
 -Ref: Time Functions-Footnote-1582456
 -Ref: Time Functions-Footnote-2582524
 -Ref: Time Functions-Footnote-3582682
 -Ref: Time Functions-Footnote-4582793
 -Ref: Time Functions-Footnote-5582905
 -Ref: Time Functions-Footnote-6583132
 -Node: Bitwise Functions583398
 -Ref: table-bitwise-ops583992
 -Ref: Bitwise Functions-Footnote-1590025
 -Ref: Bitwise Functions-Footnote-2590198
 -Node: Type Functions590389
 -Node: I18N Functions593064
 -Node: User-defined594715
 -Node: Definition Syntax595520
 -Ref: Definition Syntax-Footnote-1601207
 -Node: Function Example601278
 -Ref: Function Example-Footnote-1604200
 -Node: Function Caveats604222
 -Node: Calling A Function604740
 -Node: Variable Scope605698
 -Node: Pass By Value/Reference608692
 -Node: Return Statement612191
 -Node: Dynamic Typing615170
 -Node: Indirect Calls616100
 -Ref: Indirect Calls-Footnote-1626351
 -Node: Functions Summary626479
 -Node: Library Functions629184
 -Ref: Library Functions-Footnote-1632791
 -Ref: Library Functions-Footnote-2632934
 -Node: Library Names633105
 -Ref: Library Names-Footnote-1636565
 -Ref: Library Names-Footnote-2636788
 -Node: General Functions636874
 -Node: Strtonum Function637977
 -Node: Assert Function640999
 -Node: Round Function644325
 -Node: Cliff Random Function645866
 -Node: Ordinal Functions646882
 -Ref: Ordinal Functions-Footnote-1649945
 -Ref: Ordinal Functions-Footnote-2650197
 -Node: Join Function650407
 -Ref: Join Function-Footnote-1652177
 -Node: Getlocaltime Function652377
 -Node: Readfile Function656119
 -Node: Shell Quoting658091
 -Node: Data File Management659492
 -Node: Filetrans Function660124
 -Node: Rewind Function664220
 -Node: File Checking666130
 -Ref: File Checking-Footnote-1667464
 -Node: Empty Files667665
 -Node: Ignoring Assigns669644
 -Node: Getopt Function671194
 -Ref: Getopt Function-Footnote-1682663
 -Node: Passwd Functions682863
 -Ref: Passwd Functions-Footnote-1691702
 -Node: Group Functions691790
 -Ref: Group Functions-Footnote-1699688
 -Node: Walking Arrays699895
 -Node: Library Functions Summary702903
 -Node: Library Exercises704309
 -Node: Sample Programs704774
 -Node: Running Examples705544
 -Node: Clones706272
 -Node: Cut Program707496
 -Node: Egrep Program717425
 -Ref: Egrep Program-Footnote-1724937
 -Node: Id Program725047
 -Node: Split Program728727
 -Ref: Split Program-Footnote-1732186
 -Node: Tee Program732315
 -Node: Uniq Program735105
 -Node: Wc Program742531
 -Ref: Wc Program-Footnote-1746786
 -Node: Miscellaneous Programs746880
 -Node: Dupword Program748093
 -Node: Alarm Program750123
 -Node: Translate Program754978
 -Ref: Translate Program-Footnote-1759543
 -Node: Labels Program759813
 -Ref: Labels Program-Footnote-1763164
 -Node: Word Sorting763248
 -Node: History Sorting767320
 -Node: Extract Program769155
 -Node: Simple Sed776684
 -Node: Igawk Program779758
 -Ref: Igawk Program-Footnote-1794089
 -Ref: Igawk Program-Footnote-2794291
 -Ref: Igawk Program-Footnote-3794413
 -Node: Anagram Program794528
 -Node: Signature Program797590
 -Node: Programs Summary798837
 -Node: Programs Exercises800051
 -Ref: Programs Exercises-Footnote-1804180
 -Node: Advanced Features804271
 -Node: Nondecimal Data806261
 -Node: Array Sorting807852
 -Node: Controlling Array Traversal808552
 -Ref: Controlling Array Traversal-Footnote-1816919
 -Node: Array Sorting Functions817037
 -Ref: Array Sorting Functions-Footnote-1822128
 -Node: Two-way I/O822324
 -Ref: Two-way I/O-Footnote-1828875
 -Ref: Two-way I/O-Footnote-2829062
 -Node: TCP/IP Networking829144
 -Node: Profiling832262
 -Ref: Profiling-Footnote-1840934
 -Node: Advanced Features Summary841257
 -Node: Internationalization843101
 -Node: I18N and L10N844581
 -Node: Explaining gettext845268
 -Ref: Explaining gettext-Footnote-1851160
 -Ref: Explaining gettext-Footnote-2851345
 -Node: Programmer i18n851510
 -Ref: Programmer i18n-Footnote-1856459
 -Node: Translator i18n856508
 -Node: String Extraction857302
 -Ref: String Extraction-Footnote-1858434
 -Node: Printf Ordering858520
 -Ref: Printf Ordering-Footnote-1861306
 -Node: I18N Portability861370
 -Ref: I18N Portability-Footnote-1863826
 -Node: I18N Example863889
 -Ref: I18N Example-Footnote-1866695
 -Node: Gawk I18N866768
 -Node: I18N Summary867413
 -Node: Debugger868754
 -Node: Debugging869776
 -Node: Debugging Concepts870217
 -Node: Debugging Terms872026
 -Node: Awk Debugging874601
 -Node: Sample Debugging Session875507
 -Node: Debugger Invocation876041
 -Node: Finding The Bug877427
 -Node: List of Debugger Commands883905
 -Node: Breakpoint Control885238
 -Node: Debugger Execution Control888932
 -Node: Viewing And Changing Data892294
 -Node: Execution Stack895668
 -Node: Debugger Info897305
 -Node: Miscellaneous Debugger Commands901376
 -Node: Readline Support906464
 -Node: Limitations907360
 -Node: Debugging Summary909469
 -Node: Arbitrary Precision Arithmetic910748
 -Node: Computer Arithmetic912233
 -Ref: table-numeric-ranges915824
 -Ref: Computer Arithmetic-Footnote-1916546
 -Node: Math Definitions916603
 -Ref: table-ieee-formats919917
 -Ref: Math Definitions-Footnote-1920520
 -Node: MPFR features920625
 -Node: FP Math Caution922342
 -Ref: FP Math Caution-Footnote-1923414
 -Node: Inexactness of computations923783
 -Node: Inexact representation924743
 -Node: Comparing FP Values926103
 -Node: Errors accumulate927185
 -Node: Getting Accuracy928618
 -Node: Try To Round931328
 -Node: Setting precision932227
 -Ref: table-predefined-precision-strings932924
 -Node: Setting the rounding mode934754
 -Ref: table-gawk-rounding-modes935128
 -Ref: Setting the rounding mode-Footnote-1938536
 -Node: Arbitrary Precision Integers938715
 -Ref: Arbitrary Precision Integers-Footnote-1943620
 -Node: Checking for MPFR943769
 -Node: POSIX Floating Point Problems945066
 -Ref: POSIX Floating Point Problems-Footnote-1948937
 -Node: Floating point summary948975
 -Node: Dynamic Extensions951165
 -Node: Extension Intro952718
 -Node: Plugin License953984
 -Node: Extension Mechanism Outline954781
 -Ref: figure-load-extension955220
 -Ref: figure-register-new-function956785
 -Ref: figure-call-new-function957877
 -Node: Extension API Description959939
 -Node: Extension API Functions Introduction961581
 -Node: General Data Types966915
 -Ref: General Data Types-Footnote-1974120
 -Node: Memory Allocation Functions974419
 -Ref: Memory Allocation Functions-Footnote-1977571
 -Node: Constructor Functions977670
 -Node: Registration Functions980669
 -Node: Extension Functions981354
 -Node: Exit Callback Functions986567
 -Node: Extension Version String987817
 -Node: Input Parsers988480
 -Node: Output Wrappers1001187
 -Node: Two-way processors1005699
 -Node: Printing Messages1007964
 -Ref: Printing Messages-Footnote-11009135
 -Node: Updating ERRNO1009288
 -Node: Requesting Values1010027
 -Ref: table-value-types-returned1010764
 -Node: Accessing Parameters1011700
 -Node: Symbol Table Access1012935
 -Node: Symbol table by name1013447
 -Node: Symbol table by cookie1015236
 -Ref: Symbol table by cookie-Footnote-11019421
 -Node: Cached values1019485
 -Ref: Cached values-Footnote-11023021
 -Node: Array Manipulation1023112
 -Ref: Array Manipulation-Footnote-11024203
 -Node: Array Data Types1024240
 -Ref: Array Data Types-Footnote-11026898
 -Node: Array Functions1026990
 -Node: Flattening Arrays1031389
 -Node: Creating Arrays1038330
 -Node: Redirection API1043099
 -Node: Extension API Variables1045941
 -Node: Extension Versioning1046574
 -Ref: gawk-api-version1047011
 -Node: Extension API Informational Variables1048739
 -Node: Extension API Boilerplate1049803
 -Node: Changes from API V11053665
 -Node: Finding Extensions1054325
 -Node: Extension Example1054884
 -Node: Internal File Description1055682
 -Node: Internal File Ops1059762
 -Ref: Internal File Ops-Footnote-11071162
 -Node: Using Internal File Ops1071302
 -Ref: Using Internal File Ops-Footnote-11073685
 -Node: Extension Samples1073959
 -Node: Extension Sample File Functions1075488
 -Node: Extension Sample Fnmatch1083137
 -Node: Extension Sample Fork1084624
 -Node: Extension Sample Inplace1085842
 -Node: Extension Sample Ord1089059
 -Node: Extension Sample Readdir1089895
 -Ref: table-readdir-file-types1090784
 -Node: Extension Sample Revout1091589
 -Node: Extension Sample Rev2way1092178
 -Node: Extension Sample Read write array1092918
 -Node: Extension Sample Readfile1094860
 -Node: Extension Sample Time1095955
 -Node: Extension Sample API Tests1097303
 -Node: gawkextlib1097795
 -Node: Extension summary1100242
 -Node: Extension Exercises1103944
 -Node: Language History1105442
 -Node: V7/SVR3.11107098
 -Node: SVR41109250
 -Node: POSIX1110684
 -Node: BTL1112063
 -Node: POSIX/GNU1112792
 -Node: Feature History1118684
 -Node: Common Extensions1133108
 -Node: Ranges and Locales1134391
 -Ref: Ranges and Locales-Footnote-11139007
 -Ref: Ranges and Locales-Footnote-21139034
 -Ref: Ranges and Locales-Footnote-31139269
 -Node: Contributors1139490
 -Node: History summary1145050
 -Node: Installation1146430
 -Node: Gawk Distribution1147374
 -Node: Getting1147858
 -Node: Extracting1148819
 -Node: Distribution contents1150457
 -Node: Unix Installation1156799
 -Node: Quick Installation1157481
 -Node: Shell Startup Files1159895
 -Node: Additional Configuration Options1160984
 -Node: Configuration Philosophy1162973
 -Node: Non-Unix Installation1165342
 -Node: PC Installation1165802
 -Node: PC Binary Installation1166640
 -Node: PC Compiling1167075
 -Node: PC Using1168192
 -Node: Cygwin1171237
 -Node: MSYS1172007
 -Node: VMS Installation1172508
 -Node: VMS Compilation1173299
 -Ref: VMS Compilation-Footnote-11174528
 -Node: VMS Dynamic Extensions1174586
 -Node: VMS Installation Details1176271
 -Node: VMS Running1178524
 -Node: VMS GNV1182803
 -Node: VMS Old Gawk1183538
 -Node: Bugs1184009
 -Node: Bug address1184672
 -Node: Usenet1187069
 -Node: Maintainers1187846
 -Node: Other Versions1189222
 -Node: Installation summary1195806
 -Node: Notes1196841
 -Node: Compatibility Mode1197706
 -Node: Additions1198488
 -Node: Accessing The Source1199413
 -Node: Adding Code1200848
 -Node: New Ports1207066
 -Node: Derived Files1211554
 -Ref: Derived Files-Footnote-11217039
 -Ref: Derived Files-Footnote-21217074
 -Ref: Derived Files-Footnote-31217672
 -Node: Future Extensions1217786
 -Node: Implementation Limitations1218444
 -Node: Extension Design1219627
 -Node: Old Extension Problems1220781
 -Ref: Old Extension Problems-Footnote-11222299
 -Node: Extension New Mechanism Goals1222356
 -Ref: Extension New Mechanism Goals-Footnote-11225720
 -Node: Extension Other Design Decisions1225909
 -Node: Extension Future Growth1228022
 -Node: Old Extension Mechanism1228858
 -Node: Notes summary1230621
 -Node: Basic Concepts1231803
 -Node: Basic High Level1232484
 -Ref: figure-general-flow1232766
 -Ref: figure-process-flow1233451
 -Ref: Basic High Level-Footnote-11236752
 -Node: Basic Data Typing1236937
 -Node: Glossary1240265
 -Node: Copying1272212
 -Node: GNU Free Documentation License1309751
 -Node: Index1334869
 +Node: Foreword343786
 +Node: Foreword448228
 +Node: Preface49760
 +Ref: Preface-Footnote-152619
 +Ref: Preface-Footnote-252726
 +Ref: Preface-Footnote-352960
 +Node: History53102
 +Node: Names55454
 +Ref: Names-Footnote-156548
 +Node: This Manual56695
 +Ref: This Manual-Footnote-163180
 +Node: Conventions63280
 +Node: Manual History65634
 +Ref: Manual History-Footnote-168629
 +Ref: Manual History-Footnote-268670
 +Node: How To Contribute68744
 +Node: Acknowledgments69395
 +Node: Getting Started74281
 +Node: Running gawk76720
 +Node: One-shot77910
 +Node: Read Terminal79173
 +Node: Long81166
 +Node: Executable Scripts82679
 +Ref: Executable Scripts-Footnote-185474
 +Node: Comments85577
 +Node: Quoting88061
 +Node: DOS Quoting93578
 +Node: Sample Data Files95633
 +Node: Very Simple98228
 +Node: Two Rules103130
 +Node: More Complex105015
 +Node: Statements/Lines107881
 +Ref: Statements/Lines-Footnote-1112340
 +Node: Other Features112605
 +Node: When113541
 +Ref: When-Footnote-1115295
 +Node: Intro Summary115360
 +Node: Invoking Gawk116244
 +Node: Command Line117758
 +Node: Options118556
 +Ref: Options-Footnote-1135199
 +Ref: Options-Footnote-2135429
 +Node: Other Arguments135454
 +Node: Naming Standard Input138401
 +Node: Environment Variables139494
 +Node: AWKPATH Variable140052
 +Ref: AWKPATH Variable-Footnote-1143463
 +Ref: AWKPATH Variable-Footnote-2143497
 +Node: AWKLIBPATH Variable143758
 +Node: Other Environment Variables145015
 +Node: Exit Status148836
 +Node: Include Files149513
 +Node: Loading Shared Libraries153108
 +Node: Obsolete154536
 +Node: Undocumented155228
 +Node: Invoking Summary155525
 +Node: Regexp157185
 +Node: Regexp Usage158639
 +Node: Escape Sequences160676
 +Node: Regexp Operators166908
 +Ref: Regexp Operators-Footnote-1174324
 +Ref: Regexp Operators-Footnote-2174471
 +Node: Bracket Expressions174569
 +Ref: table-char-classes177045
 +Node: Leftmost Longest180182
 +Node: Computed Regexps181485
 +Node: GNU Regexp Operators184912
 +Node: Case-sensitivity188591
 +Ref: Case-sensitivity-Footnote-1191478
 +Ref: Case-sensitivity-Footnote-2191713
 +Node: Regexp Summary191821
 +Node: Reading Files193287
 +Node: Records195556
 +Node: awk split records196289
 +Node: gawk split records201220
 +Ref: gawk split records-Footnote-1205760
 +Node: Fields205797
 +Node: Nonconstant Fields208538
 +Ref: Nonconstant Fields-Footnote-1210774
 +Node: Changing Fields210978
 +Node: Field Separators216906
 +Node: Default Field Splitting219604
 +Node: Regexp Field Splitting220722
 +Node: Single Character Fields224075
 +Node: Command Line Field Separator225135
 +Node: Full Line Fields228353
 +Ref: Full Line Fields-Footnote-1229875
 +Ref: Full Line Fields-Footnote-2229921
 +Node: Field Splitting Summary230022
 +Node: Constant Size232096
 +Node: Fixed width data232828
 +Node: Skipping intervening236295
 +Node: Allowing trailing data237093
 +Node: Fields with fixed data238130
 +Node: Splitting By Content239648
 +Ref: Splitting By Content-Footnote-1243298
 +Node: Testing field creation243461
 +Node: Multiple Line245082
 +Ref: Multiple Line-Footnote-1250966
 +Node: Getline251145
 +Node: Plain Getline253614
 +Node: Getline/Variable256255
 +Node: Getline/File257406
 +Node: Getline/Variable/File258794
 +Ref: Getline/Variable/File-Footnote-1260399
 +Node: Getline/Pipe260487
 +Node: Getline/Variable/Pipe263194
 +Node: Getline/Coprocess264329
 +Node: Getline/Variable/Coprocess265596
 +Node: Getline Notes266338
 +Node: Getline Summary269135
 +Ref: table-getline-variants269559
 +Node: Read Timeout270307
 +Ref: Read Timeout-Footnote-1274213
 +Node: Retrying Input274271
 +Node: Command-line directories275470
 +Node: Input Summary276376
 +Node: Input Exercises279548
 +Node: Printing280276
 +Node: Print282110
 +Node: Print Examples283567
 +Node: Output Separators286347
 +Node: OFMT288364
 +Node: Printf289720
 +Node: Basic Printf290505
 +Node: Control Letters292079
 +Node: Format Modifiers296067
 +Node: Printf Examples302082
 +Node: Redirection304568
 +Node: Special FD311409
 +Ref: Special FD-Footnote-1314577
 +Node: Special Files314651
 +Node: Other Inherited Files315268
 +Node: Special Network316269
 +Node: Special Caveats317129
 +Node: Close Files And Pipes318078
 +Ref: table-close-pipe-return-values324985
 +Ref: Close Files And Pipes-Footnote-1325768
 +Ref: Close Files And Pipes-Footnote-2325916
 +Node: Nonfatal326068
 +Node: Output Summary328393
 +Node: Output Exercises329615
 +Node: Expressions330294
 +Node: Values331482
 +Node: Constants332160
 +Node: Scalar Constants332851
 +Ref: Scalar Constants-Footnote-1333715
 +Node: Nondecimal-numbers333965
 +Node: Regexp Constants336966
 +Node: Using Constant Regexps337492
 +Node: Standard Regexp Constants338114
 +Node: Strong Regexp Constants341302
 +Node: Variables344260
 +Node: Using Variables344917
 +Node: Assignment Options346827
 +Node: Conversion348700
 +Node: Strings And Numbers349224
 +Ref: Strings And Numbers-Footnote-1352287
 +Node: Locale influences conversions352396
 +Ref: table-locale-affects355154
 +Node: All Operators355772
 +Node: Arithmetic Ops356401
 +Node: Concatenation358907
 +Ref: Concatenation-Footnote-1361754
 +Node: Assignment Ops361861
 +Ref: table-assign-ops366852
 +Node: Increment Ops368165
 +Node: Truth Values and Conditions371625
 +Node: Truth Values372699
 +Node: Typing and Comparison373747
 +Node: Variable Typing374567
 +Ref: Variable Typing-Footnote-1381030
 +Ref: Variable Typing-Footnote-2381102
 +Node: Comparison Operators381179
 +Ref: table-relational-ops381598
 +Node: POSIX String Comparison385093
 +Ref: POSIX String Comparison-Footnote-1386788
 +Ref: POSIX String Comparison-Footnote-2386927
 +Node: Boolean Ops387011
 +Ref: Boolean Ops-Footnote-1391493
 +Node: Conditional Exp391585
 +Node: Function Calls393321
 +Node: Precedence397198
 +Node: Locales400857
 +Node: Expressions Summary402489
 +Node: Patterns and Actions405062
 +Node: Pattern Overview406182
 +Node: Regexp Patterns407859
 +Node: Expression Patterns408401
 +Node: Ranges412182
 +Node: BEGIN/END415290
 +Node: Using BEGIN/END416051
 +Ref: Using BEGIN/END-Footnote-1418787
 +Node: I/O And BEGIN/END418893
 +Node: BEGINFILE/ENDFILE421207
 +Node: Empty424114
 +Node: Using Shell Variables424431
 +Node: Action Overview426705
 +Node: Statements429030
 +Node: If Statement430878
 +Node: While Statement432373
 +Node: Do Statement434401
 +Node: For Statement435549
 +Node: Switch Statement438707
 +Node: Break Statement441093
 +Node: Continue Statement443185
 +Node: Next Statement445012
 +Node: Nextfile Statement447395
 +Node: Exit Statement450047
 +Node: Built-in Variables452450
 +Node: User-modified453583
 +Node: Auto-set461350
 +Ref: Auto-set-Footnote-1476947
 +Ref: Auto-set-Footnote-2477153
 +Node: ARGC and ARGV477209
 +Node: Pattern Action Summary481422
 +Node: Arrays483852
 +Node: Array Basics485181
 +Node: Array Intro486025
 +Ref: figure-array-elements488000
 +Ref: Array Intro-Footnote-1490704
 +Node: Reference to Elements490832
 +Node: Assigning Elements493296
 +Node: Array Example493787
 +Node: Scanning an Array495546
 +Node: Controlling Scanning498568
 +Ref: Controlling Scanning-Footnote-1503967
 +Node: Numeric Array Subscripts504283
 +Node: Uninitialized Subscripts506467
 +Node: Delete508086
 +Ref: Delete-Footnote-1510838
 +Node: Multidimensional510895
 +Node: Multiscanning513990
 +Node: Arrays of Arrays515581
 +Node: Arrays Summary520348
 +Node: Functions522441
 +Node: Built-in523479
 +Node: Calling Built-in524560
 +Node: Numeric Functions526556
 +Ref: Numeric Functions-Footnote-1531501
 +Ref: Numeric Functions-Footnote-2531858
 +Ref: Numeric Functions-Footnote-3531906
 +Node: String Functions532178
 +Ref: String Functions-Footnote-1555836
 +Ref: String Functions-Footnote-2555964
 +Ref: String Functions-Footnote-3556212
 +Node: Gory Details556299
 +Ref: table-sub-escapes558090
 +Ref: table-sub-proposed559609
 +Ref: table-posix-sub560972
 +Ref: table-gensub-escapes562513
 +Ref: Gory Details-Footnote-1563336
 +Node: I/O Functions563490
 +Ref: table-system-return-values570072
 +Ref: I/O Functions-Footnote-1572052
 +Ref: I/O Functions-Footnote-2572200
 +Node: Time Functions572320
 +Ref: Time Functions-Footnote-1582987
 +Ref: Time Functions-Footnote-2583055
 +Ref: Time Functions-Footnote-3583213
 +Ref: Time Functions-Footnote-4583324
 +Ref: Time Functions-Footnote-5583436
 +Ref: Time Functions-Footnote-6583663
 +Node: Bitwise Functions583929
 +Ref: table-bitwise-ops584523
 +Ref: Bitwise Functions-Footnote-1590556
 +Ref: Bitwise Functions-Footnote-2590729
 +Node: Type Functions590920
 +Node: I18N Functions593595
 +Node: User-defined595246
 +Node: Definition Syntax596051
 +Ref: Definition Syntax-Footnote-1601738
 +Node: Function Example601809
 +Ref: Function Example-Footnote-1604731
 +Node: Function Caveats604753
 +Node: Calling A Function605271
 +Node: Variable Scope606229
 +Node: Pass By Value/Reference609223
 +Node: Return Statement612722
 +Node: Dynamic Typing615701
 +Node: Indirect Calls616631
 +Ref: Indirect Calls-Footnote-1626882
 +Node: Functions Summary627010
 +Node: Library Functions629715
 +Ref: Library Functions-Footnote-1633322
 +Ref: Library Functions-Footnote-2633465
 +Node: Library Names633636
 +Ref: Library Names-Footnote-1637096
 +Ref: Library Names-Footnote-2637319
 +Node: General Functions637405
 +Node: Strtonum Function638508
 +Node: Assert Function641530
 +Node: Round Function644856
 +Node: Cliff Random Function646397
 +Node: Ordinal Functions647413
 +Ref: Ordinal Functions-Footnote-1650476
 +Ref: Ordinal Functions-Footnote-2650728
 +Node: Join Function650938
 +Ref: Join Function-Footnote-1652708
 +Node: Getlocaltime Function652908
 +Node: Readfile Function656650
 +Node: Shell Quoting658622
 +Node: Data File Management660023
 +Node: Filetrans Function660655
 +Node: Rewind Function664751
 +Node: File Checking666661
 +Ref: File Checking-Footnote-1667995
 +Node: Empty Files668196
 +Node: Ignoring Assigns670175
 +Node: Getopt Function671725
 +Ref: Getopt Function-Footnote-1683194
 +Node: Passwd Functions683394
 +Ref: Passwd Functions-Footnote-1692233
 +Node: Group Functions692321
 +Ref: Group Functions-Footnote-1700219
 +Node: Walking Arrays700426
 +Node: Library Functions Summary703434
 +Node: Library Exercises704840
 +Node: Sample Programs705305
 +Node: Running Examples706068
 +Node: Clones706796
 +Node: Cut Program708020
 +Node: Egrep Program717949
 +Ref: Egrep Program-Footnote-1725461
 +Node: Id Program725571
 +Node: Split Program729251
 +Ref: Split Program-Footnote-1732710
 +Node: Tee Program732839
 +Node: Uniq Program735629
 +Node: Wc Program743055
 +Ref: Wc Program-Footnote-1747310
 +Node: Miscellaneous Programs747404
 +Node: Dupword Program748617
 +Node: Alarm Program750647
 +Node: Translate Program755502
 +Ref: Translate Program-Footnote-1760067
 +Node: Labels Program760337
 +Ref: Labels Program-Footnote-1763688
 +Node: Word Sorting763772
 +Node: History Sorting767844
 +Node: Extract Program769679
 +Node: Simple Sed777208
 +Node: Igawk Program780282
 +Ref: Igawk Program-Footnote-1794613
 +Ref: Igawk Program-Footnote-2794815
 +Ref: Igawk Program-Footnote-3794937
 +Node: Anagram Program795052
 +Node: Signature Program798114
 +Node: Programs Summary799361
 +Node: Programs Exercises800575
 +Ref: Programs Exercises-Footnote-1804704
 +Node: Namespaces804795
 +Node: Global Namespace805475
 +Node: Qualified Names806718
 +Node: Default Namespace808074
 +Node: Changing The Namespace808851
 +Node: Internal Name Management809976
 +Node: Namespace Example810981
 +Node: Namespace Misc813050
 +Node: Advanced Features814692
 +Node: Nondecimal Data816677
 +Node: Array Sorting818268
 +Node: Controlling Array Traversal818968
 +Ref: Controlling Array Traversal-Footnote-1827335
 +Node: Array Sorting Functions827453
 +Ref: Array Sorting Functions-Footnote-1832544
 +Node: Two-way I/O832740
 +Ref: Two-way I/O-Footnote-1839291
 +Ref: Two-way I/O-Footnote-2839478
 +Node: TCP/IP Networking839560
 +Node: Profiling842678
 +Ref: Profiling-Footnote-1851350
 +Node: Advanced Features Summary851673
 +Node: Internationalization853517
 +Node: I18N and L10N854997
 +Node: Explaining gettext855684
 +Ref: Explaining gettext-Footnote-1861576
 +Ref: Explaining gettext-Footnote-2861761
 +Node: Programmer i18n861926
 +Ref: Programmer i18n-Footnote-1866875
 +Node: Translator i18n866924
 +Node: String Extraction867718
 +Ref: String Extraction-Footnote-1868850
 +Node: Printf Ordering868936
 +Ref: Printf Ordering-Footnote-1871722
 +Node: I18N Portability871786
 +Ref: I18N Portability-Footnote-1874242
 +Node: I18N Example874305
 +Ref: I18N Example-Footnote-1877111
 +Node: Gawk I18N877184
 +Node: I18N Summary877829
 +Node: Debugger879170
 +Node: Debugging880192
 +Node: Debugging Concepts880633
 +Node: Debugging Terms882442
 +Node: Awk Debugging885017
 +Node: Sample Debugging Session885923
 +Node: Debugger Invocation886457
 +Node: Finding The Bug887843
 +Node: List of Debugger Commands894321
 +Node: Breakpoint Control895654
 +Node: Debugger Execution Control899348
 +Node: Viewing And Changing Data902710
 +Node: Execution Stack906084
 +Node: Debugger Info907721
 +Node: Miscellaneous Debugger Commands911792
 +Node: Readline Support916880
 +Node: Limitations917776
 +Node: Debugging Summary919885
 +Node: Arbitrary Precision Arithmetic921164
 +Node: Computer Arithmetic922649
 +Ref: table-numeric-ranges926240
 +Ref: Computer Arithmetic-Footnote-1926962
 +Node: Math Definitions927019
 +Ref: table-ieee-formats930333
 +Ref: Math Definitions-Footnote-1930936
 +Node: MPFR features931041
 +Node: FP Math Caution932758
 +Ref: FP Math Caution-Footnote-1933830
 +Node: Inexactness of computations934199
 +Node: Inexact representation935159
 +Node: Comparing FP Values936519
 +Node: Errors accumulate937601
 +Node: Getting Accuracy939034
 +Node: Try To Round941744
 +Node: Setting precision942643
 +Ref: table-predefined-precision-strings943340
 +Node: Setting the rounding mode945170
 +Ref: table-gawk-rounding-modes945544
 +Ref: Setting the rounding mode-Footnote-1948952
 +Node: Arbitrary Precision Integers949131
 +Ref: Arbitrary Precision Integers-Footnote-1954036
 +Node: Checking for MPFR954185
 +Node: POSIX Floating Point Problems955482
 +Ref: POSIX Floating Point Problems-Footnote-1959353
 +Node: Floating point summary959391
 +Node: Dynamic Extensions961581
 +Node: Extension Intro963134
 +Node: Plugin License964400
 +Node: Extension Mechanism Outline965197
 +Ref: figure-load-extension965636
 +Ref: figure-register-new-function967201
 +Ref: figure-call-new-function968293
 +Node: Extension API Description970355
 +Node: Extension API Functions Introduction971997
 +Node: General Data Types977331
 +Ref: General Data Types-Footnote-1984536
 +Node: Memory Allocation Functions984835
- Ref: Memory Allocation Functions-Footnote-1987680
- Node: Constructor Functions987779
- Node: Registration Functions990778
- Node: Extension Functions991463
- Node: Exit Callback Functions996676
- Node: Extension Version String997926
- Node: Input Parsers998589
- Node: Output Wrappers1011296
- Node: Two-way processors1015808
- Node: Printing Messages1018073
- Ref: Printing Messages-Footnote-11019244
- Node: Updating ERRNO1019397
- Node: Requesting Values1020136
- Ref: table-value-types-returned1020873
- Node: Accessing Parameters1021809
- Node: Symbol Table Access1023044
- Node: Symbol table by name1023556
- Node: Symbol table by cookie1025345
- Ref: Symbol table by cookie-Footnote-11029530
- Node: Cached values1029594
- Ref: Cached values-Footnote-11033130
- Node: Array Manipulation1033221
- Ref: Array Manipulation-Footnote-11034312
- Node: Array Data Types1034349
- Ref: Array Data Types-Footnote-11037007
- Node: Array Functions1037099
- Node: Flattening Arrays1041498
- Node: Creating Arrays1048439
- Node: Redirection API1053208
- Node: Extension API Variables1056050
- Node: Extension Versioning1056683
- Ref: gawk-api-version1057120
- Node: Extension API Informational Variables1058848
- Node: Extension API Boilerplate1059912
- Node: Changes from API V11063774
- Node: Finding Extensions1064434
- Node: Extension Example1064993
- Node: Internal File Description1065791
- Node: Internal File Ops1069871
- Ref: Internal File Ops-Footnote-11081271
- Node: Using Internal File Ops1081411
- Ref: Using Internal File Ops-Footnote-11083794
- Node: Extension Samples1084068
- Node: Extension Sample File Functions1085597
- Node: Extension Sample Fnmatch1093246
- Node: Extension Sample Fork1094733
- Node: Extension Sample Inplace1095951
- Node: Extension Sample Ord1099168
- Node: Extension Sample Readdir1100004
- Ref: table-readdir-file-types1100893
- Node: Extension Sample Revout1101698
- Node: Extension Sample Rev2way1102287
- Node: Extension Sample Read write array1103027
- Node: Extension Sample Readfile1104969
- Node: Extension Sample Time1106064
- Node: Extension Sample API Tests1107412
- Node: gawkextlib1107904
- Node: Extension summary1110351
- Node: Extension Exercises1114053
- Node: Language History1115551
- Node: V7/SVR3.11117207
- Node: SVR41119359
- Node: POSIX1120793
- Node: BTL1122172
- Node: POSIX/GNU1122901
- Node: Feature History1128793
- Node: Common Extensions1143217
- Node: Ranges and Locales1144500
- Ref: Ranges and Locales-Footnote-11149116
- Ref: Ranges and Locales-Footnote-21149143
- Ref: Ranges and Locales-Footnote-31149378
- Node: Contributors1149599
- Node: History summary1155159
- Node: Installation1156539
- Node: Gawk Distribution1157483
- Node: Getting1157967
- Node: Extracting1158928
- Node: Distribution contents1160566
- Node: Unix Installation1166908
- Node: Quick Installation1167590
- Node: Shell Startup Files1170004
- Node: Additional Configuration Options1171093
- Node: Configuration Philosophy1173082
- Node: Non-Unix Installation1175451
- Node: PC Installation1175911
- Node: PC Binary Installation1176749
- Node: PC Compiling1177184
- Node: PC Using1178301
- Node: Cygwin1181346
- Node: MSYS1182116
- Node: VMS Installation1182617
- Node: VMS Compilation1183408
- Ref: VMS Compilation-Footnote-11184637
- Node: VMS Dynamic Extensions1184695
- Node: VMS Installation Details1186380
- Node: VMS Running1188633
- Node: VMS GNV1192912
- Node: VMS Old Gawk1193647
- Node: Bugs1194118
- Node: Bug address1194781
- Node: Usenet1197178
- Node: Maintainers1197955
- Node: Other Versions1199331
- Node: Installation summary1205915
- Node: Notes1206950
- Node: Compatibility Mode1207815
- Node: Additions1208597
- Node: Accessing The Source1209522
- Node: Adding Code1210957
- Node: New Ports1217175
- Node: Derived Files1221663
- Ref: Derived Files-Footnote-11227148
- Ref: Derived Files-Footnote-21227183
- Ref: Derived Files-Footnote-31227781
- Node: Future Extensions1227895
- Node: Implementation Limitations1228553
- Node: Extension Design1229736
- Node: Old Extension Problems1230890
- Ref: Old Extension Problems-Footnote-11232408
- Node: Extension New Mechanism Goals1232465
- Ref: Extension New Mechanism Goals-Footnote-11235829
- Node: Extension Other Design Decisions1236018
- Node: Extension Future Growth1238131
- Node: Old Extension Mechanism1238967
- Node: Notes summary1240730
- Node: Basic Concepts1241912
- Node: Basic High Level1242593
- Ref: figure-general-flow1242875
- Ref: figure-process-flow1243560
- Ref: Basic High Level-Footnote-11246861
- Node: Basic Data Typing1247046
- Node: Glossary1250374
- Node: Copying1282321
- Node: GNU Free Documentation License1319860
- Node: Index1344978
++Ref: Memory Allocation Functions-Footnote-1987987
++Node: Constructor Functions988086
++Node: Registration Functions991085
++Node: Extension Functions991770
++Node: Exit Callback Functions996983
++Node: Extension Version String998233
++Node: Input Parsers998896
++Node: Output Wrappers1011603
++Node: Two-way processors1016115
++Node: Printing Messages1018380
++Ref: Printing Messages-Footnote-11019551
++Node: Updating ERRNO1019704
++Node: Requesting Values1020443
++Ref: table-value-types-returned1021180
++Node: Accessing Parameters1022116
++Node: Symbol Table Access1023351
++Node: Symbol table by name1023863
++Node: Symbol table by cookie1025652
++Ref: Symbol table by cookie-Footnote-11029837
++Node: Cached values1029901
++Ref: Cached values-Footnote-11033437
++Node: Array Manipulation1033528
++Ref: Array Manipulation-Footnote-11034619
++Node: Array Data Types1034656
++Ref: Array Data Types-Footnote-11037314
++Node: Array Functions1037406
++Node: Flattening Arrays1041805
++Node: Creating Arrays1048746
++Node: Redirection API1053515
++Node: Extension API Variables1056357
++Node: Extension Versioning1056990
++Ref: gawk-api-version1057427
++Node: Extension API Informational Variables1059155
++Node: Extension API Boilerplate1060219
++Node: Changes from API V11064081
++Node: Finding Extensions1064741
++Node: Extension Example1065300
++Node: Internal File Description1066098
++Node: Internal File Ops1070178
++Ref: Internal File Ops-Footnote-11081578
++Node: Using Internal File Ops1081718
++Ref: Using Internal File Ops-Footnote-11084101
++Node: Extension Samples1084375
++Node: Extension Sample File Functions1085904
++Node: Extension Sample Fnmatch1093553
++Node: Extension Sample Fork1095040
++Node: Extension Sample Inplace1096258
++Node: Extension Sample Ord1099475
++Node: Extension Sample Readdir1100311
++Ref: table-readdir-file-types1101200
++Node: Extension Sample Revout1102005
++Node: Extension Sample Rev2way1102594
++Node: Extension Sample Read write array1103334
++Node: Extension Sample Readfile1105276
++Node: Extension Sample Time1106371
++Node: Extension Sample API Tests1107719
++Node: gawkextlib1108211
++Node: Extension summary1110658
++Node: Extension Exercises1114360
++Node: Language History1115858
++Node: V7/SVR3.11117514
++Node: SVR41119666
++Node: POSIX1121100
++Node: BTL1122479
++Node: POSIX/GNU1123208
++Node: Feature History1129100
++Node: Common Extensions1143524
++Node: Ranges and Locales1144807
++Ref: Ranges and Locales-Footnote-11149423
++Ref: Ranges and Locales-Footnote-21149450
++Ref: Ranges and Locales-Footnote-31149685
++Node: Contributors1149906
++Node: History summary1155466
++Node: Installation1156846
++Node: Gawk Distribution1157790
++Node: Getting1158274
++Node: Extracting1159235
++Node: Distribution contents1160873
++Node: Unix Installation1167215
++Node: Quick Installation1167897
++Node: Shell Startup Files1170311
++Node: Additional Configuration Options1171400
++Node: Configuration Philosophy1173389
++Node: Non-Unix Installation1175758
++Node: PC Installation1176218
++Node: PC Binary Installation1177056
++Node: PC Compiling1177491
++Node: PC Using1178608
++Node: Cygwin1181653
++Node: MSYS1182423
++Node: VMS Installation1182924
++Node: VMS Compilation1183715
++Ref: VMS Compilation-Footnote-11184944
++Node: VMS Dynamic Extensions1185002
++Node: VMS Installation Details1186687
++Node: VMS Running1188940
++Node: VMS GNV1193219
++Node: VMS Old Gawk1193954
++Node: Bugs1194425
++Node: Bug address1195088
++Node: Usenet1197485
++Node: Maintainers1198262
++Node: Other Versions1199638
++Node: Installation summary1206222
++Node: Notes1207257
++Node: Compatibility Mode1208122
++Node: Additions1208904
++Node: Accessing The Source1209829
++Node: Adding Code1211264
++Node: New Ports1217482
++Node: Derived Files1221970
++Ref: Derived Files-Footnote-11227455
++Ref: Derived Files-Footnote-21227490
++Ref: Derived Files-Footnote-31228088
++Node: Future Extensions1228202
++Node: Implementation Limitations1228860
++Node: Extension Design1230043
++Node: Old Extension Problems1231197
++Ref: Old Extension Problems-Footnote-11232715
++Node: Extension New Mechanism Goals1232772
++Ref: Extension New Mechanism Goals-Footnote-11236136
++Node: Extension Other Design Decisions1236325
++Node: Extension Future Growth1238438
++Node: Old Extension Mechanism1239274
++Node: Notes summary1241037
++Node: Basic Concepts1242219
++Node: Basic High Level1242900
++Ref: figure-general-flow1243182
++Ref: figure-process-flow1243867
++Ref: Basic High Level-Footnote-11247168
++Node: Basic Data Typing1247353
++Node: Glossary1250681
++Node: Copying1282628
++Node: GNU Free Documentation License1320167
++Node: Index1345285
  
  End Tag Table
diff --cc eval.c
index 5392704,afa3789..507c17a
--- a/eval.c
+++ b/eval.c
@@@ -380,8 -380,8 +380,9 @@@ static struct optypetab 
        { "Op_K_if", "if" },
        { "Op_K_else", "else" },
        { "Op_K_function", "function" },
 +      { "Op_K_namespace", "@namespace" },
        { "Op_cond_exp", NULL },
+       { "Op_parens", NULL },
        { "Op_final --- this should never appear", NULL },
        { NULL, NULL },
  };

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

Summary of changes:
 ChangeLog                |  44 +++++
 NEWS                     |  10 +-
 awk.h                    |  20 +++
 awkgram.c                | 174 +++++++++----------
 awkgram.y                |  18 +-
 cint_array.c             |  18 +-
 command.c                |   3 +-
 command.y                |   3 +-
 debug.c                  |   3 +-
 doc/ChangeLog            |   5 +
 doc/gawk.info            | 285 +++++++++++++++----------------
 doc/gawk.texi            |  10 +-
 doc/gawktexi.in          |  10 +-
 eval.c                   |   4 +-
 extension/ChangeLog      |  20 +++
 extension/filefuncs.c    |   3 +-
 extension/gawkfts.c      |   3 +-
 extension/readfile.c     |  13 +-
 extension/rwarray.c      |   2 +-
 extension/rwarray0.c     |   2 +-
 field.c                  |   4 +-
 gawkapi.c                |   3 +-
 gawkapi.h                |   6 +
 int_array.c              |   6 +-
 interpret.h              |   1 +
 io.c                     |   6 +-
 missing_d/ChangeLog      |   4 +
 missing_d/getaddrinfo.c  |   3 +-
 node.c                   |   3 +-
 old-extension/ChangeLog  |   4 +
 old-extension/bindarr.c  |   3 +-
 profile.c                |  82 +++++----
 re.c                     |   3 +-
 str_array.c              |   6 +-
 support/ChangeLog        |   5 +
 support/regcomp.c        |   9 +-
 support/regex.c          |   2 +-
 support/regex.h          |   2 +-
 support/regex_internal.c |   6 +-
 support/regex_internal.h |   5 +-
 support/regexec.c        |  16 +-
 symbol.c                 |   6 +-
 test/ChangeLog           |   5 +
 test/profile4.ok         |   6 +-
 test/profile5.ok         | 426 +++++++++++++++++++++++------------------------
 test/profile7.awk        |   2 +
 test/profile7.ok         |   6 +-
 47 files changed, 695 insertions(+), 585 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

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