gawk-diffs
[Top][All Lists]
Advanced

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

[gawk-diffs] [SCM] gawk branch, master, updated. bcb0224f8f2d19cd03a2527


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, master, updated. bcb0224f8f2d19cd03a2527eec2f5eb42abef7cd
Date: Fri, 05 Oct 2012 10:56:54 +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, master has been updated
       via  bcb0224f8f2d19cd03a2527eec2f5eb42abef7cd (commit)
       via  81896b422307105edb9908958bbedd09967d9a05 (commit)
       via  3d9b832439afeb1b05c60831e0865df585dc55ac (commit)
       via  9e2703f7ca0b35129a94465654d0e18d14048dbc (commit)
       via  b9a82851866f84ca306a2802b4ca50089a2fe683 (commit)
      from  5caf2424094016b9a26c5d9d74b25cab39671478 (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=bcb0224f8f2d19cd03a2527eec2f5eb42abef7cd

commit bcb0224f8f2d19cd03a2527eec2f5eb42abef7cd
Merge: 5caf242 81896b4
Author: Arnold D. Robbins <address@hidden>
Date:   Fri Oct 5 12:56:31 2012 +0200

    Merge branch 'symtab'

diff --cc ChangeLog
index 2e13d31,31869fe..1aa1097
--- a/ChangeLog
+++ b/ChangeLog
@@@ -1,22 -1,53 +1,70 @@@
 +2012-10-05         Arnold D. Robbins     <address@hidden>
 +
 +      * mbsupport.h: Add a bunch of undefs for z/OS.
 +
  2012-10-04         Arnold D. Robbins     <address@hidden>
  
 +      * TODO.xgawk: Update.
 +      * awk.h (make_str_node): Removed macro.
 +      (make_string): Modified to call make_str_node.
 +      (r_make_str_node): Renamed to make_str_node.
 +      * gawkapi.c: Changed r_make_str_node to make_str_node everywhere.
 +      * node.c (make_str_node): Renamed from make_str_node.
 +
 +      Update to automake 1.12.4.
 +
 +      * Makefile.in, aclocal.m4, awklib/Makefile.in, doc/Makefile.in,
 +      extension/Makefile.in, extension/aclocal.m4, test/Makefile.in:
 +      Regenerated.
 +
+       * interpret.h (Op_Subscript): Added lint warnings for FUNCTAB
+       and SYMTAB.
+ 
+ 2012-10-02         Arnold D. Robbins     <address@hidden>
+ 
+       * awk.h (func_table): Declare.
+       * awkgram.y: If do_posix or do_traditional, then check for
+       delete on SYMTAB. Add check for delete on FUNCTAB, also.
+       * interpret.h (Op_Subscript): For FUNCTAB, return the element name
+       as its value too.  Avoids lots of weirdness and allows indirect calls
+       after assignment from FUNCTAB["foo"] to work.
+       (Op_store_sub): Disallow assignment to elements of FUNCTAB.
+       (Op_indirect_func_all): Turn assert into check and fatal error.
+       * symbol.c (func_table): No longer static.
+       (lookup): If do_posix or do_traditional, skip the global table.
+       (release_all_vars): Clear func_table too.
+ 
+ 2012-09-25         Arnold D. Robbins     <address@hidden>
+ 
+       First cut at SYMTAB and FUNCTAB. This does the following:
+       - Change symbol table handling to use gawk arrays.
+       - Store symbols in SYMTAB array and allow indirect access
+         through SYMTAB to variables, both getting and setting.
+       - List function names in FUNCTAB indexes; Values cannot be
+         used at the moment.
+       - No documentation yet.
+ 
+       * awk.h (Node_hashnode, hnext, hname, hlength, hcode, hvalue):
+       Removed, not needed any more.
+       (init_symbol_table, symbol_table): Add declarations.
+       * awkgram.y: Disallow delete on SYMTAB, fix warning for tawk
+       extension if traditional.
+       * eval.c (nodetypes): Remove Node_hashnode element.
+       * interpret.h (Op_subscript, Op_store_sub): Handle SYMTAB and go
+       through to the actual value.
+       * main.c (main): Init Nnull_string earlier. Add call to
+       init_symbol_table().
+       * profile.c (pp_str, pp_len): Change definitions.
+       (pp_next): New macro.
+       (pp_push, pp_pop): Adjust uses.
+       * symbol.c (variables): Removed.
+       (global_table, param_table, func_table, symbol_table,
+       installing_specials): New variables.
+       (lookup, make_params, install_params, remove_params, remove_symbol,
+       make_symbol, install, get_symbols, release_all_vars, append_symbol,
+       release_symbols, load_symbols): Rework logic considerably.
+       (init_symbol_table): New function.
+ 
  2012-09-23         Arnold D. Robbins     <address@hidden>
  
        `delete array' and `nextfile' are now in POSIX.
diff --cc awkgram.c
index d83aa03,6e81980..a375998
--- a/awkgram.c
+++ b/awkgram.c
@@@ -733,19 -733,19 +733,19 @@@ static const yytype_uint16 yyrline[] 
       372,   373,   377,   396,   395,   429,   431,   436,   437,   450,
       455,   456,   460,   462,   464,   471,   561,   603,   645,   758,
       765,   772,   782,   791,   800,   809,   820,   836,   835,   859,
-      871,   871,   969,   969,   995,  1018,  1024,  1025,  1031,  1032,
-     1039,  1044,  1056,  1070,  1072,  1080,  1085,  1087,  1095,  1097,
-     1106,  1107,  1115,  1120,  1120,  1131,  1135,  1143,  1144,  1147,
-     1149,  1154,  1155,  1164,  1165,  1170,  1175,  1181,  1183,  1185,
-     1192,  1193,  1199,  1200,  1205,  1207,  1212,  1214,  1216,  1218,
-     1224,  1231,  1233,  1235,  1251,  1261,  1268,  1270,  1275,  1277,
-     1279,  1287,  1289,  1294,  1296,  1301,  1303,  1305,  1355,  1357,
-     1359,  1361,  1363,  1365,  1367,  1369,  1392,  1397,  1402,  1427,
-     1433,  1435,  1437,  1439,  1441,  1443,  1448,  1452,  1484,  1486,
-     1492,  1498,  1511,  1512,  1513,  1518,  1523,  1527,  1531,  1546,
-     1559,  1564,  1600,  1618,  1619,  1625,  1626,  1631,  1633,  1640,
-     1657,  1674,  1676,  1683,  1688,  1696,  1706,  1718,  1727,  1731,
-     1735,  1739,  1743,  1747,  1750,  1752,  1756,  1760,  1764
 -     871,   871,   969,   969,   998,  1024,  1030,  1031,  1037,  1038,
 -    1045,  1050,  1062,  1076,  1078,  1086,  1091,  1093,  1101,  1103,
 -    1112,  1113,  1121,  1126,  1126,  1137,  1141,  1149,  1150,  1153,
 -    1155,  1160,  1161,  1170,  1171,  1176,  1181,  1187,  1189,  1191,
 -    1198,  1199,  1205,  1206,  1211,  1213,  1218,  1220,  1222,  1224,
 -    1230,  1237,  1239,  1241,  1257,  1267,  1274,  1276,  1281,  1283,
 -    1285,  1293,  1295,  1300,  1302,  1307,  1309,  1311,  1361,  1363,
 -    1365,  1367,  1369,  1371,  1373,  1375,  1398,  1403,  1408,  1433,
 -    1439,  1441,  1443,  1445,  1447,  1449,  1454,  1458,  1490,  1492,
 -    1498,  1504,  1517,  1518,  1519,  1524,  1529,  1533,  1537,  1552,
 -    1565,  1570,  1606,  1624,  1625,  1631,  1632,  1637,  1639,  1646,
 -    1663,  1680,  1682,  1689,  1694,  1702,  1712,  1724,  1733,  1737,
 -    1741,  1745,  1749,  1753,  1756,  1758,  1762,  1766,  1770
++     871,   871,   969,   969,  1002,  1032,  1038,  1039,  1045,  1046,
++    1053,  1058,  1070,  1084,  1086,  1094,  1099,  1101,  1109,  1111,
++    1120,  1121,  1129,  1134,  1134,  1145,  1149,  1157,  1158,  1161,
++    1163,  1168,  1169,  1178,  1179,  1184,  1189,  1195,  1197,  1199,
++    1206,  1207,  1213,  1214,  1219,  1221,  1226,  1228,  1230,  1232,
++    1238,  1245,  1247,  1249,  1265,  1275,  1282,  1284,  1289,  1291,
++    1293,  1301,  1303,  1308,  1310,  1315,  1317,  1319,  1369,  1371,
++    1373,  1375,  1377,  1379,  1381,  1383,  1406,  1411,  1416,  1441,
++    1447,  1449,  1451,  1453,  1455,  1457,  1462,  1466,  1498,  1500,
++    1506,  1512,  1525,  1526,  1527,  1532,  1537,  1541,  1545,  1560,
++    1573,  1578,  1614,  1632,  1633,  1639,  1640,  1645,  1647,  1654,
++    1671,  1688,  1690,  1697,  1702,  1710,  1720,  1732,  1741,  1745,
++    1749,  1753,  1757,  1761,  1764,  1766,  1770,  1774,  1778
  };
  #endif
  
@@@ -3013,7 -3020,7 +3020,7 @@@ regular_print
  
    case 64:
  /* Line 1787 of yacc.c  */
- #line 1000 "awkgram.y"
 -#line 1003 "awkgram.y"
++#line 1007 "awkgram.y"
      {
                static bool warned = false;
                char *arr = (yyvsp[(3) - (4)])->lextok;
@@@ -3036,31 -3050,31 +3050,31 @@@
  
    case 65:
  /* Line 1787 of yacc.c  */
- #line 1019 "awkgram.y"
 -#line 1025 "awkgram.y"
++#line 1033 "awkgram.y"
      { (yyval) = optimize_assignment((yyvsp[(1) - (1)])); }
      break;
  
    case 66:
  /* Line 1787 of yacc.c  */
- #line 1024 "awkgram.y"
 -#line 1030 "awkgram.y"
++#line 1038 "awkgram.y"
      { (yyval) = NULL; }
      break;
  
    case 67:
  /* Line 1787 of yacc.c  */
- #line 1026 "awkgram.y"
 -#line 1032 "awkgram.y"
++#line 1040 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (1)]); }
      break;
  
    case 68:
  /* Line 1787 of yacc.c  */
- #line 1031 "awkgram.y"
 -#line 1037 "awkgram.y"
++#line 1045 "awkgram.y"
      { (yyval) = NULL; }
      break;
  
    case 69:
  /* Line 1787 of yacc.c  */
- #line 1033 "awkgram.y"
 -#line 1039 "awkgram.y"
++#line 1047 "awkgram.y"
      {
                if ((yyvsp[(1) - (2)]) == NULL)
                        (yyval) = list_create((yyvsp[(2) - (2)]));
@@@ -3071,13 -3085,13 +3085,13 @@@
  
    case 70:
  /* Line 1787 of yacc.c  */
- #line 1040 "awkgram.y"
 -#line 1046 "awkgram.y"
++#line 1054 "awkgram.y"
      { (yyval) = NULL; }
      break;
  
    case 71:
  /* Line 1787 of yacc.c  */
- #line 1045 "awkgram.y"
 -#line 1051 "awkgram.y"
++#line 1059 "awkgram.y"
      {
                INSTRUCTION *casestmt = (yyvsp[(5) - (5)]);
                if ((yyvsp[(5) - (5)]) == NULL)
@@@ -3093,7 -3107,7 +3107,7 @@@
  
    case 72:
  /* Line 1787 of yacc.c  */
- #line 1057 "awkgram.y"
 -#line 1063 "awkgram.y"
++#line 1071 "awkgram.y"
      {
                INSTRUCTION *casestmt = (yyvsp[(4) - (4)]);
                if ((yyvsp[(4) - (4)]) == NULL)
@@@ -3108,13 -3122,13 +3122,13 @@@
  
    case 73:
  /* Line 1787 of yacc.c  */
- #line 1071 "awkgram.y"
 -#line 1077 "awkgram.y"
++#line 1085 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (1)]); }
      break;
  
    case 74:
  /* Line 1787 of yacc.c  */
- #line 1073 "awkgram.y"
 -#line 1079 "awkgram.y"
++#line 1087 "awkgram.y"
      { 
                NODE *n = (yyvsp[(2) - (2)])->memory;
                (void) force_number(n);
@@@ -3126,7 -3140,7 +3140,7 @@@
  
    case 75:
  /* Line 1787 of yacc.c  */
- #line 1081 "awkgram.y"
 -#line 1087 "awkgram.y"
++#line 1095 "awkgram.y"
      {
                bcfree((yyvsp[(1) - (2)]));
                (yyval) = (yyvsp[(2) - (2)]);
@@@ -3135,13 -3149,13 +3149,13 @@@
  
    case 76:
  /* Line 1787 of yacc.c  */
- #line 1086 "awkgram.y"
 -#line 1092 "awkgram.y"
++#line 1100 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (1)]); }
      break;
  
    case 77:
  /* Line 1787 of yacc.c  */
- #line 1088 "awkgram.y"
 -#line 1094 "awkgram.y"
++#line 1102 "awkgram.y"
      {
                (yyvsp[(1) - (1)])->opcode = Op_push_re;
                (yyval) = (yyvsp[(1) - (1)]);
@@@ -3150,19 -3164,19 +3164,19 @@@
  
    case 78:
  /* Line 1787 of yacc.c  */
- #line 1096 "awkgram.y"
 -#line 1102 "awkgram.y"
++#line 1110 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (1)]); }
      break;
  
    case 79:
  /* Line 1787 of yacc.c  */
- #line 1098 "awkgram.y"
 -#line 1104 "awkgram.y"
++#line 1112 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (1)]); }
      break;
  
    case 81:
  /* Line 1787 of yacc.c  */
- #line 1108 "awkgram.y"
 -#line 1114 "awkgram.y"
++#line 1122 "awkgram.y"
      {
                (yyval) = (yyvsp[(2) - (3)]);
          }
@@@ -3170,7 -3184,7 +3184,7 @@@
  
    case 82:
  /* Line 1787 of yacc.c  */
- #line 1115 "awkgram.y"
 -#line 1121 "awkgram.y"
++#line 1129 "awkgram.y"
      {
                in_print = false;
                in_parens = 0;
@@@ -3180,13 -3194,13 +3194,13 @@@
  
    case 83:
  /* Line 1787 of yacc.c  */
- #line 1120 "awkgram.y"
 -#line 1126 "awkgram.y"
++#line 1134 "awkgram.y"
      { in_print = false; in_parens = 0; }
      break;
  
    case 84:
  /* Line 1787 of yacc.c  */
- #line 1121 "awkgram.y"
 -#line 1127 "awkgram.y"
++#line 1135 "awkgram.y"
      {
                if ((yyvsp[(1) - (3)])->redir_type == redirect_twoway
                        && (yyvsp[(3) - (3)])->lasti->opcode == 
Op_K_getline_redir
@@@ -3198,7 -3212,7 +3212,7 @@@
  
    case 85:
  /* Line 1787 of yacc.c  */
- #line 1132 "awkgram.y"
 -#line 1138 "awkgram.y"
++#line 1146 "awkgram.y"
      {
                (yyval) = mk_condition((yyvsp[(3) - (6)]), (yyvsp[(1) - (6)]), 
(yyvsp[(6) - (6)]), NULL, NULL);
          }
@@@ -3206,7 -3220,7 +3220,7 @@@
  
    case 86:
  /* Line 1787 of yacc.c  */
- #line 1137 "awkgram.y"
 -#line 1143 "awkgram.y"
++#line 1151 "awkgram.y"
      {
                (yyval) = mk_condition((yyvsp[(3) - (9)]), (yyvsp[(1) - (9)]), 
(yyvsp[(6) - (9)]), (yyvsp[(7) - (9)]), (yyvsp[(9) - (9)]));
          }
@@@ -3214,13 -3228,13 +3228,13 @@@
  
    case 91:
  /* Line 1787 of yacc.c  */
- #line 1154 "awkgram.y"
 -#line 1160 "awkgram.y"
++#line 1168 "awkgram.y"
      { (yyval) = NULL; }
      break;
  
    case 92:
  /* Line 1787 of yacc.c  */
- #line 1156 "awkgram.y"
 -#line 1162 "awkgram.y"
++#line 1170 "awkgram.y"
      {
                bcfree((yyvsp[(1) - (2)]));
                (yyval) = (yyvsp[(2) - (2)]);
@@@ -3229,19 -3243,19 +3243,19 @@@
  
    case 93:
  /* Line 1787 of yacc.c  */
- #line 1164 "awkgram.y"
 -#line 1170 "awkgram.y"
++#line 1178 "awkgram.y"
      { (yyval) = NULL; }
      break;
  
    case 94:
  /* Line 1787 of yacc.c  */
- #line 1166 "awkgram.y"
 -#line 1172 "awkgram.y"
++#line 1180 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (1)]) ; }
      break;
  
    case 95:
  /* Line 1787 of yacc.c  */
- #line 1171 "awkgram.y"
 -#line 1177 "awkgram.y"
++#line 1185 "awkgram.y"
      {
                (yyvsp[(1) - (1)])->param_count = 0;
                (yyval) = list_create((yyvsp[(1) - (1)]));
@@@ -3250,7 -3264,7 +3264,7 @@@
  
    case 96:
  /* Line 1787 of yacc.c  */
- #line 1176 "awkgram.y"
 -#line 1182 "awkgram.y"
++#line 1190 "awkgram.y"
      {
                (yyvsp[(3) - (3)])->param_count =  (yyvsp[(1) - 
(3)])->lasti->param_count + 1;
                (yyval) = list_append((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]));
@@@ -3260,55 -3274,55 +3274,55 @@@
  
    case 97:
  /* Line 1787 of yacc.c  */
- #line 1182 "awkgram.y"
 -#line 1188 "awkgram.y"
++#line 1196 "awkgram.y"
      { (yyval) = NULL; }
      break;
  
    case 98:
  /* Line 1787 of yacc.c  */
- #line 1184 "awkgram.y"
 -#line 1190 "awkgram.y"
++#line 1198 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (2)]); }
      break;
  
    case 99:
  /* Line 1787 of yacc.c  */
- #line 1186 "awkgram.y"
 -#line 1192 "awkgram.y"
++#line 1200 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (3)]); }
      break;
  
    case 100:
  /* Line 1787 of yacc.c  */
- #line 1192 "awkgram.y"
 -#line 1198 "awkgram.y"
++#line 1206 "awkgram.y"
      { (yyval) = NULL; }
      break;
  
    case 101:
  /* Line 1787 of yacc.c  */
- #line 1194 "awkgram.y"
 -#line 1200 "awkgram.y"
++#line 1208 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (1)]); }
      break;
  
    case 102:
  /* Line 1787 of yacc.c  */
- #line 1199 "awkgram.y"
 -#line 1205 "awkgram.y"
++#line 1213 "awkgram.y"
      { (yyval) = NULL; }
      break;
  
    case 103:
  /* Line 1787 of yacc.c  */
- #line 1201 "awkgram.y"
 -#line 1207 "awkgram.y"
++#line 1215 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (1)]); }
      break;
  
    case 104:
  /* Line 1787 of yacc.c  */
- #line 1206 "awkgram.y"
 -#line 1212 "awkgram.y"
++#line 1220 "awkgram.y"
      { (yyval) = mk_expression_list(NULL, (yyvsp[(1) - (1)])); }
      break;
  
    case 105:
  /* Line 1787 of yacc.c  */
- #line 1208 "awkgram.y"
 -#line 1214 "awkgram.y"
++#line 1222 "awkgram.y"
      {
                (yyval) = mk_expression_list((yyvsp[(1) - (3)]), (yyvsp[(3) - 
(3)]));
                yyerrok;
@@@ -3317,31 -3331,31 +3331,31 @@@
  
    case 106:
  /* Line 1787 of yacc.c  */
- #line 1213 "awkgram.y"
 -#line 1219 "awkgram.y"
++#line 1227 "awkgram.y"
      { (yyval) = NULL; }
      break;
  
    case 107:
  /* Line 1787 of yacc.c  */
- #line 1215 "awkgram.y"
 -#line 1221 "awkgram.y"
++#line 1229 "awkgram.y"
      { (yyval) = NULL; }
      break;
  
    case 108:
  /* Line 1787 of yacc.c  */
- #line 1217 "awkgram.y"
 -#line 1223 "awkgram.y"
++#line 1231 "awkgram.y"
      { (yyval) = NULL; }
      break;
  
    case 109:
  /* Line 1787 of yacc.c  */
- #line 1219 "awkgram.y"
 -#line 1225 "awkgram.y"
++#line 1233 "awkgram.y"
      { (yyval) = NULL; }
      break;
  
    case 110:
  /* Line 1787 of yacc.c  */
- #line 1225 "awkgram.y"
 -#line 1231 "awkgram.y"
++#line 1239 "awkgram.y"
      {
                if (do_lint && (yyvsp[(3) - (3)])->lasti->opcode == 
Op_match_rec)
                        lintwarn_ln((yyvsp[(2) - (3)])->source_line,
@@@ -3352,19 -3366,19 +3366,19 @@@
  
    case 111:
  /* Line 1787 of yacc.c  */
- #line 1232 "awkgram.y"
 -#line 1238 "awkgram.y"
++#line 1246 "awkgram.y"
      { (yyval) = mk_boolean((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) 
- (3)])); }
      break;
  
    case 112:
  /* Line 1787 of yacc.c  */
- #line 1234 "awkgram.y"
 -#line 1240 "awkgram.y"
++#line 1248 "awkgram.y"
      { (yyval) = mk_boolean((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) 
- (3)])); }
      break;
  
    case 113:
  /* Line 1787 of yacc.c  */
- #line 1236 "awkgram.y"
 -#line 1242 "awkgram.y"
++#line 1250 "awkgram.y"
      {
                if ((yyvsp[(1) - (3)])->lasti->opcode == Op_match_rec)
                        warning_ln((yyvsp[(2) - (3)])->source_line,
@@@ -3384,7 -3398,7 +3398,7 @@@
  
    case 114:
  /* Line 1787 of yacc.c  */
- #line 1252 "awkgram.y"
 -#line 1258 "awkgram.y"
++#line 1266 "awkgram.y"
      {
                if (do_lint_old)
                        warning_ln((yyvsp[(2) - (3)])->source_line,
@@@ -3398,7 -3412,7 +3412,7 @@@
  
    case 115:
  /* Line 1787 of yacc.c  */
- #line 1262 "awkgram.y"
 -#line 1268 "awkgram.y"
++#line 1276 "awkgram.y"
      {
                if (do_lint && (yyvsp[(3) - (3)])->lasti->opcode == 
Op_match_rec)
                        lintwarn_ln((yyvsp[(2) - (3)])->source_line,
@@@ -3409,31 -3423,31 +3423,31 @@@
  
    case 116:
  /* Line 1787 of yacc.c  */
- #line 1269 "awkgram.y"
 -#line 1275 "awkgram.y"
++#line 1283 "awkgram.y"
      { (yyval) = mk_condition((yyvsp[(1) - (5)]), (yyvsp[(2) - (5)]), 
(yyvsp[(3) - (5)]), (yyvsp[(4) - (5)]), (yyvsp[(5) - (5)])); }
      break;
  
    case 117:
  /* Line 1787 of yacc.c  */
- #line 1271 "awkgram.y"
 -#line 1277 "awkgram.y"
++#line 1285 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (1)]); }
      break;
  
    case 118:
  /* Line 1787 of yacc.c  */
- #line 1276 "awkgram.y"
 -#line 1282 "awkgram.y"
++#line 1290 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (1)]); }
      break;
  
    case 119:
  /* Line 1787 of yacc.c  */
- #line 1278 "awkgram.y"
 -#line 1284 "awkgram.y"
++#line 1292 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (1)]); }
      break;
  
    case 120:
  /* Line 1787 of yacc.c  */
- #line 1280 "awkgram.y"
 -#line 1286 "awkgram.y"
++#line 1294 "awkgram.y"
      { 
                (yyvsp[(2) - (2)])->opcode = Op_assign_quotient;
                (yyval) = (yyvsp[(2) - (2)]);
@@@ -3442,43 -3456,43 +3456,43 @@@
  
    case 121:
  /* Line 1787 of yacc.c  */
- #line 1288 "awkgram.y"
 -#line 1294 "awkgram.y"
++#line 1302 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (1)]); }
      break;
  
    case 122:
  /* Line 1787 of yacc.c  */
- #line 1290 "awkgram.y"
 -#line 1296 "awkgram.y"
++#line 1304 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (1)]); }
      break;
  
    case 123:
  /* Line 1787 of yacc.c  */
- #line 1295 "awkgram.y"
 -#line 1301 "awkgram.y"
++#line 1309 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (1)]); }
      break;
  
    case 124:
  /* Line 1787 of yacc.c  */
- #line 1297 "awkgram.y"
 -#line 1303 "awkgram.y"
++#line 1311 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (1)]); }
      break;
  
    case 125:
  /* Line 1787 of yacc.c  */
- #line 1302 "awkgram.y"
 -#line 1308 "awkgram.y"
++#line 1316 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (1)]); }
      break;
  
    case 126:
  /* Line 1787 of yacc.c  */
- #line 1304 "awkgram.y"
 -#line 1310 "awkgram.y"
++#line 1318 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (1)]); }
      break;
  
    case 127:
  /* Line 1787 of yacc.c  */
- #line 1306 "awkgram.y"
 -#line 1312 "awkgram.y"
++#line 1320 "awkgram.y"
      {
                int count = 2;
                bool is_simple_var = false;
@@@ -3529,43 -3543,43 +3543,43 @@@
  
    case 129:
  /* Line 1787 of yacc.c  */
- #line 1358 "awkgram.y"
 -#line 1364 "awkgram.y"
++#line 1372 "awkgram.y"
      { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) 
- (3)])); }
      break;
  
    case 130:
  /* Line 1787 of yacc.c  */
- #line 1360 "awkgram.y"
 -#line 1366 "awkgram.y"
++#line 1374 "awkgram.y"
      { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) 
- (3)])); }
      break;
  
    case 131:
  /* Line 1787 of yacc.c  */
- #line 1362 "awkgram.y"
 -#line 1368 "awkgram.y"
++#line 1376 "awkgram.y"
      { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) 
- (3)])); }
      break;
  
    case 132:
  /* Line 1787 of yacc.c  */
- #line 1364 "awkgram.y"
 -#line 1370 "awkgram.y"
++#line 1378 "awkgram.y"
      { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) 
- (3)])); }
      break;
  
    case 133:
  /* Line 1787 of yacc.c  */
- #line 1366 "awkgram.y"
 -#line 1372 "awkgram.y"
++#line 1380 "awkgram.y"
      { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) 
- (3)])); }
      break;
  
    case 134:
  /* Line 1787 of yacc.c  */
- #line 1368 "awkgram.y"
 -#line 1374 "awkgram.y"
++#line 1382 "awkgram.y"
      { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) 
- (3)])); }
      break;
  
    case 135:
  /* Line 1787 of yacc.c  */
- #line 1370 "awkgram.y"
 -#line 1376 "awkgram.y"
++#line 1384 "awkgram.y"
      {
                /*
                 * In BEGINFILE/ENDFILE, allow `getline var < file'
@@@ -3592,7 -3606,7 +3606,7 @@@
  
    case 136:
  /* Line 1787 of yacc.c  */
- #line 1393 "awkgram.y"
 -#line 1399 "awkgram.y"
++#line 1407 "awkgram.y"
      {
                (yyvsp[(2) - (2)])->opcode = Op_postincrement;
                (yyval) = mk_assignment((yyvsp[(1) - (2)]), NULL, (yyvsp[(2) - 
(2)]));
@@@ -3601,7 -3615,7 +3615,7 @@@
  
    case 137:
  /* Line 1787 of yacc.c  */
- #line 1398 "awkgram.y"
 -#line 1404 "awkgram.y"
++#line 1412 "awkgram.y"
      {
                (yyvsp[(2) - (2)])->opcode = Op_postdecrement;
                (yyval) = mk_assignment((yyvsp[(1) - (2)]), NULL, (yyvsp[(2) - 
(2)]));
@@@ -3610,7 -3624,7 +3624,7 @@@
  
    case 138:
  /* Line 1787 of yacc.c  */
- #line 1403 "awkgram.y"
 -#line 1409 "awkgram.y"
++#line 1417 "awkgram.y"
      {
                if (do_lint_old) {
                    warning_ln((yyvsp[(4) - (5)])->source_line,
@@@ -3634,7 -3648,7 +3648,7 @@@
  
    case 139:
  /* Line 1787 of yacc.c  */
- #line 1428 "awkgram.y"
 -#line 1434 "awkgram.y"
++#line 1442 "awkgram.y"
      {
                  (yyval) = mk_getline((yyvsp[(3) - (4)]), (yyvsp[(4) - (4)]), 
(yyvsp[(1) - (4)]), (yyvsp[(2) - (4)])->redir_type);
                  bcfree((yyvsp[(2) - (4)]));
@@@ -3643,43 -3657,43 +3657,43 @@@
  
    case 140:
  /* Line 1787 of yacc.c  */
- #line 1434 "awkgram.y"
 -#line 1440 "awkgram.y"
++#line 1448 "awkgram.y"
      { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) 
- (3)])); }
      break;
  
    case 141:
  /* Line 1787 of yacc.c  */
- #line 1436 "awkgram.y"
 -#line 1442 "awkgram.y"
++#line 1450 "awkgram.y"
      { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) 
- (3)])); }
      break;
  
    case 142:
  /* Line 1787 of yacc.c  */
- #line 1438 "awkgram.y"
 -#line 1444 "awkgram.y"
++#line 1452 "awkgram.y"
      { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) 
- (3)])); }
      break;
  
    case 143:
  /* Line 1787 of yacc.c  */
- #line 1440 "awkgram.y"
 -#line 1446 "awkgram.y"
++#line 1454 "awkgram.y"
      { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) 
- (3)])); }
      break;
  
    case 144:
  /* Line 1787 of yacc.c  */
- #line 1442 "awkgram.y"
 -#line 1448 "awkgram.y"
++#line 1456 "awkgram.y"
      { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) 
- (3)])); }
      break;
  
    case 145:
  /* Line 1787 of yacc.c  */
- #line 1444 "awkgram.y"
 -#line 1450 "awkgram.y"
++#line 1458 "awkgram.y"
      { (yyval) = mk_binary((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]), (yyvsp[(2) 
- (3)])); }
      break;
  
    case 146:
  /* Line 1787 of yacc.c  */
- #line 1449 "awkgram.y"
 -#line 1455 "awkgram.y"
++#line 1463 "awkgram.y"
      {
                (yyval) = list_create((yyvsp[(1) - (1)]));
          }
@@@ -3687,7 -3701,7 +3701,7 @@@
  
    case 147:
  /* Line 1787 of yacc.c  */
- #line 1453 "awkgram.y"
 -#line 1459 "awkgram.y"
++#line 1467 "awkgram.y"
      {
                if ((yyvsp[(2) - (2)])->opcode == Op_match_rec) {
                        (yyvsp[(2) - (2)])->opcode = Op_nomatch;
@@@ -3723,13 -3737,13 +3737,13 @@@
  
    case 148:
  /* Line 1787 of yacc.c  */
- #line 1485 "awkgram.y"
 -#line 1491 "awkgram.y"
++#line 1499 "awkgram.y"
      { (yyval) = (yyvsp[(2) - (3)]); }
      break;
  
    case 149:
  /* Line 1787 of yacc.c  */
- #line 1487 "awkgram.y"
 -#line 1493 "awkgram.y"
++#line 1501 "awkgram.y"
      {
                (yyval) = snode((yyvsp[(3) - (4)]), (yyvsp[(1) - (4)]));
                if ((yyval) == NULL)
@@@ -3739,7 -3753,7 +3753,7 @@@
  
    case 150:
  /* Line 1787 of yacc.c  */
- #line 1493 "awkgram.y"
 -#line 1499 "awkgram.y"
++#line 1507 "awkgram.y"
      {
                (yyval) = snode((yyvsp[(3) - (4)]), (yyvsp[(1) - (4)]));
                if ((yyval) == NULL)
@@@ -3749,7 -3763,7 +3763,7 @@@
  
    case 151:
  /* Line 1787 of yacc.c  */
- #line 1499 "awkgram.y"
 -#line 1505 "awkgram.y"
++#line 1513 "awkgram.y"
      {
                static bool warned = false;
  
@@@ -3766,7 -3780,7 +3780,7 @@@
  
    case 154:
  /* Line 1787 of yacc.c  */
- #line 1514 "awkgram.y"
 -#line 1520 "awkgram.y"
++#line 1528 "awkgram.y"
      {
                (yyvsp[(1) - (2)])->opcode = Op_preincrement;
                (yyval) = mk_assignment((yyvsp[(2) - (2)]), NULL, (yyvsp[(1) - 
(2)]));
@@@ -3775,7 -3789,7 +3789,7 @@@
  
    case 155:
  /* Line 1787 of yacc.c  */
- #line 1519 "awkgram.y"
 -#line 1525 "awkgram.y"
++#line 1533 "awkgram.y"
      {
                (yyvsp[(1) - (2)])->opcode = Op_predecrement;
                (yyval) = mk_assignment((yyvsp[(2) - (2)]), NULL, (yyvsp[(1) - 
(2)]));
@@@ -3784,7 -3798,7 +3798,7 @@@
  
    case 156:
  /* Line 1787 of yacc.c  */
- #line 1524 "awkgram.y"
 -#line 1530 "awkgram.y"
++#line 1538 "awkgram.y"
      {
                (yyval) = list_create((yyvsp[(1) - (1)]));
          }
@@@ -3792,7 -3806,7 +3806,7 @@@
  
    case 157:
  /* Line 1787 of yacc.c  */
- #line 1528 "awkgram.y"
 -#line 1534 "awkgram.y"
++#line 1542 "awkgram.y"
      {
                (yyval) = list_create((yyvsp[(1) - (1)]));
          }
@@@ -3800,7 -3814,7 +3814,7 @@@
  
    case 158:
  /* Line 1787 of yacc.c  */
- #line 1532 "awkgram.y"
 -#line 1538 "awkgram.y"
++#line 1546 "awkgram.y"
      {
                if ((yyvsp[(2) - (2)])->lasti->opcode == Op_push_i
                        && ((yyvsp[(2) - (2)])->lasti->memory->flags & 
(STRCUR|STRING)) == 0
@@@ -3819,7 -3833,7 +3833,7 @@@
  
    case 159:
  /* Line 1787 of yacc.c  */
- #line 1547 "awkgram.y"
 -#line 1553 "awkgram.y"
++#line 1561 "awkgram.y"
      {
            /*
             * was: $$ = $2
@@@ -3833,7 -3847,7 +3847,7 @@@
  
    case 160:
  /* Line 1787 of yacc.c  */
- #line 1560 "awkgram.y"
 -#line 1566 "awkgram.y"
++#line 1574 "awkgram.y"
      {
                func_use((yyvsp[(1) - (1)])->lasti->func_name, FUNC_USE);
                (yyval) = (yyvsp[(1) - (1)]);
@@@ -3842,7 -3856,7 +3856,7 @@@
  
    case 161:
  /* Line 1787 of yacc.c  */
- #line 1565 "awkgram.y"
 -#line 1571 "awkgram.y"
++#line 1579 "awkgram.y"
      {
                /* indirect function call */
                INSTRUCTION *f, *t;
@@@ -3879,7 -3893,7 +3893,7 @@@
  
    case 162:
  /* Line 1787 of yacc.c  */
- #line 1601 "awkgram.y"
 -#line 1607 "awkgram.y"
++#line 1615 "awkgram.y"
      {
                param_sanity((yyvsp[(3) - (4)]));
                (yyvsp[(1) - (4)])->opcode = Op_func_call;
@@@ -3897,37 -3911,37 +3911,37 @@@
  
    case 163:
  /* Line 1787 of yacc.c  */
- #line 1618 "awkgram.y"
 -#line 1624 "awkgram.y"
++#line 1632 "awkgram.y"
      { (yyval) = NULL; }
      break;
  
    case 164:
  /* Line 1787 of yacc.c  */
- #line 1620 "awkgram.y"
 -#line 1626 "awkgram.y"
++#line 1634 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (1)]); }
      break;
  
    case 165:
  /* Line 1787 of yacc.c  */
- #line 1625 "awkgram.y"
 -#line 1631 "awkgram.y"
++#line 1639 "awkgram.y"
      { (yyval) = NULL; }
      break;
  
    case 166:
  /* Line 1787 of yacc.c  */
- #line 1627 "awkgram.y"
 -#line 1633 "awkgram.y"
++#line 1641 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (2)]); }
      break;
  
    case 167:
  /* Line 1787 of yacc.c  */
- #line 1632 "awkgram.y"
 -#line 1638 "awkgram.y"
++#line 1646 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (1)]); }
      break;
  
    case 168:
  /* Line 1787 of yacc.c  */
- #line 1634 "awkgram.y"
 -#line 1640 "awkgram.y"
++#line 1648 "awkgram.y"
      {
                (yyval) = list_merge((yyvsp[(1) - (2)]), (yyvsp[(2) - (2)]));
          }
@@@ -3935,7 -3949,7 +3949,7 @@@
  
    case 169:
  /* Line 1787 of yacc.c  */
- #line 1641 "awkgram.y"
 -#line 1647 "awkgram.y"
++#line 1655 "awkgram.y"
      {
                INSTRUCTION *ip = (yyvsp[(1) - (1)])->lasti; 
                int count = ip->sub_count;      /* # of SUBSEP-seperated 
expressions */
@@@ -3953,7 -3967,7 +3967,7 @@@
  
    case 170:
  /* Line 1787 of yacc.c  */
- #line 1658 "awkgram.y"
 -#line 1664 "awkgram.y"
++#line 1672 "awkgram.y"
      {
                INSTRUCTION *t = (yyvsp[(2) - (3)]);
                if ((yyvsp[(2) - (3)]) == NULL) {
@@@ -3971,13 -3985,13 +3985,13 @@@
  
    case 171:
  /* Line 1787 of yacc.c  */
- #line 1675 "awkgram.y"
 -#line 1681 "awkgram.y"
++#line 1689 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (1)]); }
      break;
  
    case 172:
  /* Line 1787 of yacc.c  */
- #line 1677 "awkgram.y"
 -#line 1683 "awkgram.y"
++#line 1691 "awkgram.y"
      {
                (yyval) = list_merge((yyvsp[(1) - (2)]), (yyvsp[(2) - (2)]));
          }
@@@ -3985,13 -3999,13 +3999,13 @@@
  
    case 173:
  /* Line 1787 of yacc.c  */
- #line 1684 "awkgram.y"
 -#line 1690 "awkgram.y"
++#line 1698 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (2)]); }
      break;
  
    case 174:
  /* Line 1787 of yacc.c  */
- #line 1689 "awkgram.y"
 -#line 1695 "awkgram.y"
++#line 1703 "awkgram.y"
      {
                char *var_name = (yyvsp[(1) - (1)])->lextok;
  
@@@ -4003,7 -4017,7 +4017,7 @@@
  
    case 175:
  /* Line 1787 of yacc.c  */
- #line 1697 "awkgram.y"
 -#line 1703 "awkgram.y"
++#line 1711 "awkgram.y"
      {
                char *arr = (yyvsp[(1) - (2)])->lextok;
                (yyvsp[(1) - (2)])->memory = variable((yyvsp[(1) - 
(2)])->source_line, arr, Node_var_new);
@@@ -4014,7 -4028,7 +4028,7 @@@
  
    case 176:
  /* Line 1787 of yacc.c  */
- #line 1707 "awkgram.y"
 -#line 1713 "awkgram.y"
++#line 1721 "awkgram.y"
      {
                INSTRUCTION *ip = (yyvsp[(1) - (1)])->nexti;
                if (ip->opcode == Op_push
@@@ -4030,7 -4044,7 +4044,7 @@@
  
    case 177:
  /* Line 1787 of yacc.c  */
- #line 1719 "awkgram.y"
 -#line 1725 "awkgram.y"
++#line 1733 "awkgram.y"
      {
                (yyval) = list_append((yyvsp[(2) - (3)]), (yyvsp[(1) - (3)]));
                if ((yyvsp[(3) - (3)]) != NULL)
@@@ -4040,7 -4054,7 +4054,7 @@@
  
    case 178:
  /* Line 1787 of yacc.c  */
- #line 1728 "awkgram.y"
 -#line 1734 "awkgram.y"
++#line 1742 "awkgram.y"
      {
                (yyvsp[(1) - (1)])->opcode = Op_postincrement;
          }
@@@ -4048,7 -4062,7 +4062,7 @@@
  
    case 179:
  /* Line 1787 of yacc.c  */
- #line 1732 "awkgram.y"
 -#line 1738 "awkgram.y"
++#line 1746 "awkgram.y"
      {
                (yyvsp[(1) - (1)])->opcode = Op_postdecrement;
          }
@@@ -4056,43 -4070,43 +4070,43 @@@
  
    case 180:
  /* Line 1787 of yacc.c  */
- #line 1735 "awkgram.y"
 -#line 1741 "awkgram.y"
++#line 1749 "awkgram.y"
      { (yyval) = NULL; }
      break;
  
    case 182:
  /* Line 1787 of yacc.c  */
- #line 1743 "awkgram.y"
 -#line 1749 "awkgram.y"
++#line 1757 "awkgram.y"
      { yyerrok; }
      break;
  
    case 183:
  /* Line 1787 of yacc.c  */
- #line 1747 "awkgram.y"
 -#line 1753 "awkgram.y"
++#line 1761 "awkgram.y"
      { yyerrok; }
      break;
  
    case 186:
  /* Line 1787 of yacc.c  */
- #line 1756 "awkgram.y"
 -#line 1762 "awkgram.y"
++#line 1770 "awkgram.y"
      { yyerrok; }
      break;
  
    case 187:
  /* Line 1787 of yacc.c  */
- #line 1760 "awkgram.y"
 -#line 1766 "awkgram.y"
++#line 1774 "awkgram.y"
      { (yyval) = (yyvsp[(1) - (1)]); yyerrok; }
      break;
  
    case 188:
  /* Line 1787 of yacc.c  */
- #line 1764 "awkgram.y"
 -#line 1770 "awkgram.y"
++#line 1778 "awkgram.y"
      { yyerrok; }
      break;
  
  
  /* Line 1787 of yacc.c  */
- #line 4108 "awkgram.c"
 -#line 4114 "awkgram.c"
++#line 4122 "awkgram.c"
        default: break;
      }
    /* User semantic actions sometimes alter yychar, and that requires
@@@ -4322,7 -4336,7 +4336,7 @@@ yyreturn
  
  
  /* Line 2048 of yacc.c  */
- #line 1766 "awkgram.y"
 -#line 1772 "awkgram.y"
++#line 1780 "awkgram.y"
  
  
  struct token {
diff --cc doc/ChangeLog
index 8d19b09,054238e..6f390ae
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@@ -1,14 -1,9 +1,18 @@@
 +2012-10-05         Arnold D. Robbins     <address@hidden>
 +
 +      * Makefile.am (LN, install-data-hook, uninstall-hook): Removed. No
 +      longer needed since dgawk and pgawk are gone.
 +
  2012-10-02         Arnold D. Robbins     <address@hidden>
  
 +      * gawk.texi (Glossary). Correct the full name for `ISO' per
 +      bug report from William Bresler <address@hidden>. Add a link
 +      to the ISO website.
 +
+       * gawk.texi, gawk.1, awkcard.in: Document FUNCTAB, SYMTAB, and
+       PROCINFO["identifiers"]. Including that delete does not work
+       on FUNCTAB and SYMTAB.
+ 
  2012-09-23         Arnold D. Robbins     <address@hidden>
  
        * gawk.texi (Nextfile Statement): Document that it's now part of POSIX
diff --cc doc/gawk.info
index 1a28ab5,44b48e5..08fbc29
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@@ -28617,264 -28670,265 +28674,265 @@@ Node: Built-in Variables39387
  Node: User-modified394974
  Ref: User-modified-Footnote-1403329
  Node: Auto-set403391
- Ref: Auto-set-Footnote-1413299
- Node: ARGC and ARGV413504
- Node: Arrays417355
- Node: Array Basics418860
- Node: Array Intro419686
- Node: Reference to Elements424004
- Node: Assigning Elements426274
- Node: Array Example426765
- Node: Scanning an Array428497
- Node: Controlling Scanning430811
- Ref: Controlling Scanning-Footnote-1435744
- Node: Delete436060
- Ref: Delete-Footnote-1438825
- Node: Numeric Array Subscripts438882
- Node: Uninitialized Subscripts441065
- Node: Multi-dimensional442693
- Node: Multi-scanning445787
- Node: Arrays of Arrays447378
- Node: Functions452023
- Node: Built-in452845
- Node: Calling Built-in453923
- Node: Numeric Functions455911
- Ref: Numeric Functions-Footnote-1459743
- Ref: Numeric Functions-Footnote-2460100
- Ref: Numeric Functions-Footnote-3460148
- Node: String Functions460417
- Ref: String Functions-Footnote-1483914
- Ref: String Functions-Footnote-2484043
- Ref: String Functions-Footnote-3484291
- Node: Gory Details484378
- Ref: table-sub-escapes486057
- Ref: table-sub-posix-92487411
- Ref: table-sub-proposed488754
- Ref: table-posix-sub490104
- Ref: table-gensub-escapes491650
- Ref: Gory Details-Footnote-1492857
- Ref: Gory Details-Footnote-2492908
- Node: I/O Functions493059
- Ref: I/O Functions-Footnote-1499714
- Node: Time Functions499861
- Ref: Time Functions-Footnote-1510753
- Ref: Time Functions-Footnote-2510821
- Ref: Time Functions-Footnote-3510979
- Ref: Time Functions-Footnote-4511090
- Ref: Time Functions-Footnote-5511202
- Ref: Time Functions-Footnote-6511429
- Node: Bitwise Functions511695
- Ref: table-bitwise-ops512253
- Ref: Bitwise Functions-Footnote-1516474
- Node: Type Functions516658
- Node: I18N Functions517128
- Node: User-defined518755
- Node: Definition Syntax519559
- Ref: Definition Syntax-Footnote-1524469
- Node: Function Example524538
- Node: Function Caveats527132
- Node: Calling A Function527553
- Node: Variable Scope528668
- Node: Pass By Value/Reference530643
- Node: Return Statement534083
- Node: Dynamic Typing537064
- Node: Indirect Calls537799
- Node: Internationalization547484
- Node: I18N and L10N548910
- Node: Explaining gettext549596
- Ref: Explaining gettext-Footnote-1554662
- Ref: Explaining gettext-Footnote-2554846
- Node: Programmer i18n555011
- Node: Translator i18n559211
- Node: String Extraction560004
- Ref: String Extraction-Footnote-1560965
- Node: Printf Ordering561051
- Ref: Printf Ordering-Footnote-1563835
- Node: I18N Portability563899
- Ref: I18N Portability-Footnote-1566348
- Node: I18N Example566411
- Ref: I18N Example-Footnote-1569046
- Node: Gawk I18N569118
- Node: Advanced Features569735
- Node: Nondecimal Data571248
- Node: Array Sorting572831
- Node: Controlling Array Traversal573528
- Node: Array Sorting Functions581766
- Ref: Array Sorting Functions-Footnote-1585440
- Ref: Array Sorting Functions-Footnote-2585533
- Node: Two-way I/O585727
- Ref: Two-way I/O-Footnote-1591159
- Node: TCP/IP Networking591229
- Node: Profiling594073
- Node: Library Functions601527
- Ref: Library Functions-Footnote-1604534
- Node: Library Names604705
- Ref: Library Names-Footnote-1608176
- Ref: Library Names-Footnote-2608396
- Node: General Functions608482
- Node: Strtonum Function609435
- Node: Assert Function612365
- Node: Round Function615691
- Node: Cliff Random Function617234
- Node: Ordinal Functions618250
- Ref: Ordinal Functions-Footnote-1621320
- Ref: Ordinal Functions-Footnote-2621572
- Node: Join Function621781
- Ref: Join Function-Footnote-1623552
- Node: Getlocaltime Function623752
- Node: Data File Management627467
- Node: Filetrans Function628099
- Node: Rewind Function632238
- Node: File Checking633625
- Node: Empty Files634719
- Node: Ignoring Assigns636949
- Node: Getopt Function638502
- Ref: Getopt Function-Footnote-1649806
- Node: Passwd Functions650009
- Ref: Passwd Functions-Footnote-1658984
- Node: Group Functions659072
- Node: Walking Arrays667156
- Node: Sample Programs668725
- Node: Running Examples669390
- Node: Clones670118
- Node: Cut Program671342
- Node: Egrep Program681187
- Ref: Egrep Program-Footnote-1688960
- Node: Id Program689070
- Node: Split Program692686
- Ref: Split Program-Footnote-1696205
- Node: Tee Program696333
- Node: Uniq Program699136
- Node: Wc Program706565
- Ref: Wc Program-Footnote-1710831
- Ref: Wc Program-Footnote-2711031
- Node: Miscellaneous Programs711123
- Node: Dupword Program712311
- Node: Alarm Program714342
- Node: Translate Program719091
- Ref: Translate Program-Footnote-1723478
- Ref: Translate Program-Footnote-2723706
- Node: Labels Program723840
- Ref: Labels Program-Footnote-1727211
- Node: Word Sorting727295
- Node: History Sorting731179
- Node: Extract Program733018
- Ref: Extract Program-Footnote-1740501
- Node: Simple Sed740629
- Node: Igawk Program743691
- Ref: Igawk Program-Footnote-1758848
- Ref: Igawk Program-Footnote-2759049
- Node: Anagram Program759187
- Node: Signature Program762255
- Node: Debugger763355
- Node: Debugging764321
- Node: Debugging Concepts764754
- Node: Debugging Terms766610
- Node: Awk Debugging769207
- Node: Sample Debugging Session770099
- Node: Debugger Invocation770619
- Node: Finding The Bug771948
- Node: List of Debugger Commands778436
- Node: Breakpoint Control779770
- Node: Debugger Execution Control783434
- Node: Viewing And Changing Data786794
- Node: Execution Stack790150
- Node: Debugger Info791617
- Node: Miscellaneous Debugger Commands795598
- Node: Readline Support801043
- Node: Limitations801874
- Node: Arbitrary Precision Arithmetic804126
- Ref: Arbitrary Precision Arithmetic-Footnote-1805768
- Node: General Arithmetic805916
- Node: Floating Point Issues807636
- Node: String Conversion Precision808517
- Ref: String Conversion Precision-Footnote-1810223
- Node: Unexpected Results810332
- Node: POSIX Floating Point Problems812485
- Ref: POSIX Floating Point Problems-Footnote-1816310
- Node: Integer Programming816348
- Node: Floating-point Programming818101
- Ref: Floating-point Programming-Footnote-1824410
- Node: Floating-point Representation824674
- Node: Floating-point Context825839
- Ref: table-ieee-formats826681
- Node: Rounding Mode828065
- Ref: table-rounding-modes828544
- Ref: Rounding Mode-Footnote-1831548
- Node: Gawk and MPFR831729
- Node: Arbitrary Precision Floats832971
- Ref: Arbitrary Precision Floats-Footnote-1835400
- Node: Setting Precision835711
- Node: Setting Rounding Mode838444
- Ref: table-gawk-rounding-modes838848
- Node: Floating-point Constants840028
- Node: Changing Precision841452
- Ref: Changing Precision-Footnote-1842852
- Node: Exact Arithmetic843026
- Node: Arbitrary Precision Integers846134
- Ref: Arbitrary Precision Integers-Footnote-1849134
- Node: Dynamic Extensions849281
- Node: Plugin License850199
- Node: Sample Library850813
- Node: Internal File Description851497
- Node: Internal File Ops855210
- Ref: Internal File Ops-Footnote-1859773
- Node: Using Internal File Ops859913
- Node: Language History862289
- Node: V7/SVR3.1863811
- Node: SVR4866132
- Node: POSIX867574
- Node: BTL868582
- Node: POSIX/GNU869316
- Node: Common Extensions874851
- Node: Ranges and Locales875958
- Ref: Ranges and Locales-Footnote-1880576
- Ref: Ranges and Locales-Footnote-2880603
- Ref: Ranges and Locales-Footnote-3880863
- Node: Contributors881084
- Node: Installation885380
- Node: Gawk Distribution886274
- Node: Getting886758
- Node: Extracting887584
- Node: Distribution contents889276
- Node: Unix Installation894498
- Node: Quick Installation895115
- Node: Additional Configuration Options897077
- Node: Configuration Philosophy898554
- Node: Non-Unix Installation900896
- Node: PC Installation901354
- Node: PC Binary Installation902653
- Node: PC Compiling904501
- Node: PC Testing907445
- Node: PC Using908621
- Node: Cygwin912806
- Node: MSYS913806
- Node: VMS Installation914320
- Node: VMS Compilation914923
- Ref: VMS Compilation-Footnote-1915930
- Node: VMS Installation Details915988
- Node: VMS Running917623
- Node: VMS Old Gawk919230
- Node: Bugs919704
- Node: Other Versions923556
- Node: Notes928871
- Node: Compatibility Mode929458
- Node: Additions930241
- Node: Accessing The Source931168
- Node: Adding Code932594
- Node: New Ports938636
- Node: Derived Files942771
- Ref: Derived Files-Footnote-1948076
- Ref: Derived Files-Footnote-2948110
- Ref: Derived Files-Footnote-3948710
- Node: Future Extensions948808
- Node: Basic Concepts950295
- Node: Basic High Level950976
- Ref: Basic High Level-Footnote-1955011
- Node: Basic Data Typing955196
- Node: Glossary958551
- Node: Copying983726
- Node: GNU Free Documentation License1021283
- Node: Index1046420
+ Ref: Auto-set-Footnote-1415085
+ Ref: Auto-set-Footnote-2415290
+ Node: ARGC and ARGV415346
+ Node: Arrays419197
+ Node: Array Basics420702
+ Node: Array Intro421528
+ Node: Reference to Elements425846
+ Node: Assigning Elements428116
+ Node: Array Example428607
+ Node: Scanning an Array430339
+ Node: Controlling Scanning432653
+ Ref: Controlling Scanning-Footnote-1437586
+ Node: Delete437902
+ Ref: Delete-Footnote-1440667
+ Node: Numeric Array Subscripts440724
+ Node: Uninitialized Subscripts442907
+ Node: Multi-dimensional444535
+ Node: Multi-scanning447629
+ Node: Arrays of Arrays449220
+ Node: Functions453865
+ Node: Built-in454687
+ Node: Calling Built-in455765
+ Node: Numeric Functions457753
+ Ref: Numeric Functions-Footnote-1461585
+ Ref: Numeric Functions-Footnote-2461942
+ Ref: Numeric Functions-Footnote-3461990
+ Node: String Functions462259
+ Ref: String Functions-Footnote-1485756
+ Ref: String Functions-Footnote-2485885
+ Ref: String Functions-Footnote-3486133
+ Node: Gory Details486220
+ Ref: table-sub-escapes487899
+ Ref: table-sub-posix-92489253
+ Ref: table-sub-proposed490596
+ Ref: table-posix-sub491946
+ Ref: table-gensub-escapes493492
+ Ref: Gory Details-Footnote-1494699
+ Ref: Gory Details-Footnote-2494750
+ Node: I/O Functions494901
+ Ref: I/O Functions-Footnote-1501556
+ Node: Time Functions501703
+ Ref: Time Functions-Footnote-1512595
+ Ref: Time Functions-Footnote-2512663
+ Ref: Time Functions-Footnote-3512821
+ Ref: Time Functions-Footnote-4512932
+ Ref: Time Functions-Footnote-5513044
+ Ref: Time Functions-Footnote-6513271
+ Node: Bitwise Functions513537
+ Ref: table-bitwise-ops514095
+ Ref: Bitwise Functions-Footnote-1518316
+ Node: Type Functions518500
+ Node: I18N Functions518970
+ Node: User-defined520597
+ Node: Definition Syntax521401
+ Ref: Definition Syntax-Footnote-1526311
+ Node: Function Example526380
+ Node: Function Caveats528974
+ Node: Calling A Function529395
+ Node: Variable Scope530510
+ Node: Pass By Value/Reference532485
+ Node: Return Statement535925
+ Node: Dynamic Typing538906
+ Node: Indirect Calls539641
+ Node: Internationalization549326
+ Node: I18N and L10N550752
+ Node: Explaining gettext551438
+ Ref: Explaining gettext-Footnote-1556504
+ Ref: Explaining gettext-Footnote-2556688
+ Node: Programmer i18n556853
+ Node: Translator i18n561053
+ Node: String Extraction561846
+ Ref: String Extraction-Footnote-1562807
+ Node: Printf Ordering562893
+ Ref: Printf Ordering-Footnote-1565677
+ Node: I18N Portability565741
+ Ref: I18N Portability-Footnote-1568190
+ Node: I18N Example568253
+ Ref: I18N Example-Footnote-1570888
+ Node: Gawk I18N570960
+ Node: Advanced Features571577
+ Node: Nondecimal Data573090
+ Node: Array Sorting574673
+ Node: Controlling Array Traversal575370
+ Node: Array Sorting Functions583608
+ Ref: Array Sorting Functions-Footnote-1587282
+ Ref: Array Sorting Functions-Footnote-2587375
+ Node: Two-way I/O587569
+ Ref: Two-way I/O-Footnote-1593001
+ Node: TCP/IP Networking593071
+ Node: Profiling595915
+ Node: Library Functions603369
+ Ref: Library Functions-Footnote-1606376
+ Node: Library Names606547
+ Ref: Library Names-Footnote-1610018
+ Ref: Library Names-Footnote-2610238
+ Node: General Functions610324
+ Node: Strtonum Function611277
+ Node: Assert Function614207
+ Node: Round Function617533
+ Node: Cliff Random Function619076
+ Node: Ordinal Functions620092
+ Ref: Ordinal Functions-Footnote-1623162
+ Ref: Ordinal Functions-Footnote-2623414
+ Node: Join Function623623
+ Ref: Join Function-Footnote-1625394
+ Node: Getlocaltime Function625594
+ Node: Data File Management629309
+ Node: Filetrans Function629941
+ Node: Rewind Function634080
+ Node: File Checking635467
+ Node: Empty Files636561
+ Node: Ignoring Assigns638791
+ Node: Getopt Function640344
+ Ref: Getopt Function-Footnote-1651648
+ Node: Passwd Functions651851
+ Ref: Passwd Functions-Footnote-1660826
+ Node: Group Functions660914
+ Node: Walking Arrays668998
+ Node: Sample Programs670567
+ Node: Running Examples671232
+ Node: Clones671960
+ Node: Cut Program673184
+ Node: Egrep Program683029
+ Ref: Egrep Program-Footnote-1690802
+ Node: Id Program690912
+ Node: Split Program694528
+ Ref: Split Program-Footnote-1698047
+ Node: Tee Program698175
+ Node: Uniq Program700978
+ Node: Wc Program708407
+ Ref: Wc Program-Footnote-1712673
+ Ref: Wc Program-Footnote-2712873
+ Node: Miscellaneous Programs712965
+ Node: Dupword Program714153
+ Node: Alarm Program716184
+ Node: Translate Program720933
+ Ref: Translate Program-Footnote-1725320
+ Ref: Translate Program-Footnote-2725548
+ Node: Labels Program725682
+ Ref: Labels Program-Footnote-1729053
+ Node: Word Sorting729137
+ Node: History Sorting733021
+ Node: Extract Program734860
+ Ref: Extract Program-Footnote-1742343
+ Node: Simple Sed742471
+ Node: Igawk Program745533
+ Ref: Igawk Program-Footnote-1760690
+ Ref: Igawk Program-Footnote-2760891
+ Node: Anagram Program761029
+ Node: Signature Program764097
+ Node: Debugger765197
+ Node: Debugging766163
+ Node: Debugging Concepts766596
+ Node: Debugging Terms768452
+ Node: Awk Debugging771049
+ Node: Sample Debugging Session771941
+ Node: Debugger Invocation772461
+ Node: Finding The Bug773790
+ Node: List of Debugger Commands780278
+ Node: Breakpoint Control781612
+ Node: Debugger Execution Control785276
+ Node: Viewing And Changing Data788636
+ Node: Execution Stack791992
+ Node: Debugger Info793459
+ Node: Miscellaneous Debugger Commands797440
+ Node: Readline Support802885
+ Node: Limitations803716
+ Node: Arbitrary Precision Arithmetic805968
+ Ref: Arbitrary Precision Arithmetic-Footnote-1807610
+ Node: General Arithmetic807758
+ Node: Floating Point Issues809478
+ Node: String Conversion Precision810359
+ Ref: String Conversion Precision-Footnote-1812065
+ Node: Unexpected Results812174
+ Node: POSIX Floating Point Problems814327
+ Ref: POSIX Floating Point Problems-Footnote-1818152
+ Node: Integer Programming818190
+ Node: Floating-point Programming819943
+ Ref: Floating-point Programming-Footnote-1826252
+ Node: Floating-point Representation826516
+ Node: Floating-point Context827681
+ Ref: table-ieee-formats828523
+ Node: Rounding Mode829907
+ Ref: table-rounding-modes830386
+ Ref: Rounding Mode-Footnote-1833390
+ Node: Gawk and MPFR833571
+ Node: Arbitrary Precision Floats834813
+ Ref: Arbitrary Precision Floats-Footnote-1837242
+ Node: Setting Precision837553
+ Node: Setting Rounding Mode840286
+ Ref: table-gawk-rounding-modes840690
+ Node: Floating-point Constants841870
+ Node: Changing Precision843294
+ Ref: Changing Precision-Footnote-1844694
+ Node: Exact Arithmetic844868
+ Node: Arbitrary Precision Integers847976
+ Ref: Arbitrary Precision Integers-Footnote-1850976
+ Node: Dynamic Extensions851123
+ Node: Plugin License852041
+ Node: Sample Library852655
+ Node: Internal File Description853339
+ Node: Internal File Ops857052
+ Ref: Internal File Ops-Footnote-1861615
+ Node: Using Internal File Ops861755
+ Node: Language History864131
+ Node: V7/SVR3.1865653
+ Node: SVR4867974
+ Node: POSIX869416
+ Node: BTL870424
+ Node: POSIX/GNU871158
+ Node: Common Extensions876693
+ Node: Ranges and Locales877800
+ Ref: Ranges and Locales-Footnote-1882418
+ Ref: Ranges and Locales-Footnote-2882445
+ Ref: Ranges and Locales-Footnote-3882705
+ Node: Contributors882926
+ Node: Installation887222
+ Node: Gawk Distribution888116
+ Node: Getting888600
+ Node: Extracting889426
+ Node: Distribution contents891118
+ Node: Unix Installation896340
+ Node: Quick Installation896957
+ Node: Additional Configuration Options898919
+ Node: Configuration Philosophy900396
+ Node: Non-Unix Installation902738
+ Node: PC Installation903196
+ Node: PC Binary Installation904495
+ Node: PC Compiling906343
+ Node: PC Testing909287
+ Node: PC Using910463
+ Node: Cygwin914648
+ Node: MSYS915648
+ Node: VMS Installation916162
+ Node: VMS Compilation916765
+ Ref: VMS Compilation-Footnote-1917772
+ Node: VMS Installation Details917830
+ Node: VMS Running919465
+ Node: VMS Old Gawk921072
+ Node: Bugs921546
+ Node: Other Versions925398
+ Node: Notes930713
+ Node: Compatibility Mode931300
+ Node: Additions932083
+ Node: Accessing The Source933010
+ Node: Adding Code934436
+ Node: New Ports940478
+ Node: Derived Files944613
+ Ref: Derived Files-Footnote-1949918
+ Ref: Derived Files-Footnote-2949952
+ Ref: Derived Files-Footnote-3950552
+ Node: Future Extensions950650
+ Node: Basic Concepts952137
+ Node: Basic High Level952818
+ Ref: Basic High Level-Footnote-1956853
+ Node: Basic Data Typing957038
+ Node: Glossary960393
 -Node: Copying985369
 -Node: GNU Free Documentation License1022926
 -Node: Index1048063
++Node: Copying985568
++Node: GNU Free Documentation License1023125
++Node: Index1048262
  
  End Tag Table
diff --cc test/ChangeLog
index 3f5a7bc,ff38cdc..bd327f2
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@@ -1,10 -1,12 +1,17 @@@
 -2012-10-04         Arnold D. Robbins     <address@hidden>
 +2012-10-04         Akim Demaille         <address@hidden>
 +
 +      Fix VPATH builds.
 +
 +      * Makefile.am (shlib-tests): config.h is in builddir.
 +      (beginfile2): So is gawk itself.
  
+       * Makefile.am (functab1, functab2, functab3, functab4, id, symtab1,
+       symtab2, symtab3): New tests.
+       * functab1.awk, functab1.ok, functab2.awk, functab2.ok, functab3.awk,
+       functab3.ok, functab4.awk, functab4.ok, id.awk, id.ok, symtab1.awk,
+       symtab1.ok, symtab2.awk, symtab2.ok, symtab3.awk, symtab3.ok:
+       New files.
+ 
  2012-09-23         Arnold D. Robbins     <address@hidden>
  
        * lintwarn.ok: Updated.

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

Summary of changes:
 ChangeLog         |   48 +++++
 awk.h             |   32 ++--
 awkgram.c         |  272 +++++++++++++------------
 awkgram.y         |   14 ++
 doc/ChangeLog     |    4 +
 doc/awkcard.in    |   24 ++-
 doc/gawk.1        |   66 ++++++-
 doc/gawk.info     |  602 +++++++++++++++++++++++++++++------------------------
 doc/gawk.texi     |   64 ++++++
 eval.c            |    1 -
 interpret.h       |   47 ++++-
 main.c            |    8 +-
 profile.c         |    9 +-
 symbol.c          |  302 +++++++++++++++------------
 test/ChangeLog    |    7 +
 test/Makefile.am  |   91 +++++----
 test/Makefile.in  |  130 +++++++++----
 test/Maketests    |   40 ++++
 test/functab1.awk |    3 +
 test/functab1.ok  |    2 +
 test/functab2.awk |    8 +
 test/functab2.ok  |    2 +
 test/functab3.awk |   10 +
 test/functab3.ok  |    2 +
 test/functab4.awk |   14 ++
 test/functab4.ok  |    3 +
 test/id.awk       |   11 +
 test/id.ok        |   32 +++
 test/symtab1.awk  |   18 ++
 test/symtab1.ok   |   31 +++
 test/symtab2.awk  |    6 +
 test/symtab2.ok   |    2 +
 test/symtab3.awk  |    1 +
 test/symtab3.ok   |    2 +
 34 files changed, 1259 insertions(+), 649 deletions(-)
 create mode 100644 test/functab1.awk
 create mode 100644 test/functab1.ok
 create mode 100644 test/functab2.awk
 create mode 100644 test/functab2.ok
 create mode 100644 test/functab3.awk
 create mode 100644 test/functab3.ok
 create mode 100644 test/functab4.awk
 create mode 100644 test/functab4.ok
 create mode 100644 test/id.awk
 create mode 100644 test/id.ok
 create mode 100644 test/symtab1.awk
 create mode 100644 test/symtab1.ok
 create mode 100644 test/symtab2.awk
 create mode 100644 test/symtab2.ok
 create mode 100644 test/symtab3.awk
 create mode 100644 test/symtab3.ok


hooks/post-receive
-- 
gawk



reply via email to

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