gawk-diffs
[Top][All Lists]
Advanced

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

[gawk-diffs] [SCM] gawk branch, feature/shadow-builtins, created. gawk-4


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, feature/shadow-builtins, created. gawk-4.1.0-1293-g5521633
Date: Wed, 15 Apr 2015 19:39:39 +0000

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

The branch, feature/shadow-builtins has been created
        at  5521633779b34da5d4fdd2728c48e1636b0bde7a (commit)

- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=5521633779b34da5d4fdd2728c48e1636b0bde7a

commit 5521633779b34da5d4fdd2728c48e1636b0bde7a
Author: Arnold D. Robbins <address@hidden>
Date:   Wed Apr 15 22:38:55 2015 +0300

    Let function parameters shadow gawk extension builtins.

diff --git a/ChangeLog b/ChangeLog
index 0790f02..768ef7e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2015-04-15         Arnold D. Robbins     <address@hidden>
+
+       Let parameter names shadow the names of gawk additional built-ins.
+
+       * awkgram.y (want_param_names): New variable.
+       (yylex): Check it before returning a built-in token.
+       (grammar): Set and clear it in the right places.
+
 2015-04-14         Arnold D. Robbins     <address@hidden>
 
        * builtin.c (do_strftime): Restore checking for negative result and
diff --git a/awkgram.c b/awkgram.c
index 799570e..057f826 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -129,6 +129,7 @@ static void check_comment(void);
 static bool at_seen = false;
 static bool want_source = false;
 static bool want_regexp = false;       /* lexical scanning kludge */
+static bool want_param_names = false;  /* ditto */
 static char *in_function;              /* parsing kludge */
 static int rule = 0;
 
@@ -202,7 +203,7 @@ extern double fmod(double x, double y);
 
 #define YYSTYPE INSTRUCTION *
 
-#line 206 "awkgram.c" /* yacc.c:339  */
+#line 207 "awkgram.c" /* yacc.c:339  */
 
 # ifndef YY_NULLPTR
 #  if defined __cplusplus && 201103L <= __cplusplus
@@ -356,7 +357,7 @@ int yyparse (void);
 
 /* Copy the second part of user declarations.  */
 
-#line 360 "awkgram.c" /* yacc.c:358  */
+#line 361 "awkgram.c" /* yacc.c:358  */
 
 #ifdef short
 # undef short
@@ -598,16 +599,16 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  2
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   1155
+#define YYLAST   1098
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  75
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  65
+#define YYNNTS  66
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  188
+#define YYNRULES  189
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  335
+#define YYNSTATES  336
 
 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
    by yylex, with out-of-bounds checking.  */
@@ -658,25 +659,25 @@ static const yytype_uint8 yytranslate[] =
   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   205,   205,   207,   212,   213,   217,   229,   234,   245,
-     251,   257,   266,   274,   276,   281,   289,   291,   297,   305,
-     315,   345,   359,   373,   381,   392,   404,   406,   408,   414,
-     422,   423,   427,   462,   461,   495,   497,   502,   508,   536,
-     541,   542,   546,   548,   550,   557,   647,   689,   731,   844,
-     851,   858,   868,   877,   886,   895,   906,   922,   921,   945,
-     957,   957,  1055,  1055,  1088,  1118,  1124,  1125,  1131,  1132,
-    1139,  1144,  1156,  1170,  1172,  1180,  1185,  1187,  1195,  1197,
-    1206,  1207,  1215,  1220,  1220,  1231,  1235,  1243,  1244,  1247,
-    1249,  1254,  1255,  1264,  1265,  1270,  1275,  1281,  1283,  1285,
-    1292,  1293,  1299,  1300,  1305,  1307,  1312,  1314,  1322,  1327,
-    1336,  1343,  1345,  1347,  1363,  1373,  1380,  1382,  1387,  1389,
-    1391,  1399,  1401,  1406,  1408,  1413,  1415,  1417,  1467,  1469,
-    1471,  1473,  1475,  1477,  1479,  1481,  1495,  1500,  1505,  1530,
-    1536,  1538,  1540,  1542,  1544,  1546,  1551,  1555,  1587,  1589,
-    1595,  1601,  1614,  1615,  1616,  1621,  1626,  1630,  1634,  1649,
-    1662,  1667,  1704,  1733,  1734,  1740,  1741,  1746,  1748,  1755,
-    1772,  1789,  1791,  1798,  1803,  1811,  1821,  1833,  1842,  1846,
-    1850,  1854,  1858,  1862,  1865,  1867,  1871,  1875,  1879
+       0,   206,   206,   208,   213,   214,   218,   230,   235,   246,
+     253,   259,   268,   276,   278,   283,   291,   293,   299,   307,
+     317,   347,   361,   375,   383,   394,   406,   408,   410,   416,
+     424,   425,   429,   429,   464,   463,   497,   499,   504,   510,
+     538,   543,   544,   548,   550,   552,   559,   649,   691,   733,
+     846,   853,   860,   870,   879,   888,   897,   908,   924,   923,
+     947,   959,   959,  1057,  1057,  1090,  1120,  1126,  1127,  1133,
+    1134,  1141,  1146,  1158,  1172,  1174,  1182,  1187,  1189,  1197,
+    1199,  1208,  1209,  1217,  1222,  1222,  1233,  1237,  1245,  1246,
+    1249,  1251,  1256,  1257,  1266,  1267,  1272,  1277,  1283,  1285,
+    1287,  1294,  1295,  1301,  1302,  1307,  1309,  1314,  1316,  1324,
+    1329,  1338,  1345,  1347,  1349,  1365,  1375,  1382,  1384,  1389,
+    1391,  1393,  1401,  1403,  1408,  1410,  1415,  1417,  1419,  1469,
+    1471,  1473,  1475,  1477,  1479,  1481,  1483,  1497,  1502,  1507,
+    1532,  1538,  1540,  1542,  1544,  1546,  1548,  1553,  1557,  1589,
+    1591,  1597,  1603,  1616,  1617,  1618,  1623,  1628,  1632,  1636,
+    1651,  1664,  1669,  1706,  1735,  1736,  1742,  1743,  1748,  1750,
+    1757,  1774,  1791,  1793,  1800,  1805,  1813,  1823,  1835,  1844,
+    1848,  1852,  1856,  1860,  1864,  1867,  1869,  1873,  1877,  1881
 };
 #endif
 
@@ -698,11 +699,11 @@ static const char *const yytname[] =
   "'>'", "'+'", "'-'", "'*'", "'/'", "'%'", "'!'", "UNARY", "'^'", "'$'",
   "'('", "')'", "'@'", "'['", "']'", "'{'", "'}'", "';'", "$accept",
   "program", "rule", "source", "library", "pattern", "action", "func_name",
-  "lex_builtin", "function_prologue", "regexp", "address@hidden", "a_slash",
-  "statements", "statement_term", "statement", "non_compound_stmt", 
"address@hidden",
-  "simple_stmt", "address@hidden", "address@hidden", "opt_simple_stmt", 
"case_statements",
+  "lex_builtin", "function_prologue", "address@hidden", "regexp", 
"address@hidden", "a_slash",
+  "statements", "statement_term", "statement", "non_compound_stmt", 
"address@hidden",
+  "simple_stmt", "address@hidden", "address@hidden", "opt_simple_stmt", 
"case_statements",
   "case_statement", "case_value", "print", "print_expression_list",
-  "output_redir", "address@hidden", "if_statement", "nls", "opt_nls", 
"input_redir",
+  "output_redir", "address@hidden", "if_statement", "nls", "opt_nls", 
"input_redir",
   "opt_param_list", "param_list", "opt_exp", "opt_expression_list",
   "expression_list", "exp", "assign_operator", "relop_or_less", "a_relop",
   "common_exp", "simp_exp", "simp_exp_nc", "non_post_simp_exp",
@@ -729,54 +730,54 @@ static const yytype_uint16 yytoknum[] =
 };
 # endif
 
-#define YYPACT_NINF -273
+#define YYPACT_NINF -271
 
 #define yypact_value_is_default(Yystate) \
-  (!!((Yystate) == (-273)))
+  (!!((Yystate) == (-271)))
 
-#define YYTABLE_NINF -104
+#define YYTABLE_NINF -105
 
 #define yytable_value_is_error(Yytable_value) \
-  (!!((Yytable_value) == (-104)))
+  (!!((Yytable_value) == (-105)))
 
   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
      STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
-    -273,   376,  -273,  -273,   -27,   -21,  -273,  -273,  -273,  -273,
-     157,  -273,  -273,    11,    11,    11,    -5,    -3,  -273,  -273,
-    -273,  1019,  1019,  -273,  1019,  1065,   821,   116,  -273,   -20,
-       1,  -273,  -273,    35,   758,   992,   252,   296,  -273,  -273,
-    -273,  -273,   233,   789,   821,  -273,     2,  -273,  -273,  -273,
-    -273,  -273,    63,    54,  -273,    69,  -273,  -273,  -273,   789,
-     789,   127,    87,   115,    87,    87,  1019,   131,  -273,  -273,
-      55,   295,    40,    47,  -273,    83,  -273,  -273,  -273,    35,
-    -273,    83,  -273,   151,  -273,  -273,  1019,   132,  1019,  1019,
-    1019,    83,  -273,  -273,  -273,  1019,   124,   252,  1019,  1019,
-    1019,  1019,  1019,  1019,  1019,  1019,  1019,  1019,  1019,  1019,
-    -273,  -273,  -273,  -273,   152,  1019,   100,    16,  1034,    37,
-    -273,  -273,  -273,    43,  1019,  -273,   100,   100,   295,  -273,
-    -273,  -273,  1019,    83,  -273,   137,   867,  -273,  -273,    75,
-     -19,  -273,    77,   -19,    35,  -273,   596,  -273,  -273,   123,
-    -273,   141,   175,  1098,  1019,   161,    11,   -26,   -26,    87,
-      87,    87,    87,   -26,   -26,    87,    87,    87,    87,  -273,
-    1034,  -273,  -273,  -273,  -273,   100,    65,   252,  -273,  -273,
-    1034,  -273,   132,  -273,  1034,  -273,  -273,  -273,  -273,  -273,
-     104,  -273,    26,   118,   119,    83,   121,   -19,   -19,  -273,
-    -273,   -19,  1019,   -19,    83,  -273,  -273,   -19,  -273,  -273,
-    1034,  -273,   117,    83,  1019,  1034,  -273,    83,  -273,   112,
-    -273,  1019,  1019,  -273,   188,  1019,  1019,   710,   900,  -273,
-    -273,  -273,   -19,  1034,  -273,  -273,  -273,   642,   596,    83,
-    -273,  -273,  1034,  -273,  -273,  -273,   295,   -19,   -21,   126,
-     295,   295,   169,   -13,  -273,   117,  -273,   821,   186,  -273,
-    -273,  -273,    83,  -273,  -273,    13,  -273,  -273,  -273,    83,
-      83,   139,   132,    83,    55,  -273,  -273,   710,  -273,  -273,
-       1,   710,  1019,   100,   743,   137,  1019,   192,  -273,  -273,
-     295,    83,   286,    83,   992,    83,    44,    83,   710,    83,
-     946,   710,  -273,   247,   154,  -273,   156,  -273,  -273,   946,
-     100,  -273,  -273,  -273,   226,   228,  -273,   154,  -273,    83,
-    -273,   100,    83,  -273,  -273,    83,  -273,    83,   710,  -273,
-     448,   710,  -273,   522,  -273
+    -271,   359,  -271,  -271,   -35,     3,  -271,  -271,  -271,  -271,
+     241,  -271,  -271,    42,    42,    42,     9,    50,  -271,  -271,
+    -271,  1002,  1002,  -271,  1002,   287,   804,    31,  -271,    83,
+       5,  -271,  -271,    72,   219,   975,   426,   456,  -271,  -271,
+    -271,  -271,   162,   772,   804,  -271,    14,  -271,  -271,  -271,
+    -271,  -271,    77,    66,  -271,    80,  -271,  -271,  -271,   772,
+     772,   168,    93,    -6,    93,    93,  1002,    10,  -271,  -271,
+      27,   333,    44,   124,  -271,   114,  -271,  -271,  -271,    72,
+    -271,   114,  -271,   173,  -271,  -271,  1002,   169,  1002,  1002,
+    1002,   114,  -271,  -271,  -271,  1002,   142,   426,  1002,  1002,
+    1002,  1002,  1002,  1002,  1002,  1002,  1002,  1002,  1002,  1002,
+    -271,  -271,  -271,  -271,   172,  1002,   119,   158,   741,    15,
+    -271,  -271,  -271,  -271,  1002,  -271,   119,   119,   333,  -271,
+    -271,  -271,  1002,   114,  -271,   151,   850,  -271,  -271,     4,
+     -10,  -271,    17,   -10,    72,  -271,   579,  -271,  -271,    62,
+    -271,   249,   373,  1041,  1002,   104,    42,   -13,   -13,    93,
+      93,    93,    93,   -13,   -13,    93,    93,    93,    93,  -271,
+     741,  -271,  -271,    25,   426,  -271,  -271,   741,  -271,   169,
+    -271,   741,  -271,  -271,  -271,  -271,  -271,   125,  -271,    23,
+     127,   133,   114,   134,   -10,   -10,  -271,  -271,   -10,  1002,
+     -10,   114,  -271,  -271,   -10,  -271,  -271,   741,  -271,   130,
+     114,  1002,   741,  -271,  -271,  -271,   119,    61,  -271,  1002,
+    1002,  -271,   189,  1002,  1002,   693,   883,  -271,  -271,  -271,
+     -10,   741,  -271,  -271,  -271,   625,   579,   114,  -271,  -271,
+     741,   114,  -271,    35,   333,   -10,     3,   148,   333,   333,
+     194,   -19,  -271,   130,  -271,   804,   226,  -271,  -271,  -271,
+    -271,  -271,  -271,   114,  -271,  -271,    41,  -271,  -271,  -271,
+     114,   114,   175,   169,   114,    27,  -271,  -271,   693,  -271,
+    -271,     5,   693,  1002,   119,   726,   151,  1002,   220,  -271,
+    -271,   333,   114,   155,   114,   975,   114,   126,   114,   693,
+     114,   929,   693,  -271,   384,   192,  -271,   176,  -271,  -271,
+     929,   119,  -271,  -271,  -271,   243,   245,  -271,   192,  -271,
+     114,  -271,   119,   114,  -271,  -271,   114,  -271,   114,   693,
+    -271,   431,   693,  -271,   505,  -271
 };
 
   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -784,64 +785,64 @@ static const yytype_int16 yypact[] =
      means the default is an error.  */
 static const yytype_uint8 yydefact[] =
 {
-       2,     0,     1,     6,     0,   174,   156,   157,    21,    22,
-       0,    23,    24,   163,     0,     0,     0,   151,     5,    87,
-      36,     0,     0,    35,     0,     0,     0,     0,     3,     0,
-       0,   146,    33,     4,    19,   117,   125,   126,   128,   152,
-     160,   176,   153,     0,     0,   171,     0,   175,    27,    26,
-      30,    31,     0,     0,    28,    91,   164,   154,   155,     0,
-       0,     0,   159,   153,   158,   147,     0,   180,   153,   106,
-       0,   104,     0,     0,   161,    89,   186,     7,     8,    40,
-      37,    89,     9,     0,    88,   121,     0,     0,     0,     0,
-       0,    89,   122,   124,   123,     0,     0,   127,     0,     0,
+       2,     0,     1,     6,     0,   175,   157,   158,    21,    22,
+       0,    23,    24,   164,     0,     0,     0,   152,     5,    88,
+      37,     0,     0,    36,     0,     0,     0,     0,     3,     0,
+       0,   147,    34,     4,    19,   118,   126,   127,   129,   153,
+     161,   177,   154,     0,     0,   172,     0,   176,    27,    26,
+      30,    31,     0,     0,    28,    92,   165,   155,   156,     0,
+       0,     0,   160,   154,   159,   148,     0,   181,   154,   107,
+       0,   105,     0,     0,   162,    90,   187,     7,     8,    41,
+      38,    90,     9,     0,    89,   122,     0,     0,     0,     0,
+       0,    90,   123,   125,   124,     0,     0,   128,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     119,   118,   136,   137,     0,     0,     0,     0,   104,     0,
-     173,   172,    29,     0,     0,   135,     0,     0,     0,   178,
-     179,   177,   107,    89,   183,     0,     0,   148,    14,     0,
-       0,    17,     0,     0,    90,   181,     0,    41,    34,   113,
-     114,   111,   112,     0,     0,   115,   163,   133,   134,   130,
-     131,   132,   129,   144,   145,   141,   142,   143,   140,   120,
-     110,   162,   170,    97,    95,     0,     0,    92,   149,   150,
-     108,   188,     0,   109,   105,    13,    10,    16,    11,    39,
-       0,    57,     0,     0,     0,    89,     0,     0,     0,    78,
-      79,     0,   100,     0,    89,    38,    51,     0,    60,    44,
-      65,    37,   184,    89,     0,    20,   139,    89,    98,     0,
-     138,     0,   100,    62,     0,     0,     0,     0,    66,    52,
-      53,    54,     0,   101,    55,   182,    59,     0,     0,    89,
-     185,    42,   116,    32,    99,    96,     0,     0,   165,     0,
-       0,     0,     0,   174,    67,     0,    56,     0,    82,    80,
-      43,    25,    89,    58,    63,     0,   167,   169,    64,    89,
-      89,     0,     0,    89,     0,    83,    61,     0,   166,   168,
-       0,     0,     0,     0,     0,    81,     0,    85,    68,    46,
-       0,    89,     0,    89,    84,    89,     0,    89,     0,    89,
-      66,     0,    70,     0,     0,    69,     0,    47,    48,    66,
-       0,    86,    73,    76,     0,     0,    77,     0,   187,    89,
-      45,     0,    89,    75,    74,    89,    37,    89,     0,    37,
-       0,     0,    50,     0,    49
+     120,   119,   137,   138,     0,     0,     0,     0,   105,     0,
+     174,   173,    29,    32,     0,   136,     0,     0,     0,   179,
+     180,   178,   108,    90,   184,     0,     0,   149,    14,     0,
+       0,    17,     0,     0,    91,   182,     0,    42,    35,   114,
+     115,   112,   113,     0,     0,   116,   164,   134,   135,   131,
+     132,   133,   130,   145,   146,   142,   143,   144,   141,   121,
+     111,   163,   171,     0,    93,   150,   151,   109,   189,     0,
+     110,   106,    13,    10,    16,    11,    40,     0,    58,     0,
+       0,     0,    90,     0,     0,     0,    79,    80,     0,   101,
+       0,    90,    39,    52,     0,    61,    45,    66,    38,   185,
+      90,     0,    20,   140,    98,    96,     0,     0,   139,     0,
+     101,    63,     0,     0,     0,     0,    67,    53,    54,    55,
+       0,   102,    56,   183,    60,     0,     0,    90,   186,    43,
+     117,    90,    99,     0,     0,     0,   166,     0,     0,     0,
+       0,   175,    68,     0,    57,     0,    83,    81,    44,    25,
+      33,   100,    97,    90,    59,    64,     0,   168,   170,    65,
+      90,    90,     0,     0,    90,     0,    84,    62,     0,   167,
+     169,     0,     0,     0,     0,     0,    82,     0,    86,    69,
+      47,     0,    90,     0,    90,    85,    90,     0,    90,     0,
+      90,    67,     0,    71,     0,     0,    70,     0,    48,    49,
+      67,     0,    87,    74,    77,     0,     0,    78,     0,   188,
+      90,    46,     0,    90,    76,    75,    90,    38,    90,     0,
+      38,     0,     0,    51,     0,    50
 };
 
   /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -273,  -273,  -273,  -273,  -273,  -273,   208,  -273,  -273,  -273,
-     -64,  -273,  -273,  -202,    71,   -58,  -273,  -273,  -218,  -273,
-    -273,  -272,  -273,  -273,  -273,  -273,  -273,  -273,  -273,  -273,
-      50,    76,  -273,  -273,  -273,    19,   -54,   -23,    -1,  -273,
-    -273,  -273,   -44,    39,  -273,   224,  -273,   -11,    94,  -273,
-    -273,    -7,   -38,  -273,  -273,   -73,    -2,  -273,   -28,  -231,
-     -46,  -273,   -25,   -57,    85
+    -271,  -271,  -271,  -271,  -271,  -271,   218,  -271,  -271,  -271,
+    -271,   -40,  -271,  -271,  -206,   113,  -150,  -271,  -271,  -218,
+    -271,  -271,  -270,  -271,  -271,  -271,  -271,  -271,  -271,  -271,
+    -271,    43,    29,  -271,  -271,  -271,    47,   -45,   -20,    -1,
+    -271,  -271,  -271,   -18,    39,  -271,   246,  -271,     8,   112,
+    -271,  -271,    11,   -39,  -271,  -271,   -70,    -2,  -271,   -26,
+    -227,   -60,  -271,   -28,   -38,    64
 };
 
   /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
       -1,     1,    28,   140,   143,    29,    77,    53,    54,    30,
-      31,    83,    32,   146,    78,   205,   206,   222,   207,   237,
-     248,   255,   296,   305,   317,   208,   258,   276,   286,   209,
-     144,   145,   125,   175,   176,   232,   116,   117,   210,   115,
-      94,    95,    35,    36,    37,    38,    39,    40,    55,   264,
-     265,   266,    45,    46,    47,    41,    42,   131,   211,   212,
-     137,   239,   213,   319,   136
+     173,    31,    83,    32,   146,    78,   202,   203,   220,   204,
+     235,   246,   253,   297,   306,   318,   205,   256,   277,   287,
+     206,   144,   145,   125,   216,   217,   230,   116,   117,   207,
+     115,    94,    95,    35,    36,    37,    38,    39,    40,    55,
+     265,   266,   267,    45,    46,    47,    41,    42,   131,   208,
+     209,   137,   237,   210,   320,   136
 };
 
   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
@@ -849,242 +850,230 @@ static const yytype_int16 yydefgoto[] =
      number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
-      34,    80,    80,    70,    81,   126,   127,   260,   121,   238,
-     254,    56,    57,    58,   150,     5,    74,   132,   120,    63,
-      63,   119,    63,    68,   135,    71,  -103,   272,   310,   278,
-     223,    19,    19,    63,   100,   101,   102,   321,   132,   103,
-      43,   138,   118,   118,   173,   302,   139,   174,   141,    44,
-      74,    33,    75,   142,    76,    76,   132,    44,   118,   118,
-      62,    64,    59,    65,    60,   128,   218,  -103,   303,   304,
-     171,   133,    44,    75,    97,   320,   185,    25,   187,    79,
-     178,   179,   254,    44,  -103,   149,    84,   151,   152,   153,
-    -103,   254,   133,   224,   155,    19,    63,    63,    63,    63,
-      63,    63,    63,    63,    63,    63,    63,    63,   172,   220,
-     133,   -93,   122,   244,   170,    81,   245,   -89,    81,     4,
-     133,   123,    63,   134,   330,   124,   -12,   333,   -15,   217,
-       4,   180,    85,   -94,    19,   184,     5,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,   168,   -12,
-      85,   -15,   103,   215,    56,    86,   148,   147,   112,   113,
-      48,    49,   156,   177,    72,   169,    73,   154,   134,   252,
-    -104,   221,    81,    81,   129,   130,    81,   182,    81,    92,
-      93,    87,    81,   259,    85,   225,   226,   240,   228,    86,
-      79,    76,   249,    79,   268,   271,   275,    92,    93,   283,
-     262,   233,    50,    51,   269,   270,   282,    81,   318,   181,
-     267,   186,   295,   242,   188,    87,    88,  -104,  -104,   287,
-     246,   233,    81,   289,   250,   251,    52,   267,   285,   204,
-     273,    92,    93,   323,   274,   324,   118,   291,    82,   316,
-     308,   247,   294,   311,   297,   110,   111,    79,    79,    67,
-     216,    79,   288,    79,   312,   313,    71,    79,   279,   293,
-     325,   219,     0,     0,   322,     0,     0,   299,   229,   230,
-     332,   227,   231,   334,   234,   327,   112,   113,   236,     0,
-     235,   290,    79,   292,    63,   114,     0,     0,     0,   241,
-       0,     0,    63,   243,     0,    85,     0,    79,     0,    20,
-      86,     0,     0,   256,    85,   314,   315,     0,    23,    86,
-      98,    99,   100,   101,   102,   261,     0,   103,   263,     0,
-       0,     0,     0,     0,     0,     0,    87,    88,    89,     0,
-       0,     0,     0,    97,     0,    87,    88,    89,   277,    90,
-       0,     0,    92,    93,     0,   280,   281,     0,    90,   284,
-       0,    92,    93,     0,   104,   105,   106,   107,   108,     0,
-      76,   109,     0,   134,     0,     0,     0,   298,     0,   300,
-       0,   301,   306,   307,     0,   309,     2,     3,     0,     4,
-       5,     0,     0,     6,     7,     0,     0,     0,     0,     0,
-       0,     0,     0,     8,     9,   326,     0,     0,   328,     0,
-       0,   329,     0,   331,     0,     0,     0,     0,     0,     0,
-       0,    10,    11,    12,    13,     0,     0,     0,     0,    14,
-      15,    16,    17,    18,     0,     0,     0,    19,    20,     0,
-       0,     0,     0,     0,    21,    22,     0,    23,     0,    24,
-       0,     0,    25,    26,     0,    27,     0,     0,   -18,   189,
-     -18,     4,     5,     0,     0,     6,     7,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   190,     0,   191,
-     192,   193,   -72,   -72,   194,   195,   196,   197,   198,   199,
-     200,   201,   202,     0,     0,     0,    13,   203,     0,     0,
-       0,    14,    15,    16,    17,     0,     0,     0,     0,   -72,
-      20,     0,     0,     0,     0,     0,    21,    22,     0,    23,
-       0,    24,     0,     0,    25,    26,     0,    61,     0,     0,
-      75,   -72,    76,   189,     0,     4,     5,     0,     0,     6,
-       7,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   190,     0,   191,   192,   193,   -71,   -71,   194,   195,
-     196,   197,   198,   199,   200,   201,   202,     0,     0,     0,
-      13,   203,     0,     0,     0,    14,    15,    16,    17,     0,
-       0,     0,     0,   -71,    20,     0,     0,     0,     0,     0,
-      21,    22,     0,    23,     0,    24,     0,     0,    25,    26,
-       0,    61,     0,     0,    75,   -71,    76,   189,     0,     4,
-       5,     0,     0,     6,     7,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   190,     0,   191,   192,   193,
-       0,     0,   194,   195,   196,   197,   198,   199,   200,   201,
-     202,     0,     0,     0,    13,   203,     0,     0,     0,    14,
+      34,    81,   236,    80,    80,   182,    70,   121,   252,   258,
+     135,    56,    57,    58,   126,   127,   132,   150,   184,    63,
+      63,   273,    63,    68,   119,    71,   214,   221,   132,   215,
+     120,   311,    43,    63,     4,    74,   261,   112,   113,   262,
+     322,    19,   118,   118,    33,   138,     5,   100,   101,   102,
+     139,    44,   103,   129,   130,   -12,   171,   279,   118,   118,
+      62,    64,   242,    65,    76,   128,   175,   176,   -15,    74,
+     133,    85,    79,    44,    97,   250,    59,    75,   -12,    72,
+     321,    73,   133,   252,    44,   149,   172,   151,   152,   153,
+     222,   -15,   252,   -94,   155,   134,    63,    63,    63,    63,
+      63,    63,    63,    63,    63,    63,    63,    63,    25,   218,
+     147,    44,    81,  -105,   170,    81,   133,    60,    92,    93,
+     154,   331,    63,    84,   334,   141,   122,   303,   288,   -95,
+     142,   177,   290,   123,    19,   181,   124,   157,   158,   159,
+     160,   161,   162,   163,   164,   165,   166,   167,   168,   309,
+     304,   305,   312,   212,    56,    75,   241,    76,   103,   132,
+    -105,  -105,   178,   174,    85,    19,    81,    81,  -104,    86,
+      81,     4,    81,     5,   110,   111,    81,    19,   148,   333,
+     156,   238,   335,    79,   263,   169,    79,   134,   270,   271,
+     257,   179,   219,   247,   223,    87,    88,    89,   231,   -90,
+     224,   226,    81,   284,    76,   112,   113,   268,    90,  -104,
+     240,    92,    93,   133,   114,   286,   269,    81,   244,   231,
+     272,   225,   248,   249,   292,   274,  -104,   268,    85,    76,
+     233,   298,  -104,    86,   118,   275,   276,    79,    79,   239,
+     296,    79,   283,    79,    48,    49,   319,    79,    82,   201,
+     324,   323,   325,   183,    71,   289,   185,   294,    85,    87,
+      88,    89,   328,    86,   317,   300,   259,   245,   213,   295,
+     260,    67,    90,    79,    91,    92,    93,   280,     0,     0,
+     326,   243,   291,     0,   293,    63,    50,    51,    79,    87,
+       4,     5,   278,    63,     6,     7,     0,     0,     0,   281,
+     282,     0,     0,   285,     0,    92,    93,   227,   228,     0,
+      52,   229,     0,   232,     0,     0,     0,   234,     0,     0,
+       0,   299,     0,   301,     0,   302,   307,   308,     0,   310,
+      14,    15,    16,    17,    97,     0,     0,     0,     0,    20,
+       0,     0,    85,   254,     0,    21,    22,    86,    23,   327,
+      24,     0,   329,    25,    66,   330,    61,   332,   264,     2,
+       3,     0,     4,     5,     0,     0,     6,     7,     0,     0,
+       0,     0,     0,    87,    88,    89,     8,     9,     0,     0,
+       0,     0,    85,     0,     0,     0,    90,    86,     0,    92,
+      93,   313,   314,     0,    10,    11,    12,    13,     0,     0,
+       0,   134,    14,    15,    16,    17,    18,     0,     0,     0,
+      19,    20,     0,    87,    88,     0,     0,    21,    22,     0,
+      23,     0,    24,     0,     0,    25,    26,     0,    27,    92,
+      93,   -18,   186,   -18,     4,     5,    20,     0,     6,     7,
+       0,     0,   315,   316,     0,    23,     0,     0,     0,     0,
+     187,     0,   188,   189,   190,   -73,   -73,   191,   192,   193,
+     194,   195,   196,   197,   198,   199,     0,     0,     0,    13,
+     200,     0,     0,     0,    14,    15,    16,    17,     0,     0,
+       0,     0,   -73,    20,    98,    99,   100,   101,   102,    21,
+      22,   103,    23,     0,    24,     0,     0,    25,    26,     0,
+      61,     0,     0,    75,   -73,    76,   186,     0,     4,     5,
+       0,     0,     6,     7,   104,   105,   106,   107,   108,     0,
+       0,   109,     0,     0,   187,     0,   188,   189,   190,   -72,
+     -72,   191,   192,   193,   194,   195,   196,   197,   198,   199,
+       0,     0,     0,    13,   200,     0,     0,     0,    14,    15,
+      16,    17,     0,     0,     0,     0,   -72,    20,     0,     0,
+       0,     0,     0,    21,    22,     0,    23,     0,    24,     0,
+       0,    25,    26,     0,    61,     0,     0,    75,   -72,    76,
+     186,     0,     4,     5,     0,     0,     6,     7,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   187,     0,
+     188,   189,   190,     0,     0,   191,   192,   193,   194,   195,
+     196,   197,   198,   199,     0,     0,     0,    13,   200,     0,
+       0,     0,    14,    15,    16,    17,    69,     0,     4,     5,
+       0,    20,     6,     7,     0,  -103,     0,    21,    22,     0,
+      23,     0,    24,     0,     0,    25,    26,     0,    61,     0,
+       0,    75,   201,    76,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    13,     0,     0,     0,     0,    14,    15,
+      16,    17,     0,     0,     0,     0,  -103,    20,     0,     0,
+       0,     0,     0,    21,    22,     0,    23,     0,    24,     0,
+       0,    25,   255,  -103,    61,     0,     4,     5,     0,  -103,
+       6,     7,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   187,     0,   188,   189,   190,     0,     0,   191,
+     192,   193,   194,   195,   196,   197,   198,   199,     0,     4,
+       5,    13,   200,     6,     7,     0,    14,    15,    16,    17,
+       0,     0,     0,     0,     0,    20,     0,     0,     0,     0,
+      85,    21,    22,     0,    23,    86,    24,     0,     0,    25,
+      26,     0,    61,     0,    13,    75,     0,    76,     0,    14,
       15,    16,    17,    69,     0,     4,     5,     0,    20,     6,
-       7,     0,  -102,     0,    21,    22,     0,    23,     0,    24,
-       0,     0,    25,    26,     0,    61,     0,     0,    75,   204,
-      76,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      13,     0,     0,     0,     0,    14,    15,    16,    17,     0,
-       0,     0,     0,  -102,    20,     0,     0,     0,     0,     0,
-      21,    22,     0,    23,     0,    24,     0,     0,    25,   257,
-    -102,    61,     0,     4,     5,     0,  -102,     6,     7,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   190,
-       0,   191,   192,   193,     0,     0,   194,   195,   196,   197,
-     198,   199,   200,   201,   202,     0,     4,     5,    13,   203,
+       7,    87,    88,    89,    21,    22,     0,    23,     0,    24,
+       0,     0,    25,    26,    90,    61,     0,    92,    93,     0,
+      76,     0,     0,     0,     0,    69,     0,     4,     5,     0,
+      13,     6,     7,     0,     0,    14,    15,    16,    17,     0,
+       0,     0,     0,     0,    20,     0,     0,     0,     0,     0,
+      21,    22,     0,    23,     0,    24,     0,     0,    25,    26,
+    -103,    61,    13,     0,     0,     0,     0,    14,    15,    16,
+      17,   180,     0,     4,     5,     0,    20,     6,     7,     0,
+       0,     0,    21,    22,     0,    23,     0,    24,     0,     0,
+      25,    26,     0,    61,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     4,   251,    13,     0,
        6,     7,     0,    14,    15,    16,    17,     0,     0,     0,
-       0,     0,    20,     0,     0,     0,     0,    85,    21,    22,
-       0,    23,    86,    24,     0,     0,    25,    26,     0,    61,
-       0,    13,    75,     0,    76,     0,    14,    15,    16,    17,
-      69,     0,     4,     5,     0,    20,     6,     7,    87,    88,
-      89,    21,    22,     0,    23,     0,    24,     0,     0,    25,
-      26,    90,    61,    91,    92,    93,     0,    76,     0,     0,
-       0,     0,    69,     0,     4,     5,     0,    13,     6,     7,
-       0,     0,    14,    15,    16,    17,     0,     0,     0,     0,
-       0,    20,     0,     0,     0,     0,     0,    21,    22,     0,
-      23,     0,    24,     0,     0,    25,    26,  -102,    61,    13,
-       0,     0,     0,     0,    14,    15,    16,    17,   183,     0,
-       4,     5,     0,    20,     6,     7,     0,     0,     0,    21,
-      22,     0,    23,     0,    24,     0,     0,    25,    26,     0,
-      61,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     4,   253,    13,     0,     6,     7,     0,
-      14,    15,    16,    17,     0,     0,     0,     0,     0,    20,
-       0,     0,   192,     0,     0,    21,    22,     0,    23,     0,
-      24,   199,   200,    25,    26,     0,    61,     0,    13,     0,
-       0,     0,     0,    14,    15,    16,    17,     0,     0,     4,
-       5,     0,    20,     6,     7,     0,     0,     0,    21,    22,
-       0,    23,     0,    24,     0,     0,    25,    26,   192,    61,
-       0,     0,     0,     0,     0,     0,     0,   199,   200,     0,
-       0,     0,     0,     0,    13,     0,     0,     0,     0,    14,
-      15,    16,    17,     0,     0,     4,     5,     0,    20,     6,
-       7,     0,     0,    96,    21,    22,     0,    23,     0,    24,
-       0,     0,    25,    26,     0,    61,     0,     0,     0,     0,
-       0,     0,     4,     5,     0,     0,     6,     7,     0,     0,
-      13,     0,     0,     0,     0,    14,    15,    16,    17,     0,
-       0,     0,     0,    85,    20,     0,     0,     0,    86,     0,
-      21,    22,     0,    23,     0,    24,     0,    13,    25,    26,
-       0,    61,    14,    15,    16,    17,     0,     0,     4,     5,
-       0,    20,     6,     7,    87,    88,    89,    21,    22,     0,
-      23,     0,    24,     0,     0,    25,    26,    90,    61,     0,
-      92,    93,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    85,    14,    15,
-      16,    17,    86,     0,     0,     0,     0,    20,     0,     0,
+       0,     0,    20,     0,     0,   189,     0,     0,    21,    22,
+       0,    23,     0,    24,   196,   197,    25,    26,     0,    61,
+       0,    13,     0,     0,     0,     0,    14,    15,    16,    17,
+       0,     0,     4,     5,     0,    20,     6,     7,     0,     0,
+       0,    21,    22,     0,    23,     0,    24,     0,     0,    25,
+      26,   189,    61,     0,     0,     0,     0,     0,     0,     0,
+     196,   197,     0,     0,     0,     0,     0,    13,     0,     0,
+       0,     0,    14,    15,    16,    17,     0,     0,     4,     5,
+       0,    20,     6,     7,     0,     0,    96,    21,    22,     0,
+      23,     0,    24,     0,     0,    25,    26,     0,    61,     0,
+       0,     0,     0,     0,     0,     4,     5,     0,     0,     6,
+       7,     0,     0,    13,     0,     0,     0,     0,    14,    15,
+      16,    17,     0,     0,     0,     0,     0,    20,     0,     0,
        0,     0,     0,    21,    22,     0,    23,     0,    24,     0,
-       0,    25,    66,     0,    61,     0,     0,     0,    87,    88,
-      89,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    90,   214,     0,    92,    93
+      13,    25,    26,     0,    61,    14,    15,    16,    17,     0,
+      85,     0,     0,     0,    20,    86,     0,     0,     0,     0,
+      21,    22,     0,    23,     0,    24,     0,     0,    25,    26,
+       0,    61,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    87,    88,    89,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    90,   211,     0,    92,    93
 };
 
 static const yytype_int16 yycheck[] =
 {
-       1,    29,    30,    26,    29,    59,    60,   238,    46,   211,
-     228,    13,    14,    15,    87,     4,    27,     1,    16,    21,
-      22,    44,    24,    25,    70,    26,    10,    40,   300,    16,
-       4,    51,    51,    35,    60,    61,    62,   309,     1,    65,
-      67,     1,    43,    44,     1,     1,     6,     4,     1,    70,
-      61,     1,    72,     6,    74,    74,     1,    70,    59,    60,
-      21,    22,    67,    24,    67,    66,     1,    51,    24,    25,
-     116,    55,    70,    72,    35,   306,     1,    66,     1,    29,
-     126,   127,   300,    70,    68,    86,    51,    88,    89,    90,
-      74,   309,    55,    67,    95,    51,    98,    99,   100,   101,
-     102,   103,   104,   105,   106,   107,   108,   109,    71,   182,
-      55,    68,    49,     1,   115,   140,     4,    73,   143,     3,
-      55,    67,   124,    68,   326,    56,    51,   329,    51,   175,
-       3,   132,     9,    68,    51,   136,     4,    98,    99,   100,
-     101,   102,   103,   104,   105,   106,   107,   108,   109,    74,
-       9,    74,    65,   154,   156,    14,     5,    81,    43,    44,
-       3,     4,    38,   124,    48,    13,    50,    91,    68,   227,
-       9,    67,   197,   198,    43,    44,   201,    40,   203,    56,
-      57,    40,   207,   237,     9,    67,    67,   212,    67,    14,
-     140,    74,     4,   143,    68,    26,    10,    56,    57,   272,
-     246,   202,    45,    46,   250,   251,    67,   232,    54,   133,
-     248,   140,    20,   214,   143,    40,    41,    56,    57,   277,
-     221,   222,   247,   281,   225,   226,    69,   265,   274,    73,
-     255,    56,    57,     7,   257,     7,   237,   283,    30,   303,
-     298,   222,   286,   301,   290,    12,    13,   197,   198,    25,
-     156,   201,   280,   203,     7,     8,   257,   207,   265,   284,
-     317,   176,    -1,    -1,   310,    -1,    -1,   292,   197,   198,
-     328,   195,   201,   331,   203,   321,    43,    44,   207,    -1,
-     204,   282,   232,   284,   286,    52,    -1,    -1,    -1,   213,
-      -1,    -1,   294,   217,    -1,     9,    -1,   247,    -1,    52,
-      14,    -1,    -1,   232,     9,    58,    59,    -1,    61,    14,
-      58,    59,    60,    61,    62,   239,    -1,    65,   247,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    40,    41,    42,    -1,
-      -1,    -1,    -1,   294,    -1,    40,    41,    42,   262,    53,
-      -1,    -1,    56,    57,    -1,   269,   270,    -1,    53,   273,
-      -1,    56,    57,    -1,    58,    59,    60,    61,    62,    -1,
-      74,    65,    -1,    68,    -1,    -1,    -1,   291,    -1,   293,
-      -1,   295,   296,   297,    -1,   299,     0,     1,    -1,     3,
-       4,    -1,    -1,     7,     8,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    17,    18,   319,    -1,    -1,   322,    -1,
-      -1,   325,    -1,   327,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    35,    36,    37,    38,    -1,    -1,    -1,    -1,    43,
-      44,    45,    46,    47,    -1,    -1,    -1,    51,    52,    -1,
-      -1,    -1,    -1,    -1,    58,    59,    -1,    61,    -1,    63,
-      -1,    -1,    66,    67,    -1,    69,    -1,    -1,    72,     1,
-      74,     3,     4,    -1,    -1,     7,     8,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    19,    -1,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    33,    34,    -1,    -1,    -1,    38,    39,    -1,    -1,
-      -1,    43,    44,    45,    46,    -1,    -1,    -1,    -1,    51,
-      52,    -1,    -1,    -1,    -1,    -1,    58,    59,    -1,    61,
-      -1,    63,    -1,    -1,    66,    67,    -1,    69,    -1,    -1,
-      72,    73,    74,     1,    -1,     3,     4,    -1,    -1,     7,
-       8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    19,    -1,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
-      38,    39,    -1,    -1,    -1,    43,    44,    45,    46,    -1,
-      -1,    -1,    -1,    51,    52,    -1,    -1,    -1,    -1,    -1,
-      58,    59,    -1,    61,    -1,    63,    -1,    -1,    66,    67,
-      -1,    69,    -1,    -1,    72,    73,    74,     1,    -1,     3,
-       4,    -1,    -1,     7,     8,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    19,    -1,    21,    22,    23,
-      -1,    -1,    26,    27,    28,    29,    30,    31,    32,    33,
-      34,    -1,    -1,    -1,    38,    39,    -1,    -1,    -1,    43,
+       1,    29,   208,    29,    30,     1,    26,    46,   226,   236,
+      70,    13,    14,    15,    59,    60,     1,    87,     1,    21,
+      22,    40,    24,    25,    44,    26,     1,     4,     1,     4,
+      16,   301,    67,    35,     3,    27,     1,    43,    44,     4,
+     310,    51,    43,    44,     1,     1,     4,    60,    61,    62,
+       6,    70,    65,    43,    44,    51,   116,    16,    59,    60,
+      21,    22,     1,    24,    74,    66,   126,   127,    51,    61,
+      55,     9,    29,    70,    35,   225,    67,    72,    74,    48,
+     307,    50,    55,   301,    70,    86,    71,    88,    89,    90,
+      67,    74,   310,    68,    95,    68,    98,    99,   100,   101,
+     102,   103,   104,   105,   106,   107,   108,   109,    66,   179,
+      81,    70,   140,     9,   115,   143,    55,    67,    56,    57,
+      91,   327,   124,    51,   330,     1,    49,     1,   278,    68,
+       6,   132,   282,    67,    51,   136,    56,    98,    99,   100,
+     101,   102,   103,   104,   105,   106,   107,   108,   109,   299,
+      24,    25,   302,   154,   156,    72,   216,    74,    65,     1,
+      56,    57,   133,   124,     9,    51,   194,   195,    10,    14,
+     198,     3,   200,     4,    12,    13,   204,    51,     5,   329,
+      38,   209,   332,   140,   244,    13,   143,    68,   248,   249,
+     235,    40,    67,     4,    67,    40,    41,    42,   199,    73,
+      67,    67,   230,   273,    74,    43,    44,   246,    53,    51,
+     211,    56,    57,    55,    52,   275,    68,   245,   219,   220,
+      26,   192,   223,   224,   284,   253,    68,   266,     9,    74,
+     201,   291,    74,    14,   235,   255,    10,   194,   195,   210,
+      20,   198,    67,   200,     3,     4,    54,   204,    30,    73,
+       7,   311,     7,   140,   255,   281,   143,   285,     9,    40,
+      41,    42,   322,    14,   304,   293,   237,   220,   156,   287,
+     241,    25,    53,   230,    55,    56,    57,   266,    -1,    -1,
+     318,   217,   283,    -1,   285,   287,    45,    46,   245,    40,
+       3,     4,   263,   295,     7,     8,    -1,    -1,    -1,   270,
+     271,    -1,    -1,   274,    -1,    56,    57,   194,   195,    -1,
+      69,   198,    -1,   200,    -1,    -1,    -1,   204,    -1,    -1,
+      -1,   292,    -1,   294,    -1,   296,   297,   298,    -1,   300,
+      43,    44,    45,    46,   295,    -1,    -1,    -1,    -1,    52,
+      -1,    -1,     9,   230,    -1,    58,    59,    14,    61,   320,
+      63,    -1,   323,    66,    67,   326,    69,   328,   245,     0,
+       1,    -1,     3,     4,    -1,    -1,     7,     8,    -1,    -1,
+      -1,    -1,    -1,    40,    41,    42,    17,    18,    -1,    -1,
+      -1,    -1,     9,    -1,    -1,    -1,    53,    14,    -1,    56,
+      57,     7,     8,    -1,    35,    36,    37,    38,    -1,    -1,
+      -1,    68,    43,    44,    45,    46,    47,    -1,    -1,    -1,
+      51,    52,    -1,    40,    41,    -1,    -1,    58,    59,    -1,
+      61,    -1,    63,    -1,    -1,    66,    67,    -1,    69,    56,
+      57,    72,     1,    74,     3,     4,    52,    -1,     7,     8,
+      -1,    -1,    58,    59,    -1,    61,    -1,    -1,    -1,    -1,
+      19,    -1,    21,    22,    23,    24,    25,    26,    27,    28,
+      29,    30,    31,    32,    33,    34,    -1,    -1,    -1,    38,
+      39,    -1,    -1,    -1,    43,    44,    45,    46,    -1,    -1,
+      -1,    -1,    51,    52,    58,    59,    60,    61,    62,    58,
+      59,    65,    61,    -1,    63,    -1,    -1,    66,    67,    -1,
+      69,    -1,    -1,    72,    73,    74,     1,    -1,     3,     4,
+      -1,    -1,     7,     8,    58,    59,    60,    61,    62,    -1,
+      -1,    65,    -1,    -1,    19,    -1,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      -1,    -1,    -1,    38,    39,    -1,    -1,    -1,    43,    44,
+      45,    46,    -1,    -1,    -1,    -1,    51,    52,    -1,    -1,
+      -1,    -1,    -1,    58,    59,    -1,    61,    -1,    63,    -1,
+      -1,    66,    67,    -1,    69,    -1,    -1,    72,    73,    74,
+       1,    -1,     3,     4,    -1,    -1,     7,     8,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    19,    -1,
+      21,    22,    23,    -1,    -1,    26,    27,    28,    29,    30,
+      31,    32,    33,    34,    -1,    -1,    -1,    38,    39,    -1,
+      -1,    -1,    43,    44,    45,    46,     1,    -1,     3,     4,
+      -1,    52,     7,     8,    -1,    10,    -1,    58,    59,    -1,
+      61,    -1,    63,    -1,    -1,    66,    67,    -1,    69,    -1,
+      -1,    72,    73,    74,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    38,    -1,    -1,    -1,    -1,    43,    44,
+      45,    46,    -1,    -1,    -1,    -1,    51,    52,    -1,    -1,
+      -1,    -1,    -1,    58,    59,    -1,    61,    -1,    63,    -1,
+      -1,    66,    67,    68,    69,    -1,     3,     4,    -1,    74,
+       7,     8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    19,    -1,    21,    22,    23,    -1,    -1,    26,
+      27,    28,    29,    30,    31,    32,    33,    34,    -1,     3,
+       4,    38,    39,     7,     8,    -1,    43,    44,    45,    46,
+      -1,    -1,    -1,    -1,    -1,    52,    -1,    -1,    -1,    -1,
+       9,    58,    59,    -1,    61,    14,    63,    -1,    -1,    66,
+      67,    -1,    69,    -1,    38,    72,    -1,    74,    -1,    43,
       44,    45,    46,     1,    -1,     3,     4,    -1,    52,     7,
-       8,    -1,    10,    -1,    58,    59,    -1,    61,    -1,    63,
-      -1,    -1,    66,    67,    -1,    69,    -1,    -1,    72,    73,
-      74,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      38,    -1,    -1,    -1,    -1,    43,    44,    45,    46,    -1,
-      -1,    -1,    -1,    51,    52,    -1,    -1,    -1,    -1,    -1,
+       8,    40,    41,    42,    58,    59,    -1,    61,    -1,    63,
+      -1,    -1,    66,    67,    53,    69,    -1,    56,    57,    -1,
+      74,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,    -1,
+      38,     7,     8,    -1,    -1,    43,    44,    45,    46,    -1,
+      -1,    -1,    -1,    -1,    52,    -1,    -1,    -1,    -1,    -1,
       58,    59,    -1,    61,    -1,    63,    -1,    -1,    66,    67,
-      68,    69,    -1,     3,     4,    -1,    74,     7,     8,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    19,
-      -1,    21,    22,    23,    -1,    -1,    26,    27,    28,    29,
-      30,    31,    32,    33,    34,    -1,     3,     4,    38,    39,
+      68,    69,    38,    -1,    -1,    -1,    -1,    43,    44,    45,
+      46,     1,    -1,     3,     4,    -1,    52,     7,     8,    -1,
+      -1,    -1,    58,    59,    -1,    61,    -1,    63,    -1,    -1,
+      66,    67,    -1,    69,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,     3,     4,    38,    -1,
        7,     8,    -1,    43,    44,    45,    46,    -1,    -1,    -1,
-      -1,    -1,    52,    -1,    -1,    -1,    -1,     9,    58,    59,
-      -1,    61,    14,    63,    -1,    -1,    66,    67,    -1,    69,
-      -1,    38,    72,    -1,    74,    -1,    43,    44,    45,    46,
-       1,    -1,     3,     4,    -1,    52,     7,     8,    40,    41,
-      42,    58,    59,    -1,    61,    -1,    63,    -1,    -1,    66,
-      67,    53,    69,    55,    56,    57,    -1,    74,    -1,    -1,
-      -1,    -1,     1,    -1,     3,     4,    -1,    38,     7,     8,
-      -1,    -1,    43,    44,    45,    46,    -1,    -1,    -1,    -1,
-      -1,    52,    -1,    -1,    -1,    -1,    -1,    58,    59,    -1,
-      61,    -1,    63,    -1,    -1,    66,    67,    68,    69,    38,
-      -1,    -1,    -1,    -1,    43,    44,    45,    46,     1,    -1,
-       3,     4,    -1,    52,     7,     8,    -1,    -1,    -1,    58,
-      59,    -1,    61,    -1,    63,    -1,    -1,    66,    67,    -1,
-      69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,     3,     4,    38,    -1,     7,     8,    -1,
-      43,    44,    45,    46,    -1,    -1,    -1,    -1,    -1,    52,
-      -1,    -1,    22,    -1,    -1,    58,    59,    -1,    61,    -1,
-      63,    31,    32,    66,    67,    -1,    69,    -1,    38,    -1,
-      -1,    -1,    -1,    43,    44,    45,    46,    -1,    -1,     3,
-       4,    -1,    52,     7,     8,    -1,    -1,    -1,    58,    59,
-      -1,    61,    -1,    63,    -1,    -1,    66,    67,    22,    69,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    31,    32,    -1,
-      -1,    -1,    -1,    -1,    38,    -1,    -1,    -1,    -1,    43,
-      44,    45,    46,    -1,    -1,     3,     4,    -1,    52,     7,
-       8,    -1,    -1,    11,    58,    59,    -1,    61,    -1,    63,
-      -1,    -1,    66,    67,    -1,    69,    -1,    -1,    -1,    -1,
-      -1,    -1,     3,     4,    -1,    -1,     7,     8,    -1,    -1,
-      38,    -1,    -1,    -1,    -1,    43,    44,    45,    46,    -1,
-      -1,    -1,    -1,     9,    52,    -1,    -1,    -1,    14,    -1,
-      58,    59,    -1,    61,    -1,    63,    -1,    38,    66,    67,
-      -1,    69,    43,    44,    45,    46,    -1,    -1,     3,     4,
-      -1,    52,     7,     8,    40,    41,    42,    58,    59,    -1,
-      61,    -1,    63,    -1,    -1,    66,    67,    53,    69,    -1,
-      56,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,     9,    43,    44,
-      45,    46,    14,    -1,    -1,    -1,    -1,    52,    -1,    -1,
+      -1,    -1,    52,    -1,    -1,    22,    -1,    -1,    58,    59,
+      -1,    61,    -1,    63,    31,    32,    66,    67,    -1,    69,
+      -1,    38,    -1,    -1,    -1,    -1,    43,    44,    45,    46,
+      -1,    -1,     3,     4,    -1,    52,     7,     8,    -1,    -1,
+      -1,    58,    59,    -1,    61,    -1,    63,    -1,    -1,    66,
+      67,    22,    69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      31,    32,    -1,    -1,    -1,    -1,    -1,    38,    -1,    -1,
+      -1,    -1,    43,    44,    45,    46,    -1,    -1,     3,     4,
+      -1,    52,     7,     8,    -1,    -1,    11,    58,    59,    -1,
+      61,    -1,    63,    -1,    -1,    66,    67,    -1,    69,    -1,
+      -1,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,     7,
+       8,    -1,    -1,    38,    -1,    -1,    -1,    -1,    43,    44,
+      45,    46,    -1,    -1,    -1,    -1,    -1,    52,    -1,    -1,
       -1,    -1,    -1,    58,    59,    -1,    61,    -1,    63,    -1,
-      -1,    66,    67,    -1,    69,    -1,    -1,    -1,    40,    41,
-      42,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    53,    54,    -1,    56,    57
+      38,    66,    67,    -1,    69,    43,    44,    45,    46,    -1,
+       9,    -1,    -1,    -1,    52,    14,    -1,    -1,    -1,    -1,
+      58,    59,    -1,    61,    -1,    63,    -1,    -1,    66,    67,
+      -1,    69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    40,    41,    42,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    53,    54,    -1,    56,    57
 };
 
   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1094,37 +1083,37 @@ static const yytype_uint8 yystos[] =
        0,    76,     0,     1,     3,     4,     7,     8,    17,    18,
       35,    36,    37,    38,    43,    44,    45,    46,    47,    51,
       52,    58,    59,    61,    63,    66,    67,    69,    77,    80,
-      84,    85,    87,   105,   113,   117,   118,   119,   120,   121,
-     122,   130,   131,    67,    70,   127,   128,   129,     3,     4,
-      45,    46,    69,    82,    83,   123,   131,   131,   131,    67,
-      67,    69,   118,   131,   118,   118,    67,   120,   131,     1,
-     112,   113,    48,    50,   122,    72,    74,    81,    89,   105,
-     133,   137,    81,    86,    51,     9,    14,    40,    41,    42,
-      53,    55,    56,    57,   115,   116,    11,   118,    58,    59,
+      84,    86,    88,   106,   114,   118,   119,   120,   121,   122,
+     123,   131,   132,    67,    70,   128,   129,   130,     3,     4,
+      45,    46,    69,    82,    83,   124,   132,   132,   132,    67,
+      67,    69,   119,   132,   119,   119,    67,   121,   132,     1,
+     113,   114,    48,    50,   123,    72,    74,    81,    90,   106,
+     134,   138,    81,    87,    51,     9,    14,    40,    41,    42,
+      53,    55,    56,    57,   116,   117,    11,   119,    58,    59,
       60,    61,    62,    65,    58,    59,    60,    61,    62,    65,
-      12,    13,    43,    44,    52,   114,   111,   112,   113,   112,
-      16,   127,    49,    67,    56,   107,   111,   111,   113,    43,
-      44,   132,     1,    55,    68,   135,   139,   135,     1,     6,
-      78,     1,     6,    79,   105,   106,    88,   106,     5,   113,
-     130,   113,   113,   113,   106,   113,    38,   118,   118,   118,
-     118,   118,   118,   118,   118,   118,   118,   118,   118,    13,
-     113,   135,    71,     1,     4,   108,   109,   118,   135,   135,
-     113,   106,    40,     1,   113,     1,    89,     1,    89,     1,
-      19,    21,    22,    23,    26,    27,    28,    29,    30,    31,
-      32,    33,    34,    39,    73,    90,    91,    93,   100,   104,
-     113,   133,   134,   137,    54,   113,   123,   135,     1,   139,
-     130,    67,    92,     4,    67,    67,    67,   106,    67,    89,
-      89,    89,   110,   113,    89,   106,    89,    94,    88,   136,
-     137,   106,   113,   106,     1,     4,   113,   110,    95,     4,
-     113,   113,    90,     4,    93,    96,    89,    67,   101,   111,
-     134,   106,   135,    89,   124,   125,   126,   127,    68,   135,
-     135,    26,    40,   137,   112,    10,   102,   106,    16,   126,
-     106,   106,    67,   130,   106,   135,   103,    90,   133,    90,
-     113,   135,   113,   137,   117,    20,    97,   135,   106,   137,
-     106,   106,     1,    24,    25,    98,   106,   106,    90,   106,
-      96,    90,     7,     8,    58,    59,    85,    99,    54,   138,
-     134,    96,   135,     7,     7,   138,   106,   135,   106,   106,
-      88,   106,    90,    88,    90
+      12,    13,    43,    44,    52,   115,   112,   113,   114,   113,
+      16,   128,    49,    67,    56,   108,   112,   112,   114,    43,
+      44,   133,     1,    55,    68,   136,   140,   136,     1,     6,
+      78,     1,     6,    79,   106,   107,    89,   107,     5,   114,
+     131,   114,   114,   114,   107,   114,    38,   119,   119,   119,
+     119,   119,   119,   119,   119,   119,   119,   119,   119,    13,
+     114,   136,    71,    85,   119,   136,   136,   114,   107,    40,
+       1,   114,     1,    90,     1,    90,     1,    19,    21,    22,
+      23,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      39,    73,    91,    92,    94,   101,   105,   114,   134,   135,
+     138,    54,   114,   124,     1,     4,   109,   110,   131,    67,
+      93,     4,    67,    67,    67,   107,    67,    90,    90,    90,
+     111,   114,    90,   107,    90,    95,    89,   137,   138,   107,
+     114,   136,     1,   140,   114,   111,    96,     4,   114,   114,
+      91,     4,    94,    97,    90,    67,   102,   112,   135,   107,
+     107,     1,     4,   136,    90,   125,   126,   127,   128,    68,
+     136,   136,    26,    40,   138,   113,    10,   103,   107,    16,
+     127,   107,   107,    67,   131,   107,   136,   104,    91,   134,
+      91,   114,   136,   114,   138,   118,    20,    98,   136,   107,
+     138,   107,   107,     1,    24,    25,    99,   107,   107,    91,
+     107,    97,    91,     7,     8,    58,    59,    86,   100,    54,
+     139,   135,    97,   136,     7,     7,   139,   107,   136,   107,
+     107,    89,   107,    91,    89,    91
 };
 
   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
@@ -1133,22 +1122,22 @@ static const yytype_uint8 yyr1[] =
        0,    75,    76,    76,    76,    76,    76,    77,    77,    77,
       77,    77,    78,    78,    78,    79,    79,    79,    80,    80,
       80,    80,    80,    80,    80,    81,    82,    82,    82,    82,
-      83,    83,    84,    86,    85,    87,    87,    88,    88,    88,
-      89,    89,    90,    90,    90,    90,    90,    90,    90,    90,
-      90,    90,    91,    91,    91,    91,    91,    92,    91,    91,
-      94,    93,    95,    93,    93,    93,    96,    96,    97,    97,
-      97,    98,    98,    99,    99,    99,    99,    99,   100,   100,
-     101,   101,   102,   103,   102,   104,   104,   105,   105,   106,
-     106,   107,   107,   108,   108,   109,   109,   109,   109,   109,
-     110,   110,   111,   111,   112,   112,   112,   112,   112,   112,
-     113,   113,   113,   113,   113,   113,   113,   113,   114,   114,
-     114,   115,   115,   116,   116,   117,   117,   117,   118,   118,
-     118,   118,   118,   118,   118,   118,   118,   118,   118,   119,
-     119,   119,   119,   119,   119,   119,   120,   120,   120,   120,
-     120,   120,   120,   120,   120,   120,   120,   120,   120,   120,
-     121,   121,   122,   123,   123,   124,   124,   125,   125,   126,
-     127,   128,   128,   129,   130,   130,   131,   131,   132,   132,
-     132,   133,   134,   135,   136,   136,   137,   138,   139
+      83,    83,    85,    84,    87,    86,    88,    88,    89,    89,
+      89,    90,    90,    91,    91,    91,    91,    91,    91,    91,
+      91,    91,    91,    92,    92,    92,    92,    92,    93,    92,
+      92,    95,    94,    96,    94,    94,    94,    97,    97,    98,
+      98,    98,    99,    99,   100,   100,   100,   100,   100,   101,
+     101,   102,   102,   103,   104,   103,   105,   105,   106,   106,
+     107,   107,   108,   108,   109,   109,   110,   110,   110,   110,
+     110,   111,   111,   112,   112,   113,   113,   113,   113,   113,
+     113,   114,   114,   114,   114,   114,   114,   114,   114,   115,
+     115,   115,   116,   116,   117,   117,   118,   118,   118,   119,
+     119,   119,   119,   119,   119,   119,   119,   119,   119,   119,
+     120,   120,   120,   120,   120,   120,   120,   121,   121,   121,
+     121,   121,   121,   121,   121,   121,   121,   121,   121,   121,
+     121,   122,   122,   123,   124,   124,   125,   125,   126,   126,
+     127,   128,   129,   129,   130,   131,   131,   132,   132,   133,
+     133,   133,   134,   135,   136,   137,   137,   138,   139,   140
 };
 
   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
@@ -1157,22 +1146,22 @@ static const yytype_uint8 yyr2[] =
        0,     2,     0,     2,     2,     2,     2,     2,     2,     2,
        4,     4,     1,     2,     1,     1,     2,     1,     0,     1,
        4,     1,     1,     1,     1,     5,     1,     1,     1,     2,
-       1,     1,     6,     0,     3,     1,     1,     0,     2,     2,
-       1,     2,     2,     3,     1,     9,     6,     8,     8,    12,
-      11,     1,     2,     2,     2,     2,     3,     0,     4,     2,
-       0,     4,     0,     4,     4,     1,     0,     1,     0,     2,
-       2,     5,     4,     1,     2,     2,     1,     1,     1,     1,
-       1,     3,     0,     0,     3,     6,     9,     1,     2,     0,
-       1,     0,     2,     0,     1,     1,     3,     1,     2,     3,
-       0,     1,     0,     1,     1,     3,     1,     2,     3,     3,
-       3,     3,     3,     3,     3,     3,     5,     1,     1,     1,
-       2,     1,     1,     1,     1,     1,     1,     2,     1,     3,
-       3,     3,     3,     3,     3,     3,     2,     2,     5,     4,
-       3,     3,     3,     3,     3,     3,     1,     2,     3,     4,
-       4,     1,     1,     1,     2,     2,     1,     1,     2,     2,
-       1,     2,     4,     0,     1,     0,     2,     1,     2,     1,
-       3,     1,     2,     2,     1,     2,     1,     3,     1,     1,
-       0,     2,     2,     1,     0,     1,     1,     1,     2
+       1,     1,     0,     7,     0,     3,     1,     1,     0,     2,
+       2,     1,     2,     2,     3,     1,     9,     6,     8,     8,
+      12,    11,     1,     2,     2,     2,     2,     3,     0,     4,
+       2,     0,     4,     0,     4,     4,     1,     0,     1,     0,
+       2,     2,     5,     4,     1,     2,     2,     1,     1,     1,
+       1,     1,     3,     0,     0,     3,     6,     9,     1,     2,
+       0,     1,     0,     2,     0,     1,     1,     3,     1,     2,
+       3,     0,     1,     0,     1,     1,     3,     1,     2,     3,
+       3,     3,     3,     3,     3,     3,     3,     5,     1,     1,
+       1,     2,     1,     1,     1,     1,     1,     1,     2,     1,
+       3,     3,     3,     3,     3,     3,     3,     2,     2,     5,
+       4,     3,     3,     3,     3,     3,     3,     1,     2,     3,
+       4,     4,     1,     1,     1,     2,     2,     1,     1,     2,
+       2,     1,     2,     4,     0,     1,     0,     2,     1,     2,
+       1,     3,     1,     2,     2,     1,     2,     1,     3,     1,
+       1,     0,     2,     2,     1,     0,     1,     1,     1,     2
 };
 
 
@@ -1849,24 +1838,24 @@ yyreduce:
   switch (yyn)
     {
         case 3:
-#line 208 "awkgram.y" /* yacc.c:1646  */
+#line 209 "awkgram.y" /* yacc.c:1646  */
     {
                rule = 0;
                yyerrok;
          }
-#line 1858 "awkgram.c" /* yacc.c:1646  */
+#line 1847 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 5:
-#line 214 "awkgram.y" /* yacc.c:1646  */
+#line 215 "awkgram.y" /* yacc.c:1646  */
     {
                next_sourcefile();
          }
-#line 1866 "awkgram.c" /* yacc.c:1646  */
+#line 1855 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 6:
-#line 218 "awkgram.y" /* yacc.c:1646  */
+#line 219 "awkgram.y" /* yacc.c:1646  */
     {
                rule = 0;
                /*
@@ -1875,20 +1864,20 @@ yyreduce:
                 */
                /* yyerrok; */
          }
-#line 1879 "awkgram.c" /* yacc.c:1646  */
+#line 1868 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 7:
-#line 230 "awkgram.y" /* yacc.c:1646  */
+#line 231 "awkgram.y" /* yacc.c:1646  */
     {
                (void) append_rule((yyvsp[-1]), (yyvsp[0]));
                first_rule = false;
          }
-#line 1888 "awkgram.c" /* yacc.c:1646  */
+#line 1877 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 8:
-#line 235 "awkgram.y" /* yacc.c:1646  */
+#line 236 "awkgram.y" /* yacc.c:1646  */
     {
                if (rule != Rule) {
                        msg(_("%s blocks must have an action part"), 
ruletab[rule]);
@@ -1899,41 +1888,42 @@ yyreduce:
                } else          /* pattern rule with non-empty pattern */
                        (void) append_rule((yyvsp[-1]), NULL);
          }
-#line 1903 "awkgram.c" /* yacc.c:1646  */
+#line 1892 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 9:
-#line 246 "awkgram.y" /* yacc.c:1646  */
+#line 247 "awkgram.y" /* yacc.c:1646  */
     {
                in_function = NULL;
                (void) mk_function((yyvsp[-1]), (yyvsp[0]));
+               want_param_names = false;
                yyerrok;
          }
-#line 1913 "awkgram.c" /* yacc.c:1646  */
+#line 1903 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 10:
-#line 252 "awkgram.y" /* yacc.c:1646  */
+#line 254 "awkgram.y" /* yacc.c:1646  */
     {
                want_source = false;
                at_seen = false;
                yyerrok;
          }
-#line 1923 "awkgram.c" /* yacc.c:1646  */
+#line 1913 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 11:
-#line 258 "awkgram.y" /* yacc.c:1646  */
+#line 260 "awkgram.y" /* yacc.c:1646  */
     {
                want_source = false;
                at_seen = false;
                yyerrok;
          }
-#line 1933 "awkgram.c" /* yacc.c:1646  */
+#line 1923 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 12:
-#line 267 "awkgram.y" /* yacc.c:1646  */
+#line 269 "awkgram.y" /* yacc.c:1646  */
     {
                if (include_source((yyvsp[0])) < 0)
                        YYABORT;
@@ -1941,23 +1931,23 @@ yyreduce:
                bcfree((yyvsp[0]));
                (yyval) = NULL;
          }
-#line 1945 "awkgram.c" /* yacc.c:1646  */
+#line 1935 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 13:
-#line 275 "awkgram.y" /* yacc.c:1646  */
+#line 277 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 1951 "awkgram.c" /* yacc.c:1646  */
+#line 1941 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 14:
-#line 277 "awkgram.y" /* yacc.c:1646  */
+#line 279 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 1957 "awkgram.c" /* yacc.c:1646  */
+#line 1947 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 15:
-#line 282 "awkgram.y" /* yacc.c:1646  */
+#line 284 "awkgram.y" /* yacc.c:1646  */
     {
                if (load_library((yyvsp[0])) < 0)
                        YYABORT;
@@ -1965,23 +1955,23 @@ yyreduce:
                bcfree((yyvsp[0]));
                (yyval) = NULL;
          }
-#line 1969 "awkgram.c" /* yacc.c:1646  */
+#line 1959 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 16:
-#line 290 "awkgram.y" /* yacc.c:1646  */
+#line 292 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 1975 "awkgram.c" /* yacc.c:1646  */
+#line 1965 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 17:
-#line 292 "awkgram.y" /* yacc.c:1646  */
+#line 294 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 1981 "awkgram.c" /* yacc.c:1646  */
+#line 1971 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 18:
-#line 297 "awkgram.y" /* yacc.c:1646  */
+#line 299 "awkgram.y" /* yacc.c:1646  */
     {
                rule = Rule;
                if (comment != NULL) {
@@ -1990,11 +1980,11 @@ yyreduce:
                } else
                        (yyval) = NULL;
          }
-#line 1994 "awkgram.c" /* yacc.c:1646  */
+#line 1984 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 19:
-#line 306 "awkgram.y" /* yacc.c:1646  */
+#line 308 "awkgram.y" /* yacc.c:1646  */
     {
                rule = Rule;
                if (comment != NULL) {
@@ -2003,11 +1993,11 @@ yyreduce:
                } else
                        (yyval) = (yyvsp[0]);
          }
-#line 2007 "awkgram.c" /* yacc.c:1646  */
+#line 1997 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 20:
-#line 316 "awkgram.y" /* yacc.c:1646  */
+#line 318 "awkgram.y" /* yacc.c:1646  */
     {
                INSTRUCTION *tp;
 
@@ -2037,11 +2027,11 @@ yyreduce:
                        (yyval) = list_append(list_merge((yyvsp[-3]), 
(yyvsp[0])), tp);
                rule = Rule;
          }
-#line 2041 "awkgram.c" /* yacc.c:1646  */
+#line 2031 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 21:
-#line 346 "awkgram.y" /* yacc.c:1646  */
+#line 348 "awkgram.y" /* yacc.c:1646  */
     {
                static int begin_seen = 0;
 
@@ -2055,11 +2045,11 @@ yyreduce:
                check_comment();
                (yyval) = (yyvsp[0]);
          }
-#line 2059 "awkgram.c" /* yacc.c:1646  */
+#line 2049 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 22:
-#line 360 "awkgram.y" /* yacc.c:1646  */
+#line 362 "awkgram.y" /* yacc.c:1646  */
     {
                static int end_seen = 0;
 
@@ -2073,11 +2063,11 @@ yyreduce:
                check_comment();
                (yyval) = (yyvsp[0]);
          }
-#line 2077 "awkgram.c" /* yacc.c:1646  */
+#line 2067 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 23:
-#line 374 "awkgram.y" /* yacc.c:1646  */
+#line 376 "awkgram.y" /* yacc.c:1646  */
     {
                func_first = false;
                (yyvsp[0])->in_rule = rule = BEGINFILE;
@@ -2085,11 +2075,11 @@ yyreduce:
                check_comment();
                (yyval) = (yyvsp[0]);
          }
-#line 2089 "awkgram.c" /* yacc.c:1646  */
+#line 2079 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 24:
-#line 382 "awkgram.y" /* yacc.c:1646  */
+#line 384 "awkgram.y" /* yacc.c:1646  */
     {
                func_first = false;
                (yyvsp[0])->in_rule = rule = ENDFILE;
@@ -2097,11 +2087,11 @@ yyreduce:
                check_comment();
                (yyval) = (yyvsp[0]);
          }
-#line 2101 "awkgram.c" /* yacc.c:1646  */
+#line 2091 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 25:
-#line 393 "awkgram.y" /* yacc.c:1646  */
+#line 395 "awkgram.y" /* yacc.c:1646  */
     {
                INSTRUCTION *ip;
                if ((yyvsp[-3]) == NULL)
@@ -2110,42 +2100,48 @@ yyreduce:
                        ip = (yyvsp[-3]);
                (yyval) = ip;
          }
-#line 2114 "awkgram.c" /* yacc.c:1646  */
+#line 2104 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 26:
-#line 405 "awkgram.y" /* yacc.c:1646  */
+#line 407 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 2120 "awkgram.c" /* yacc.c:1646  */
+#line 2110 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 27:
-#line 407 "awkgram.y" /* yacc.c:1646  */
+#line 409 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 2126 "awkgram.c" /* yacc.c:1646  */
+#line 2116 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 28:
-#line 409 "awkgram.y" /* yacc.c:1646  */
+#line 411 "awkgram.y" /* yacc.c:1646  */
     {
                yyerror(_("`%s' is a built-in function, it cannot be 
redefined"),
                                        tokstart);
                YYABORT;
          }
-#line 2136 "awkgram.c" /* yacc.c:1646  */
+#line 2126 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 29:
-#line 415 "awkgram.y" /* yacc.c:1646  */
+#line 417 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = (yyvsp[0]);
                at_seen = false;
          }
-#line 2145 "awkgram.c" /* yacc.c:1646  */
+#line 2135 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 32:
-#line 428 "awkgram.y" /* yacc.c:1646  */
+#line 429 "awkgram.y" /* yacc.c:1646  */
+    { want_param_names = true; }
+#line 2141 "awkgram.c" /* yacc.c:1646  */
+    break;
+
+  case 33:
+#line 430 "awkgram.y" /* yacc.c:1646  */
     {
                /*
                 *  treat any comments between BOF and the first function
@@ -2163,26 +2159,26 @@ yyreduce:
                        comment = NULL;
                }
                func_first = false;
-               (yyvsp[-5])->source_file = source;
-               if (install_function((yyvsp[-4])->lextok, (yyvsp[-5]), 
(yyvsp[-2])) < 0)
+               (yyvsp[-6])->source_file = source;
+               if (install_function((yyvsp[-5])->lextok, (yyvsp[-6]), 
(yyvsp[-2])) < 0)
                        YYABORT;
-               in_function = (yyvsp[-4])->lextok;
-               (yyvsp[-4])->lextok = NULL;
-               bcfree((yyvsp[-4]));
-               /* $4 already free'd in install_function */
-               (yyval) = (yyvsp[-5]);
+               in_function = (yyvsp[-5])->lextok;
+               (yyvsp[-5])->lextok = NULL;
+               bcfree((yyvsp[-5]));
+               /* $5 already free'd in install_function */
+               (yyval) = (yyvsp[-6]);
          }
-#line 2176 "awkgram.c" /* yacc.c:1646  */
+#line 2172 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 33:
-#line 462 "awkgram.y" /* yacc.c:1646  */
+  case 34:
+#line 464 "awkgram.y" /* yacc.c:1646  */
     { want_regexp = true; }
-#line 2182 "awkgram.c" /* yacc.c:1646  */
+#line 2178 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 34:
-#line 464 "awkgram.y" /* yacc.c:1646  */
+  case 35:
+#line 466 "awkgram.y" /* yacc.c:1646  */
     {
                  NODE *n, *exp;
                  char *re;
@@ -2211,28 +2207,28 @@ yyreduce:
                  (yyval)->opcode = Op_match_rec;
                  (yyval)->memory = n;
                }
-#line 2215 "awkgram.c" /* yacc.c:1646  */
+#line 2211 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 35:
-#line 496 "awkgram.y" /* yacc.c:1646  */
+  case 36:
+#line 498 "awkgram.y" /* yacc.c:1646  */
     { bcfree((yyvsp[0])); }
-#line 2221 "awkgram.c" /* yacc.c:1646  */
+#line 2217 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 37:
-#line 502 "awkgram.y" /* yacc.c:1646  */
+  case 38:
+#line 504 "awkgram.y" /* yacc.c:1646  */
     {
                if (comment != NULL) {
                        (yyval) = list_create(comment);
                        comment = NULL;
                } else (yyval) = NULL;
          }
-#line 2232 "awkgram.c" /* yacc.c:1646  */
+#line 2228 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 38:
-#line 509 "awkgram.y" /* yacc.c:1646  */
+  case 39:
+#line 511 "awkgram.y" /* yacc.c:1646  */
     {
                if ((yyvsp[0]) == NULL) {
                        if (comment == NULL)
@@ -2260,40 +2256,40 @@ yyreduce:
                }
                yyerrok;
          }
-#line 2264 "awkgram.c" /* yacc.c:1646  */
+#line 2260 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 39:
-#line 537 "awkgram.y" /* yacc.c:1646  */
+  case 40:
+#line 539 "awkgram.y" /* yacc.c:1646  */
     {  (yyval) = NULL; }
-#line 2270 "awkgram.c" /* yacc.c:1646  */
-    break;
-
-  case 42:
-#line 547 "awkgram.y" /* yacc.c:1646  */
-    { (yyval) = NULL; }
-#line 2276 "awkgram.c" /* yacc.c:1646  */
+#line 2266 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 43:
 #line 549 "awkgram.y" /* yacc.c:1646  */
-    { (yyval) = (yyvsp[-1]); }
-#line 2282 "awkgram.c" /* yacc.c:1646  */
+    { (yyval) = NULL; }
+#line 2272 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 44:
 #line 551 "awkgram.y" /* yacc.c:1646  */
+    { (yyval) = (yyvsp[-1]); }
+#line 2278 "awkgram.c" /* yacc.c:1646  */
+    break;
+
+  case 45:
+#line 553 "awkgram.y" /* yacc.c:1646  */
     {
                if (do_pretty_print)
                        (yyval) = list_prepend((yyvsp[0]), 
instruction(Op_exec_count));
                else
                        (yyval) = (yyvsp[0]);
          }
-#line 2293 "awkgram.c" /* yacc.c:1646  */
+#line 2289 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 45:
-#line 558 "awkgram.y" /* yacc.c:1646  */
+  case 46:
+#line 560 "awkgram.y" /* yacc.c:1646  */
     {
                INSTRUCTION *dflt, *curr = NULL, *cexp, *cstmt;
                INSTRUCTION *ip, *nextc, *tbreak;
@@ -2383,11 +2379,11 @@ yyreduce:
                break_allowed--;                        
                fix_break_continue(ip, tbreak, NULL);
          }
-#line 2387 "awkgram.c" /* yacc.c:1646  */
+#line 2383 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 46:
-#line 648 "awkgram.y" /* yacc.c:1646  */
+  case 47:
+#line 650 "awkgram.y" /* yacc.c:1646  */
     { 
                /*
                 *    -----------------
@@ -2429,11 +2425,11 @@ yyreduce:
                continue_allowed--;
                fix_break_continue(ip, tbreak, tcont);
          }
-#line 2433 "awkgram.c" /* yacc.c:1646  */
+#line 2429 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 47:
-#line 690 "awkgram.y" /* yacc.c:1646  */
+  case 48:
+#line 692 "awkgram.y" /* yacc.c:1646  */
     {
                /*
                 *    -----------------
@@ -2475,11 +2471,11 @@ yyreduce:
                } /* else
                        $1 and $4 are NULLs */
          }
-#line 2479 "awkgram.c" /* yacc.c:1646  */
+#line 2475 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 48:
-#line 732 "awkgram.y" /* yacc.c:1646  */
+  case 49:
+#line 734 "awkgram.y" /* yacc.c:1646  */
     {
                INSTRUCTION *ip;
                char *var_name = (yyvsp[-5])->lextok;
@@ -2592,44 +2588,44 @@ regular_loop:
                break_allowed--;
                continue_allowed--;
          }
-#line 2596 "awkgram.c" /* yacc.c:1646  */
+#line 2592 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 49:
-#line 845 "awkgram.y" /* yacc.c:1646  */
+  case 50:
+#line 847 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = mk_for_loop((yyvsp[-11]), (yyvsp[-9]), (yyvsp[-6]), 
(yyvsp[-3]), (yyvsp[0]));
 
                break_allowed--;
                continue_allowed--;
          }
-#line 2607 "awkgram.c" /* yacc.c:1646  */
+#line 2603 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 50:
-#line 852 "awkgram.y" /* yacc.c:1646  */
+  case 51:
+#line 854 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = mk_for_loop((yyvsp[-10]), (yyvsp[-8]), (INSTRUCTION 
*) NULL, (yyvsp[-3]), (yyvsp[0]));
 
                break_allowed--;
                continue_allowed--;
          }
-#line 2618 "awkgram.c" /* yacc.c:1646  */
+#line 2614 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 51:
-#line 859 "awkgram.y" /* yacc.c:1646  */
+  case 52:
+#line 861 "awkgram.y" /* yacc.c:1646  */
     {
                if (do_pretty_print)
                        (yyval) = list_prepend((yyvsp[0]), 
instruction(Op_exec_count));
                else
                        (yyval) = (yyvsp[0]);
          }
-#line 2629 "awkgram.c" /* yacc.c:1646  */
+#line 2625 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 52:
-#line 869 "awkgram.y" /* yacc.c:1646  */
+  case 53:
+#line 871 "awkgram.y" /* yacc.c:1646  */
     { 
                if (! break_allowed)
                        error_ln((yyvsp[-1])->source_line,
@@ -2638,11 +2634,11 @@ regular_loop:
                (yyval) = list_create((yyvsp[-1]));
 
          }
-#line 2642 "awkgram.c" /* yacc.c:1646  */
+#line 2638 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 53:
-#line 878 "awkgram.y" /* yacc.c:1646  */
+  case 54:
+#line 880 "awkgram.y" /* yacc.c:1646  */
     {
                if (! continue_allowed)
                        error_ln((yyvsp[-1])->source_line,
@@ -2651,11 +2647,11 @@ regular_loop:
                (yyval) = list_create((yyvsp[-1]));
 
          }
-#line 2655 "awkgram.c" /* yacc.c:1646  */
+#line 2651 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 54:
-#line 887 "awkgram.y" /* yacc.c:1646  */
+  case 55:
+#line 889 "awkgram.y" /* yacc.c:1646  */
     {
                /* if inside function (rule = 0), resolve context at run-time */
                if (rule && rule != Rule)
@@ -2664,11 +2660,11 @@ regular_loop:
                (yyvsp[-1])->target_jmp = ip_rec;
                (yyval) = list_create((yyvsp[-1]));
          }
-#line 2668 "awkgram.c" /* yacc.c:1646  */
+#line 2664 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 55:
-#line 896 "awkgram.y" /* yacc.c:1646  */
+  case 56:
+#line 898 "awkgram.y" /* yacc.c:1646  */
     {
                /* if inside function (rule = 0), resolve context at run-time */
                if (rule == BEGIN || rule == END || rule == ENDFILE)
@@ -2679,11 +2675,11 @@ regular_loop:
                (yyvsp[-1])->target_endfile = ip_endfile;
                (yyval) = list_create((yyvsp[-1]));
          }
-#line 2683 "awkgram.c" /* yacc.c:1646  */
+#line 2679 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 56:
-#line 907 "awkgram.y" /* yacc.c:1646  */
+  case 57:
+#line 909 "awkgram.y" /* yacc.c:1646  */
     {
                /* Initialize the two possible jump targets, the actual target
                 * is resolved at run-time. 
@@ -2698,20 +2694,20 @@ regular_loop:
                } else
                        (yyval) = list_append((yyvsp[-1]), (yyvsp[-2]));
          }
-#line 2702 "awkgram.c" /* yacc.c:1646  */
+#line 2698 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 57:
-#line 922 "awkgram.y" /* yacc.c:1646  */
+  case 58:
+#line 924 "awkgram.y" /* yacc.c:1646  */
     {
                if (! in_function)
                        yyerror(_("`return' used outside function context"));
          }
-#line 2711 "awkgram.c" /* yacc.c:1646  */
+#line 2707 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 58:
-#line 925 "awkgram.y" /* yacc.c:1646  */
+  case 59:
+#line 927 "awkgram.y" /* yacc.c:1646  */
     {
                if ((yyvsp[-1]) == NULL) {
                        (yyval) = list_create((yyvsp[-3]));
@@ -2732,17 +2728,17 @@ regular_loop:
                        (yyval) = list_append((yyvsp[-1]), (yyvsp[-3]));
                }
          }
-#line 2736 "awkgram.c" /* yacc.c:1646  */
+#line 2732 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 60:
-#line 957 "awkgram.y" /* yacc.c:1646  */
+  case 61:
+#line 959 "awkgram.y" /* yacc.c:1646  */
     { in_print = true; in_parens = 0; }
-#line 2742 "awkgram.c" /* yacc.c:1646  */
+#line 2738 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 61:
-#line 958 "awkgram.y" /* yacc.c:1646  */
+  case 62:
+#line 960 "awkgram.y" /* yacc.c:1646  */
     {
                /*
                 * Optimization: plain `print' has no expression list, so $3 is 
null.
@@ -2839,17 +2835,17 @@ regular_print:
                        }
                }
          }
-#line 2843 "awkgram.c" /* yacc.c:1646  */
+#line 2839 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 62:
-#line 1055 "awkgram.y" /* yacc.c:1646  */
+  case 63:
+#line 1057 "awkgram.y" /* yacc.c:1646  */
     { sub_counter = 0; }
-#line 2849 "awkgram.c" /* yacc.c:1646  */
+#line 2845 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 63:
-#line 1056 "awkgram.y" /* yacc.c:1646  */
+  case 64:
+#line 1058 "awkgram.y" /* yacc.c:1646  */
     {
                char *arr = (yyvsp[-2])->lextok;
 
@@ -2882,11 +2878,11 @@ regular_print:
                        (yyval) = list_append(list_append((yyvsp[0]), 
(yyvsp[-2])), (yyvsp[-3]));
                }
          }
-#line 2886 "awkgram.c" /* yacc.c:1646  */
+#line 2882 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 64:
-#line 1093 "awkgram.y" /* yacc.c:1646  */
+  case 65:
+#line 1095 "awkgram.y" /* yacc.c:1646  */
     {
                static bool warned = false;
                char *arr = (yyvsp[-1])->lextok;
@@ -2912,52 +2908,52 @@ regular_print:
                                fatal(_("`delete' is not allowed with 
FUNCTAB"));
                }
          }
-#line 2916 "awkgram.c" /* yacc.c:1646  */
-    break;
-
-  case 65:
-#line 1119 "awkgram.y" /* yacc.c:1646  */
-    {  (yyval) = optimize_assignment((yyvsp[0])); }
-#line 2922 "awkgram.c" /* yacc.c:1646  */
+#line 2912 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 66:
-#line 1124 "awkgram.y" /* yacc.c:1646  */
-    { (yyval) = NULL; }
-#line 2928 "awkgram.c" /* yacc.c:1646  */
+#line 1121 "awkgram.y" /* yacc.c:1646  */
+    {  (yyval) = optimize_assignment((yyvsp[0])); }
+#line 2918 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 67:
 #line 1126 "awkgram.y" /* yacc.c:1646  */
-    { (yyval) = (yyvsp[0]); }
-#line 2934 "awkgram.c" /* yacc.c:1646  */
+    { (yyval) = NULL; }
+#line 2924 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 68:
-#line 1131 "awkgram.y" /* yacc.c:1646  */
-    { (yyval) = NULL; }
-#line 2940 "awkgram.c" /* yacc.c:1646  */
+#line 1128 "awkgram.y" /* yacc.c:1646  */
+    { (yyval) = (yyvsp[0]); }
+#line 2930 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 69:
 #line 1133 "awkgram.y" /* yacc.c:1646  */
+    { (yyval) = NULL; }
+#line 2936 "awkgram.c" /* yacc.c:1646  */
+    break;
+
+  case 70:
+#line 1135 "awkgram.y" /* yacc.c:1646  */
     {
                if ((yyvsp[-1]) == NULL)
                        (yyval) = list_create((yyvsp[0]));
                else
                        (yyval) = list_prepend((yyvsp[-1]), (yyvsp[0]));
          }
-#line 2951 "awkgram.c" /* yacc.c:1646  */
+#line 2947 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 70:
-#line 1140 "awkgram.y" /* yacc.c:1646  */
+  case 71:
+#line 1142 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 2957 "awkgram.c" /* yacc.c:1646  */
+#line 2953 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 71:
-#line 1145 "awkgram.y" /* yacc.c:1646  */
+  case 72:
+#line 1147 "awkgram.y" /* yacc.c:1646  */
     {
                INSTRUCTION *casestmt = (yyvsp[0]);
                if ((yyvsp[0]) == NULL)
@@ -2969,11 +2965,11 @@ regular_print:
                bcfree((yyvsp[-2]));
                (yyval) = (yyvsp[-4]);
          }
-#line 2973 "awkgram.c" /* yacc.c:1646  */
+#line 2969 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 72:
-#line 1157 "awkgram.y" /* yacc.c:1646  */
+  case 73:
+#line 1159 "awkgram.y" /* yacc.c:1646  */
     {
                INSTRUCTION *casestmt = (yyvsp[0]);
                if ((yyvsp[0]) == NULL)
@@ -2984,17 +2980,17 @@ regular_print:
                (yyvsp[-3])->case_stmt = casestmt;
                (yyval) = (yyvsp[-3]);
          }
-#line 2988 "awkgram.c" /* yacc.c:1646  */
+#line 2984 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 73:
-#line 1171 "awkgram.y" /* yacc.c:1646  */
+  case 74:
+#line 1173 "awkgram.y" /* yacc.c:1646  */
     {  (yyval) = (yyvsp[0]); }
-#line 2994 "awkgram.c" /* yacc.c:1646  */
+#line 2990 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 74:
-#line 1173 "awkgram.y" /* yacc.c:1646  */
+  case 75:
+#line 1175 "awkgram.y" /* yacc.c:1646  */
     { 
                NODE *n = (yyvsp[0])->memory;
                (void) force_number(n);
@@ -3002,71 +2998,71 @@ regular_print:
                bcfree((yyvsp[-1]));
                (yyval) = (yyvsp[0]);
          }
-#line 3006 "awkgram.c" /* yacc.c:1646  */
+#line 3002 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 75:
-#line 1181 "awkgram.y" /* yacc.c:1646  */
+  case 76:
+#line 1183 "awkgram.y" /* yacc.c:1646  */
     {
                bcfree((yyvsp[-1]));
                (yyval) = (yyvsp[0]);
          }
-#line 3015 "awkgram.c" /* yacc.c:1646  */
+#line 3011 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 76:
-#line 1186 "awkgram.y" /* yacc.c:1646  */
+  case 77:
+#line 1188 "awkgram.y" /* yacc.c:1646  */
     {  (yyval) = (yyvsp[0]); }
-#line 3021 "awkgram.c" /* yacc.c:1646  */
+#line 3017 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 77:
-#line 1188 "awkgram.y" /* yacc.c:1646  */
+  case 78:
+#line 1190 "awkgram.y" /* yacc.c:1646  */
     {
                (yyvsp[0])->opcode = Op_push_re;
                (yyval) = (yyvsp[0]);
          }
-#line 3030 "awkgram.c" /* yacc.c:1646  */
+#line 3026 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 78:
-#line 1196 "awkgram.y" /* yacc.c:1646  */
+  case 79:
+#line 1198 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3036 "awkgram.c" /* yacc.c:1646  */
+#line 3032 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 79:
-#line 1198 "awkgram.y" /* yacc.c:1646  */
+  case 80:
+#line 1200 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3042 "awkgram.c" /* yacc.c:1646  */
+#line 3038 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 81:
-#line 1208 "awkgram.y" /* yacc.c:1646  */
+  case 82:
+#line 1210 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = (yyvsp[-1]);
          }
-#line 3050 "awkgram.c" /* yacc.c:1646  */
+#line 3046 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 82:
-#line 1215 "awkgram.y" /* yacc.c:1646  */
+  case 83:
+#line 1217 "awkgram.y" /* yacc.c:1646  */
     {
                in_print = false;
                in_parens = 0;
                (yyval) = NULL;
          }
-#line 3060 "awkgram.c" /* yacc.c:1646  */
+#line 3056 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 83:
-#line 1220 "awkgram.y" /* yacc.c:1646  */
+  case 84:
+#line 1222 "awkgram.y" /* yacc.c:1646  */
     { in_print = false; in_parens = 0; }
-#line 3066 "awkgram.c" /* yacc.c:1646  */
+#line 3062 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 84:
-#line 1221 "awkgram.y" /* yacc.c:1646  */
+  case 85:
+#line 1223 "awkgram.y" /* yacc.c:1646  */
     {
                if ((yyvsp[-2])->redir_type == redirect_twoway
                        && (yyvsp[0])->lasti->opcode == Op_K_getline_redir
@@ -3074,136 +3070,136 @@ regular_print:
                        yyerror(_("multistage two-way pipelines don't work"));
                (yyval) = list_prepend((yyvsp[0]), (yyvsp[-2]));
          }
-#line 3078 "awkgram.c" /* yacc.c:1646  */
+#line 3074 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 85:
-#line 1232 "awkgram.y" /* yacc.c:1646  */
+  case 86:
+#line 1234 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = mk_condition((yyvsp[-3]), (yyvsp[-5]), (yyvsp[0]), 
NULL, NULL);
          }
-#line 3086 "awkgram.c" /* yacc.c:1646  */
+#line 3082 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 86:
-#line 1237 "awkgram.y" /* yacc.c:1646  */
+  case 87:
+#line 1239 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = mk_condition((yyvsp[-6]), (yyvsp[-8]), (yyvsp[-3]), 
(yyvsp[-2]), (yyvsp[0]));
          }
-#line 3094 "awkgram.c" /* yacc.c:1646  */
+#line 3090 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 91:
-#line 1254 "awkgram.y" /* yacc.c:1646  */
+  case 92:
+#line 1256 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 3100 "awkgram.c" /* yacc.c:1646  */
+#line 3096 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 92:
-#line 1256 "awkgram.y" /* yacc.c:1646  */
+  case 93:
+#line 1258 "awkgram.y" /* yacc.c:1646  */
     {
                bcfree((yyvsp[-1]));
                (yyval) = (yyvsp[0]);
          }
-#line 3109 "awkgram.c" /* yacc.c:1646  */
+#line 3105 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 93:
-#line 1264 "awkgram.y" /* yacc.c:1646  */
+  case 94:
+#line 1266 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 3115 "awkgram.c" /* yacc.c:1646  */
+#line 3111 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 94:
-#line 1266 "awkgram.y" /* yacc.c:1646  */
+  case 95:
+#line 1268 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3121 "awkgram.c" /* yacc.c:1646  */
+#line 3117 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 95:
-#line 1271 "awkgram.y" /* yacc.c:1646  */
+  case 96:
+#line 1273 "awkgram.y" /* yacc.c:1646  */
     {
                (yyvsp[0])->param_count = 0;
                (yyval) = list_create((yyvsp[0]));
          }
-#line 3130 "awkgram.c" /* yacc.c:1646  */
+#line 3126 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 96:
-#line 1276 "awkgram.y" /* yacc.c:1646  */
+  case 97:
+#line 1278 "awkgram.y" /* yacc.c:1646  */
     {
                (yyvsp[0])->param_count =  (yyvsp[-2])->lasti->param_count + 1;
                (yyval) = list_append((yyvsp[-2]), (yyvsp[0]));
                yyerrok;
          }
-#line 3140 "awkgram.c" /* yacc.c:1646  */
-    break;
-
-  case 97:
-#line 1282 "awkgram.y" /* yacc.c:1646  */
-    { (yyval) = NULL; }
-#line 3146 "awkgram.c" /* yacc.c:1646  */
+#line 3136 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 98:
 #line 1284 "awkgram.y" /* yacc.c:1646  */
-    { (yyval) = (yyvsp[-1]); }
-#line 3152 "awkgram.c" /* yacc.c:1646  */
+    { (yyval) = NULL; }
+#line 3142 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 99:
 #line 1286 "awkgram.y" /* yacc.c:1646  */
-    { (yyval) = (yyvsp[-2]); }
-#line 3158 "awkgram.c" /* yacc.c:1646  */
+    { (yyval) = (yyvsp[-1]); }
+#line 3148 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 100:
-#line 1292 "awkgram.y" /* yacc.c:1646  */
-    { (yyval) = NULL; }
-#line 3164 "awkgram.c" /* yacc.c:1646  */
+#line 1288 "awkgram.y" /* yacc.c:1646  */
+    { (yyval) = (yyvsp[-2]); }
+#line 3154 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 101:
 #line 1294 "awkgram.y" /* yacc.c:1646  */
-    { (yyval) = (yyvsp[0]); }
-#line 3170 "awkgram.c" /* yacc.c:1646  */
+    { (yyval) = NULL; }
+#line 3160 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 102:
-#line 1299 "awkgram.y" /* yacc.c:1646  */
-    { (yyval) = NULL; }
-#line 3176 "awkgram.c" /* yacc.c:1646  */
+#line 1296 "awkgram.y" /* yacc.c:1646  */
+    { (yyval) = (yyvsp[0]); }
+#line 3166 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 103:
 #line 1301 "awkgram.y" /* yacc.c:1646  */
-    { (yyval) = (yyvsp[0]); }
-#line 3182 "awkgram.c" /* yacc.c:1646  */
+    { (yyval) = NULL; }
+#line 3172 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 104:
-#line 1306 "awkgram.y" /* yacc.c:1646  */
-    {  (yyval) = mk_expression_list(NULL, (yyvsp[0])); }
-#line 3188 "awkgram.c" /* yacc.c:1646  */
+#line 1303 "awkgram.y" /* yacc.c:1646  */
+    { (yyval) = (yyvsp[0]); }
+#line 3178 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 105:
 #line 1308 "awkgram.y" /* yacc.c:1646  */
+    {  (yyval) = mk_expression_list(NULL, (yyvsp[0])); }
+#line 3184 "awkgram.c" /* yacc.c:1646  */
+    break;
+
+  case 106:
+#line 1310 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
                yyerrok;
          }
-#line 3197 "awkgram.c" /* yacc.c:1646  */
+#line 3193 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 106:
-#line 1313 "awkgram.y" /* yacc.c:1646  */
+  case 107:
+#line 1315 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 3203 "awkgram.c" /* yacc.c:1646  */
+#line 3199 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 107:
-#line 1315 "awkgram.y" /* yacc.c:1646  */
+  case 108:
+#line 1317 "awkgram.y" /* yacc.c:1646  */
     {
                /*
                 * Returning the expression list instead of NULL lets
@@ -3211,52 +3207,52 @@ regular_print:
                 */
                (yyval) = (yyvsp[-1]);
          }
-#line 3215 "awkgram.c" /* yacc.c:1646  */
+#line 3211 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 108:
-#line 1323 "awkgram.y" /* yacc.c:1646  */
+  case 109:
+#line 1325 "awkgram.y" /* yacc.c:1646  */
     {
                /* Ditto */
                (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
          }
-#line 3224 "awkgram.c" /* yacc.c:1646  */
+#line 3220 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 109:
-#line 1328 "awkgram.y" /* yacc.c:1646  */
+  case 110:
+#line 1330 "awkgram.y" /* yacc.c:1646  */
     {
                /* Ditto */
                (yyval) = (yyvsp[-2]);
          }
-#line 3233 "awkgram.c" /* yacc.c:1646  */
+#line 3229 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 110:
-#line 1337 "awkgram.y" /* yacc.c:1646  */
+  case 111:
+#line 1339 "awkgram.y" /* yacc.c:1646  */
     {
                if (do_lint && (yyvsp[0])->lasti->opcode == Op_match_rec)
                        lintwarn_ln((yyvsp[-1])->source_line,
                                _("regular expression on right of assignment"));
                (yyval) = mk_assignment((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1]));
          }
-#line 3244 "awkgram.c" /* yacc.c:1646  */
-    break;
-
-  case 111:
-#line 1344 "awkgram.y" /* yacc.c:1646  */
-    {  (yyval) = mk_boolean((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3250 "awkgram.c" /* yacc.c:1646  */
+#line 3240 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 112:
 #line 1346 "awkgram.y" /* yacc.c:1646  */
     {  (yyval) = mk_boolean((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3256 "awkgram.c" /* yacc.c:1646  */
+#line 3246 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 113:
 #line 1348 "awkgram.y" /* yacc.c:1646  */
+    {  (yyval) = mk_boolean((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
+#line 3252 "awkgram.c" /* yacc.c:1646  */
+    break;
+
+  case 114:
+#line 1350 "awkgram.y" /* yacc.c:1646  */
     {
                if ((yyvsp[-2])->lasti->opcode == Op_match_rec)
                        warning_ln((yyvsp[-1])->source_line,
@@ -3272,11 +3268,11 @@ regular_print:
                        (yyval) = list_append(list_merge((yyvsp[-2]), 
(yyvsp[0])), (yyvsp[-1]));
                }
          }
-#line 3276 "awkgram.c" /* yacc.c:1646  */
+#line 3272 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 114:
-#line 1364 "awkgram.y" /* yacc.c:1646  */
+  case 115:
+#line 1366 "awkgram.y" /* yacc.c:1646  */
     {
                if (do_lint_old)
                        warning_ln((yyvsp[-1])->source_line,
@@ -3286,91 +3282,91 @@ regular_print:
                (yyvsp[-1])->expr_count = 1;
                (yyval) = list_append(list_merge((yyvsp[-2]), (yyvsp[0])), 
(yyvsp[-1]));
          }
-#line 3290 "awkgram.c" /* yacc.c:1646  */
+#line 3286 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 115:
-#line 1374 "awkgram.y" /* yacc.c:1646  */
+  case 116:
+#line 1376 "awkgram.y" /* yacc.c:1646  */
     {
                if (do_lint && (yyvsp[0])->lasti->opcode == Op_match_rec)
                        lintwarn_ln((yyvsp[-1])->source_line,
                                _("regular expression on right of comparison"));
                (yyval) = list_append(list_merge((yyvsp[-2]), (yyvsp[0])), 
(yyvsp[-1]));
          }
-#line 3301 "awkgram.c" /* yacc.c:1646  */
-    break;
-
-  case 116:
-#line 1381 "awkgram.y" /* yacc.c:1646  */
-    { (yyval) = mk_condition((yyvsp[-4]), (yyvsp[-3]), (yyvsp[-2]), 
(yyvsp[-1]), (yyvsp[0])); }
-#line 3307 "awkgram.c" /* yacc.c:1646  */
+#line 3297 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 117:
 #line 1383 "awkgram.y" /* yacc.c:1646  */
-    { (yyval) = (yyvsp[0]); }
-#line 3313 "awkgram.c" /* yacc.c:1646  */
+    { (yyval) = mk_condition((yyvsp[-4]), (yyvsp[-3]), (yyvsp[-2]), 
(yyvsp[-1]), (yyvsp[0])); }
+#line 3303 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 118:
-#line 1388 "awkgram.y" /* yacc.c:1646  */
+#line 1385 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3319 "awkgram.c" /* yacc.c:1646  */
+#line 3309 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 119:
 #line 1390 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3325 "awkgram.c" /* yacc.c:1646  */
+#line 3315 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 120:
 #line 1392 "awkgram.y" /* yacc.c:1646  */
+    { (yyval) = (yyvsp[0]); }
+#line 3321 "awkgram.c" /* yacc.c:1646  */
+    break;
+
+  case 121:
+#line 1394 "awkgram.y" /* yacc.c:1646  */
     {  
                (yyvsp[0])->opcode = Op_assign_quotient;
                (yyval) = (yyvsp[0]);
          }
-#line 3334 "awkgram.c" /* yacc.c:1646  */
-    break;
-
-  case 121:
-#line 1400 "awkgram.y" /* yacc.c:1646  */
-    { (yyval) = (yyvsp[0]); }
-#line 3340 "awkgram.c" /* yacc.c:1646  */
+#line 3330 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 122:
 #line 1402 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3346 "awkgram.c" /* yacc.c:1646  */
+#line 3336 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 123:
-#line 1407 "awkgram.y" /* yacc.c:1646  */
+#line 1404 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3352 "awkgram.c" /* yacc.c:1646  */
+#line 3342 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 124:
 #line 1409 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3358 "awkgram.c" /* yacc.c:1646  */
+#line 3348 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 125:
-#line 1414 "awkgram.y" /* yacc.c:1646  */
+#line 1411 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3364 "awkgram.c" /* yacc.c:1646  */
+#line 3354 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 126:
 #line 1416 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 3370 "awkgram.c" /* yacc.c:1646  */
+#line 3360 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 127:
 #line 1418 "awkgram.y" /* yacc.c:1646  */
+    { (yyval) = (yyvsp[0]); }
+#line 3366 "awkgram.c" /* yacc.c:1646  */
+    break;
+
+  case 128:
+#line 1420 "awkgram.y" /* yacc.c:1646  */
     {
                int count = 2;
                bool is_simple_var = false;
@@ -3417,47 +3413,47 @@ regular_print:
                                max_args = count;
                }
          }
-#line 3421 "awkgram.c" /* yacc.c:1646  */
-    break;
-
-  case 129:
-#line 1470 "awkgram.y" /* yacc.c:1646  */
-    { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3427 "awkgram.c" /* yacc.c:1646  */
+#line 3417 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 130:
 #line 1472 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3433 "awkgram.c" /* yacc.c:1646  */
+#line 3423 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 131:
 #line 1474 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3439 "awkgram.c" /* yacc.c:1646  */
+#line 3429 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 132:
 #line 1476 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3445 "awkgram.c" /* yacc.c:1646  */
+#line 3435 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 133:
 #line 1478 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3451 "awkgram.c" /* yacc.c:1646  */
+#line 3441 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 134:
 #line 1480 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3457 "awkgram.c" /* yacc.c:1646  */
+#line 3447 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 135:
 #line 1482 "awkgram.y" /* yacc.c:1646  */
+    { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
+#line 3453 "awkgram.c" /* yacc.c:1646  */
+    break;
+
+  case 136:
+#line 1484 "awkgram.y" /* yacc.c:1646  */
     {
                /*
                 * In BEGINFILE/ENDFILE, allow `getline [var] < file'
@@ -3471,29 +3467,29 @@ regular_print:
                                _("non-redirected `getline' undefined inside 
END action"));
                (yyval) = mk_getline((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]), 
redirect_input);
          }
-#line 3475 "awkgram.c" /* yacc.c:1646  */
+#line 3471 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 136:
-#line 1496 "awkgram.y" /* yacc.c:1646  */
+  case 137:
+#line 1498 "awkgram.y" /* yacc.c:1646  */
     {
                (yyvsp[0])->opcode = Op_postincrement;
                (yyval) = mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
          }
-#line 3484 "awkgram.c" /* yacc.c:1646  */
+#line 3480 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 137:
-#line 1501 "awkgram.y" /* yacc.c:1646  */
+  case 138:
+#line 1503 "awkgram.y" /* yacc.c:1646  */
     {
                (yyvsp[0])->opcode = Op_postdecrement;
                (yyval) = mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
          }
-#line 3493 "awkgram.c" /* yacc.c:1646  */
+#line 3489 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 138:
-#line 1506 "awkgram.y" /* yacc.c:1646  */
+  case 139:
+#line 1508 "awkgram.y" /* yacc.c:1646  */
     {
                if (do_lint_old) {
                    warning_ln((yyvsp[-1])->source_line,
@@ -3513,64 +3509,64 @@ regular_print:
                        (yyval) = list_append(list_merge(t, (yyvsp[0])), 
(yyvsp[-1]));
                }
          }
-#line 3517 "awkgram.c" /* yacc.c:1646  */
+#line 3513 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 139:
-#line 1531 "awkgram.y" /* yacc.c:1646  */
+  case 140:
+#line 1533 "awkgram.y" /* yacc.c:1646  */
     {
                  (yyval) = mk_getline((yyvsp[-1]), (yyvsp[0]), (yyvsp[-3]), 
(yyvsp[-2])->redir_type);
                  bcfree((yyvsp[-2]));
                }
-#line 3526 "awkgram.c" /* yacc.c:1646  */
-    break;
-
-  case 140:
-#line 1537 "awkgram.y" /* yacc.c:1646  */
-    { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3532 "awkgram.c" /* yacc.c:1646  */
+#line 3522 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 141:
 #line 1539 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3538 "awkgram.c" /* yacc.c:1646  */
+#line 3528 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 142:
 #line 1541 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3544 "awkgram.c" /* yacc.c:1646  */
+#line 3534 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 143:
 #line 1543 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3550 "awkgram.c" /* yacc.c:1646  */
+#line 3540 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 144:
 #line 1545 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3556 "awkgram.c" /* yacc.c:1646  */
+#line 3546 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 145:
 #line 1547 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3562 "awkgram.c" /* yacc.c:1646  */
+#line 3552 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 146:
-#line 1552 "awkgram.y" /* yacc.c:1646  */
+#line 1549 "awkgram.y" /* yacc.c:1646  */
+    { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
+#line 3558 "awkgram.c" /* yacc.c:1646  */
+    break;
+
+  case 147:
+#line 1554 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = list_create((yyvsp[0]));
          }
-#line 3570 "awkgram.c" /* yacc.c:1646  */
+#line 3566 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 147:
-#line 1556 "awkgram.y" /* yacc.c:1646  */
+  case 148:
+#line 1558 "awkgram.y" /* yacc.c:1646  */
     {
                if ((yyvsp[0])->opcode == Op_match_rec) {
                        (yyvsp[0])->opcode = Op_nomatch;
@@ -3602,37 +3598,37 @@ regular_print:
                        }
                }
           }
-#line 3606 "awkgram.c" /* yacc.c:1646  */
+#line 3602 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 148:
-#line 1588 "awkgram.y" /* yacc.c:1646  */
+  case 149:
+#line 1590 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[-1]); }
-#line 3612 "awkgram.c" /* yacc.c:1646  */
+#line 3608 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 149:
-#line 1590 "awkgram.y" /* yacc.c:1646  */
+  case 150:
+#line 1592 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = snode((yyvsp[-1]), (yyvsp[-3]));
                if ((yyval) == NULL)
                        YYABORT;
          }
-#line 3622 "awkgram.c" /* yacc.c:1646  */
+#line 3618 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 150:
-#line 1596 "awkgram.y" /* yacc.c:1646  */
+  case 151:
+#line 1598 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = snode((yyvsp[-1]), (yyvsp[-3]));
                if ((yyval) == NULL)
                        YYABORT;
          }
-#line 3632 "awkgram.c" /* yacc.c:1646  */
+#line 3628 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 151:
-#line 1602 "awkgram.y" /* yacc.c:1646  */
+  case 152:
+#line 1604 "awkgram.y" /* yacc.c:1646  */
     {
                static bool warned = false;
 
@@ -3645,45 +3641,45 @@ regular_print:
                if ((yyval) == NULL)
                        YYABORT;
          }
-#line 3649 "awkgram.c" /* yacc.c:1646  */
+#line 3645 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 154:
-#line 1617 "awkgram.y" /* yacc.c:1646  */
+  case 155:
+#line 1619 "awkgram.y" /* yacc.c:1646  */
     {
                (yyvsp[-1])->opcode = Op_preincrement;
                (yyval) = mk_assignment((yyvsp[0]), NULL, (yyvsp[-1]));
          }
-#line 3658 "awkgram.c" /* yacc.c:1646  */
+#line 3654 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 155:
-#line 1622 "awkgram.y" /* yacc.c:1646  */
+  case 156:
+#line 1624 "awkgram.y" /* yacc.c:1646  */
     {
                (yyvsp[-1])->opcode = Op_predecrement;
                (yyval) = mk_assignment((yyvsp[0]), NULL, (yyvsp[-1]));
          }
-#line 3667 "awkgram.c" /* yacc.c:1646  */
+#line 3663 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 156:
-#line 1627 "awkgram.y" /* yacc.c:1646  */
+  case 157:
+#line 1629 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = list_create((yyvsp[0]));
          }
-#line 3675 "awkgram.c" /* yacc.c:1646  */
+#line 3671 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 157:
-#line 1631 "awkgram.y" /* yacc.c:1646  */
+  case 158:
+#line 1633 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = list_create((yyvsp[0]));
          }
-#line 3683 "awkgram.c" /* yacc.c:1646  */
+#line 3679 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 158:
-#line 1635 "awkgram.y" /* yacc.c:1646  */
+  case 159:
+#line 1637 "awkgram.y" /* yacc.c:1646  */
     {
                if ((yyvsp[0])->lasti->opcode == Op_push_i
                        && ((yyvsp[0])->lasti->memory->flags & (STRCUR|STRING)) 
== 0
@@ -3698,11 +3694,11 @@ regular_print:
                        (yyval) = list_append((yyvsp[0]), (yyvsp[-1]));
                }
          }
-#line 3702 "awkgram.c" /* yacc.c:1646  */
+#line 3698 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 159:
-#line 1650 "awkgram.y" /* yacc.c:1646  */
+  case 160:
+#line 1652 "awkgram.y" /* yacc.c:1646  */
     {
            /*
             * was: $$ = $2
@@ -3712,20 +3708,20 @@ regular_print:
                (yyvsp[-1])->memory = make_number(0.0);
                (yyval) = list_append((yyvsp[0]), (yyvsp[-1]));
          }
-#line 3716 "awkgram.c" /* yacc.c:1646  */
+#line 3712 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 160:
-#line 1663 "awkgram.y" /* yacc.c:1646  */
+  case 161:
+#line 1665 "awkgram.y" /* yacc.c:1646  */
     {
                func_use((yyvsp[0])->lasti->func_name, FUNC_USE);
                (yyval) = (yyvsp[0]);
          }
-#line 3725 "awkgram.c" /* yacc.c:1646  */
+#line 3721 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 161:
-#line 1668 "awkgram.y" /* yacc.c:1646  */
+  case 162:
+#line 1670 "awkgram.y" /* yacc.c:1646  */
     {
                /* indirect function call */
                INSTRUCTION *f, *t;
@@ -3759,11 +3755,11 @@ regular_print:
                (yyval) = list_prepend((yyvsp[0]), t);
                at_seen = false;
          }
-#line 3763 "awkgram.c" /* yacc.c:1646  */
+#line 3759 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 162:
-#line 1705 "awkgram.y" /* yacc.c:1646  */
+  case 163:
+#line 1707 "awkgram.y" /* yacc.c:1646  */
     {
                NODE *n;
 
@@ -3788,49 +3784,49 @@ regular_print:
                        (yyval) = list_append(t, (yyvsp[-3]));
                }
          }
-#line 3792 "awkgram.c" /* yacc.c:1646  */
-    break;
-
-  case 163:
-#line 1733 "awkgram.y" /* yacc.c:1646  */
-    { (yyval) = NULL; }
-#line 3798 "awkgram.c" /* yacc.c:1646  */
+#line 3788 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 164:
 #line 1735 "awkgram.y" /* yacc.c:1646  */
-    { (yyval) = (yyvsp[0]); }
-#line 3804 "awkgram.c" /* yacc.c:1646  */
+    { (yyval) = NULL; }
+#line 3794 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 165:
-#line 1740 "awkgram.y" /* yacc.c:1646  */
-    { (yyval) = NULL; }
-#line 3810 "awkgram.c" /* yacc.c:1646  */
+#line 1737 "awkgram.y" /* yacc.c:1646  */
+    { (yyval) = (yyvsp[0]); }
+#line 3800 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 166:
 #line 1742 "awkgram.y" /* yacc.c:1646  */
-    { (yyval) = (yyvsp[-1]); }
-#line 3816 "awkgram.c" /* yacc.c:1646  */
+    { (yyval) = NULL; }
+#line 3806 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 167:
-#line 1747 "awkgram.y" /* yacc.c:1646  */
-    {  (yyval) = (yyvsp[0]); }
-#line 3822 "awkgram.c" /* yacc.c:1646  */
+#line 1744 "awkgram.y" /* yacc.c:1646  */
+    { (yyval) = (yyvsp[-1]); }
+#line 3812 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 168:
 #line 1749 "awkgram.y" /* yacc.c:1646  */
+    {  (yyval) = (yyvsp[0]); }
+#line 3818 "awkgram.c" /* yacc.c:1646  */
+    break;
+
+  case 169:
+#line 1751 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = list_merge((yyvsp[-1]), (yyvsp[0]));
          }
-#line 3830 "awkgram.c" /* yacc.c:1646  */
+#line 3826 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 169:
-#line 1756 "awkgram.y" /* yacc.c:1646  */
+  case 170:
+#line 1758 "awkgram.y" /* yacc.c:1646  */
     {
                INSTRUCTION *ip = (yyvsp[0])->lasti; 
                int count = ip->sub_count;      /* # of SUBSEP-seperated 
expressions */
@@ -3844,11 +3840,11 @@ regular_print:
                sub_counter++;  /* count # of dimensions */
                (yyval) = (yyvsp[0]);
          }
-#line 3848 "awkgram.c" /* yacc.c:1646  */
+#line 3844 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 170:
-#line 1773 "awkgram.y" /* yacc.c:1646  */
+  case 171:
+#line 1775 "awkgram.y" /* yacc.c:1646  */
     {
                INSTRUCTION *t = (yyvsp[-1]);
                if ((yyvsp[-1]) == NULL) {
@@ -3862,31 +3858,31 @@ regular_print:
                        (yyvsp[0])->sub_count = count_expressions(&t, false);
                (yyval) = list_append(t, (yyvsp[0]));
          }
-#line 3866 "awkgram.c" /* yacc.c:1646  */
+#line 3862 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 171:
-#line 1790 "awkgram.y" /* yacc.c:1646  */
+  case 172:
+#line 1792 "awkgram.y" /* yacc.c:1646  */
     {  (yyval) = (yyvsp[0]); }
-#line 3872 "awkgram.c" /* yacc.c:1646  */
+#line 3868 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 172:
-#line 1792 "awkgram.y" /* yacc.c:1646  */
+  case 173:
+#line 1794 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = list_merge((yyvsp[-1]), (yyvsp[0]));
          }
-#line 3880 "awkgram.c" /* yacc.c:1646  */
+#line 3876 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 173:
-#line 1799 "awkgram.y" /* yacc.c:1646  */
+  case 174:
+#line 1801 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[-1]); }
-#line 3886 "awkgram.c" /* yacc.c:1646  */
+#line 3882 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 174:
-#line 1804 "awkgram.y" /* yacc.c:1646  */
+  case 175:
+#line 1806 "awkgram.y" /* yacc.c:1646  */
     {
                char *var_name = (yyvsp[0])->lextok;
 
@@ -3894,22 +3890,22 @@ regular_print:
                (yyvsp[0])->memory = variable((yyvsp[0])->source_line, 
var_name, Node_var_new);
                (yyval) = list_create((yyvsp[0]));
          }
-#line 3898 "awkgram.c" /* yacc.c:1646  */
+#line 3894 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 175:
-#line 1812 "awkgram.y" /* yacc.c:1646  */
+  case 176:
+#line 1814 "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 3909 "awkgram.c" /* yacc.c:1646  */
+#line 3905 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 176:
-#line 1822 "awkgram.y" /* yacc.c:1646  */
+  case 177:
+#line 1824 "awkgram.y" /* yacc.c:1646  */
     {
                INSTRUCTION *ip = (yyvsp[0])->nexti;
                if (ip->opcode == Op_push
@@ -3921,73 +3917,73 @@ regular_print:
                } else
                        (yyval) = (yyvsp[0]);
          }
-#line 3925 "awkgram.c" /* yacc.c:1646  */
+#line 3921 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 177:
-#line 1834 "awkgram.y" /* yacc.c:1646  */
+  case 178:
+#line 1836 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = list_append((yyvsp[-1]), (yyvsp[-2]));
                if ((yyvsp[0]) != NULL)
                        mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
          }
-#line 3935 "awkgram.c" /* yacc.c:1646  */
+#line 3931 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 178:
-#line 1843 "awkgram.y" /* yacc.c:1646  */
+  case 179:
+#line 1845 "awkgram.y" /* yacc.c:1646  */
     {
                (yyvsp[0])->opcode = Op_postincrement;
          }
-#line 3943 "awkgram.c" /* yacc.c:1646  */
+#line 3939 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 179:
-#line 1847 "awkgram.y" /* yacc.c:1646  */
+  case 180:
+#line 1849 "awkgram.y" /* yacc.c:1646  */
     {
                (yyvsp[0])->opcode = Op_postdecrement;
          }
-#line 3951 "awkgram.c" /* yacc.c:1646  */
+#line 3947 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 180:
-#line 1850 "awkgram.y" /* yacc.c:1646  */
+  case 181:
+#line 1852 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 3957 "awkgram.c" /* yacc.c:1646  */
+#line 3953 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 182:
-#line 1858 "awkgram.y" /* yacc.c:1646  */
+  case 183:
+#line 1860 "awkgram.y" /* yacc.c:1646  */
     { yyerrok; }
-#line 3963 "awkgram.c" /* yacc.c:1646  */
+#line 3959 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 183:
-#line 1862 "awkgram.y" /* yacc.c:1646  */
+  case 184:
+#line 1864 "awkgram.y" /* yacc.c:1646  */
     { yyerrok; }
-#line 3969 "awkgram.c" /* yacc.c:1646  */
+#line 3965 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 186:
-#line 1871 "awkgram.y" /* yacc.c:1646  */
+  case 187:
+#line 1873 "awkgram.y" /* yacc.c:1646  */
     { yyerrok; }
-#line 3975 "awkgram.c" /* yacc.c:1646  */
+#line 3971 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 187:
-#line 1875 "awkgram.y" /* yacc.c:1646  */
+  case 188:
+#line 1877 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); yyerrok; }
-#line 3981 "awkgram.c" /* yacc.c:1646  */
+#line 3977 "awkgram.c" /* yacc.c:1646  */
     break;
 
-  case 188:
-#line 1879 "awkgram.y" /* yacc.c:1646  */
+  case 189:
+#line 1881 "awkgram.y" /* yacc.c:1646  */
     { yyerrok; }
-#line 3987 "awkgram.c" /* yacc.c:1646  */
+#line 3983 "awkgram.c" /* yacc.c:1646  */
     break;
 
 
-#line 3991 "awkgram.c" /* yacc.c:1646  */
+#line 3987 "awkgram.c" /* yacc.c:1646  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -4215,7 +4211,7 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 1881 "awkgram.y" /* yacc.c:1906  */
+#line 1883 "awkgram.y" /* yacc.c:1906  */
 
 
 struct token {
@@ -6228,6 +6224,10 @@ retry:
                                && lasttok != '@')
                        goto out;
 
+               /* allow parameter names to shadow the names of gawk extension 
built-ins */
+               if (want_param_names && (tokentab[mid].flags & GAWKX) != 0)
+                       goto out;
+
                if (do_lint) {
                        if ((tokentab[mid].flags & GAWKX) != 0 && (warntab[mid] 
& GAWKX) == 0) {
                                lintwarn(_("`%s' is a gawk extension"),
diff --git a/awkgram.y b/awkgram.y
index db0cf8c..7a4c438 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -89,6 +89,7 @@ static void check_comment(void);
 static bool at_seen = false;
 static bool want_source = false;
 static bool want_regexp = false;       /* lexical scanning kludge */
+static bool want_param_names = false;  /* ditto */
 static char *in_function;              /* parsing kludge */
 static int rule = 0;
 
@@ -246,6 +247,7 @@ rule
          {
                in_function = NULL;
                (void) mk_function($1, $2);
+               want_param_names = false;
                yyerrok;
          }
        | '@' LEX_INCLUDE source statement_term
@@ -424,7 +426,7 @@ lex_builtin
        ;
                
 function_prologue
-       : LEX_FUNCTION func_name '(' opt_param_list r_paren opt_nls
+       : LEX_FUNCTION func_name '(' { want_param_names = true; } 
opt_param_list r_paren opt_nls
          {
                /*
                 *  treat any comments between BOF and the first function
@@ -443,12 +445,12 @@ function_prologue
                }
                func_first = false;
                $1->source_file = source;
-               if (install_function($2->lextok, $1, $4) < 0)
+               if (install_function($2->lextok, $1, $5) < 0)
                        YYABORT;
                in_function = $2->lextok;
                $2->lextok = NULL;
                bcfree($2);
-               /* $4 already free'd in install_function */
+               /* $5 already free'd in install_function */
                $$ = $1;
          }
        ;
@@ -3890,6 +3892,10 @@ retry:
                                && lasttok != '@')
                        goto out;
 
+               /* allow parameter names to shadow the names of gawk extension 
built-ins */
+               if (want_param_names && (tokentab[mid].flags & GAWKX) != 0)
+                       goto out;
+
                if (do_lint) {
                        if ((tokentab[mid].flags & GAWKX) != 0 && (warntab[mid] 
& GAWKX) == 0) {
                                lintwarn(_("`%s' is a gawk extension"),

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


hooks/post-receive
-- 
gawk



reply via email to

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