gawk-diffs
[Top][All Lists]
Advanced

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

[gawk-diffs] [SCM] gawk branch, feature/fix-comments, updated. gawk-4.1.


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, feature/fix-comments, updated. gawk-4.1.0-3552-g1e12bcb
Date: Thu, 29 Nov 2018 14:32:39 -0500 (EST)

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/fix-comments has been updated
       via  1e12bcb4ceac5850999f4d714a305a00ce7a9ddc (commit)
      from  bc16d450354d41c95e9d8a4a72654e98d16ba185 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

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

commit 1e12bcb4ceac5850999f4d714a305a00ce7a9ddc
Author: Arnold D. Robbins <address@hidden>
Date:   Thu Nov 29 21:32:23 2018 +0200

    Some polishing in awkgram.y.

diff --git a/ChangeLog b/ChangeLog
index bc47008..a96b8e6 100755
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2018-11-29         Arnold D. Robbins     <address@hidden>
+
+       * awkgram.y (first_rule, func_first): Remove unused variables.
+       (Grammar): Simplify rule for range pattern.
+
 2018-11-28         Arnold D. Robbins     <address@hidden>
 
        * awkgram.y (debug_print_comment): New macro and function.
diff --git a/awkgram.c b/awkgram.c
index 544e0f8..d467eb1 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -212,9 +212,6 @@ static INSTRUCTION *ip_endfile;
 static INSTRUCTION *ip_beginfile;
 INSTRUCTION *main_beginfile;
 
-static bool func_first = true; // can nuke
-static bool first_rule = true;
-
 static inline INSTRUCTION *list_create(INSTRUCTION *x);
 static inline INSTRUCTION *list_append(INSTRUCTION *l, INSTRUCTION *x);
 static inline INSTRUCTION *list_prepend(INSTRUCTION *l, INSTRUCTION *x);
@@ -224,7 +221,7 @@ extern double fmod(double x, double y);
 
 #define YYSTYPE INSTRUCTION *
 
-#line 228 "awkgram.c" /* yacc.c:338  */
+#line 225 "awkgram.c" /* yacc.c:338  */
 # ifndef YY_NULLPTR
 #  if defined __cplusplus
 #   if 201103L <= __cplusplus
@@ -614,7 +611,7 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  2
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   1236
+#define YYLAST   1209
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  76
@@ -623,7 +620,7 @@ union yyalloc
 /* YYNRULES -- Number of rules.  */
 #define YYNRULES  203
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  350
+#define YYNSTATES  349
 
 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
    by yylex, with out-of-bounds checking.  */
@@ -674,27 +671,27 @@ static const yytype_uint8 yytranslate[] =
   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   226,   226,   227,   232,   242,   246,   258,   267,   281,
-     292,   302,   315,   325,   327,   332,   342,   344,   350,   354,
-     359,   389,   402,   415,   422,   432,   450,   452,   454,   460,
-     468,   469,   473,   473,   507,   506,   540,   555,   557,   562,
-     563,   583,   588,   589,   593,   604,   609,   616,   724,   775,
-     825,   951,   972,   993,  1003,  1013,  1023,  1034,  1047,  1065,
-    1064,  1078,  1096,  1096,  1194,  1194,  1227,  1257,  1265,  1266,
-    1272,  1273,  1280,  1285,  1298,  1313,  1315,  1323,  1330,  1332,
-    1340,  1349,  1351,  1360,  1361,  1369,  1374,  1374,  1387,  1393,
-    1405,  1409,  1431,  1432,  1438,  1439,  1448,  1449,  1454,  1459,
-    1476,  1478,  1480,  1487,  1488,  1494,  1495,  1500,  1502,  1509,
-    1511,  1519,  1524,  1535,  1536,  1541,  1543,  1550,  1552,  1560,
-    1565,  1575,  1576,  1581,  1588,  1592,  1594,  1596,  1609,  1626,
-    1636,  1643,  1645,  1650,  1652,  1654,  1662,  1664,  1669,  1671,
-    1676,  1678,  1680,  1737,  1739,  1741,  1743,  1745,  1747,  1749,
-    1751,  1765,  1770,  1775,  1800,  1806,  1808,  1810,  1812,  1814,
-    1816,  1821,  1825,  1857,  1865,  1871,  1877,  1890,  1891,  1892,
-    1897,  1902,  1906,  1910,  1925,  1946,  1951,  1988,  2017,  2018,
-    2024,  2025,  2030,  2032,  2039,  2056,  2073,  2075,  2082,  2087,
-    2095,  2105,  2117,  2126,  2130,  2135,  2139,  2143,  2147,  2152,
-    2153,  2157,  2161,  2165
+       0,   223,   223,   224,   229,   239,   243,   255,   263,   277,
+     288,   298,   311,   321,   323,   328,   338,   340,   346,   350,
+     355,   385,   397,   409,   415,   424,   442,   444,   446,   452,
+     460,   461,   465,   465,   499,   498,   532,   547,   549,   554,
+     555,   575,   580,   581,   585,   596,   601,   608,   716,   767,
+     817,   943,   964,   985,   995,  1005,  1015,  1026,  1039,  1057,
+    1056,  1070,  1088,  1088,  1186,  1186,  1219,  1249,  1257,  1258,
+    1264,  1265,  1272,  1277,  1290,  1305,  1307,  1315,  1322,  1324,
+    1332,  1341,  1343,  1352,  1353,  1361,  1366,  1366,  1379,  1385,
+    1397,  1401,  1423,  1424,  1430,  1431,  1440,  1441,  1446,  1451,
+    1468,  1470,  1472,  1479,  1480,  1486,  1487,  1492,  1494,  1501,
+    1503,  1511,  1516,  1527,  1528,  1533,  1535,  1542,  1544,  1552,
+    1557,  1567,  1568,  1573,  1580,  1584,  1586,  1588,  1601,  1618,
+    1628,  1635,  1637,  1642,  1644,  1646,  1654,  1656,  1661,  1663,
+    1668,  1670,  1672,  1729,  1731,  1733,  1735,  1737,  1739,  1741,
+    1743,  1757,  1762,  1767,  1792,  1798,  1800,  1802,  1804,  1806,
+    1808,  1813,  1817,  1849,  1857,  1863,  1869,  1882,  1883,  1884,
+    1889,  1894,  1898,  1902,  1917,  1938,  1943,  1980,  2009,  2010,
+    2016,  2017,  2022,  2024,  2031,  2048,  2065,  2067,  2074,  2079,
+    2087,  2097,  2109,  2118,  2122,  2127,  2131,  2135,  2139,  2144,
+    2145,  2149,  2153,  2157
 };
 #endif
 
@@ -749,10 +746,10 @@ static const yytype_uint16 yytoknum[] =
 };
 # endif
 
-#define YYPACT_NINF -275
+#define YYPACT_NINF -277
 
 #define yypact_value_is_default(Yystate) \
-  (!!((Yystate) == (-275)))
+  (!!((Yystate) == (-277)))
 
 #define YYTABLE_NINF -115
 
@@ -763,41 +760,41 @@ static const yytype_uint16 yytoknum[] =
      STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
-    -275,   376,  -275,  -275,   -12,    -9,  -275,  -275,  -275,  -275,
-     171,  -275,  -275,    44,    44,    44,     5,    40,  -275,  -275,
-    -275,  1139,  1139,  -275,  1139,  1166,   869,    27,  -275,   -18,
-       2,  -275,  -275,    89,   884,  1065,   192,   214,  -275,  -275,
-    -275,  -275,   248,   795,   869,  -275,    10,  -275,  -275,  -275,
-    -275,  -275,   116,    82,  -275,   115,  -275,  -275,  -275,   795,
-     795,   166,   107,   104,   107,   107,  1139,   117,  -275,  -275,
-      15,   349,    23,    45,  -275,   125,  -275,  -275,  -275,    89,
-    -275,   125,  -275,   178,  -275,  -275,  1092,   172,  1139,  1139,
-    1139,   125,  -275,  -275,  -275,  1139,   146,   192,  1139,  1139,
-    1139,  1139,  1139,  1139,  1139,  1139,  1139,  1139,  1139,  1139,
-    -275,   181,  -275,  -275,   173,  1139,  -275,  -275,  -275,   128,
-      73,  -275,  1107,    14,  1107,  -275,  -275,  -275,  -275,  1139,
-    -275,   128,   128,   349,  -275,  -275,  -275,  1139,   125,  -275,
-     152,   916,  -275,  -275,    16,    92,  -275,    20,    92,    89,
-    -275,   599,  -275,  -275,  -275,   148,  -275,   124,    22,  1048,
-    1139,   199,    44,   265,   265,   107,   107,   107,   107,   265,
-     265,   107,   107,   107,   107,  -275,  -275,  1107,  -275,  1092,
-     842,  -275,    43,   192,  -275,  -275,  1107,  -275,   172,  -275,
-    1107,  -275,  -275,  -275,  -275,  -275,   133,  -275,    41,   144,
-     145,   125,   147,    92,    92,  -275,  -275,    92,  1139,    92,
-     125,  -275,  -275,    92,  -275,  -275,  1107,  -275,   151,   125,
-    1139,  1107,  -275,  -275,  -275,  -275,  -275,  -275,   128,    76,
-    -275,  1139,  1139,  -275,   224,  1139,  1139,   715,   949,  -275,
-    -275,  -275,    92,  1107,  -275,  -275,  -275,   646,   599,   125,
-    -275,  -275,  1107,   125,  -275,    49,   349,    92,    -9,   160,
-     349,   349,   206,   113,  -275,   151,  -275,   869,   225,  -275,
-     169,  -275,  -275,  -275,  -275,  -275,   125,  -275,  -275,    11,
-    -275,  -275,  -275,   125,   125,   179,   172,   125,    15,  -275,
-    -275,   715,  -275,  -275,     2,   715,  1139,   128,   762,   152,
-    1139,   219,  -275,  -275,   349,   125,   275,   125,  1065,   125,
-     112,   125,   715,   125,   997,   715,  -275,   261,   205,  -275,
-     191,  -275,  -275,   997,   128,  -275,  -275,  -275,   271,   272,
-    -275,  -275,   205,  -275,   125,  -275,   128,   125,  -275,  -275,
-     125,  -275,   125,   715,  -275,   449,   715,  -275,   524,  -275
+    -277,   349,  -277,  -277,   -34,   -17,  -277,  -277,  -277,  -277,
+     166,  -277,  -277,    62,    62,    62,    -7,    -4,  -277,  -277,
+    -277,  1112,  1112,  -277,  1112,  1139,   842,    26,  -277,   -24,
+      -6,  -277,  -277,    87,   857,  1038,   344,   372,  -277,  -277,
+    -277,  -277,   233,   768,   842,  -277,     0,  -277,  -277,  -277,
+    -277,  -277,    84,    78,  -277,    99,  -277,  -277,  -277,   768,
+     768,   157,   105,   106,   105,   105,  1112,   113,  -277,  -277,
+     108,   320,    44,    47,  -277,   120,  -277,  -277,  -277,    87,
+    -277,   120,  -277,   171,  -277,  -277,  1065,   178,  1112,  1112,
+    1112,   120,  -277,  -277,  -277,  1112,  1112,   146,   344,  1112,
+    1112,  1112,  1112,  1112,  1112,  1112,  1112,  1112,  1112,  1112,
+    1112,  -277,   177,  -277,  -277,   173,  1112,  -277,  -277,  -277,
+     128,   109,  -277,  1080,    20,  1080,  -277,  -277,  -277,  -277,
+    1112,  -277,   128,   128,   320,  -277,  -277,  -277,  1112,  -277,
+     160,   889,  -277,  -277,     3,    18,  -277,    39,    18,    87,
+    -277,   572,  -277,  -277,  -277,    25,  -277,    16,   618,  1021,
+    -277,   126,  1080,    62,    82,    82,   105,   105,   105,   105,
+      82,    82,   105,   105,   105,   105,  -277,  -277,  1080,  -277,
+    1065,   815,  -277,    43,   344,  -277,  -277,  1080,   178,  -277,
+    1080,  -277,  -277,  -277,  -277,  -277,   134,  -277,    12,   136,
+     137,   120,   140,    18,    18,  -277,  -277,    18,  1112,    18,
+     120,  -277,  -277,    18,  -277,  -277,  1080,  -277,   150,   120,
+    1112,  -277,  -277,  -277,  -277,  -277,  -277,   128,   112,  -277,
+    1112,  1112,  -277,   223,  1112,  1112,   688,   922,  -277,  -277,
+    -277,    18,  1080,  -277,  -277,  -277,   619,   572,   120,  -277,
+    -277,  1080,   120,  -277,    59,   320,    18,   -17,   169,   320,
+     320,   208,    -9,  -277,   150,  -277,   842,   240,  -277,   198,
+    -277,  -277,  -277,  -277,  -277,   120,  -277,  -277,     1,  -277,
+    -277,  -277,   120,   120,   176,   178,   120,   108,  -277,  -277,
+     688,  -277,  -277,    -6,   688,  1112,   128,   735,   160,  1112,
+     231,  -277,  -277,   320,   120,   285,   120,  1038,   120,   148,
+     120,   688,   120,   970,   688,  -277,   311,   200,  -277,   182,
+    -277,  -277,   970,   128,  -277,  -277,  -277,   251,   253,  -277,
+    -277,   200,  -277,   120,  -277,   128,   120,  -277,  -277,   120,
+    -277,   120,   688,  -277,   422,   688,  -277,   497,  -277
 };
 
   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -814,56 +811,56 @@ static const yytype_uint8 yydefact[] =
        0,     0,   174,   168,   173,   162,     0,   195,   168,   109,
        0,   107,     0,     0,   176,    92,   201,     7,     8,    42,
       39,    92,     9,     0,    91,   136,     0,     0,     0,     0,
-       0,    92,   137,   139,   138,     0,     0,   142,     0,     0,
+       0,    92,   137,   139,   138,     0,     0,     0,   142,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     134,   133,   151,   152,     0,     0,   117,    36,   122,     0,
-       0,   115,   121,     0,   107,   188,   187,    29,    32,     0,
-     150,     0,     0,     0,   193,   194,   192,   110,    92,   198,
+       0,   134,   133,   151,   152,     0,     0,   117,    36,   122,
+       0,     0,   115,   121,     0,   107,   188,   187,    29,    32,
+       0,   150,     0,     0,     0,   193,   194,   192,   110,   198,
        0,     0,   163,    14,     0,     0,    17,     0,     0,    93,
      196,     0,    43,    35,   127,   128,   129,   125,   126,     0,
-       0,   130,   178,   148,   149,   145,   146,   147,   144,   159,
-     160,   156,   157,   158,   155,   124,   135,   123,   177,   118,
-       0,   185,     0,    95,   164,   165,   111,   203,     0,   112,
+     203,   130,    20,   178,   148,   149,   145,   146,   147,   144,
+     159,   160,   156,   157,   158,   155,   124,   135,   123,   177,
+     118,     0,   185,     0,    95,   164,   165,   111,     0,   112,
      108,    13,    10,    16,    11,    41,     0,    59,     0,     0,
        0,    92,     0,     0,     0,    81,    82,     0,   103,     0,
       92,    40,    53,     0,    62,    46,    67,    39,   199,    92,
-       0,    20,   154,   119,   120,   116,   100,    98,     0,     0,
-     153,     0,   103,    64,     0,     0,     0,     0,    68,    54,
-      55,    56,     0,   104,    57,   197,    61,     0,     0,    92,
-     200,    44,   131,    92,   101,     0,     0,     0,   180,     0,
-       0,     0,     0,   189,    69,     0,    58,     0,    85,    83,
-       0,    45,    25,    33,   102,    99,    92,    60,    65,     0,
-     182,   184,    66,    92,    92,     0,     0,    92,     0,    86,
-      63,     0,   181,   183,     0,     0,     0,     0,     0,    84,
-       0,    88,    70,    48,     0,    92,     0,    92,    87,    92,
-       0,    92,     0,    92,    68,     0,    72,     0,     0,    71,
-       0,    49,    50,    68,     0,    89,    75,    78,     0,     0,
-      79,    80,     0,   202,    92,    47,     0,    92,    77,    76,
-      92,    39,    92,     0,    39,     0,     0,    52,     0,    51
+       0,   154,   119,   120,   116,   100,    98,     0,     0,   153,
+       0,   103,    64,     0,     0,     0,     0,    68,    54,    55,
+      56,     0,   104,    57,   197,    61,     0,     0,    92,   200,
+      44,   131,    92,   101,     0,     0,     0,   180,     0,     0,
+       0,     0,   189,    69,     0,    58,     0,    85,    83,     0,
+      45,    25,    33,   102,    99,    92,    60,    65,     0,   182,
+     184,    66,    92,    92,     0,     0,    92,     0,    86,    63,
+       0,   181,   183,     0,     0,     0,     0,     0,    84,     0,
+      88,    70,    48,     0,    92,     0,    92,    87,    92,     0,
+      92,     0,    92,    68,     0,    72,     0,     0,    71,     0,
+      49,    50,    68,     0,    89,    75,    78,     0,     0,    79,
+      80,     0,   202,    92,    47,     0,    92,    77,    76,    92,
+      39,    92,     0,    39,     0,     0,    52,     0,    51
 };
 
   /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -275,  -275,  -275,  -275,  -275,  -275,   252,  -275,  -275,  -275,
-    -275,   -33,  -275,   -80,  -275,  -213,   100,  -144,  -275,  -275,
-    -231,  -275,  -275,  -274,  -275,  -275,  -275,  -275,  -275,  -275,
-    -275,  -275,     7,    62,  -275,  -275,  -275,    54,  -275,   -43,
-       1,  -275,   -23,    -1,  -275,  -275,  -275,   -13,    17,  -275,
-     263,  -275,     8,   127,  -275,  -275,    21,   -36,  -275,  -275,
-     -78,    -2,  -275,   -27,  -230,   -65,  -275,   -15,   -38,   -94
+    -277,  -277,  -277,  -277,  -277,  -277,   232,  -277,  -277,  -277,
+    -277,   -55,  -277,   -85,  -277,  -208,    95,  -152,  -277,  -277,
+    -232,  -277,  -277,  -276,  -277,  -277,  -277,  -277,  -277,  -277,
+    -277,  -277,     7,     5,  -277,  -277,  -277,    33,  -277,   -29,
+      94,  -277,   -14,    -1,  -277,  -277,  -277,   -31,    17,  -277,
+     244,  -277,   114,   107,  -277,  -277,    -3,   -36,  -277,  -277,
+     -57,    -2,  -277,   -27,  -240,   -64,  -277,   -15,   -59,   -10
 };
 
   /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
       -1,     1,    28,   145,   148,    29,    77,    53,    54,    30,
-     182,    31,    83,   118,    32,   151,    78,   211,   212,   232,
-     213,   247,   258,   265,   310,   319,   332,   214,   268,   290,
-     300,   215,   149,   150,   130,   228,   229,   242,   269,    70,
-     119,   120,   121,   216,   115,    94,    95,    35,    36,    37,
-      38,    39,    40,    55,   278,   279,   280,    45,    46,    47,
-      41,    42,   136,   217,   218,   142,   249,   219,   334,   141
+     183,    31,    83,   119,    32,   151,    78,   211,   212,   231,
+     213,   246,   257,   264,   309,   318,   331,   214,   267,   289,
+     299,   215,   149,   150,   131,   227,   228,   241,   268,    70,
+     120,   121,   122,   216,   116,    94,    95,    35,    36,    37,
+      38,    39,    40,    55,   277,   278,   279,    45,    46,    47,
+      41,    42,   137,   217,   218,   142,   248,   219,   333,   141
 };
 
   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
@@ -871,258 +868,252 @@ static const yytype_int16 yydefgoto[] =
      number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
-      34,   123,    80,    80,   248,   140,   154,   264,    33,   156,
-     126,    56,    57,    58,    81,   137,   137,   191,   271,    63,
-      63,   193,    63,    68,   143,    71,   180,   125,   292,   144,
-       4,   175,    85,    63,    19,    74,    79,    86,    62,    64,
-     324,    65,   122,   124,   226,   233,   146,   227,     5,   336,
-     274,   147,    97,   275,   178,    75,    43,    76,   122,   122,
-     131,   132,    44,    87,    88,   133,   184,   185,   -12,    74,
-     138,   138,   -15,    59,   179,    75,    72,   254,    73,    92,
-      93,    44,    44,   264,   139,   155,   181,   157,   158,   159,
-     335,   -12,   264,   262,   161,   -15,    63,    63,    63,    63,
-      63,    63,    63,    63,    63,    63,    63,    63,    60,   234,
-     230,    25,   -96,   316,   177,   163,   164,   165,   166,   167,
-     168,   169,   170,   171,   172,   173,   174,    63,   345,   138,
-      81,   348,   138,    81,    85,   255,   186,   317,   318,    86,
-     190,    84,  -114,   152,    19,   -97,   183,   301,   112,   113,
-     128,   303,    79,   160,   286,    79,   223,   225,    85,   221,
-      56,   134,   135,   253,    19,    87,   127,    76,   322,     4,
-     137,   325,   129,   103,    48,    49,     5,    19,   122,   122,
-    -106,    92,    93,   153,    44,   162,   -92,   176,    81,    81,
-     117,   276,    81,   188,    81,   283,   284,   139,    81,   347,
-     187,   231,   349,   250,   270,    92,    93,   243,   297,  -115,
-      79,    79,   235,   236,    79,   238,    79,    50,    51,   252,
-      79,  -106,   281,   299,   288,   138,    76,    81,   259,   282,
-     256,   243,   305,   285,   260,   261,   289,   331,  -106,   311,
-     309,    52,    81,   281,  -106,   192,   124,   296,   194,    79,
-     287,    98,    99,   100,   101,   102,  -115,  -115,   103,   337,
-     333,   110,   111,   237,    79,   210,    71,   302,   326,   327,
-     117,   342,   245,   104,   105,   106,   107,   108,   338,   339,
-     109,   251,    82,   307,   330,    85,   257,   308,    67,   222,
-      86,   313,   112,   113,   340,   304,     0,   306,    63,     0,
-     293,   114,     0,   239,   240,     0,    63,   241,     0,   244,
-       0,   272,     0,   246,    20,   273,    87,    88,    89,     0,
-     328,   329,     0,    23,     0,    97,   100,   101,   102,    90,
-       0,   103,    92,    93,     0,     0,     0,     0,   291,     0,
-       0,     0,   266,     0,     0,   294,   295,     0,     0,   298,
-      76,     0,     0,     0,     0,     0,     0,   277,     0,    85,
-       0,     0,     0,     0,    86,     0,     0,   312,     0,   314,
-       0,   315,   320,   321,     0,   323,     2,     3,     0,     4,
-       5,     0,     0,     6,     7,     0,     0,     0,     0,     0,
-      87,    88,    89,     0,     8,     9,   341,     0,     0,   343,
-       0,     0,   344,    90,   346,     0,    92,    93,     0,     0,
-       0,     0,    10,    11,    12,    13,     0,     0,   139,     0,
-      14,    15,    16,    17,    18,     0,     0,     0,    19,    20,
-       0,     0,     0,     0,     0,    21,    22,     0,    23,     0,
-      24,     0,     0,    25,    26,     0,    27,     0,     0,   -18,
-     195,   -18,     4,     5,     0,     0,     6,     7,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   196,
-       0,   197,   198,   199,   -74,   -74,   200,   201,   202,   203,
-     204,   205,   206,   207,   208,     0,     0,     0,    13,   209,
-       0,     0,     0,    14,    15,    16,    17,     0,     0,     0,
-       0,   -74,    20,     0,     0,     0,     0,     0,    21,    22,
-       0,    23,     0,    24,     0,     0,    25,    26,     0,    61,
-       0,     0,    75,   -74,    76,   195,     0,     4,     5,     0,
-       0,     6,     7,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   196,     0,   197,   198,   199,   -73,
-     -73,   200,   201,   202,   203,   204,   205,   206,   207,   208,
-       0,     0,     0,    13,   209,     0,     0,     0,    14,    15,
-      16,    17,     0,     0,     0,     0,   -73,    20,     0,     0,
-       0,     0,     0,    21,    22,     0,    23,     0,    24,     0,
-       0,    25,    26,     0,    61,     0,     0,    75,   -73,    76,
-     195,     0,     4,     5,     0,     0,     6,     7,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   196,
-       0,   197,   198,   199,     0,     0,   200,   201,   202,   203,
-     204,   205,   206,   207,   208,     0,     0,     0,    13,   209,
-       0,     0,     0,    14,    15,    16,    17,    69,     0,     4,
-       5,     0,    20,     6,     7,     0,     0,  -105,    21,    22,
-       0,    23,     0,    24,     0,     0,    25,    26,     0,    61,
-       0,     0,    75,   210,    76,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    13,     0,     0,     0,     0,
-      14,    15,    16,    17,     0,     0,     0,     0,  -105,    20,
-       0,     0,     0,     0,     0,    21,    22,     0,    23,     0,
-      24,     0,     0,    25,   267,  -105,    61,     0,     4,     5,
-       0,  -105,     6,     7,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   196,     0,   197,   198,   199,
-       0,     0,   200,   201,   202,   203,   204,   205,   206,   207,
-     208,     0,     0,     0,    13,   209,     0,     0,     0,    14,
-      15,    16,    17,     0,     0,     4,     5,     0,    20,     6,
-       7,     0,     0,     0,    21,    22,     0,    23,     0,    24,
-       0,     0,    25,    26,     0,    61,     0,     0,    75,     0,
-      76,     0,     0,     0,     0,     0,   116,     0,     4,     5,
-       0,    13,     6,     7,   117,     0,    14,    15,    16,    17,
-       0,     0,     0,     0,     0,    20,     0,     0,     0,     0,
+      34,   154,    80,    80,   191,   263,   140,   270,    33,   247,
+     127,    56,    57,    58,    81,   124,   232,   126,   291,    63,
+      63,   138,    63,    68,    96,    71,    85,   176,    19,     4,
+     156,    86,   285,    63,    43,    85,    79,   323,    62,    64,
+     193,    65,   123,   125,   225,   143,   335,   226,   146,    75,
+     144,    76,    98,   147,    44,   -12,   179,    87,   123,   123,
+     273,    59,    44,   274,    60,   134,     5,    75,   185,   186,
+      19,    44,    44,    92,    93,    72,    91,    73,   -12,   334,
+     233,   263,    92,    93,   261,   155,   152,   157,   158,   159,
+     263,   -15,   182,    76,   161,   162,   160,    63,    63,    63,
+      63,    63,    63,    63,    63,    63,    63,    63,    63,   138,
+     180,   181,   -96,   253,   -15,   178,   164,   165,   166,   167,
+     168,   169,   170,   171,   172,   173,   174,   175,    63,    25,
+      81,   229,   344,    81,   128,   347,  -115,   187,   300,    84,
+     190,    74,   302,   101,   102,   103,   129,   184,   104,   315,
+     113,   114,    79,   132,   133,    79,   130,   135,   136,   321,
+       4,    56,   324,   252,    91,    91,   222,   224,    91,    48,
+      49,   104,    19,   316,   317,    74,   153,   139,  -114,   123,
+     123,   -97,     5,  -115,  -115,   163,   118,   177,    81,    81,
+     346,   275,    81,   348,    81,   282,   283,   139,    81,   138,
+      19,   188,   230,   249,   234,   235,   236,   242,   237,  -106,
+      79,    79,    50,    51,    79,   244,    79,   269,   254,   251,
+      79,   280,   -92,   298,   250,    76,    81,   258,   296,   255,
+     242,   330,   304,   259,   260,   284,    52,   287,   281,   310,
+     192,    81,   280,   194,   295,   125,   111,   112,    79,   286,
+    -106,   288,   308,   271,    91,   332,   210,   272,   337,   336,
+     338,   329,    82,    79,   256,    71,   301,  -106,   307,    67,
+     221,   341,   339,  -106,     0,   292,     0,   113,   114,     0,
+     290,     0,   306,     0,     0,     0,   115,   293,   294,     0,
+     312,   297,     0,     0,   303,    85,   305,    63,   238,   239,
+      86,     0,   240,     0,   243,    63,     0,     0,   245,   311,
+       0,   313,     0,   314,   319,   320,     0,   322,   325,   326,
+     118,     0,     0,     0,    98,     0,    87,    88,    89,     0,
+      85,     0,     0,     0,     0,    86,   265,     0,   340,    90,
+       0,   342,    92,    93,   343,     0,   345,     0,     0,     2,
+       3,   276,     4,     5,     0,     0,     6,     7,     0,     0,
+      76,    87,    88,    89,    20,     0,     0,     8,     9,     0,
+     327,   328,     0,    23,    90,     0,     0,    92,    93,     0,
+       0,     0,     0,     0,     0,    10,    11,    12,    13,   139,
+       0,     0,     0,    14,    15,    16,    17,    18,     0,     0,
+       0,    19,    20,    99,   100,   101,   102,   103,    21,    22,
+     104,    23,     0,    24,     0,     0,    25,    26,     0,    27,
+       0,     0,   -18,   195,   -18,     4,     5,     0,     0,     6,
+       7,   105,   106,   107,   108,   109,     0,     0,   110,     0,
+       0,     0,   196,     0,   197,   198,   199,   -74,   -74,   200,
+     201,   202,   203,   204,   205,   206,   207,   208,     0,     0,
+       0,    13,   209,     0,     0,     0,    14,    15,    16,    17,
+       0,     0,     0,     0,   -74,    20,     0,     0,     0,     0,
        0,    21,    22,     0,    23,     0,    24,     0,     0,    25,
-      26,     0,    61,     0,    13,     0,     0,    76,     0,    14,
-      15,    16,    17,   224,     0,     4,     5,     0,    20,     6,
-       7,   117,     0,     0,    21,    22,     0,    23,     0,    24,
-       0,     0,    25,    26,  -113,    61,     0,     0,     0,     0,
-      69,     0,     4,     5,     0,     0,     6,     7,     0,     0,
-       0,    13,     0,     0,     0,     0,    14,    15,    16,    17,
-       0,     0,     0,     0,    85,    20,     0,     0,     0,    86,
-       0,    21,    22,     0,    23,     0,    24,     0,    13,    25,
-      26,     0,    61,    14,    15,    16,    17,   189,     0,     4,
-       5,     0,    20,     6,     7,    87,    88,    89,    21,    22,
-       0,    23,     0,    24,     0,     0,    25,    26,    90,    61,
-      91,    92,    93,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     4,   263,     0,    13,     6,     7,     0,     0,
-      14,    15,    16,    17,     0,     0,     0,     0,     0,    20,
-       0,     0,   198,     0,     0,    21,    22,     0,    23,     0,
-      24,   205,   206,    25,    26,     0,    61,     0,    13,     0,
-       0,     0,     0,    14,    15,    16,    17,     0,     0,     0,
-       4,     5,    20,     0,     6,     7,     0,     0,    21,    22,
-       0,    23,     0,    24,     0,     0,    25,    26,     0,    61,
-     198,     0,     0,     0,     0,     0,     0,     0,     0,   205,
-     206,     0,     0,     0,     0,     0,    13,     0,     0,     0,
-       0,    14,    15,    16,    17,     0,     0,     0,     0,     0,
-      20,     0,     0,     0,     0,     0,    21,    22,    85,    23,
-       0,    24,     0,    86,    25,    26,     0,    61,     4,     5,
-       0,     0,     6,     7,     0,     0,     0,    96,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    87,
-      88,    89,     0,     0,     0,     4,     5,     0,     0,     6,
-       7,   117,    90,   220,    13,    92,    93,     0,     0,    14,
+      26,     0,    61,     0,     0,    75,   -74,    76,   195,     0,
+       4,     5,     0,     0,     6,     7,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   196,     0,   197,
+     198,   199,   -73,   -73,   200,   201,   202,   203,   204,   205,
+     206,   207,   208,     0,     0,     0,    13,   209,     0,     0,
+       0,    14,    15,    16,    17,     0,     0,     0,     0,   -73,
+      20,     0,     0,     0,     0,     0,    21,    22,     0,    23,
+       0,    24,     0,     0,    25,    26,     0,    61,     0,     0,
+      75,   -73,    76,   195,     0,     4,     5,     0,     0,     6,
+       7,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   196,     0,   197,   198,   199,     0,     0,   200,
+     201,   202,   203,   204,   205,   206,   207,   208,     0,     0,
+       0,    13,   209,     0,     0,     0,    14,    15,    16,    17,
+      69,     0,     4,     5,     0,    20,     6,     7,    85,     0,
+    -105,    21,    22,    86,    23,     0,    24,     0,     0,    25,
+      26,     0,    61,     0,     0,    75,   210,    76,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    13,    87,
+      88,     0,     0,    14,    15,    16,    17,     0,     0,     0,
+       0,  -105,    20,     0,     0,    92,    93,     0,    21,    22,
+       0,    23,     0,    24,     0,     0,    25,   266,  -105,    61,
+       0,     4,     5,     0,  -105,     6,     7,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   196,     0,
+     197,   198,   199,     0,     0,   200,   201,   202,   203,   204,
+     205,   206,   207,   208,     0,     0,     0,    13,   209,     0,
+       0,     0,    14,    15,    16,    17,     0,     0,     4,     5,
+       0,    20,     6,     7,     0,     0,     0,    21,    22,     0,
+      23,     0,    24,     0,     0,    25,    26,     0,    61,     0,
+       0,    75,     0,    76,     0,     0,     0,     0,     0,   117,
+       0,     4,     5,     0,    13,     6,     7,   118,     0,    14,
+      15,    16,    17,     0,     0,     0,     0,     0,    20,     0,
+       0,     0,     0,     0,    21,    22,     0,    23,     0,    24,
+       0,     0,    25,    26,     0,    61,     0,    13,     0,     0,
+      76,     0,    14,    15,    16,    17,   223,     0,     4,     5,
+       0,    20,     6,     7,   118,     0,     0,    21,    22,     0,
+      23,     0,    24,     0,     0,    25,    26,  -113,    61,     0,
+       0,     0,     0,    69,     0,     4,     5,     0,     0,     6,
+       7,     0,     0,     0,    13,     0,     0,     0,     0,    14,
       15,    16,    17,     0,     0,     0,     0,    85,    20,     0,
        0,     0,    86,     0,    21,    22,     0,    23,     0,    24,
        0,    13,    25,    26,     0,    61,    14,    15,    16,    17,
-       0,     0,     4,     5,     0,    20,     6,     7,    87,    88,
+     189,     0,     4,     5,     0,    20,     6,     7,    87,    88,
       89,    21,    22,     0,    23,     0,    24,     0,     0,    25,
-      26,    90,    61,     0,    92,    93,     0,     0,     0,     4,
-       5,     0,     0,     6,     7,     0,     0,     0,    13,     0,
-       0,     0,     0,    14,    15,    16,    17,     0,     0,     0,
+      26,    90,    61,    91,    92,    93,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     4,   262,     0,    13,     6,
+       7,     0,     0,    14,    15,    16,    17,     0,     0,     0,
+       0,     0,    20,     0,     0,   198,     0,     0,    21,    22,
+       0,    23,     0,    24,   205,   206,    25,    26,     0,    61,
+       0,    13,     0,     0,     0,     0,    14,    15,    16,    17,
+       0,     0,     0,     4,     5,    20,     0,     6,     7,     0,
+       0,    21,    22,     0,    23,     0,    24,     0,     0,    25,
+      26,     0,    61,   198,     0,     0,     0,     0,     0,     0,
+       0,     0,   205,   206,     0,     0,     0,     0,     0,    13,
+       0,     0,     0,     0,    14,    15,    16,    17,     0,     0,
+       0,     0,     0,    20,     0,     0,     0,     0,     0,    21,
+      22,    85,    23,     0,    24,     0,    86,    25,    26,     0,
+      61,     4,     5,     0,     0,     6,     7,     0,     0,     0,
+      97,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    87,    88,    89,     0,     0,     0,     4,     5,
+       0,     0,     6,     7,   118,    90,   220,    13,    92,    93,
+       0,     0,    14,    15,    16,    17,     0,     0,     0,     0,
+      85,    20,     0,     0,     0,    86,     0,    21,    22,     0,
+      23,     0,    24,     0,    13,    25,    26,     0,    61,    14,
+      15,    16,    17,     0,     0,     4,     5,     0,    20,     6,
+       7,    87,    88,    89,    21,    22,     0,    23,     0,    24,
+       0,     0,    25,    26,    90,    61,     0,    92,    93,     0,
+       0,     0,     4,     5,     0,     0,     6,     7,     0,     0,
+       0,    13,     0,     0,     0,     0,    14,    15,    16,    17,
+       0,     0,     0,     0,     0,    20,     0,     0,     0,     0,
+       0,    21,    22,     0,    23,     0,    24,     0,     0,    25,
+      26,     0,    61,    14,    15,    16,    17,     0,     0,     0,
        0,     0,    20,     0,     0,     0,     0,     0,    21,    22,
-       0,    23,     0,    24,     0,     0,    25,    26,     0,    61,
-      14,    15,    16,    17,     0,     0,     0,     0,     0,    20,
-       0,     0,     0,     0,     0,    21,    22,     0,    23,     0,
-      24,     0,     0,    25,    66,     0,    61
+       0,    23,     0,    24,     0,     0,    25,    66,     0,    61
 };
 
 static const yytype_int16 yycheck[] =
 {
-       1,    44,    29,    30,   217,    70,    86,   238,     1,    87,
-      46,    13,    14,    15,    29,     1,     1,     1,   248,    21,
-      22,     1,    24,    25,     1,    26,   120,    17,    17,     6,
-       3,   111,    10,    35,    52,    27,    29,    15,    21,    22,
-     314,    24,    43,    44,     1,     4,     1,     4,     4,   323,
-       1,     6,    35,     4,   119,    73,    68,    75,    59,    60,
-      59,    60,    71,    41,    42,    66,   131,   132,    52,    61,
-      56,    56,    52,    68,     1,    73,    49,     1,    51,    57,
-      58,    71,    71,   314,    69,    86,    72,    88,    89,    90,
-     320,    75,   323,   237,    95,    75,    98,    99,   100,   101,
-     102,   103,   104,   105,   106,   107,   108,   109,    68,    68,
-     188,    67,    69,     1,   115,    98,    99,   100,   101,   102,
-     103,   104,   105,   106,   107,   108,   109,   129,   341,    56,
-     145,   344,    56,   148,    10,   229,   137,    25,    26,    15,
-     141,    52,    69,    81,    52,    69,   129,   291,    44,    45,
-      68,   295,   145,    91,    41,   148,   179,   180,    10,   160,
-     162,    44,    45,   228,    52,    41,    50,    75,   312,     3,
-       1,   315,    57,    66,     3,     4,     4,    52,   179,   180,
-      11,    57,    58,     5,    71,    39,    74,    14,   203,   204,
-       9,   256,   207,    41,   209,   260,   261,    69,   213,   343,
-     138,    68,   346,   218,   247,    57,    58,   208,   286,    10,
-     203,   204,    68,    68,   207,    68,   209,    46,    47,   220,
-     213,    52,   258,   288,   267,    56,    75,   242,     4,    69,
-     231,   232,   297,    27,   235,   236,    11,   317,    69,   304,
-      21,    70,   257,   279,    75,   145,   247,    68,   148,   242,
-     265,    59,    60,    61,    62,    63,    57,    58,    66,   324,
-      55,    13,    14,   201,   257,    74,   267,   294,     7,     8,
-       9,   336,   210,    59,    60,    61,    62,    63,     7,     7,
-      66,   219,    30,   298,   317,    10,   232,   300,    25,   162,
-      15,   306,    44,    45,   332,   296,    -1,   298,   300,    -1,
-     279,    53,    -1,   203,   204,    -1,   308,   207,    -1,   209,
-      -1,   249,    -1,   213,    53,   253,    41,    42,    43,    -1,
-      59,    60,    -1,    62,    -1,   308,    61,    62,    63,    54,
-      -1,    66,    57,    58,    -1,    -1,    -1,    -1,   276,    -1,
-      -1,    -1,   242,    -1,    -1,   283,   284,    -1,    -1,   287,
-      75,    -1,    -1,    -1,    -1,    -1,    -1,   257,    -1,    10,
-      -1,    -1,    -1,    -1,    15,    -1,    -1,   305,    -1,   307,
-      -1,   309,   310,   311,    -1,   313,     0,     1,    -1,     3,
-       4,    -1,    -1,     7,     8,    -1,    -1,    -1,    -1,    -1,
-      41,    42,    43,    -1,    18,    19,   334,    -1,    -1,   337,
-      -1,    -1,   340,    54,   342,    -1,    57,    58,    -1,    -1,
-      -1,    -1,    36,    37,    38,    39,    -1,    -1,    69,    -1,
-      44,    45,    46,    47,    48,    -1,    -1,    -1,    52,    53,
-      -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    62,    -1,
-      64,    -1,    -1,    67,    68,    -1,    70,    -1,    -1,    73,
-       1,    75,     3,     4,    -1,    -1,     7,     8,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,
-      -1,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    34,    35,    -1,    -1,    -1,    39,    40,
-      -1,    -1,    -1,    44,    45,    46,    47,    -1,    -1,    -1,
-      -1,    52,    53,    -1,    -1,    -1,    -1,    -1,    59,    60,
-      -1,    62,    -1,    64,    -1,    -1,    67,    68,    -1,    70,
-      -1,    -1,    73,    74,    75,     1,    -1,     3,     4,    -1,
-      -1,     7,     8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    20,    -1,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-      -1,    -1,    -1,    39,    40,    -1,    -1,    -1,    44,    45,
-      46,    47,    -1,    -1,    -1,    -1,    52,    53,    -1,    -1,
-      -1,    -1,    -1,    59,    60,    -1,    62,    -1,    64,    -1,
-      -1,    67,    68,    -1,    70,    -1,    -1,    73,    74,    75,
-       1,    -1,     3,     4,    -1,    -1,     7,     8,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,
-      -1,    22,    23,    24,    -1,    -1,    27,    28,    29,    30,
-      31,    32,    33,    34,    35,    -1,    -1,    -1,    39,    40,
-      -1,    -1,    -1,    44,    45,    46,    47,     1,    -1,     3,
-       4,    -1,    53,     7,     8,    -1,    -1,    11,    59,    60,
-      -1,    62,    -1,    64,    -1,    -1,    67,    68,    -1,    70,
-      -1,    -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,
-      44,    45,    46,    47,    -1,    -1,    -1,    -1,    52,    53,
-      -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    62,    -1,
-      64,    -1,    -1,    67,    68,    69,    70,    -1,     3,     4,
-      -1,    75,     7,     8,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    20,    -1,    22,    23,    24,
-      -1,    -1,    27,    28,    29,    30,    31,    32,    33,    34,
-      35,    -1,    -1,    -1,    39,    40,    -1,    -1,    -1,    44,
-      45,    46,    47,    -1,    -1,     3,     4,    -1,    53,     7,
-       8,    -1,    -1,    -1,    59,    60,    -1,    62,    -1,    64,
-      -1,    -1,    67,    68,    -1,    70,    -1,    -1,    73,    -1,
-      75,    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,
-      -1,    39,     7,     8,     9,    -1,    44,    45,    46,    47,
-      -1,    -1,    -1,    -1,    -1,    53,    -1,    -1,    -1,    -1,
+       1,    86,    29,    30,     1,   237,    70,   247,     1,   217,
+      46,    13,    14,    15,    29,    44,     4,    17,    17,    21,
+      22,     1,    24,    25,    34,    26,    10,   112,    52,     3,
+      87,    15,    41,    35,    68,    10,    29,   313,    21,    22,
+       1,    24,    43,    44,     1,     1,   322,     4,     1,    73,
+       6,    75,    35,     6,    71,    52,   120,    41,    59,    60,
+       1,    68,    71,     4,    68,    66,     4,    73,   132,   133,
+      52,    71,    71,    57,    58,    49,    56,    51,    75,   319,
+      68,   313,    57,    58,   236,    86,    81,    88,    89,    90,
+     322,    52,    72,    75,    95,    96,    91,    99,   100,   101,
+     102,   103,   104,   105,   106,   107,   108,   109,   110,     1,
+       1,   121,    69,     1,    75,   116,    99,   100,   101,   102,
+     103,   104,   105,   106,   107,   108,   109,   110,   130,    67,
+     145,   188,   340,   148,    50,   343,    10,   138,   290,    52,
+     141,    27,   294,    61,    62,    63,    68,   130,    66,     1,
+      44,    45,   145,    59,    60,   148,    57,    44,    45,   311,
+       3,   163,   314,   227,    56,    56,   180,   181,    56,     3,
+       4,    66,    52,    25,    26,    61,     5,    69,    69,   180,
+     181,    69,     4,    57,    58,    39,     9,    14,   203,   204,
+     342,   255,   207,   345,   209,   259,   260,    69,   213,     1,
+      52,    41,    68,   218,    68,    68,   201,   208,    68,    11,
+     203,   204,    46,    47,   207,   210,   209,   246,   228,   220,
+     213,   257,    74,   287,   219,    75,   241,     4,   285,   230,
+     231,   316,   296,   234,   235,    27,    70,   266,    69,   303,
+     145,   256,   278,   148,    68,   246,    13,    14,   241,   264,
+      52,    11,    21,   248,    56,    55,    74,   252,     7,   323,
+       7,   316,    30,   256,   231,   266,   293,    69,   299,    25,
+     163,   335,   331,    75,    -1,   278,    -1,    44,    45,    -1,
+     275,    -1,   297,    -1,    -1,    -1,    53,   282,   283,    -1,
+     305,   286,    -1,    -1,   295,    10,   297,   299,   203,   204,
+      15,    -1,   207,    -1,   209,   307,    -1,    -1,   213,   304,
+      -1,   306,    -1,   308,   309,   310,    -1,   312,     7,     8,
+       9,    -1,    -1,    -1,   307,    -1,    41,    42,    43,    -1,
+      10,    -1,    -1,    -1,    -1,    15,   241,    -1,   333,    54,
+      -1,   336,    57,    58,   339,    -1,   341,    -1,    -1,     0,
+       1,   256,     3,     4,    -1,    -1,     7,     8,    -1,    -1,
+      75,    41,    42,    43,    53,    -1,    -1,    18,    19,    -1,
+      59,    60,    -1,    62,    54,    -1,    -1,    57,    58,    -1,
+      -1,    -1,    -1,    -1,    -1,    36,    37,    38,    39,    69,
+      -1,    -1,    -1,    44,    45,    46,    47,    48,    -1,    -1,
+      -1,    52,    53,    59,    60,    61,    62,    63,    59,    60,
+      66,    62,    -1,    64,    -1,    -1,    67,    68,    -1,    70,
+      -1,    -1,    73,     1,    75,     3,     4,    -1,    -1,     7,
+       8,    59,    60,    61,    62,    63,    -1,    -1,    66,    -1,
+      -1,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    35,    -1,    -1,
+      -1,    39,    40,    -1,    -1,    -1,    44,    45,    46,    47,
+      -1,    -1,    -1,    -1,    52,    53,    -1,    -1,    -1,    -1,
       -1,    59,    60,    -1,    62,    -1,    64,    -1,    -1,    67,
-      68,    -1,    70,    -1,    39,    -1,    -1,    75,    -1,    44,
-      45,    46,    47,     1,    -1,     3,     4,    -1,    53,     7,
-       8,     9,    -1,    -1,    59,    60,    -1,    62,    -1,    64,
-      -1,    -1,    67,    68,    69,    70,    -1,    -1,    -1,    -1,
-       1,    -1,     3,     4,    -1,    -1,     7,     8,    -1,    -1,
-      -1,    39,    -1,    -1,    -1,    -1,    44,    45,    46,    47,
-      -1,    -1,    -1,    -1,    10,    53,    -1,    -1,    -1,    15,
-      -1,    59,    60,    -1,    62,    -1,    64,    -1,    39,    67,
-      68,    -1,    70,    44,    45,    46,    47,     1,    -1,     3,
-       4,    -1,    53,     7,     8,    41,    42,    43,    59,    60,
-      -1,    62,    -1,    64,    -1,    -1,    67,    68,    54,    70,
-      56,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,     3,     4,    -1,    39,     7,     8,    -1,    -1,
-      44,    45,    46,    47,    -1,    -1,    -1,    -1,    -1,    53,
-      -1,    -1,    23,    -1,    -1,    59,    60,    -1,    62,    -1,
-      64,    32,    33,    67,    68,    -1,    70,    -1,    39,    -1,
-      -1,    -1,    -1,    44,    45,    46,    47,    -1,    -1,    -1,
-       3,     4,    53,    -1,     7,     8,    -1,    -1,    59,    60,
-      -1,    62,    -1,    64,    -1,    -1,    67,    68,    -1,    70,
-      23,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    32,
-      33,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,
-      -1,    44,    45,    46,    47,    -1,    -1,    -1,    -1,    -1,
-      53,    -1,    -1,    -1,    -1,    -1,    59,    60,    10,    62,
-      -1,    64,    -1,    15,    67,    68,    -1,    70,     3,     4,
-      -1,    -1,     7,     8,    -1,    -1,    -1,    12,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,
-      42,    43,    -1,    -1,    -1,     3,     4,    -1,    -1,     7,
-       8,     9,    54,    55,    39,    57,    58,    -1,    -1,    44,
+      68,    -1,    70,    -1,    -1,    73,    74,    75,     1,    -1,
+       3,     4,    -1,    -1,     7,     8,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,    -1,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    35,    -1,    -1,    -1,    39,    40,    -1,    -1,
+      -1,    44,    45,    46,    47,    -1,    -1,    -1,    -1,    52,
+      53,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    62,
+      -1,    64,    -1,    -1,    67,    68,    -1,    70,    -1,    -1,
+      73,    74,    75,     1,    -1,     3,     4,    -1,    -1,     7,
+       8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    20,    -1,    22,    23,    24,    -1,    -1,    27,
+      28,    29,    30,    31,    32,    33,    34,    35,    -1,    -1,
+      -1,    39,    40,    -1,    -1,    -1,    44,    45,    46,    47,
+       1,    -1,     3,     4,    -1,    53,     7,     8,    10,    -1,
+      11,    59,    60,    15,    62,    -1,    64,    -1,    -1,    67,
+      68,    -1,    70,    -1,    -1,    73,    74,    75,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    39,    41,
+      42,    -1,    -1,    44,    45,    46,    47,    -1,    -1,    -1,
+      -1,    52,    53,    -1,    -1,    57,    58,    -1,    59,    60,
+      -1,    62,    -1,    64,    -1,    -1,    67,    68,    69,    70,
+      -1,     3,     4,    -1,    75,     7,     8,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,    -1,
+      22,    23,    24,    -1,    -1,    27,    28,    29,    30,    31,
+      32,    33,    34,    35,    -1,    -1,    -1,    39,    40,    -1,
+      -1,    -1,    44,    45,    46,    47,    -1,    -1,     3,     4,
+      -1,    53,     7,     8,    -1,    -1,    -1,    59,    60,    -1,
+      62,    -1,    64,    -1,    -1,    67,    68,    -1,    70,    -1,
+      -1,    73,    -1,    75,    -1,    -1,    -1,    -1,    -1,     1,
+      -1,     3,     4,    -1,    39,     7,     8,     9,    -1,    44,
+      45,    46,    47,    -1,    -1,    -1,    -1,    -1,    53,    -1,
+      -1,    -1,    -1,    -1,    59,    60,    -1,    62,    -1,    64,
+      -1,    -1,    67,    68,    -1,    70,    -1,    39,    -1,    -1,
+      75,    -1,    44,    45,    46,    47,     1,    -1,     3,     4,
+      -1,    53,     7,     8,     9,    -1,    -1,    59,    60,    -1,
+      62,    -1,    64,    -1,    -1,    67,    68,    69,    70,    -1,
+      -1,    -1,    -1,     1,    -1,     3,     4,    -1,    -1,     7,
+       8,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    44,
       45,    46,    47,    -1,    -1,    -1,    -1,    10,    53,    -1,
       -1,    -1,    15,    -1,    59,    60,    -1,    62,    -1,    64,
       -1,    39,    67,    68,    -1,    70,    44,    45,    46,    47,
-      -1,    -1,     3,     4,    -1,    53,     7,     8,    41,    42,
+       1,    -1,     3,     4,    -1,    53,     7,     8,    41,    42,
       43,    59,    60,    -1,    62,    -1,    64,    -1,    -1,    67,
-      68,    54,    70,    -1,    57,    58,    -1,    -1,    -1,     3,
-       4,    -1,    -1,     7,     8,    -1,    -1,    -1,    39,    -1,
-      -1,    -1,    -1,    44,    45,    46,    47,    -1,    -1,    -1,
+      68,    54,    70,    56,    57,    58,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,     3,     4,    -1,    39,     7,
+       8,    -1,    -1,    44,    45,    46,    47,    -1,    -1,    -1,
+      -1,    -1,    53,    -1,    -1,    23,    -1,    -1,    59,    60,
+      -1,    62,    -1,    64,    32,    33,    67,    68,    -1,    70,
+      -1,    39,    -1,    -1,    -1,    -1,    44,    45,    46,    47,
+      -1,    -1,    -1,     3,     4,    53,    -1,     7,     8,    -1,
+      -1,    59,    60,    -1,    62,    -1,    64,    -1,    -1,    67,
+      68,    -1,    70,    23,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    32,    33,    -1,    -1,    -1,    -1,    -1,    39,
+      -1,    -1,    -1,    -1,    44,    45,    46,    47,    -1,    -1,
+      -1,    -1,    -1,    53,    -1,    -1,    -1,    -1,    -1,    59,
+      60,    10,    62,    -1,    64,    -1,    15,    67,    68,    -1,
+      70,     3,     4,    -1,    -1,     7,     8,    -1,    -1,    -1,
+      12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    41,    42,    43,    -1,    -1,    -1,     3,     4,
+      -1,    -1,     7,     8,     9,    54,    55,    39,    57,    58,
+      -1,    -1,    44,    45,    46,    47,    -1,    -1,    -1,    -1,
+      10,    53,    -1,    -1,    -1,    15,    -1,    59,    60,    -1,
+      62,    -1,    64,    -1,    39,    67,    68,    -1,    70,    44,
+      45,    46,    47,    -1,    -1,     3,     4,    -1,    53,     7,
+       8,    41,    42,    43,    59,    60,    -1,    62,    -1,    64,
+      -1,    -1,    67,    68,    54,    70,    -1,    57,    58,    -1,
+      -1,    -1,     3,     4,    -1,    -1,     7,     8,    -1,    -1,
+      -1,    39,    -1,    -1,    -1,    -1,    44,    45,    46,    47,
+      -1,    -1,    -1,    -1,    -1,    53,    -1,    -1,    -1,    -1,
+      -1,    59,    60,    -1,    62,    -1,    64,    -1,    -1,    67,
+      68,    -1,    70,    44,    45,    46,    47,    -1,    -1,    -1,
       -1,    -1,    53,    -1,    -1,    -1,    -1,    -1,    59,    60,
-      -1,    62,    -1,    64,    -1,    -1,    67,    68,    -1,    70,
-      44,    45,    46,    47,    -1,    -1,    -1,    -1,    -1,    53,
-      -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    62,    -1,
-      64,    -1,    -1,    67,    68,    -1,    70
+      -1,    62,    -1,    64,    -1,    -1,    67,    68,    -1,    70
 };
 
   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1138,32 +1129,32 @@ static const yytype_uint8 yystos[] =
       68,    70,   124,   137,   124,   124,    68,   126,   137,     1,
      115,   119,    49,    51,   128,    73,    75,    82,    92,   108,
      139,   143,    82,    88,    52,    10,    15,    41,    42,    43,
-      54,    56,    57,    58,   121,   122,    12,   124,    59,    60,
-      61,    62,    63,    66,    59,    60,    61,    62,    63,    66,
-      13,    14,    44,    45,    53,   120,     1,     9,    89,   116,
-     117,   118,   119,   115,   119,    17,   133,    50,    68,    57,
-     110,   116,   116,   119,    44,    45,   138,     1,    56,    69,
+      54,    56,    57,    58,   121,   122,   145,    12,   124,    59,
+      60,    61,    62,    63,    66,    59,    60,    61,    62,    63,
+      66,    13,    14,    44,    45,    53,   120,     1,     9,    89,
+     116,   117,   118,   119,   115,   119,    17,   133,    50,    68,
+      57,   110,   116,   116,   119,    44,    45,   138,     1,    69,
      141,   145,   141,     1,     6,    79,     1,     6,    80,   108,
      109,    91,   109,     5,    89,   119,   136,   119,   119,   119,
-     109,   119,    39,   124,   124,   124,   124,   124,   124,   124,
-     124,   124,   124,   124,   124,    89,    14,   119,   141,     1,
-     145,    72,    86,   124,   141,   141,   119,   109,    41,     1,
+     109,   119,   119,    39,   124,   124,   124,   124,   124,   124,
+     124,   124,   124,   124,   124,   124,    89,    14,   119,   141,
+       1,   145,    72,    86,   124,   141,   141,   119,    41,     1,
      119,     1,    92,     1,    92,     1,    20,    22,    23,    24,
       27,    28,    29,    30,    31,    32,    33,    34,    35,    40,
       74,    93,    94,    96,   103,   107,   119,   139,   140,   143,
-      55,   119,   129,   118,     1,   118,     1,     4,   111,   112,
-     136,    68,    95,     4,    68,    68,    68,   109,    68,    92,
-      92,    92,   113,   119,    92,   109,    92,    97,    91,   142,
-     143,   109,   119,   141,     1,   145,   119,   113,    98,     4,
-     119,   119,    93,     4,    96,    99,    92,    68,   104,   114,
-     115,   140,   109,   109,     1,     4,   141,    92,   130,   131,
-     132,   133,    69,   141,   141,    27,    41,   143,   115,    11,
-     105,   109,    17,   132,   109,   109,    68,   136,   109,   141,
-     106,    93,   139,    93,   119,   141,   119,   143,   123,    21,
-     100,   141,   109,   143,   109,   109,     1,    25,    26,   101,
-     109,   109,    93,   109,    99,    93,     7,     8,    59,    60,
-      87,    89,   102,    55,   144,   140,    99,   141,     7,     7,
-     144,   109,   141,   109,   109,    91,   109,    93,    91,    93
+      55,   129,   118,     1,   118,     1,     4,   111,   112,   136,
+      68,    95,     4,    68,    68,    68,   109,    68,    92,    92,
+      92,   113,   119,    92,   109,    92,    97,    91,   142,   143,
+     109,   119,   141,     1,   145,   119,   113,    98,     4,   119,
+     119,    93,     4,    96,    99,    92,    68,   104,   114,   115,
+     140,   109,   109,     1,     4,   141,    92,   130,   131,   132,
+     133,    69,   141,   141,    27,    41,   143,   115,    11,   105,
+     109,    17,   132,   109,   109,    68,   136,   109,   141,   106,
+      93,   139,    93,   119,   141,   119,   143,   123,    21,   100,
+     141,   109,   143,   109,   109,     1,    25,    26,   101,   109,
+     109,    93,   109,    99,    93,     7,     8,    59,    60,    87,
+      89,   102,    55,   144,   140,    99,   141,     7,     7,   144,
+     109,   141,   109,   109,    91,   109,    93,    91,    93
 };
 
   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
@@ -1197,7 +1188,7 @@ 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,
+       3,     1,     1,     1,     1,     5,     1,     1,     1,     2,
        1,     1,     0,     7,     0,     3,     1,     1,     1,     0,
        2,     2,     1,     2,     2,     3,     1,     9,     6,     8,
        8,    12,    11,     1,     2,     2,     2,     2,     3,     0,
@@ -1892,22 +1883,22 @@ yyreduce:
   switch (yyn)
     {
         case 2:
-#line 226 "awkgram.y" /* yacc.c:1645  */
+#line 223 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = NULL; }
-#line 1898 "awkgram.c" /* yacc.c:1645  */
+#line 1889 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 3:
-#line 228 "awkgram.y" /* yacc.c:1645  */
+#line 225 "awkgram.y" /* yacc.c:1645  */
     {
                rule = 0;
                yyerrok;
          }
-#line 1907 "awkgram.c" /* yacc.c:1645  */
+#line 1898 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 4:
-#line 233 "awkgram.y" /* yacc.c:1645  */
+#line 230 "awkgram.y" /* yacc.c:1645  */
     {
                if ((yyvsp[0]) != NULL) {
                        if ((yyvsp[-1]) == NULL)
@@ -1917,19 +1908,19 @@ yyreduce:
                }
                (yyval) = (yyvsp[-1]);
          }
-#line 1921 "awkgram.c" /* yacc.c:1645  */
+#line 1912 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 5:
-#line 243 "awkgram.y" /* yacc.c:1645  */
+#line 240 "awkgram.y" /* yacc.c:1645  */
     {
                next_sourcefile();
          }
-#line 1929 "awkgram.c" /* yacc.c:1645  */
+#line 1920 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 6:
-#line 247 "awkgram.y" /* yacc.c:1645  */
+#line 244 "awkgram.y" /* yacc.c:1645  */
     {
                rule = 0;
                /*
@@ -1938,24 +1929,23 @@ yyreduce:
                 */
                /* yyerrok; */
          }
-#line 1942 "awkgram.c" /* yacc.c:1645  */
+#line 1933 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 7:
-#line 259 "awkgram.y" /* yacc.c:1645  */
+#line 256 "awkgram.y" /* yacc.c:1645  */
     {
                (void) append_rule((yyvsp[-1]), (yyvsp[0]));
                if (pending_comment != NULL) {
                        interblock_comment = pending_comment;
                        pending_comment = NULL;
                }
-               first_rule = false;
          }
-#line 1955 "awkgram.c" /* yacc.c:1645  */
+#line 1945 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 8:
-#line 268 "awkgram.y" /* yacc.c:1645  */
+#line 264 "awkgram.y" /* yacc.c:1645  */
     {
                if (rule != Rule) {
                        msg(_("%s blocks must have an action part"), 
ruletab[rule]);
@@ -1969,11 +1959,11 @@ yyreduce:
                        (void) append_rule((yyvsp[-1]), NULL);
                }
          }
-#line 1973 "awkgram.c" /* yacc.c:1645  */
+#line 1963 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 9:
-#line 282 "awkgram.y" /* yacc.c:1645  */
+#line 278 "awkgram.y" /* yacc.c:1645  */
     {
                in_function = NULL;
                (void) mk_function((yyvsp[-1]), (yyvsp[0]));
@@ -1984,11 +1974,11 @@ yyreduce:
                }
                yyerrok;
          }
-#line 1988 "awkgram.c" /* yacc.c:1645  */
+#line 1978 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 10:
-#line 293 "awkgram.y" /* yacc.c:1645  */
+#line 289 "awkgram.y" /* yacc.c:1645  */
     {
                want_source = false;
                at_seen = false;
@@ -1998,11 +1988,11 @@ yyreduce:
                }
                yyerrok;
          }
-#line 2002 "awkgram.c" /* yacc.c:1645  */
+#line 1992 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 11:
-#line 303 "awkgram.y" /* yacc.c:1645  */
+#line 299 "awkgram.y" /* yacc.c:1645  */
     {
                want_source = false;
                at_seen = false;
@@ -2012,11 +2002,11 @@ yyreduce:
                }
                yyerrok;
          }
-#line 2016 "awkgram.c" /* yacc.c:1645  */
+#line 2006 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 12:
-#line 316 "awkgram.y" /* yacc.c:1645  */
+#line 312 "awkgram.y" /* yacc.c:1645  */
     {
                void *srcfile = NULL;
 
@@ -2026,23 +2016,23 @@ yyreduce:
                bcfree((yyvsp[0]));
                (yyval) = (INSTRUCTION *) srcfile;
          }
-#line 2030 "awkgram.c" /* yacc.c:1645  */
+#line 2020 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 13:
-#line 326 "awkgram.y" /* yacc.c:1645  */
+#line 322 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = NULL; }
-#line 2036 "awkgram.c" /* yacc.c:1645  */
+#line 2026 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 14:
-#line 328 "awkgram.y" /* yacc.c:1645  */
+#line 324 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = NULL; }
-#line 2042 "awkgram.c" /* yacc.c:1645  */
+#line 2032 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 15:
-#line 333 "awkgram.y" /* yacc.c:1645  */
+#line 329 "awkgram.y" /* yacc.c:1645  */
     {
                void *srcfile;
 
@@ -2052,78 +2042,77 @@ yyreduce:
                bcfree((yyvsp[0]));
                (yyval) = (INSTRUCTION *) srcfile;
          }
-#line 2056 "awkgram.c" /* yacc.c:1645  */
+#line 2046 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 16:
-#line 343 "awkgram.y" /* yacc.c:1645  */
+#line 339 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = NULL; }
-#line 2062 "awkgram.c" /* yacc.c:1645  */
+#line 2052 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 17:
-#line 345 "awkgram.y" /* yacc.c:1645  */
+#line 341 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = NULL; }
-#line 2068 "awkgram.c" /* yacc.c:1645  */
+#line 2058 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 18:
-#line 350 "awkgram.y" /* yacc.c:1645  */
+#line 346 "awkgram.y" /* yacc.c:1645  */
     {
                rule = Rule;
                (yyval) = NULL;
          }
-#line 2077 "awkgram.c" /* yacc.c:1645  */
+#line 2067 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 19:
-#line 355 "awkgram.y" /* yacc.c:1645  */
+#line 351 "awkgram.y" /* yacc.c:1645  */
     {
                rule = Rule;
          }
-#line 2085 "awkgram.c" /* yacc.c:1645  */
+#line 2075 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 20:
-#line 360 "awkgram.y" /* yacc.c:1645  */
+#line 356 "awkgram.y" /* yacc.c:1645  */
     {
                INSTRUCTION *tp;
 
-               add_lint((yyvsp[-3]), LINT_assign_in_cond);
+               add_lint((yyvsp[-2]), LINT_assign_in_cond);
                add_lint((yyvsp[0]), LINT_assign_in_cond);
 
                tp = instruction(Op_no_op);
-               list_prepend((yyvsp[-3]), bcalloc(Op_line_range, 
!!do_pretty_print + 1, 0));
-               (yyvsp[-3])->nexti->triggered = false;
-               (yyvsp[-3])->nexti->target_jmp = (yyvsp[0])->nexti;
+               list_prepend((yyvsp[-2]), bcalloc(Op_line_range, 
!!do_pretty_print + 1, 0));
+               (yyvsp[-2])->nexti->triggered = false;
+               (yyvsp[-2])->nexti->target_jmp = (yyvsp[0])->nexti;
 
-               list_append((yyvsp[-3]), instruction(Op_cond_pair));
-               (yyvsp[-3])->lasti->line_range = (yyvsp[-3])->nexti;
-               (yyvsp[-3])->lasti->target_jmp = tp;
+               list_append((yyvsp[-2]), instruction(Op_cond_pair));
+               (yyvsp[-2])->lasti->line_range = (yyvsp[-2])->nexti;
+               (yyvsp[-2])->lasti->target_jmp = tp;
 
                list_append((yyvsp[0]), instruction(Op_cond_pair));
-               (yyvsp[0])->lasti->line_range = (yyvsp[-3])->nexti;
+               (yyvsp[0])->lasti->line_range = (yyvsp[-2])->nexti;
                (yyvsp[0])->lasti->target_jmp = tp;
                if (do_pretty_print) {
-                       ((yyvsp[-3])->nexti + 1)->condpair_left = 
(yyvsp[-3])->lasti;
-                       ((yyvsp[-3])->nexti + 1)->condpair_right = 
(yyvsp[0])->lasti;
+                       ((yyvsp[-2])->nexti + 1)->condpair_left = 
(yyvsp[-2])->lasti;
+                       ((yyvsp[-2])->nexti + 1)->condpair_right = 
(yyvsp[0])->lasti;
                }
                /* Put any comments in front of the range expression */
                if ((yyvsp[-1]) != NULL)
-                       (yyval) = 
list_append(list_merge(list_prepend((yyvsp[-3]), (yyvsp[-1])), (yyvsp[0])), tp);
+                       (yyval) = 
list_append(list_merge(list_prepend((yyvsp[-2]), (yyvsp[-1])), (yyvsp[0])), tp);
                else
-                       (yyval) = list_append(list_merge((yyvsp[-3]), 
(yyvsp[0])), tp);
+                       (yyval) = list_append(list_merge((yyvsp[-2]), 
(yyvsp[0])), tp);
                rule = Rule;
          }
-#line 2119 "awkgram.c" /* yacc.c:1645  */
+#line 2109 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 21:
-#line 390 "awkgram.y" /* yacc.c:1645  */
+#line 386 "awkgram.y" /* yacc.c:1645  */
     {
                static int begin_seen = 0;
 
-               func_first = false;
                if (do_lint_old && ++begin_seen == 2)
                        warning_ln((yyvsp[0])->source_line,
                                _("old awk does not support multiple `BEGIN' or 
`END' rules"));
@@ -2132,15 +2121,14 @@ yyreduce:
                (yyvsp[0])->source_file = source;
                (yyval) = (yyvsp[0]);
          }
-#line 2136 "awkgram.c" /* yacc.c:1645  */
+#line 2125 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 22:
-#line 403 "awkgram.y" /* yacc.c:1645  */
+#line 398 "awkgram.y" /* yacc.c:1645  */
     {
                static int end_seen = 0;
 
-               func_first = false;
                if (do_lint_old && ++end_seen == 2)
                        warning_ln((yyvsp[0])->source_line,
                                _("old awk does not support multiple `BEGIN' or 
`END' rules"));
@@ -2149,33 +2137,31 @@ yyreduce:
                (yyvsp[0])->source_file = source;
                (yyval) = (yyvsp[0]);
          }
-#line 2153 "awkgram.c" /* yacc.c:1645  */
+#line 2141 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 23:
-#line 416 "awkgram.y" /* yacc.c:1645  */
+#line 410 "awkgram.y" /* yacc.c:1645  */
     {
-               func_first = false;
                (yyvsp[0])->in_rule = rule = BEGINFILE;
                (yyvsp[0])->source_file = source;
                (yyval) = (yyvsp[0]);
          }
-#line 2164 "awkgram.c" /* yacc.c:1645  */
+#line 2151 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 24:
-#line 423 "awkgram.y" /* yacc.c:1645  */
+#line 416 "awkgram.y" /* yacc.c:1645  */
     {
-               func_first = false;
                (yyvsp[0])->in_rule = rule = ENDFILE;
                (yyvsp[0])->source_file = source;
                (yyval) = (yyvsp[0]);
          }
-#line 2175 "awkgram.c" /* yacc.c:1645  */
+#line 2161 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 25:
-#line 433 "awkgram.y" /* yacc.c:1645  */
+#line 425 "awkgram.y" /* yacc.c:1645  */
     {
                INSTRUCTION *ip = make_braced_statements((yyvsp[-4]), 
(yyvsp[-3]), (yyvsp[-2]));
 
@@ -2190,48 +2176,48 @@ yyreduce:
 
                (yyval) = ip;
          }
-#line 2194 "awkgram.c" /* yacc.c:1645  */
+#line 2180 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 26:
-#line 451 "awkgram.y" /* yacc.c:1645  */
+#line 443 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 2200 "awkgram.c" /* yacc.c:1645  */
+#line 2186 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 27:
-#line 453 "awkgram.y" /* yacc.c:1645  */
+#line 445 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 2206 "awkgram.c" /* yacc.c:1645  */
+#line 2192 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 28:
-#line 455 "awkgram.y" /* yacc.c:1645  */
+#line 447 "awkgram.y" /* yacc.c:1645  */
     {
                yyerror(_("`%s' is a built-in function, it cannot be 
redefined"),
                                        tokstart);
                YYABORT;
          }
-#line 2216 "awkgram.c" /* yacc.c:1645  */
+#line 2202 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 29:
-#line 461 "awkgram.y" /* yacc.c:1645  */
+#line 453 "awkgram.y" /* yacc.c:1645  */
     {
                (yyval) = (yyvsp[0]);
                at_seen = false;
          }
-#line 2225 "awkgram.c" /* yacc.c:1645  */
+#line 2211 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 32:
-#line 473 "awkgram.y" /* yacc.c:1645  */
+#line 465 "awkgram.y" /* yacc.c:1645  */
     { want_param_names = FUNC_HEADER; }
-#line 2231 "awkgram.c" /* yacc.c:1645  */
+#line 2217 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 33:
-#line 474 "awkgram.y" /* yacc.c:1645  */
+#line 466 "awkgram.y" /* yacc.c:1645  */
     {
                INSTRUCTION *func_comment = NULL;
                // Merge any comments found in the parameter list with those
@@ -2257,17 +2243,17 @@ yyreduce:
                (yyval) = (yyvsp[-6]);
                want_param_names = FUNC_BODY;
          }
-#line 2261 "awkgram.c" /* yacc.c:1645  */
+#line 2247 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 34:
-#line 507 "awkgram.y" /* yacc.c:1645  */
+#line 499 "awkgram.y" /* yacc.c:1645  */
     { want_regexp = true; }
-#line 2267 "awkgram.c" /* yacc.c:1645  */
+#line 2253 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 35:
-#line 509 "awkgram.y" /* yacc.c:1645  */
+#line 501 "awkgram.y" /* yacc.c:1645  */
     {
                  NODE *n, *exp;
                  char *re;
@@ -2296,11 +2282,11 @@ yyreduce:
                  (yyval)->opcode = Op_match_rec;
                  (yyval)->memory = n;
                }
-#line 2300 "awkgram.c" /* yacc.c:1645  */
+#line 2286 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 36:
-#line 541 "awkgram.y" /* yacc.c:1645  */
+#line 533 "awkgram.y" /* yacc.c:1645  */
     {
                  char *re;
                  size_t len;
@@ -2313,23 +2299,23 @@ yyreduce:
                  (yyval)->opcode = Op_push_re;
                  (yyval)->memory = make_typed_regex(re, len);
                }
-#line 2317 "awkgram.c" /* yacc.c:1645  */
+#line 2303 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 37:
-#line 556 "awkgram.y" /* yacc.c:1645  */
+#line 548 "awkgram.y" /* yacc.c:1645  */
     { bcfree((yyvsp[0])); }
-#line 2323 "awkgram.c" /* yacc.c:1645  */
+#line 2309 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 39:
-#line 562 "awkgram.y" /* yacc.c:1645  */
+#line 554 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = NULL; }
-#line 2329 "awkgram.c" /* yacc.c:1645  */
+#line 2315 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 40:
-#line 564 "awkgram.y" /* yacc.c:1645  */
+#line 556 "awkgram.y" /* yacc.c:1645  */
     {
                if ((yyvsp[0]) == NULL) {
                        (yyval) = (yyvsp[-1]);
@@ -2349,29 +2335,29 @@ yyreduce:
 
                yyerrok;
          }
-#line 2353 "awkgram.c" /* yacc.c:1645  */
+#line 2339 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 41:
-#line 584 "awkgram.y" /* yacc.c:1645  */
+#line 576 "awkgram.y" /* yacc.c:1645  */
     {  (yyval) = NULL; }
-#line 2359 "awkgram.c" /* yacc.c:1645  */
+#line 2345 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 42:
-#line 588 "awkgram.y" /* yacc.c:1645  */
+#line 580 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 2365 "awkgram.c" /* yacc.c:1645  */
+#line 2351 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 43:
-#line 589 "awkgram.y" /* yacc.c:1645  */
+#line 581 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 2371 "awkgram.c" /* yacc.c:1645  */
+#line 2357 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 44:
-#line 594 "awkgram.y" /* yacc.c:1645  */
+#line 586 "awkgram.y" /* yacc.c:1645  */
     {
                if ((yyvsp[0]) != NULL) {
                        INSTRUCTION *ip;
@@ -2382,31 +2368,31 @@ yyreduce:
                } else
                        (yyval) = NULL;
          }
-#line 2386 "awkgram.c" /* yacc.c:1645  */
+#line 2372 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 45:
-#line 605 "awkgram.y" /* yacc.c:1645  */
+#line 597 "awkgram.y" /* yacc.c:1645  */
     {
                trailing_comment = (yyvsp[0]);  // NULL or comment
                (yyval) = make_braced_statements((yyvsp[-2]), (yyvsp[-1]), 
(yyvsp[0]));
          }
-#line 2395 "awkgram.c" /* yacc.c:1645  */
+#line 2381 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 46:
-#line 610 "awkgram.y" /* yacc.c:1645  */
+#line 602 "awkgram.y" /* yacc.c:1645  */
     {
                if (do_pretty_print)
                        (yyval) = list_prepend((yyvsp[0]), 
instruction(Op_exec_count));
                else
                        (yyval) = (yyvsp[0]);
          }
-#line 2406 "awkgram.c" /* yacc.c:1645  */
+#line 2392 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 47:
-#line 617 "awkgram.y" /* yacc.c:1645  */
+#line 609 "awkgram.y" /* yacc.c:1645  */
     {
                INSTRUCTION *dflt, *curr = NULL, *cexp, *cstmt;
                INSTRUCTION *ip, *nextc, *tbreak;
@@ -2514,11 +2500,11 @@ yyreduce:
                break_allowed--;
                fix_break_continue(ip, tbreak, NULL);
          }
-#line 2518 "awkgram.c" /* yacc.c:1645  */
+#line 2504 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 48:
-#line 725 "awkgram.y" /* yacc.c:1645  */
+#line 717 "awkgram.y" /* yacc.c:1645  */
     {
                /*
                 *    -----------------
@@ -2569,11 +2555,11 @@ yyreduce:
                continue_allowed--;
                fix_break_continue(ip, tbreak, tcont);
          }
-#line 2573 "awkgram.c" /* yacc.c:1645  */
+#line 2559 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 49:
-#line 776 "awkgram.y" /* yacc.c:1645  */
+#line 768 "awkgram.y" /* yacc.c:1645  */
     {
                /*
                 *    -----------------
@@ -2623,11 +2609,11 @@ yyreduce:
                /* else
                        $1 and $4 are NULLs */
          }
-#line 2627 "awkgram.c" /* yacc.c:1645  */
+#line 2613 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 50:
-#line 826 "awkgram.y" /* yacc.c:1645  */
+#line 818 "awkgram.y" /* yacc.c:1645  */
     {
                INSTRUCTION *ip;
                char *var_name = (yyvsp[-5])->lextok;
@@ -2753,11 +2739,11 @@ regular_loop:
                break_allowed--;
                continue_allowed--;
          }
-#line 2757 "awkgram.c" /* yacc.c:1645  */
+#line 2743 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 51:
-#line 952 "awkgram.y" /* yacc.c:1645  */
+#line 944 "awkgram.y" /* yacc.c:1645  */
     {
                if ((yyvsp[-7]) != NULL) {
                        merge_comments((yyvsp[-7]), NULL);
@@ -2778,11 +2764,11 @@ regular_loop:
                break_allowed--;
                continue_allowed--;
          }
-#line 2782 "awkgram.c" /* yacc.c:1645  */
+#line 2768 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 52:
-#line 973 "awkgram.y" /* yacc.c:1645  */
+#line 965 "awkgram.y" /* yacc.c:1645  */
     {
                if ((yyvsp[-6]) != NULL) {
                        merge_comments((yyvsp[-6]), NULL);
@@ -2803,22 +2789,22 @@ regular_loop:
                break_allowed--;
                continue_allowed--;
          }
-#line 2807 "awkgram.c" /* yacc.c:1645  */
+#line 2793 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 53:
-#line 994 "awkgram.y" /* yacc.c:1645  */
+#line 986 "awkgram.y" /* yacc.c:1645  */
     {
                if (do_pretty_print)
                        (yyval) = list_prepend((yyvsp[0]), 
instruction(Op_exec_count));
                else
                        (yyval) = (yyvsp[0]);
          }
-#line 2818 "awkgram.c" /* yacc.c:1645  */
+#line 2804 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 54:
-#line 1004 "awkgram.y" /* yacc.c:1645  */
+#line 996 "awkgram.y" /* yacc.c:1645  */
     {
                if (! break_allowed)
                        error_ln((yyvsp[-1])->source_line,
@@ -2828,11 +2814,11 @@ regular_loop:
                if ((yyvsp[0]) != NULL)
                        (yyval) = list_append((yyval), (yyvsp[0]));
          }
-#line 2832 "awkgram.c" /* yacc.c:1645  */
+#line 2818 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 55:
-#line 1014 "awkgram.y" /* yacc.c:1645  */
+#line 1006 "awkgram.y" /* yacc.c:1645  */
     {
                if (! continue_allowed)
                        error_ln((yyvsp[-1])->source_line,
@@ -2842,11 +2828,11 @@ regular_loop:
                if ((yyvsp[0]) != NULL)
                        (yyval) = list_append((yyval), (yyvsp[0]));
          }
-#line 2846 "awkgram.c" /* yacc.c:1645  */
+#line 2832 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 56:
-#line 1024 "awkgram.y" /* yacc.c:1645  */
+#line 1016 "awkgram.y" /* yacc.c:1645  */
     {
                /* if inside function (rule = 0), resolve context at run-time */
                if (rule && rule != Rule)
@@ -2857,11 +2843,11 @@ regular_loop:
                if ((yyvsp[0]) != NULL)
                        (yyval) = list_append((yyval), (yyvsp[0]));
          }
-#line 2861 "awkgram.c" /* yacc.c:1645  */
+#line 2847 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 57:
-#line 1035 "awkgram.y" /* yacc.c:1645  */
+#line 1027 "awkgram.y" /* yacc.c:1645  */
     {
                /* if inside function (rule = 0), resolve context at run-time */
                if (rule == BEGIN || rule == END || rule == ENDFILE)
@@ -2874,11 +2860,11 @@ regular_loop:
                if ((yyvsp[0]) != NULL)
                        (yyval) = list_append((yyval), (yyvsp[0]));
          }
-#line 2878 "awkgram.c" /* yacc.c:1645  */
+#line 2864 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 58:
-#line 1048 "awkgram.y" /* yacc.c:1645  */
+#line 1040 "awkgram.y" /* yacc.c:1645  */
     {
                /* Initialize the two possible jump targets, the actual target
                 * is resolved at run-time.
@@ -2895,20 +2881,20 @@ regular_loop:
                if ((yyvsp[0]) != NULL)
                        (yyval) = list_append((yyval), (yyvsp[0]));
          }
-#line 2899 "awkgram.c" /* yacc.c:1645  */
+#line 2885 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 59:
-#line 1065 "awkgram.y" /* yacc.c:1645  */
+#line 1057 "awkgram.y" /* yacc.c:1645  */
     {
                if (! in_function)
                        yyerror(_("`return' used outside function context"));
          }
-#line 2908 "awkgram.c" /* yacc.c:1645  */
+#line 2894 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 60:
-#line 1068 "awkgram.y" /* yacc.c:1645  */
+#line 1060 "awkgram.y" /* yacc.c:1645  */
     {
                if ((yyvsp[-1]) == NULL) {
                        (yyval) = list_create((yyvsp[-3]));
@@ -2919,28 +2905,28 @@ regular_loop:
                if ((yyvsp[0]) != NULL)
                        (yyval) = list_append((yyval), (yyvsp[0]));
          }
-#line 2923 "awkgram.c" /* yacc.c:1645  */
+#line 2909 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 61:
-#line 1079 "awkgram.y" /* yacc.c:1645  */
+#line 1071 "awkgram.y" /* yacc.c:1645  */
     {
                if ((yyvsp[0]) != NULL)
                        (yyval) = list_append((yyvsp[-1]), (yyvsp[0]));
                else
                        (yyval) = (yyvsp[-1]);
          }
-#line 2934 "awkgram.c" /* yacc.c:1645  */
+#line 2920 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 62:
-#line 1096 "awkgram.y" /* yacc.c:1645  */
+#line 1088 "awkgram.y" /* yacc.c:1645  */
     { in_print = true; in_parens = 0; }
-#line 2940 "awkgram.c" /* yacc.c:1645  */
+#line 2926 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 63:
-#line 1097 "awkgram.y" /* yacc.c:1645  */
+#line 1089 "awkgram.y" /* yacc.c:1645  */
     {
                /*
                 * Optimization: plain `print' has no expression list, so $3 is 
null.
@@ -3037,17 +3023,17 @@ regular_print:
                        }
                }
          }
-#line 3041 "awkgram.c" /* yacc.c:1645  */
+#line 3027 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 64:
-#line 1194 "awkgram.y" /* yacc.c:1645  */
+#line 1186 "awkgram.y" /* yacc.c:1645  */
     { sub_counter = 0; }
-#line 3047 "awkgram.c" /* yacc.c:1645  */
+#line 3033 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 65:
-#line 1195 "awkgram.y" /* yacc.c:1645  */
+#line 1187 "awkgram.y" /* yacc.c:1645  */
     {
                char *arr = (yyvsp[-2])->lextok;
 
@@ -3080,11 +3066,11 @@ regular_print:
                        (yyval) = list_append(list_append((yyvsp[0]), 
(yyvsp[-2])), (yyvsp[-3]));
                }
          }
-#line 3084 "awkgram.c" /* yacc.c:1645  */
+#line 3070 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 66:
-#line 1232 "awkgram.y" /* yacc.c:1645  */
+#line 1224 "awkgram.y" /* yacc.c:1645  */
     {
                static bool warned = false;
                char *arr = (yyvsp[-1])->lextok;
@@ -3110,54 +3096,54 @@ regular_print:
                                fatal(_("`delete' is not allowed with 
FUNCTAB"));
                }
          }
-#line 3114 "awkgram.c" /* yacc.c:1645  */
+#line 3100 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 67:
-#line 1258 "awkgram.y" /* yacc.c:1645  */
+#line 1250 "awkgram.y" /* yacc.c:1645  */
     {
                (yyval) = optimize_assignment((yyvsp[0]));
          }
-#line 3122 "awkgram.c" /* yacc.c:1645  */
+#line 3108 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 68:
-#line 1265 "awkgram.y" /* yacc.c:1645  */
+#line 1257 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = NULL; }
-#line 3128 "awkgram.c" /* yacc.c:1645  */
+#line 3114 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 69:
-#line 1267 "awkgram.y" /* yacc.c:1645  */
+#line 1259 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 3134 "awkgram.c" /* yacc.c:1645  */
+#line 3120 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 70:
-#line 1272 "awkgram.y" /* yacc.c:1645  */
+#line 1264 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = NULL; }
-#line 3140 "awkgram.c" /* yacc.c:1645  */
+#line 3126 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 71:
-#line 1274 "awkgram.y" /* yacc.c:1645  */
+#line 1266 "awkgram.y" /* yacc.c:1645  */
     {
                if ((yyvsp[-1]) == NULL)
                        (yyval) = list_create((yyvsp[0]));
                else
                        (yyval) = list_prepend((yyvsp[-1]), (yyvsp[0]));
          }
-#line 3151 "awkgram.c" /* yacc.c:1645  */
+#line 3137 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 72:
-#line 1281 "awkgram.y" /* yacc.c:1645  */
+#line 1273 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = NULL; }
-#line 3157 "awkgram.c" /* yacc.c:1645  */
+#line 3143 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 73:
-#line 1286 "awkgram.y" /* yacc.c:1645  */
+#line 1278 "awkgram.y" /* yacc.c:1645  */
     {
                INSTRUCTION *casestmt = (yyvsp[0]);
                if ((yyvsp[0]) == NULL)
@@ -3170,11 +3156,11 @@ regular_print:
                bcfree((yyvsp[-2]));
                (yyval) = (yyvsp[-4]);
          }
-#line 3174 "awkgram.c" /* yacc.c:1645  */
+#line 3160 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 74:
-#line 1299 "awkgram.y" /* yacc.c:1645  */
+#line 1291 "awkgram.y" /* yacc.c:1645  */
     {
                INSTRUCTION *casestmt = (yyvsp[0]);
                if ((yyvsp[0]) == NULL)
@@ -3186,17 +3172,17 @@ regular_print:
                (yyvsp[-3])->comment = (yyvsp[-1]);
                (yyval) = (yyvsp[-3]);
          }
-#line 3190 "awkgram.c" /* yacc.c:1645  */
+#line 3176 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 75:
-#line 1314 "awkgram.y" /* yacc.c:1645  */
+#line 1306 "awkgram.y" /* yacc.c:1645  */
     {  (yyval) = (yyvsp[0]); }
-#line 3196 "awkgram.c" /* yacc.c:1645  */
+#line 3182 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 76:
-#line 1316 "awkgram.y" /* yacc.c:1645  */
+#line 1308 "awkgram.y" /* yacc.c:1645  */
     {
                NODE *n = (yyvsp[0])->memory;
                (void) force_number(n);
@@ -3204,28 +3190,28 @@ regular_print:
                bcfree((yyvsp[-1]));
                (yyval) = (yyvsp[0]);
          }
-#line 3208 "awkgram.c" /* yacc.c:1645  */
+#line 3194 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 77:
-#line 1324 "awkgram.y" /* yacc.c:1645  */
+#line 1316 "awkgram.y" /* yacc.c:1645  */
     {
                NODE *n = (yyvsp[0])->lasti->memory;
                bcfree((yyvsp[-1]));
                add_sign_to_num(n, '+');
                (yyval) = (yyvsp[0]);
          }
-#line 3219 "awkgram.c" /* yacc.c:1645  */
+#line 3205 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 78:
-#line 1331 "awkgram.y" /* yacc.c:1645  */
+#line 1323 "awkgram.y" /* yacc.c:1645  */
     {  (yyval) = (yyvsp[0]); }
-#line 3225 "awkgram.c" /* yacc.c:1645  */
+#line 3211 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 79:
-#line 1333 "awkgram.y" /* yacc.c:1645  */
+#line 1325 "awkgram.y" /* yacc.c:1645  */
     {
                if ((yyvsp[0])->memory->type == Node_regex)
                        (yyvsp[0])->opcode = Op_push_re;
@@ -3233,57 +3219,57 @@ regular_print:
                        (yyvsp[0])->opcode = Op_push;
                (yyval) = (yyvsp[0]);
          }
-#line 3237 "awkgram.c" /* yacc.c:1645  */
+#line 3223 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 80:
-#line 1341 "awkgram.y" /* yacc.c:1645  */
+#line 1333 "awkgram.y" /* yacc.c:1645  */
     {
                assert(((yyvsp[0])->memory->flags & REGEX) == REGEX);
                (yyvsp[0])->opcode = Op_push_re;
                (yyval) = (yyvsp[0]);
          }
-#line 3247 "awkgram.c" /* yacc.c:1645  */
+#line 3233 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 81:
-#line 1350 "awkgram.y" /* yacc.c:1645  */
+#line 1342 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 3253 "awkgram.c" /* yacc.c:1645  */
+#line 3239 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 82:
-#line 1352 "awkgram.y" /* yacc.c:1645  */
+#line 1344 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 3259 "awkgram.c" /* yacc.c:1645  */
+#line 3245 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 84:
-#line 1362 "awkgram.y" /* yacc.c:1645  */
+#line 1354 "awkgram.y" /* yacc.c:1645  */
     {
                (yyval) = (yyvsp[-1]);
          }
-#line 3267 "awkgram.c" /* yacc.c:1645  */
+#line 3253 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 85:
-#line 1369 "awkgram.y" /* yacc.c:1645  */
+#line 1361 "awkgram.y" /* yacc.c:1645  */
     {
                in_print = false;
                in_parens = 0;
                (yyval) = NULL;
          }
-#line 3277 "awkgram.c" /* yacc.c:1645  */
+#line 3263 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 86:
-#line 1374 "awkgram.y" /* yacc.c:1645  */
+#line 1366 "awkgram.y" /* yacc.c:1645  */
     { in_print = false; in_parens = 0; }
-#line 3283 "awkgram.c" /* yacc.c:1645  */
+#line 3269 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 87:
-#line 1375 "awkgram.y" /* yacc.c:1645  */
+#line 1367 "awkgram.y" /* yacc.c:1645  */
     {
                if ((yyvsp[-2])->redir_type == redirect_twoway
                        && (yyvsp[0])->lasti->opcode == Op_K_getline_redir
@@ -3293,21 +3279,21 @@ regular_print:
                        lintwarn(_("concatenation as I/O `>' redirection target 
is ambiguous"));
                (yyval) = list_prepend((yyvsp[0]), (yyvsp[-2]));
          }
-#line 3297 "awkgram.c" /* yacc.c:1645  */
+#line 3283 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 88:
-#line 1388 "awkgram.y" /* yacc.c:1645  */
+#line 1380 "awkgram.y" /* yacc.c:1645  */
     {
                if ((yyvsp[-1]) != NULL)
                        (yyvsp[-5])->comment = (yyvsp[-1]);
                (yyval) = mk_condition((yyvsp[-3]), (yyvsp[-5]), (yyvsp[0]), 
NULL, NULL);
          }
-#line 3307 "awkgram.c" /* yacc.c:1645  */
+#line 3293 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 89:
-#line 1395 "awkgram.y" /* yacc.c:1645  */
+#line 1387 "awkgram.y" /* yacc.c:1645  */
     {
                if ((yyvsp[-4]) != NULL)
                        (yyvsp[-8])->comment = (yyvsp[-4]);
@@ -3315,19 +3301,19 @@ regular_print:
                        (yyvsp[-2])->comment = (yyvsp[-1]);
                (yyval) = mk_condition((yyvsp[-6]), (yyvsp[-8]), (yyvsp[-3]), 
(yyvsp[-2]), (yyvsp[0]));
          }
-#line 3319 "awkgram.c" /* yacc.c:1645  */
+#line 3305 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 90:
-#line 1406 "awkgram.y" /* yacc.c:1645  */
+#line 1398 "awkgram.y" /* yacc.c:1645  */
     {
                (yyval) = (yyvsp[0]);
          }
-#line 3327 "awkgram.c" /* yacc.c:1645  */
+#line 3313 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 91:
-#line 1410 "awkgram.y" /* yacc.c:1645  */
+#line 1402 "awkgram.y" /* yacc.c:1645  */
     {
                if ((yyvsp[-1]) != NULL && (yyvsp[0]) != NULL) {
                        if ((yyvsp[-1])->memory->comment_type == EOL_COMMENT) {
@@ -3345,59 +3331,59 @@ regular_print:
                } else
                        (yyval) = NULL;
          }
-#line 3349 "awkgram.c" /* yacc.c:1645  */
+#line 3335 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 92:
-#line 1431 "awkgram.y" /* yacc.c:1645  */
+#line 1423 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = NULL; }
-#line 3355 "awkgram.c" /* yacc.c:1645  */
+#line 3341 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 93:
-#line 1433 "awkgram.y" /* yacc.c:1645  */
+#line 1425 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 3361 "awkgram.c" /* yacc.c:1645  */
+#line 3347 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 94:
-#line 1438 "awkgram.y" /* yacc.c:1645  */
+#line 1430 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = NULL; }
-#line 3367 "awkgram.c" /* yacc.c:1645  */
+#line 3353 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 95:
-#line 1440 "awkgram.y" /* yacc.c:1645  */
+#line 1432 "awkgram.y" /* yacc.c:1645  */
     {
                bcfree((yyvsp[-1]));
                (yyval) = (yyvsp[0]);
          }
-#line 3376 "awkgram.c" /* yacc.c:1645  */
+#line 3362 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 96:
-#line 1448 "awkgram.y" /* yacc.c:1645  */
+#line 1440 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = NULL; }
-#line 3382 "awkgram.c" /* yacc.c:1645  */
+#line 3368 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 97:
-#line 1450 "awkgram.y" /* yacc.c:1645  */
+#line 1442 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 3388 "awkgram.c" /* yacc.c:1645  */
+#line 3374 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 98:
-#line 1455 "awkgram.y" /* yacc.c:1645  */
+#line 1447 "awkgram.y" /* yacc.c:1645  */
     {
                (yyvsp[0])->param_count = 0;
                (yyval) = list_create((yyvsp[0]));
          }
-#line 3397 "awkgram.c" /* yacc.c:1645  */
+#line 3383 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 99:
-#line 1460 "awkgram.y" /* yacc.c:1645  */
+#line 1452 "awkgram.y" /* yacc.c:1645  */
     {
                if ((yyvsp[-2]) != NULL && (yyvsp[0]) != NULL) {
                        (yyvsp[0])->param_count = 
(yyvsp[-2])->lasti->param_count + 1;
@@ -3414,76 +3400,76 @@ regular_print:
                } else
                        (yyval) = NULL;
          }
-#line 3418 "awkgram.c" /* yacc.c:1645  */
+#line 3404 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 100:
-#line 1477 "awkgram.y" /* yacc.c:1645  */
+#line 1469 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = NULL; }
-#line 3424 "awkgram.c" /* yacc.c:1645  */
+#line 3410 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 101:
-#line 1479 "awkgram.y" /* yacc.c:1645  */
+#line 1471 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[-1]); }
-#line 3430 "awkgram.c" /* yacc.c:1645  */
+#line 3416 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 102:
-#line 1481 "awkgram.y" /* yacc.c:1645  */
+#line 1473 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[-2]); }
-#line 3436 "awkgram.c" /* yacc.c:1645  */
+#line 3422 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 103:
-#line 1487 "awkgram.y" /* yacc.c:1645  */
+#line 1479 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = NULL; }
-#line 3442 "awkgram.c" /* yacc.c:1645  */
+#line 3428 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 104:
-#line 1489 "awkgram.y" /* yacc.c:1645  */
+#line 1481 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 3448 "awkgram.c" /* yacc.c:1645  */
+#line 3434 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 105:
-#line 1494 "awkgram.y" /* yacc.c:1645  */
+#line 1486 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = NULL; }
-#line 3454 "awkgram.c" /* yacc.c:1645  */
+#line 3440 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 106:
-#line 1496 "awkgram.y" /* yacc.c:1645  */
+#line 1488 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 3460 "awkgram.c" /* yacc.c:1645  */
+#line 3446 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 107:
-#line 1501 "awkgram.y" /* yacc.c:1645  */
+#line 1493 "awkgram.y" /* yacc.c:1645  */
     {  (yyval) = mk_expression_list(NULL, (yyvsp[0])); }
-#line 3466 "awkgram.c" /* yacc.c:1645  */
+#line 3452 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 108:
-#line 1503 "awkgram.y" /* yacc.c:1645  */
+#line 1495 "awkgram.y" /* yacc.c:1645  */
     {
                if ((yyvsp[-1]) != NULL)
                        (yyvsp[-2])->lasti->comment = (yyvsp[-1]);
                (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
                yyerrok;
          }
-#line 3477 "awkgram.c" /* yacc.c:1645  */
+#line 3463 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 109:
-#line 1510 "awkgram.y" /* yacc.c:1645  */
+#line 1502 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = NULL; }
-#line 3483 "awkgram.c" /* yacc.c:1645  */
+#line 3469 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 110:
-#line 1512 "awkgram.y" /* yacc.c:1645  */
+#line 1504 "awkgram.y" /* yacc.c:1645  */
     {
                /*
                 * Returning the expression list instead of NULL lets
@@ -3491,66 +3477,66 @@ regular_print:
                 */
                (yyval) = (yyvsp[-1]);
          }
-#line 3495 "awkgram.c" /* yacc.c:1645  */
+#line 3481 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 111:
-#line 1520 "awkgram.y" /* yacc.c:1645  */
+#line 1512 "awkgram.y" /* yacc.c:1645  */
     {
                /* Ditto */
                (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
          }
-#line 3504 "awkgram.c" /* yacc.c:1645  */
+#line 3490 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 112:
-#line 1525 "awkgram.y" /* yacc.c:1645  */
+#line 1517 "awkgram.y" /* yacc.c:1645  */
     {
                /* Ditto */
                if ((yyvsp[-1]) != NULL)
                        (yyvsp[-2])->lasti->comment = (yyvsp[-1]);
                (yyval) = (yyvsp[-2]);
          }
-#line 3515 "awkgram.c" /* yacc.c:1645  */
+#line 3501 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 113:
-#line 1535 "awkgram.y" /* yacc.c:1645  */
+#line 1527 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = NULL; }
-#line 3521 "awkgram.c" /* yacc.c:1645  */
+#line 3507 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 114:
-#line 1537 "awkgram.y" /* yacc.c:1645  */
+#line 1529 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 3527 "awkgram.c" /* yacc.c:1645  */
+#line 3513 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 115:
-#line 1542 "awkgram.y" /* yacc.c:1645  */
+#line 1534 "awkgram.y" /* yacc.c:1645  */
     {  (yyval) = mk_expression_list(NULL, (yyvsp[0])); }
-#line 3533 "awkgram.c" /* yacc.c:1645  */
+#line 3519 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 116:
-#line 1544 "awkgram.y" /* yacc.c:1645  */
+#line 1536 "awkgram.y" /* yacc.c:1645  */
     {
                if ((yyvsp[-1]) != NULL)
                        (yyvsp[-2])->lasti->comment = (yyvsp[-1]);
                (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
                yyerrok;
          }
-#line 3544 "awkgram.c" /* yacc.c:1645  */
+#line 3530 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 117:
-#line 1551 "awkgram.y" /* yacc.c:1645  */
+#line 1543 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = NULL; }
-#line 3550 "awkgram.c" /* yacc.c:1645  */
+#line 3536 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 118:
-#line 1553 "awkgram.y" /* yacc.c:1645  */
+#line 1545 "awkgram.y" /* yacc.c:1645  */
     {
                /*
                 * Returning the expression list instead of NULL lets
@@ -3558,74 +3544,74 @@ regular_print:
                 */
                (yyval) = (yyvsp[-1]);
          }
-#line 3562 "awkgram.c" /* yacc.c:1645  */
+#line 3548 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 119:
-#line 1561 "awkgram.y" /* yacc.c:1645  */
+#line 1553 "awkgram.y" /* yacc.c:1645  */
     {
                /* Ditto */
                (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0]));
          }
-#line 3571 "awkgram.c" /* yacc.c:1645  */
+#line 3557 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 120:
-#line 1566 "awkgram.y" /* yacc.c:1645  */
+#line 1558 "awkgram.y" /* yacc.c:1645  */
     {
                /* Ditto */
                if ((yyvsp[-1]) != NULL)
                        (yyvsp[-2])->comment = (yyvsp[-1]);
                (yyval) = (yyvsp[-2]);
          }
-#line 3582 "awkgram.c" /* yacc.c:1645  */
+#line 3568 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 121:
-#line 1575 "awkgram.y" /* yacc.c:1645  */
+#line 1567 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 3588 "awkgram.c" /* yacc.c:1645  */
+#line 3574 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 122:
-#line 1576 "awkgram.y" /* yacc.c:1645  */
+#line 1568 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = list_create((yyvsp[0])); }
-#line 3594 "awkgram.c" /* yacc.c:1645  */
+#line 3580 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 123:
-#line 1582 "awkgram.y" /* yacc.c:1645  */
+#line 1574 "awkgram.y" /* yacc.c:1645  */
     {
                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 3605 "awkgram.c" /* yacc.c:1645  */
+#line 3591 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 124:
-#line 1589 "awkgram.y" /* yacc.c:1645  */
+#line 1581 "awkgram.y" /* yacc.c:1645  */
     {
                (yyval) = mk_assignment((yyvsp[-2]), list_create((yyvsp[0])), 
(yyvsp[-1]));
          }
-#line 3613 "awkgram.c" /* yacc.c:1645  */
+#line 3599 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 125:
-#line 1593 "awkgram.y" /* yacc.c:1645  */
+#line 1585 "awkgram.y" /* yacc.c:1645  */
     {  (yyval) = mk_boolean((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3619 "awkgram.c" /* yacc.c:1645  */
+#line 3605 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 126:
-#line 1595 "awkgram.y" /* yacc.c:1645  */
+#line 1587 "awkgram.y" /* yacc.c:1645  */
     {  (yyval) = mk_boolean((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3625 "awkgram.c" /* yacc.c:1645  */
+#line 3611 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 127:
-#line 1597 "awkgram.y" /* yacc.c:1645  */
+#line 1589 "awkgram.y" /* yacc.c:1645  */
     {
                if ((yyvsp[-2])->lasti->opcode == Op_match_rec)
                        warning_ln((yyvsp[-1])->source_line,
@@ -3638,11 +3624,11 @@ regular_print:
                bcfree((yyvsp[0]));
                (yyval) = list_append((yyvsp[-2]), (yyvsp[-1]));
          }
-#line 3642 "awkgram.c" /* yacc.c:1645  */
+#line 3628 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 128:
-#line 1610 "awkgram.y" /* yacc.c:1645  */
+#line 1602 "awkgram.y" /* yacc.c:1645  */
     {
                if ((yyvsp[-2])->lasti->opcode == Op_match_rec)
                        warning_ln((yyvsp[-1])->source_line,
@@ -3659,11 +3645,11 @@ regular_print:
                        (yyval) = list_append(list_merge((yyvsp[-2]), 
(yyvsp[0])), (yyvsp[-1]));
                }
          }
-#line 3663 "awkgram.c" /* yacc.c:1645  */
+#line 3649 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 129:
-#line 1627 "awkgram.y" /* yacc.c:1645  */
+#line 1619 "awkgram.y" /* yacc.c:1645  */
     {
                if (do_lint_old)
                        warning_ln((yyvsp[-1])->source_line,
@@ -3673,91 +3659,91 @@ regular_print:
                (yyvsp[-1])->expr_count = 1;
                (yyval) = list_append(list_merge((yyvsp[-2]), (yyvsp[0])), 
(yyvsp[-1]));
          }
-#line 3677 "awkgram.c" /* yacc.c:1645  */
+#line 3663 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 130:
-#line 1637 "awkgram.y" /* yacc.c:1645  */
+#line 1629 "awkgram.y" /* yacc.c:1645  */
     {
                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 3688 "awkgram.c" /* yacc.c:1645  */
+#line 3674 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 131:
-#line 1644 "awkgram.y" /* yacc.c:1645  */
+#line 1636 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = mk_condition((yyvsp[-4]), (yyvsp[-3]), (yyvsp[-2]), 
(yyvsp[-1]), (yyvsp[0])); }
-#line 3694 "awkgram.c" /* yacc.c:1645  */
+#line 3680 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 132:
-#line 1646 "awkgram.y" /* yacc.c:1645  */
+#line 1638 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 3700 "awkgram.c" /* yacc.c:1645  */
+#line 3686 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 133:
-#line 1651 "awkgram.y" /* yacc.c:1645  */
+#line 1643 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 3706 "awkgram.c" /* yacc.c:1645  */
+#line 3692 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 134:
-#line 1653 "awkgram.y" /* yacc.c:1645  */
+#line 1645 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 3712 "awkgram.c" /* yacc.c:1645  */
+#line 3698 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 135:
-#line 1655 "awkgram.y" /* yacc.c:1645  */
+#line 1647 "awkgram.y" /* yacc.c:1645  */
     {
                (yyvsp[0])->opcode = Op_assign_quotient;
                (yyval) = (yyvsp[0]);
          }
-#line 3721 "awkgram.c" /* yacc.c:1645  */
+#line 3707 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 136:
-#line 1663 "awkgram.y" /* yacc.c:1645  */
+#line 1655 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 3727 "awkgram.c" /* yacc.c:1645  */
+#line 3713 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 137:
-#line 1665 "awkgram.y" /* yacc.c:1645  */
+#line 1657 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 3733 "awkgram.c" /* yacc.c:1645  */
+#line 3719 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 138:
-#line 1670 "awkgram.y" /* yacc.c:1645  */
+#line 1662 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 3739 "awkgram.c" /* yacc.c:1645  */
+#line 3725 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 139:
-#line 1672 "awkgram.y" /* yacc.c:1645  */
+#line 1664 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 3745 "awkgram.c" /* yacc.c:1645  */
+#line 3731 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 140:
-#line 1677 "awkgram.y" /* yacc.c:1645  */
+#line 1669 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 3751 "awkgram.c" /* yacc.c:1645  */
+#line 3737 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 141:
-#line 1679 "awkgram.y" /* yacc.c:1645  */
+#line 1671 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 3757 "awkgram.c" /* yacc.c:1645  */
+#line 3743 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 142:
-#line 1681 "awkgram.y" /* yacc.c:1645  */
+#line 1673 "awkgram.y" /* yacc.c:1645  */
     {
                int count = 2;
                bool is_simple_var = false;
@@ -3811,47 +3797,47 @@ regular_print:
                                max_args = count;
                }
          }
-#line 3815 "awkgram.c" /* yacc.c:1645  */
+#line 3801 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 144:
-#line 1740 "awkgram.y" /* yacc.c:1645  */
+#line 1732 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3821 "awkgram.c" /* yacc.c:1645  */
+#line 3807 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 145:
-#line 1742 "awkgram.y" /* yacc.c:1645  */
+#line 1734 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3827 "awkgram.c" /* yacc.c:1645  */
+#line 3813 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 146:
-#line 1744 "awkgram.y" /* yacc.c:1645  */
+#line 1736 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3833 "awkgram.c" /* yacc.c:1645  */
+#line 3819 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 147:
-#line 1746 "awkgram.y" /* yacc.c:1645  */
+#line 1738 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3839 "awkgram.c" /* yacc.c:1645  */
+#line 3825 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 148:
-#line 1748 "awkgram.y" /* yacc.c:1645  */
+#line 1740 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3845 "awkgram.c" /* yacc.c:1645  */
+#line 3831 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 149:
-#line 1750 "awkgram.y" /* yacc.c:1645  */
+#line 1742 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3851 "awkgram.c" /* yacc.c:1645  */
+#line 3837 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 150:
-#line 1752 "awkgram.y" /* yacc.c:1645  */
+#line 1744 "awkgram.y" /* yacc.c:1645  */
     {
                /*
                 * In BEGINFILE/ENDFILE, allow `getline [var] < file'
@@ -3865,29 +3851,29 @@ regular_print:
                                _("non-redirected `getline' undefined inside 
END action"));
                (yyval) = mk_getline((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]), 
redirect_input);
          }
-#line 3869 "awkgram.c" /* yacc.c:1645  */
+#line 3855 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 151:
-#line 1766 "awkgram.y" /* yacc.c:1645  */
+#line 1758 "awkgram.y" /* yacc.c:1645  */
     {
                (yyvsp[0])->opcode = Op_postincrement;
                (yyval) = mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
          }
-#line 3878 "awkgram.c" /* yacc.c:1645  */
+#line 3864 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 152:
-#line 1771 "awkgram.y" /* yacc.c:1645  */
+#line 1763 "awkgram.y" /* yacc.c:1645  */
     {
                (yyvsp[0])->opcode = Op_postdecrement;
                (yyval) = mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
          }
-#line 3887 "awkgram.c" /* yacc.c:1645  */
+#line 3873 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 153:
-#line 1776 "awkgram.y" /* yacc.c:1645  */
+#line 1768 "awkgram.y" /* yacc.c:1645  */
     {
                if (do_lint_old) {
                    warning_ln((yyvsp[-1])->source_line,
@@ -3907,64 +3893,64 @@ regular_print:
                        (yyval) = list_append(list_merge(t, (yyvsp[0])), 
(yyvsp[-1]));
                }
          }
-#line 3911 "awkgram.c" /* yacc.c:1645  */
+#line 3897 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 154:
-#line 1801 "awkgram.y" /* yacc.c:1645  */
+#line 1793 "awkgram.y" /* yacc.c:1645  */
     {
                  (yyval) = mk_getline((yyvsp[-1]), (yyvsp[0]), (yyvsp[-3]), 
(yyvsp[-2])->redir_type);
                  bcfree((yyvsp[-2]));
                }
-#line 3920 "awkgram.c" /* yacc.c:1645  */
+#line 3906 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 155:
-#line 1807 "awkgram.y" /* yacc.c:1645  */
+#line 1799 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3926 "awkgram.c" /* yacc.c:1645  */
+#line 3912 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 156:
-#line 1809 "awkgram.y" /* yacc.c:1645  */
+#line 1801 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3932 "awkgram.c" /* yacc.c:1645  */
+#line 3918 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 157:
-#line 1811 "awkgram.y" /* yacc.c:1645  */
+#line 1803 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3938 "awkgram.c" /* yacc.c:1645  */
+#line 3924 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 158:
-#line 1813 "awkgram.y" /* yacc.c:1645  */
+#line 1805 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3944 "awkgram.c" /* yacc.c:1645  */
+#line 3930 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 159:
-#line 1815 "awkgram.y" /* yacc.c:1645  */
+#line 1807 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3950 "awkgram.c" /* yacc.c:1645  */
+#line 3936 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 160:
-#line 1817 "awkgram.y" /* yacc.c:1645  */
+#line 1809 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3956 "awkgram.c" /* yacc.c:1645  */
+#line 3942 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 161:
-#line 1822 "awkgram.y" /* yacc.c:1645  */
+#line 1814 "awkgram.y" /* yacc.c:1645  */
     {
                (yyval) = list_create((yyvsp[0]));
          }
-#line 3964 "awkgram.c" /* yacc.c:1645  */
+#line 3950 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 162:
-#line 1826 "awkgram.y" /* yacc.c:1645  */
+#line 1818 "awkgram.y" /* yacc.c:1645  */
     {
                if ((yyvsp[0])->opcode == Op_match_rec) {
                        (yyvsp[0])->opcode = Op_nomatch;
@@ -3996,11 +3982,11 @@ regular_print:
                        }
                }
           }
-#line 4000 "awkgram.c" /* yacc.c:1645  */
+#line 3986 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 163:
-#line 1858 "awkgram.y" /* yacc.c:1645  */
+#line 1850 "awkgram.y" /* yacc.c:1645  */
     {
                // Always include. Allows us to lint warn on
                // print "foo" > "bar" 1
@@ -4008,31 +3994,31 @@ regular_print:
                // print "foo" > ("bar" 1)
                (yyval) = list_append((yyvsp[-1]), bcalloc(Op_parens, 1, 
sourceline));
          }
-#line 4012 "awkgram.c" /* yacc.c:1645  */
+#line 3998 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 164:
-#line 1866 "awkgram.y" /* yacc.c:1645  */
+#line 1858 "awkgram.y" /* yacc.c:1645  */
     {
                (yyval) = snode((yyvsp[-1]), (yyvsp[-3]));
                if ((yyval) == NULL)
                        YYABORT;
          }
-#line 4022 "awkgram.c" /* yacc.c:1645  */
+#line 4008 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 165:
-#line 1872 "awkgram.y" /* yacc.c:1645  */
+#line 1864 "awkgram.y" /* yacc.c:1645  */
     {
                (yyval) = snode((yyvsp[-1]), (yyvsp[-3]));
                if ((yyval) == NULL)
                        YYABORT;
          }
-#line 4032 "awkgram.c" /* yacc.c:1645  */
+#line 4018 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 166:
-#line 1878 "awkgram.y" /* yacc.c:1645  */
+#line 1870 "awkgram.y" /* yacc.c:1645  */
     {
                static bool warned = false;
 
@@ -4045,45 +4031,45 @@ regular_print:
                if ((yyval) == NULL)
                        YYABORT;
          }
-#line 4049 "awkgram.c" /* yacc.c:1645  */
+#line 4035 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 169:
-#line 1893 "awkgram.y" /* yacc.c:1645  */
+#line 1885 "awkgram.y" /* yacc.c:1645  */
     {
                (yyvsp[-1])->opcode = Op_preincrement;
                (yyval) = mk_assignment((yyvsp[0]), NULL, (yyvsp[-1]));
          }
-#line 4058 "awkgram.c" /* yacc.c:1645  */
+#line 4044 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 170:
-#line 1898 "awkgram.y" /* yacc.c:1645  */
+#line 1890 "awkgram.y" /* yacc.c:1645  */
     {
                (yyvsp[-1])->opcode = Op_predecrement;
                (yyval) = mk_assignment((yyvsp[0]), NULL, (yyvsp[-1]));
          }
-#line 4067 "awkgram.c" /* yacc.c:1645  */
+#line 4053 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 171:
-#line 1903 "awkgram.y" /* yacc.c:1645  */
+#line 1895 "awkgram.y" /* yacc.c:1645  */
     {
                (yyval) = list_create((yyvsp[0]));
          }
-#line 4075 "awkgram.c" /* yacc.c:1645  */
+#line 4061 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 172:
-#line 1907 "awkgram.y" /* yacc.c:1645  */
+#line 1899 "awkgram.y" /* yacc.c:1645  */
     {
                (yyval) = list_create((yyvsp[0]));
          }
-#line 4083 "awkgram.c" /* yacc.c:1645  */
+#line 4069 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 173:
-#line 1911 "awkgram.y" /* yacc.c:1645  */
+#line 1903 "awkgram.y" /* yacc.c:1645  */
     {
                if ((yyvsp[0])->lasti->opcode == Op_push_i
                        && ((yyvsp[0])->lasti->memory->flags & STRING) == 0
@@ -4098,11 +4084,11 @@ regular_print:
                        (yyval) = list_append((yyvsp[0]), (yyvsp[-1]));
                }
          }
-#line 4102 "awkgram.c" /* yacc.c:1645  */
+#line 4088 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 174:
-#line 1926 "awkgram.y" /* yacc.c:1645  */
+#line 1918 "awkgram.y" /* yacc.c:1645  */
     {
                if ((yyvsp[0])->lasti->opcode == Op_push_i
                        && ((yyvsp[0])->lasti->memory->flags & STRING) == 0
@@ -4120,20 +4106,20 @@ regular_print:
                        (yyval) = list_append((yyvsp[0]), (yyvsp[-1]));
                }
          }
-#line 4124 "awkgram.c" /* yacc.c:1645  */
+#line 4110 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 175:
-#line 1947 "awkgram.y" /* yacc.c:1645  */
+#line 1939 "awkgram.y" /* yacc.c:1645  */
     {
                func_use((yyvsp[0])->lasti->func_name, FUNC_USE);
                (yyval) = (yyvsp[0]);
          }
-#line 4133 "awkgram.c" /* yacc.c:1645  */
+#line 4119 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 176:
-#line 1952 "awkgram.y" /* yacc.c:1645  */
+#line 1944 "awkgram.y" /* yacc.c:1645  */
     {
                /* indirect function call */
                INSTRUCTION *f, *t;
@@ -4167,11 +4153,11 @@ regular_print:
                (yyval) = list_prepend((yyvsp[0]), t);
                at_seen = false;
          }
-#line 4171 "awkgram.c" /* yacc.c:1645  */
+#line 4157 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 177:
-#line 1989 "awkgram.y" /* yacc.c:1645  */
+#line 1981 "awkgram.y" /* yacc.c:1645  */
     {
                NODE *n;
 
@@ -4196,49 +4182,49 @@ regular_print:
                        (yyval) = list_append(t, (yyvsp[-3]));
                }
          }
-#line 4200 "awkgram.c" /* yacc.c:1645  */
+#line 4186 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 178:
-#line 2017 "awkgram.y" /* yacc.c:1645  */
+#line 2009 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = NULL; }
-#line 4206 "awkgram.c" /* yacc.c:1645  */
+#line 4192 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 179:
-#line 2019 "awkgram.y" /* yacc.c:1645  */
+#line 2011 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 4212 "awkgram.c" /* yacc.c:1645  */
+#line 4198 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 180:
-#line 2024 "awkgram.y" /* yacc.c:1645  */
+#line 2016 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = NULL; }
-#line 4218 "awkgram.c" /* yacc.c:1645  */
+#line 4204 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 181:
-#line 2026 "awkgram.y" /* yacc.c:1645  */
+#line 2018 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[-1]); }
-#line 4224 "awkgram.c" /* yacc.c:1645  */
+#line 4210 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 182:
-#line 2031 "awkgram.y" /* yacc.c:1645  */
+#line 2023 "awkgram.y" /* yacc.c:1645  */
     {  (yyval) = (yyvsp[0]); }
-#line 4230 "awkgram.c" /* yacc.c:1645  */
+#line 4216 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 183:
-#line 2033 "awkgram.y" /* yacc.c:1645  */
+#line 2025 "awkgram.y" /* yacc.c:1645  */
     {
                (yyval) = list_merge((yyvsp[-1]), (yyvsp[0]));
          }
-#line 4238 "awkgram.c" /* yacc.c:1645  */
+#line 4224 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 184:
-#line 2040 "awkgram.y" /* yacc.c:1645  */
+#line 2032 "awkgram.y" /* yacc.c:1645  */
     {
                INSTRUCTION *ip = (yyvsp[0])->lasti;
                int count = ip->sub_count;      /* # of SUBSEP-seperated 
expressions */
@@ -4252,11 +4238,11 @@ regular_print:
                sub_counter++;  /* count # of dimensions */
                (yyval) = (yyvsp[0]);
          }
-#line 4256 "awkgram.c" /* yacc.c:1645  */
+#line 4242 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 185:
-#line 2057 "awkgram.y" /* yacc.c:1645  */
+#line 2049 "awkgram.y" /* yacc.c:1645  */
     {
                INSTRUCTION *t = (yyvsp[-1]);
                if ((yyvsp[-1]) == NULL) {
@@ -4270,31 +4256,31 @@ regular_print:
                        (yyvsp[0])->sub_count = count_expressions(&t, false);
                (yyval) = list_append(t, (yyvsp[0]));
          }
-#line 4274 "awkgram.c" /* yacc.c:1645  */
+#line 4260 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 186:
-#line 2074 "awkgram.y" /* yacc.c:1645  */
+#line 2066 "awkgram.y" /* yacc.c:1645  */
     {  (yyval) = (yyvsp[0]); }
-#line 4280 "awkgram.c" /* yacc.c:1645  */
+#line 4266 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 187:
-#line 2076 "awkgram.y" /* yacc.c:1645  */
+#line 2068 "awkgram.y" /* yacc.c:1645  */
     {
                (yyval) = list_merge((yyvsp[-1]), (yyvsp[0]));
          }
-#line 4288 "awkgram.c" /* yacc.c:1645  */
+#line 4274 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 188:
-#line 2083 "awkgram.y" /* yacc.c:1645  */
+#line 2075 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[-1]); }
-#line 4294 "awkgram.c" /* yacc.c:1645  */
+#line 4280 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 189:
-#line 2088 "awkgram.y" /* yacc.c:1645  */
+#line 2080 "awkgram.y" /* yacc.c:1645  */
     {
                char *var_name = (yyvsp[0])->lextok;
 
@@ -4302,22 +4288,22 @@ regular_print:
                (yyvsp[0])->memory = variable((yyvsp[0])->source_line, 
var_name, Node_var_new);
                (yyval) = list_create((yyvsp[0]));
          }
-#line 4306 "awkgram.c" /* yacc.c:1645  */
+#line 4292 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 190:
-#line 2096 "awkgram.y" /* yacc.c:1645  */
+#line 2088 "awkgram.y" /* yacc.c:1645  */
     {
                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 4317 "awkgram.c" /* yacc.c:1645  */
+#line 4303 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 191:
-#line 2106 "awkgram.y" /* yacc.c:1645  */
+#line 2098 "awkgram.y" /* yacc.c:1645  */
     {
                INSTRUCTION *ip = (yyvsp[0])->nexti;
                if (ip->opcode == Op_push
@@ -4329,85 +4315,85 @@ regular_print:
                } else
                        (yyval) = (yyvsp[0]);
          }
-#line 4333 "awkgram.c" /* yacc.c:1645  */
+#line 4319 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 192:
-#line 2118 "awkgram.y" /* yacc.c:1645  */
+#line 2110 "awkgram.y" /* yacc.c:1645  */
     {
                (yyval) = list_append((yyvsp[-1]), (yyvsp[-2]));
                if ((yyvsp[0]) != NULL)
                        mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
          }
-#line 4343 "awkgram.c" /* yacc.c:1645  */
+#line 4329 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 193:
-#line 2127 "awkgram.y" /* yacc.c:1645  */
+#line 2119 "awkgram.y" /* yacc.c:1645  */
     {
                (yyvsp[0])->opcode = Op_postincrement;
          }
-#line 4351 "awkgram.c" /* yacc.c:1645  */
+#line 4337 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 194:
-#line 2131 "awkgram.y" /* yacc.c:1645  */
+#line 2123 "awkgram.y" /* yacc.c:1645  */
     {
                (yyvsp[0])->opcode = Op_postdecrement;
          }
-#line 4359 "awkgram.c" /* yacc.c:1645  */
+#line 4345 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 195:
-#line 2135 "awkgram.y" /* yacc.c:1645  */
+#line 2127 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = NULL; }
-#line 4365 "awkgram.c" /* yacc.c:1645  */
+#line 4351 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 196:
-#line 2139 "awkgram.y" /* yacc.c:1645  */
+#line 2131 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); }
-#line 4371 "awkgram.c" /* yacc.c:1645  */
+#line 4357 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 197:
-#line 2143 "awkgram.y" /* yacc.c:1645  */
+#line 2135 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); yyerrok; }
-#line 4377 "awkgram.c" /* yacc.c:1645  */
+#line 4363 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 198:
-#line 2147 "awkgram.y" /* yacc.c:1645  */
+#line 2139 "awkgram.y" /* yacc.c:1645  */
     { yyerrok; }
-#line 4383 "awkgram.c" /* yacc.c:1645  */
+#line 4369 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 199:
-#line 2152 "awkgram.y" /* yacc.c:1645  */
+#line 2144 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = NULL; }
-#line 4389 "awkgram.c" /* yacc.c:1645  */
+#line 4375 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 201:
-#line 2157 "awkgram.y" /* yacc.c:1645  */
+#line 2149 "awkgram.y" /* yacc.c:1645  */
     { yyerrok; }
-#line 4395 "awkgram.c" /* yacc.c:1645  */
+#line 4381 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 202:
-#line 2161 "awkgram.y" /* yacc.c:1645  */
+#line 2153 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); yyerrok; }
-#line 4401 "awkgram.c" /* yacc.c:1645  */
+#line 4387 "awkgram.c" /* yacc.c:1645  */
     break;
 
   case 203:
-#line 2165 "awkgram.y" /* yacc.c:1645  */
+#line 2157 "awkgram.y" /* yacc.c:1645  */
     { (yyval) = (yyvsp[0]); yyerrok; }
-#line 4407 "awkgram.c" /* yacc.c:1645  */
+#line 4393 "awkgram.c" /* yacc.c:1645  */
     break;
 
 
-#line 4411 "awkgram.c" /* yacc.c:1645  */
+#line 4397 "awkgram.c" /* yacc.c:1645  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -4634,7 +4620,7 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 2167 "awkgram.y" /* yacc.c:1903  */
+#line 2159 "awkgram.y" /* yacc.c:1903  */
 
 
 struct token {
diff --git a/awkgram.y b/awkgram.y
index 3316bb5..4187630 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -169,9 +169,6 @@ static INSTRUCTION *ip_endfile;
 static INSTRUCTION *ip_beginfile;
 INSTRUCTION *main_beginfile;
 
-static bool func_first = true; // can nuke
-static bool first_rule = true;
-
 static inline INSTRUCTION *list_create(INSTRUCTION *x);
 static inline INSTRUCTION *list_append(INSTRUCTION *l, INSTRUCTION *x);
 static inline INSTRUCTION *list_prepend(INSTRUCTION *l, INSTRUCTION *x);
@@ -262,7 +259,6 @@ rule
                        interblock_comment = pending_comment;
                        pending_comment = NULL;
                }
-               first_rule = false;
          }
        | pattern statement_term
          {
@@ -356,41 +352,40 @@ pattern
                rule = Rule;
          }
 
-       | exp ',' opt_nls exp
+       | exp comma exp
          {
                INSTRUCTION *tp;
 
                add_lint($1, LINT_assign_in_cond);
-               add_lint($4, LINT_assign_in_cond);
+               add_lint($3, LINT_assign_in_cond);
 
                tp = instruction(Op_no_op);
                list_prepend($1, bcalloc(Op_line_range, !!do_pretty_print + 1, 
0));
                $1->nexti->triggered = false;
-               $1->nexti->target_jmp = $4->nexti;
+               $1->nexti->target_jmp = $3->nexti;
 
                list_append($1, instruction(Op_cond_pair));
                $1->lasti->line_range = $1->nexti;
                $1->lasti->target_jmp = tp;
 
-               list_append($4, instruction(Op_cond_pair));
-               $4->lasti->line_range = $1->nexti;
-               $4->lasti->target_jmp = tp;
+               list_append($3, instruction(Op_cond_pair));
+               $3->lasti->line_range = $1->nexti;
+               $3->lasti->target_jmp = tp;
                if (do_pretty_print) {
                        ($1->nexti + 1)->condpair_left = $1->lasti;
-                       ($1->nexti + 1)->condpair_right = $4->lasti;
+                       ($1->nexti + 1)->condpair_right = $3->lasti;
                }
                /* Put any comments in front of the range expression */
-               if ($3 != NULL)
-                       $$ = list_append(list_merge(list_prepend($1, $3), $4), 
tp);
+               if ($2 != NULL)
+                       $$ = list_append(list_merge(list_prepend($1, $2), $3), 
tp);
                else
-                       $$ = list_append(list_merge($1, $4), tp);
+                       $$ = list_append(list_merge($1, $3), tp);
                rule = Rule;
          }
        | LEX_BEGIN
          {
                static int begin_seen = 0;
 
-               func_first = false;
                if (do_lint_old && ++begin_seen == 2)
                        warning_ln($1->source_line,
                                _("old awk does not support multiple `BEGIN' or 
`END' rules"));
@@ -403,7 +398,6 @@ pattern
          {
                static int end_seen = 0;
 
-               func_first = false;
                if (do_lint_old && ++end_seen == 2)
                        warning_ln($1->source_line,
                                _("old awk does not support multiple `BEGIN' or 
`END' rules"));
@@ -414,14 +408,12 @@ pattern
          }
        | LEX_BEGINFILE
          {
-               func_first = false;
                $1->in_rule = rule = BEGINFILE;
                $1->source_file = source;
                $$ = $1;
          }
        | LEX_ENDFILE
          {
-               func_first = false;
                $1->in_rule = rule = ENDFILE;
                $1->source_file = source;
                $$ = $1;

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

Summary of changes:
 ChangeLog |    5 +
 awkgram.c | 1510 ++++++++++++++++++++++++++++++-------------------------------
 awkgram.y |   28 +-
 3 files changed, 763 insertions(+), 780 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

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