diff options
-rwxr-xr-x | ChangeLog | 7 | ||||
-rw-r--r-- | awkgram.c | 1915 | ||||
-rw-r--r-- | awkgram.y | 38 |
3 files changed, 976 insertions, 984 deletions
@@ -1,5 +1,12 @@ 2019-01-27 Arnold D. Robbins <arnold@skeeve.com> + * awkgram.y (qualify_name): Return duplicated strings. + (yylex): Qualify names before returning either NAME or FUNC_CALL. + (Grammar): Replace qualified_name non-token with NAME, remove + `qualified_name' production. + +2019-01-27 Arnold D. Robbins <arnold@skeeve.com> + * Makefile.am, NEWS, awkgram.y, cint_array.c, custom.h, debug.c, eval.c, ext.c, gawkapi.c, int_array.c, interpret.h, nonposix.h, profile.c, re.c, replace.c, str_array.c, symbol.c: Update @@ -621,16 +621,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1169 +#define YYLAST 1191 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 77 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 72 +#define YYNNTS 71 /* YYNRULES -- Number of rules. */ -#define YYNRULES 208 +#define YYNRULES 207 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 356 +#define YYNSTATES 355 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ @@ -685,24 +685,24 @@ static const yytype_uint16 yyrline[] = 0, 231, 231, 232, 237, 247, 251, 263, 271, 285, 296, 306, 316, 329, 339, 341, 346, 356, 358, 363, 365, 367, 373, 377, 382, 412, 424, 436, 442, 451, - 469, 483, 484, 495, 501, 509, 510, 514, 514, 548, - 547, 581, 596, 598, 603, 604, 624, 629, 630, 634, - 645, 650, 657, 765, 816, 866, 992, 1013, 1034, 1044, - 1054, 1064, 1075, 1088, 1106, 1105, 1119, 1137, 1137, 1235, - 1235, 1268, 1298, 1306, 1307, 1313, 1314, 1321, 1326, 1339, - 1354, 1356, 1364, 1371, 1373, 1381, 1390, 1392, 1401, 1402, - 1410, 1415, 1415, 1428, 1434, 1446, 1450, 1472, 1473, 1479, - 1480, 1489, 1490, 1495, 1500, 1517, 1519, 1521, 1528, 1529, - 1535, 1536, 1541, 1543, 1550, 1552, 1560, 1565, 1576, 1577, - 1582, 1584, 1591, 1593, 1601, 1606, 1616, 1617, 1622, 1629, - 1633, 1635, 1637, 1650, 1667, 1677, 1684, 1686, 1691, 1693, - 1695, 1703, 1705, 1710, 1712, 1717, 1719, 1721, 1778, 1780, - 1782, 1784, 1786, 1788, 1790, 1792, 1806, 1811, 1816, 1841, - 1847, 1849, 1851, 1853, 1855, 1857, 1862, 1866, 1898, 1906, - 1912, 1918, 1931, 1932, 1933, 1938, 1943, 1947, 1951, 1966, - 1987, 1992, 2029, 2066, 2067, 2073, 2074, 2079, 2081, 2088, - 2105, 2122, 2124, 2131, 2136, 2142, 2153, 2165, 2174, 2178, - 2183, 2187, 2191, 2195, 2200, 2201, 2205, 2209, 2213 + 469, 470, 481, 487, 495, 496, 500, 500, 534, 533, + 567, 582, 584, 589, 590, 610, 615, 616, 620, 631, + 636, 643, 751, 802, 852, 978, 999, 1020, 1030, 1040, + 1050, 1061, 1074, 1092, 1091, 1105, 1123, 1123, 1221, 1221, + 1254, 1284, 1292, 1293, 1299, 1300, 1307, 1312, 1325, 1340, + 1342, 1350, 1357, 1359, 1367, 1376, 1378, 1387, 1388, 1396, + 1401, 1401, 1414, 1420, 1432, 1436, 1458, 1459, 1465, 1466, + 1475, 1476, 1481, 1486, 1503, 1505, 1507, 1514, 1515, 1521, + 1522, 1527, 1529, 1536, 1538, 1546, 1551, 1562, 1563, 1568, + 1570, 1577, 1579, 1587, 1592, 1602, 1603, 1608, 1615, 1619, + 1621, 1623, 1636, 1653, 1663, 1670, 1672, 1677, 1679, 1681, + 1689, 1691, 1696, 1698, 1703, 1705, 1707, 1764, 1766, 1768, + 1770, 1772, 1774, 1776, 1778, 1792, 1797, 1802, 1827, 1833, + 1835, 1837, 1839, 1841, 1843, 1848, 1852, 1884, 1892, 1898, + 1904, 1917, 1918, 1919, 1924, 1929, 1933, 1937, 1952, 1973, + 1978, 2015, 2052, 2053, 2059, 2060, 2065, 2067, 2074, 2091, + 2108, 2110, 2117, 2122, 2128, 2139, 2151, 2160, 2164, 2169, + 2173, 2177, 2181, 2186, 2187, 2191, 2195, 2199 }; #endif @@ -724,8 +724,8 @@ static const char *const yytname[] = "SLASH_BEFORE_EQUAL", "'?'", "':'", "','", "'<'", "'>'", "'+'", "'-'", "'*'", "'/'", "'%'", "'!'", "UNARY", "'^'", "'$'", "'('", "')'", "'@'", "'['", "']'", "'{'", "'}'", "';'", "$accept", "program", "rule", - "source", "library", "namespace", "pattern", "action", "qualified_name", - "func_name", "lex_builtin", "function_prologue", "$@1", "regexp", "$@2", + "source", "library", "namespace", "pattern", "action", "func_name", + "lex_builtin", "function_prologue", "$@1", "regexp", "$@2", "typed_regexp", "a_slash", "statements", "statement_term", "statement", "non_compound_stmt", "$@3", "simple_stmt", "$@4", "$@5", "opt_simple_stmt", "case_statements", "case_statement", "case_value", @@ -758,56 +758,56 @@ static const yytype_uint16 yytoknum[] = }; # endif -#define YYPACT_NINF -295 +#define YYPACT_NINF -283 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-295))) + (!!((Yystate) == (-283))) -#define YYTABLE_NINF -120 +#define YYTABLE_NINF -119 #define yytable_value_is_error(Yytable_value) \ - (!!((Yytable_value) == (-120))) + (!!((Yytable_value) == (-119))) /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int16 yypact[] = { - -295, 359, -295, -295, -38, -295, -295, -295, -295, -295, - 172, -295, -295, 17, 17, 17, -31, -27, -295, -295, - -295, 1016, 1016, -295, 1016, 1061, 861, 218, -295, -29, - -32, -22, -295, -295, 84, 1076, 983, 354, 382, -295, - -295, -295, -295, 325, 785, -295, -295, -295, 18, -295, - 91, -295, 113, -295, -295, -295, 785, 785, 170, 115, - 87, 115, 115, 1016, 114, -295, -295, 13, 273, 31, - 70, 121, -295, 127, -295, -295, -295, 84, -295, 127, - 861, -295, 22, -295, -295, 182, -295, -295, 971, 173, - 1016, 1016, 1016, 127, -295, -295, -295, 1016, 1016, 157, - 354, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, - 1016, 1016, 1016, -295, 189, -295, -295, 195, 1016, -295, - -295, -295, 134, 66, -295, 1110, -295, -295, 1016, -295, - 134, 134, 273, -295, -295, -295, 1016, -295, 175, 889, - -295, -295, 45, -17, -295, 80, -17, -295, 81, -17, - 84, -295, 585, -295, 15, 1110, -295, -295, -295, -295, - 19, -295, 276, 190, 1099, -295, 240, 1110, 17, 233, - 233, 115, 115, 115, 115, 233, 233, 115, 115, 115, - 115, -295, -295, 1110, -295, 971, 813, 49, 354, -295, - -295, 1110, 173, -295, 1110, -295, -295, -295, -295, -295, - -295, -295, 142, -295, 11, 158, 164, 127, 165, -17, - -17, -295, -295, -17, 1016, -17, 127, -295, -295, -17, - -295, -295, 1110, -295, 147, 127, -295, 1016, -295, -295, - -295, -295, -295, -295, 134, 129, -295, 1016, 1016, 173, - -295, 1016, 1016, 703, 938, -295, -295, -295, -17, 1110, - -295, -295, -295, 633, 585, 127, -295, -295, 1110, 127, - -295, 124, 273, -17, 174, -32, 273, 273, 215, -23, - -295, 147, -295, 861, 235, -295, 16, -295, -295, -295, - -295, -295, 127, -295, -295, -295, 57, -295, -295, 127, - 127, 188, 173, 127, 13, -295, -295, 703, -295, -295, - -22, 703, 1016, 134, 737, 175, 1016, 230, -295, -295, - 273, 127, 251, 127, 983, 127, 153, 127, 703, 127, - 938, 703, -295, 154, 206, -295, 193, -295, -295, 938, - 134, -295, -295, -295, 256, 257, -295, -295, 206, -295, - 127, -295, 134, 127, -295, -295, 127, -295, 127, 703, - -295, 433, 703, -295, 509, -295 + -283, 316, -283, -283, -45, -28, -283, -283, -283, -283, + 160, -283, -283, 23, 23, 23, -39, -18, -283, -283, + -283, 1047, 1047, -283, 1047, 1075, 818, 257, -283, 99, + -20, -283, -283, 11, 1017, 974, 378, 415, -283, -283, + -283, -283, 329, 742, 818, -283, 0, -283, -283, -283, + -283, -283, 25, 9, -283, 22, -283, -283, -283, 742, + 742, 79, 46, 18, 46, 46, 1047, 114, -283, -283, + 13, 286, 44, 47, 60, -283, 94, -283, -283, -283, + 11, -283, 94, -283, 151, -283, -283, 1002, 162, 1047, + 1047, 1047, 94, -283, -283, -283, 1047, 1047, 132, 378, + 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, + 1047, 1047, -283, 170, -283, -283, 168, 1047, -283, -283, + -283, 116, 14, -283, 1132, 76, 1132, -283, -283, -283, + -283, 1047, -283, 116, 116, 286, -283, -283, -283, 1047, + -283, 144, 846, -283, -283, 34, 91, -283, 39, 91, + -283, 59, 91, 11, -283, 542, -283, -283, -283, 145, + -283, 135, 580, 1113, -283, 189, 1132, 23, 230, 230, + 46, 46, 46, 46, 230, 230, 46, 46, 46, 46, + -283, -283, 1132, -283, 1002, 770, -283, 27, 378, -283, + -283, 1132, 162, -283, 1132, -283, -283, -283, -283, -283, + -283, -283, 119, -283, 12, 123, 126, 94, 128, 91, + 91, -283, -283, 91, 1047, 91, 94, -283, -283, 91, + -283, -283, 1132, -283, 122, 94, 1047, -283, -283, -283, + -283, -283, -283, 116, 73, -283, 1047, 1047, -283, 198, + 1047, 1047, 660, 895, -283, -283, -283, 91, 1132, -283, + -283, -283, 590, 542, 94, -283, -283, 1132, 94, -283, + 28, 286, 91, -28, 141, 286, 286, 190, -23, -283, + 122, -283, 818, 205, -283, 325, -283, -283, -283, -283, + -283, 94, -283, -283, 115, -283, -283, -283, 94, 94, + 153, 162, 94, 13, -283, -283, 660, -283, -283, -20, + 660, 1047, 116, 694, 144, 1047, 209, -283, -283, 286, + 94, 1090, 94, 974, 94, 152, 94, 660, 94, 929, + 660, -283, 342, 176, -283, 158, -283, -283, 929, 116, + -283, -283, -283, 236, 243, -283, -283, 176, -283, 94, + -283, 116, 94, -283, -283, 94, -283, 94, 660, -283, + 390, 660, -283, 466, -283 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -815,68 +815,68 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 0, 1, 6, 0, 30, 176, 177, 25, 26, - 0, 27, 28, 183, 0, 0, 0, 171, 5, 95, - 43, 0, 0, 42, 0, 0, 0, 0, 3, 0, - 194, 0, 166, 39, 4, 23, 137, 145, 146, 148, - 172, 180, 196, 173, 0, 32, 35, 36, 0, 31, - 0, 33, 99, 184, 174, 175, 0, 0, 0, 179, - 173, 178, 167, 0, 200, 173, 114, 0, 112, 0, - 0, 0, 181, 97, 206, 7, 8, 47, 44, 97, - 0, 191, 0, 195, 9, 0, 96, 141, 0, 0, - 0, 0, 0, 97, 142, 144, 143, 0, 0, 0, - 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 139, 138, 156, 157, 0, 0, 122, - 41, 127, 0, 0, 120, 126, 34, 37, 0, 155, - 0, 0, 0, 198, 199, 197, 115, 203, 0, 0, - 168, 15, 0, 0, 18, 0, 0, 21, 0, 0, - 98, 201, 0, 48, 0, 112, 193, 192, 40, 132, - 133, 134, 130, 131, 0, 208, 135, 24, 183, 153, - 154, 150, 151, 152, 149, 164, 165, 161, 162, 163, - 160, 129, 140, 128, 182, 123, 0, 0, 100, 169, - 170, 116, 0, 117, 113, 14, 10, 17, 11, 20, - 12, 46, 0, 64, 0, 0, 0, 97, 0, 0, - 0, 86, 87, 0, 108, 0, 97, 45, 58, 0, - 67, 51, 72, 44, 204, 97, 190, 0, 159, 124, - 125, 121, 105, 103, 0, 0, 158, 0, 108, 0, - 69, 0, 0, 0, 73, 59, 60, 61, 0, 109, - 62, 202, 66, 0, 0, 97, 205, 49, 136, 97, - 106, 0, 0, 0, 0, 185, 0, 0, 0, 194, - 74, 0, 63, 0, 90, 88, 0, 50, 29, 38, - 107, 104, 97, 65, 71, 70, 0, 187, 189, 97, - 97, 0, 0, 97, 0, 91, 68, 0, 186, 188, - 0, 0, 0, 0, 0, 89, 0, 93, 75, 53, - 0, 97, 0, 97, 92, 97, 0, 97, 0, 97, - 73, 0, 77, 0, 0, 76, 0, 54, 55, 73, - 0, 94, 80, 83, 0, 0, 84, 85, 0, 207, - 97, 52, 0, 97, 82, 81, 97, 44, 97, 0, - 44, 0, 0, 57, 0, 56 + 2, 0, 1, 6, 0, 193, 175, 176, 25, 26, + 0, 27, 28, 182, 0, 0, 0, 170, 5, 94, + 42, 0, 0, 41, 0, 0, 0, 0, 3, 0, + 0, 165, 38, 4, 23, 136, 144, 145, 147, 171, + 179, 195, 172, 0, 0, 190, 0, 194, 31, 30, + 34, 35, 0, 0, 32, 98, 183, 173, 174, 0, + 0, 0, 178, 172, 177, 166, 0, 199, 172, 113, + 0, 111, 0, 0, 0, 180, 96, 205, 7, 8, + 46, 43, 96, 9, 0, 95, 140, 0, 0, 0, + 0, 0, 96, 141, 143, 142, 0, 0, 0, 146, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 138, 137, 155, 156, 0, 0, 121, 40, + 126, 0, 0, 119, 125, 0, 111, 192, 191, 33, + 36, 0, 154, 0, 0, 0, 197, 198, 196, 114, + 202, 0, 0, 167, 15, 0, 0, 18, 0, 0, + 21, 0, 0, 97, 200, 0, 47, 39, 131, 132, + 133, 129, 130, 0, 207, 134, 24, 182, 152, 153, + 149, 150, 151, 148, 163, 164, 160, 161, 162, 159, + 128, 139, 127, 181, 122, 0, 189, 0, 99, 168, + 169, 115, 0, 116, 112, 14, 10, 17, 11, 20, + 12, 45, 0, 63, 0, 0, 0, 96, 0, 0, + 0, 85, 86, 0, 107, 0, 96, 44, 57, 0, + 66, 50, 71, 43, 203, 96, 0, 158, 123, 124, + 120, 104, 102, 0, 0, 157, 0, 107, 68, 0, + 0, 0, 0, 72, 58, 59, 60, 0, 108, 61, + 201, 65, 0, 0, 96, 204, 48, 135, 96, 105, + 0, 0, 0, 184, 0, 0, 0, 0, 193, 73, + 0, 62, 0, 89, 87, 0, 49, 29, 37, 106, + 103, 96, 64, 69, 0, 186, 188, 70, 96, 96, + 0, 0, 96, 0, 90, 67, 0, 185, 187, 0, + 0, 0, 0, 0, 88, 0, 92, 74, 52, 0, + 96, 0, 96, 91, 96, 0, 96, 0, 96, 72, + 0, 76, 0, 0, 75, 0, 53, 54, 72, 0, + 93, 79, 82, 0, 0, 83, 84, 0, 206, 96, + 51, 0, 96, 81, 80, 96, 43, 96, 0, 43, + 0, 0, 56, 0, 55 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -295, -295, -295, -295, -295, -295, -295, 242, -9, -295, - -295, -295, -295, -52, -295, -84, -295, -195, -95, -127, - -295, -295, -236, -295, -295, -294, -295, -295, -295, -295, - -295, -295, -295, -295, 110, -35, -295, -295, -295, 37, - -295, -70, 108, -295, 7, -1, -295, -295, -295, -21, - 39, -295, 262, -295, 6, 150, -295, -295, 3, -76, - -295, -295, -80, -2, -295, -26, -213, -65, -295, 36, - -36, -28 + -283, -283, -283, -283, -283, -283, -283, 226, -283, -283, + -283, -283, -63, -283, -77, -283, -215, -73, -30, -283, + -283, -234, -283, -283, -282, -283, -283, -283, -283, -283, + -283, -283, -283, 5, -35, -283, -283, -283, 24, -283, + -43, 101, -283, -15, -1, -283, -283, -283, -40, 17, + -283, 237, -283, -6, 96, -283, -283, -16, -42, -283, + -283, -81, -2, -283, -27, -186, -65, -283, -62, -68, + -8 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 28, 143, 146, 149, 29, 75, 30, 50, - 51, 31, 187, 32, 85, 121, 33, 152, 76, 217, - 218, 238, 219, 253, 265, 271, 316, 325, 338, 220, - 274, 296, 306, 221, 150, 151, 129, 234, 235, 248, - 275, 67, 122, 123, 124, 222, 118, 96, 97, 36, - 37, 38, 39, 40, 41, 52, 285, 286, 287, 81, - 82, 83, 42, 43, 135, 223, 224, 140, 255, 79, - 340, 139 + -1, 1, 28, 146, 149, 152, 29, 78, 53, 54, + 30, 187, 31, 84, 120, 32, 155, 79, 217, 218, + 237, 219, 252, 263, 270, 315, 324, 337, 220, 273, + 295, 305, 221, 153, 154, 132, 233, 234, 247, 274, + 70, 121, 122, 123, 222, 117, 95, 96, 35, 36, + 37, 38, 39, 40, 55, 283, 284, 285, 45, 46, + 47, 41, 42, 138, 223, 224, 143, 254, 82, 339, + 142 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -884,244 +884,250 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 35, 49, 138, 78, 159, 78, 157, 98, 270, 161, - 154, 53, 54, 55, 136, 5, 136, 136, 292, 60, - 60, 5, 60, 65, 19, 68, 330, -111, 254, 87, - 181, 44, 141, 72, 60, 342, 19, 142, 56, 156, - 80, 277, 57, 125, 153, 73, 195, 74, 196, 80, - 232, 198, 73, 233, 200, 125, 125, 184, 165, 74, - 59, 61, 132, 62, 72, 189, 190, 185, 126, -111, - 93, 144, 93, 93, 298, 100, 145, 94, 95, 155, - 239, 197, 199, 137, 270, 25, -111, 160, 226, 162, - 163, 164, -111, 270, 80, 186, 166, 167, -13, 60, - 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, - 60, 34, 236, 341, 245, 246, 268, 183, 247, -101, - 250, -13, 147, 93, 252, 280, 60, 148, 281, 80, - 260, 115, 116, -16, -19, 191, -119, 86, 194, 77, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 351, 272, 322, 354, -16, -19, 133, 134, - 127, 332, 333, 120, 130, 131, 53, 188, 283, 259, - 307, 128, 243, 4, 309, 45, 5, 5, 323, 324, - 19, 251, 106, 276, 125, 125, 93, 158, 225, 288, - 257, 328, 229, 231, 331, 240, 168, 282, 120, -102, - 87, 289, 290, 294, 137, 88, 19, 261, 20, 182, - 288, 237, 303, 249, 334, 335, 192, 23, 46, 47, - 278, 4, 353, 74, 279, 355, 258, 241, -97, 305, - 264, 89, 90, 242, 244, 269, 262, 249, 311, 337, - 266, 267, 291, 48, 284, 317, 295, 297, 94, 95, - -120, 315, 155, 77, 300, 301, 77, 302, 304, 77, - 256, 87, 339, 344, 345, 343, 88, 69, 216, 70, - 71, 336, 68, 84, 308, 263, 318, 348, 320, 225, - 321, 326, 327, 87, 329, 314, 87, 64, 88, 299, - 225, 88, 89, 90, 91, 103, 104, 105, -120, -120, - 106, 310, 346, 312, 60, 347, 92, 293, 349, 94, - 95, 350, 60, 352, 89, 90, 91, 89, 228, 77, - 77, 0, 0, 77, 0, 77, 0, 74, 92, 77, - 0, 94, 95, 225, 94, 95, 0, 225, 113, 114, - 313, 0, 0, 137, 0, 0, 0, 0, 319, 0, - 0, 0, 0, 100, 225, 0, 0, 225, 77, 2, - 3, 0, 4, 5, 0, 0, 6, 7, 0, 115, - 116, 0, 0, 77, 0, 0, 0, 8, 9, 117, - 0, 0, 0, 0, 0, 225, 0, 225, 225, 0, - 225, 0, 0, 0, 0, 10, 11, 12, 13, 0, - 0, 0, 0, 14, 15, 16, 17, 18, 0, 0, - 0, 0, 19, 20, 101, 102, 103, 104, 105, 21, - 22, 106, 23, 0, 24, 0, 0, 25, 26, 0, - 27, 0, 0, -22, 201, -22, 4, 5, 0, 0, - 6, 7, 107, 108, 109, 110, 111, 0, 0, 112, - 0, 0, 0, 202, 0, 203, 204, 205, -79, -79, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 0, - 0, 0, 13, 215, 0, 0, 0, 14, 15, 16, - 17, 0, 0, 0, 0, 0, -79, 20, 0, 0, - 0, 0, 0, 21, 22, 0, 23, 0, 24, 0, - 0, 25, 26, 0, 58, 0, 0, 73, -79, 74, - 201, 0, 4, 5, 0, 0, 6, 7, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, - 0, 203, 204, 205, -78, -78, 206, 207, 208, 209, - 210, 211, 212, 213, 214, 0, 0, 0, 13, 215, - 0, 0, 0, 14, 15, 16, 17, 0, 0, 0, - 0, 0, -78, 20, 0, 0, 0, 0, 0, 21, - 22, 0, 23, 0, 24, 0, 0, 25, 26, 0, - 58, 0, 0, 73, -78, 74, 201, 0, 4, 5, - 0, 0, 6, 7, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 202, 0, 203, 204, 205, - 0, 0, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 0, 0, 0, 13, 215, 0, 0, 0, 14, - 15, 16, 17, 0, 66, 0, 4, 5, 0, 20, - 6, 7, 0, 0, -110, 21, 22, 0, 23, 0, - 24, 0, 0, 25, 26, 0, 58, 0, 0, 73, - 216, 74, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 13, 0, 0, 0, 0, 14, 15, 16, - 17, 0, 0, 0, 0, 0, -110, 20, 0, 0, - 0, 0, 0, 21, 22, 0, 23, 0, 24, 0, - 0, 25, 273, -110, 58, 0, 4, 5, 0, -110, - 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 202, 0, 203, 204, 205, 0, 0, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 0, - 4, 5, 13, 215, 6, 7, 0, 14, 15, 16, - 17, 0, 0, 0, 0, 0, 0, 20, 0, 0, - 0, 0, 0, 21, 22, 0, 23, 0, 24, 0, - 0, 25, 26, 0, 58, 0, 13, 73, 0, 74, - 0, 14, 15, 16, 17, 0, 119, 0, 4, 5, - 0, 20, 6, 7, 120, 0, 0, 21, 22, 0, - 23, 0, 24, 0, 0, 25, 26, 0, 58, 0, - 0, 0, 0, 74, 230, 0, 4, 5, 0, 0, - 6, 7, 120, 0, 13, 0, 0, 0, 0, 14, + 34, 125, 81, 81, 128, 141, 33, 160, 253, 269, + 158, 56, 57, 58, 139, 184, 238, 127, 291, 63, + 63, 75, 63, 68, 43, 71, 97, 5, 231, 279, + 59, 232, 280, 63, 80, 195, 180, 329, 62, 64, + 197, 65, 124, 126, 44, 144, 341, 156, 147, 44, + 145, 60, 99, 148, 76, 75, 183, 164, 124, 124, + 199, 150, 114, 115, 85, 135, 151, 276, 189, 190, + 92, 92, 44, 196, 259, 129, 198, 139, 130, 200, + 131, 239, 4, 140, -118, 269, 159, -13, 161, 162, + 163, 25, -16, 225, 269, 165, 166, -100, 63, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + -13, 235, -19, 105, 185, -16, 182, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 63, + 92, 350, 297, 92, 353, -19, 244, 245, 191, 340, + 246, 194, 249, -101, 19, 86, 251, 19, 188, 186, + 87, 80, 19, 321, 80, 86, 157, 80, 136, 137, + 133, 134, 255, 48, 49, 56, 5, 77, 258, 228, + 230, 167, 242, 76, 271, 77, 88, 322, 323, 119, + 225, 250, 181, 124, 124, 192, 140, 44, 236, 282, + 256, 225, 240, 93, 94, 241, 281, 243, 77, -119, + 288, 289, 264, 93, 94, 19, 50, 51, 292, 275, + 302, 287, 267, 248, 80, 80, 294, 290, 80, 277, + 80, 286, 301, 278, 80, 257, 260, -96, 304, 293, + 314, 52, 338, 216, 225, 261, 248, 310, 225, 265, + 266, 312, 286, 343, 316, 336, 296, -119, -119, 318, + 344, 126, 80, 299, 300, 225, 83, 303, 225, 335, + 4, 262, 67, 227, 342, 313, 306, 80, 298, 345, + 308, 71, 307, 0, 0, 317, 347, 319, 0, 320, + 325, 326, 0, 328, 0, 0, 225, 327, 225, 225, + 330, 225, 102, 103, 104, 0, 86, 105, 0, 0, + 309, 87, 311, 63, 346, 0, 72, 348, 73, 74, + 349, 63, 351, 0, 0, 0, 2, 3, 352, 4, + 5, 354, 0, 6, 7, 0, 139, 88, 89, 90, + 99, 0, 0, 0, 8, 9, -110, 0, 0, 0, + 0, 91, 112, 113, 93, 94, 0, 0, 0, 331, + 332, 119, 10, 11, 12, 13, 140, 0, 0, 0, + 14, 15, 16, 17, 18, 0, 0, 0, 0, 19, + 20, 0, 0, 114, 115, 0, 21, 22, -110, 23, + 0, 24, 92, 116, 25, 26, 0, 27, 0, 0, + -22, 201, -22, 4, 5, -110, 20, 6, 7, 0, + 0, -110, 333, 334, 0, 23, 0, 0, 0, 0, + 202, 0, 203, 204, 205, -78, -78, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 0, 0, 0, 13, + 215, 0, 0, 0, 14, 15, 16, 17, 100, 101, + 102, 103, 104, -78, 20, 105, 0, 0, 0, 0, + 21, 22, 0, 23, 0, 24, 0, 0, 25, 26, + 0, 61, 0, 0, 76, -78, 77, 201, 0, 4, + 5, 0, 0, 6, 7, 106, 107, 108, 109, 110, + 0, 0, 111, 0, 0, 0, 202, 0, 203, 204, + 205, -77, -77, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 0, 0, 0, 13, 215, 0, 0, 0, + 14, 15, 16, 17, 0, 0, 0, 0, 0, -77, + 20, 0, 0, 0, 0, 0, 21, 22, 0, 23, + 0, 24, 0, 0, 25, 26, 0, 61, 0, 0, + 76, -77, 77, 201, 0, 4, 5, 0, 0, 6, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 202, 0, 203, 204, 205, 0, 0, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 0, 0, + 0, 13, 215, 0, 0, 0, 14, 15, 16, 17, + 86, 69, 0, 4, 5, 87, 20, 6, 7, 0, + 0, -109, 21, 22, 0, 23, 0, 24, 0, 0, + 25, 26, 0, 61, 0, 0, 76, 216, 77, 0, + 0, 88, 89, 0, 0, 0, 0, 0, 0, 13, + 0, 0, 0, 0, 14, 15, 16, 17, 93, 94, + 0, 0, 0, -109, 20, 0, 0, 0, 0, 0, + 21, 22, 0, 23, 0, 24, 0, 0, 25, 272, + -109, 61, 0, 4, 5, 0, -109, 6, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 202, 0, 203, 204, 205, 0, 0, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 0, 4, 5, 13, + 215, 6, 7, 0, 14, 15, 16, 17, 0, 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, 76, 0, 77, 0, 14, 15, + 16, 17, 0, 118, 0, 4, 5, 0, 20, 6, + 7, 119, 0, 0, 21, 22, 0, 23, 0, 24, + 0, 0, 25, 26, 0, 61, 0, 0, 0, 0, + 77, 229, 0, 4, 5, 0, 0, 6, 7, 119, + 0, 13, 0, 0, 0, 0, 14, 15, 16, 17, + 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, + 0, 0, 21, 22, 0, 23, 0, 24, 0, 13, + 25, 26, -117, 61, 14, 15, 16, 17, 0, 69, + 0, 4, 5, 0, 20, 6, 7, 0, 0, 0, + 21, 22, 0, 23, 0, 24, 0, 0, 25, 26, + 0, 61, 0, 0, 0, 0, 0, 193, 0, 4, + 5, 0, 0, 6, 7, 0, 0, 13, 0, 0, + 0, 0, 14, 15, 16, 17, 0, 0, 0, 0, + 0, 0, 20, 0, 0, 0, 0, 0, 21, 22, + 0, 23, 0, 24, 0, 13, 25, 26, 0, 61, + 14, 15, 16, 17, 0, 0, 0, 0, 4, 268, + 20, 0, 6, 7, 0, 0, 21, 22, 0, 23, + 0, 24, 0, 0, 25, 26, 0, 61, 204, 0, + 0, 0, 0, 0, 0, 0, 0, 211, 212, 0, + 0, 0, 4, 5, 13, 0, 6, 7, 0, 14, 15, 16, 17, 0, 0, 0, 0, 0, 0, 20, - 0, 0, 0, 0, 0, 21, 22, 0, 23, 0, - 24, 0, 13, 25, 26, -118, 58, 14, 15, 16, - 17, 0, 66, 0, 4, 5, 0, 20, 6, 7, - 0, 0, 0, 21, 22, 0, 23, 0, 24, 0, - 0, 25, 26, 0, 58, 0, 0, 0, 0, 0, - 193, 0, 4, 5, 0, 0, 6, 7, 0, 0, - 13, 0, 0, 0, 0, 14, 15, 16, 17, 0, - 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, - 0, 21, 22, 0, 23, 0, 24, 0, 13, 25, - 26, 0, 58, 14, 15, 16, 17, 0, 0, 0, - 0, 4, 5, 20, 0, 6, 7, 0, 0, 21, + 0, 0, 204, 0, 0, 21, 22, 0, 23, 0, + 24, 211, 212, 25, 26, 0, 61, 0, 13, 0, + 0, 0, 0, 14, 15, 16, 17, 4, 5, 0, + 0, 6, 7, 20, 0, 0, 98, 0, 0, 21, 22, 0, 23, 0, 24, 0, 0, 25, 26, 0, - 58, 204, 0, 0, 0, 0, 0, 0, 0, 0, - 211, 212, 0, 0, 4, 5, 0, 13, 6, 7, - 120, 0, 14, 15, 16, 17, 4, 5, 0, 0, - 6, 7, 20, 0, 0, 99, 0, 0, 21, 22, - 0, 23, 0, 24, 0, 0, 25, 26, 0, 58, - 13, 0, 0, 0, 0, 14, 15, 16, 17, 4, - 5, 0, 13, 6, 7, 20, 0, 14, 15, 16, - 17, 21, 22, 0, 23, 0, 24, 20, 0, 25, - 26, 0, 58, 21, 22, 0, 23, 0, 24, 0, - 0, 25, 26, 0, 58, 13, 0, 0, 0, 0, - 14, 15, 16, 17, 4, 5, 0, 0, 6, 7, - 20, 0, 0, 0, 0, 0, 21, 22, 0, 23, - 0, 24, 0, 0, 25, 26, 87, 58, 0, 0, - 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 14, 15, 16, 17, 87, - 0, 0, 0, 0, 88, 20, 0, 89, 90, 91, - 87, 21, 22, 0, 23, 88, 24, 0, 0, 25, - 63, 92, 58, 93, 94, 95, 0, 0, 0, 0, - 89, 90, 91, 0, 0, 0, 0, 0, 0, 0, - 0, 89, 90, 91, 92, 227, 0, 94, 95, 0, - 0, 0, 0, 0, 0, 92, 0, 0, 94, 95 + 61, 0, 0, 0, 0, 4, 5, 0, 0, 6, + 7, 119, 0, 13, 0, 0, 0, 0, 14, 15, + 16, 17, 0, 0, 0, 0, 0, 86, 20, 0, + 0, 0, 87, 0, 21, 22, 0, 23, 0, 24, + 0, 13, 25, 26, 0, 61, 14, 15, 16, 17, + 4, 5, 0, 0, 6, 7, 20, 0, 88, 89, + 90, 0, 21, 22, 0, 23, 0, 24, 0, 0, + 25, 26, 91, 61, 92, 93, 94, 0, 4, 5, + 0, 0, 6, 7, 0, 0, 13, 0, 0, 0, + 0, 14, 15, 16, 17, 0, 0, 0, 0, 0, + 86, 20, 0, 0, 0, 87, 0, 21, 22, 0, + 23, 0, 24, 0, 0, 25, 26, 0, 61, 14, + 15, 16, 17, 86, 0, 0, 0, 0, 87, 20, + 0, 88, 89, 90, 0, 21, 22, 0, 23, 0, + 24, 0, 86, 25, 66, 91, 61, 87, 93, 94, + 0, 0, 0, 0, 88, 89, 90, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 77, 0, 91, 226, + 0, 93, 94, 88, 89, 90, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, + 93, 94 }; static const yytype_int16 yycheck[] = { - 1, 10, 67, 29, 88, 31, 82, 35, 244, 89, - 80, 13, 14, 15, 1, 4, 1, 1, 41, 21, - 22, 4, 24, 25, 53, 26, 320, 11, 223, 10, - 114, 69, 1, 27, 36, 329, 53, 6, 69, 17, - 72, 254, 69, 44, 79, 74, 1, 76, 143, 72, - 1, 146, 74, 4, 149, 56, 57, 122, 93, 76, - 21, 22, 63, 24, 58, 130, 131, 1, 50, 53, - 57, 1, 57, 57, 17, 36, 6, 58, 59, 80, - 69, 1, 1, 70, 320, 68, 70, 88, 73, 90, - 91, 92, 76, 329, 72, 123, 97, 98, 53, 101, + 1, 44, 29, 30, 46, 70, 1, 88, 223, 243, + 87, 13, 14, 15, 1, 1, 4, 17, 41, 21, + 22, 27, 24, 25, 69, 26, 34, 4, 1, 1, + 69, 4, 4, 35, 29, 1, 113, 319, 21, 22, + 1, 24, 43, 44, 72, 1, 328, 82, 1, 72, + 6, 69, 35, 6, 74, 61, 121, 92, 59, 60, + 1, 1, 44, 45, 53, 66, 6, 253, 133, 134, + 57, 57, 72, 146, 1, 50, 149, 1, 69, 152, + 58, 69, 3, 70, 70, 319, 87, 53, 89, 90, + 91, 68, 53, 155, 328, 96, 97, 70, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 1, 192, 326, 209, 210, 243, 118, 213, 70, - 215, 76, 1, 57, 219, 1, 128, 6, 4, 72, - 1, 44, 45, 53, 53, 136, 70, 53, 139, 29, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 347, 248, 1, 350, 76, 76, 44, 45, - 69, 7, 8, 9, 56, 57, 168, 128, 263, 234, - 297, 58, 207, 3, 301, 3, 4, 4, 25, 26, - 53, 216, 67, 253, 185, 186, 57, 5, 152, 265, - 225, 318, 185, 186, 321, 204, 39, 262, 9, 70, - 10, 266, 267, 273, 70, 15, 53, 235, 54, 14, - 286, 69, 292, 214, 60, 61, 41, 63, 46, 47, - 255, 3, 349, 76, 259, 352, 227, 69, 75, 294, - 239, 41, 42, 69, 69, 244, 237, 238, 303, 323, - 241, 242, 27, 71, 70, 310, 11, 282, 58, 59, - 10, 21, 253, 143, 289, 290, 146, 69, 293, 149, - 224, 10, 56, 7, 7, 330, 15, 49, 75, 51, - 52, 323, 273, 31, 300, 238, 311, 342, 313, 243, - 315, 316, 317, 10, 319, 306, 10, 25, 15, 286, - 254, 15, 41, 42, 43, 62, 63, 64, 58, 59, - 67, 302, 338, 304, 306, 340, 55, 271, 343, 58, - 59, 346, 314, 348, 41, 42, 43, 41, 168, 209, - 210, -1, -1, 213, -1, 215, -1, 76, 55, 219, - -1, 58, 59, 297, 58, 59, -1, 301, 13, 14, - 304, -1, -1, 70, -1, -1, -1, -1, 312, -1, - -1, -1, -1, 314, 318, -1, -1, 321, 248, 0, - 1, -1, 3, 4, -1, -1, 7, 8, -1, 44, - 45, -1, -1, 263, -1, -1, -1, 18, 19, 54, - -1, -1, -1, -1, -1, 349, -1, 351, 352, -1, - 354, -1, -1, -1, -1, 36, 37, 38, 39, -1, - -1, -1, -1, 44, 45, 46, 47, 48, -1, -1, - -1, -1, 53, 54, 60, 61, 62, 63, 64, 60, - 61, 67, 63, -1, 65, -1, -1, 68, 69, -1, - 71, -1, -1, 74, 1, 76, 3, 4, -1, -1, - 7, 8, 60, 61, 62, 63, 64, -1, -1, 67, - -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, -1, 53, 54, -1, -1, - -1, -1, -1, 60, 61, -1, 63, -1, 65, -1, - -1, 68, 69, -1, 71, -1, -1, 74, 75, 76, - 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, -1, 53, 54, -1, -1, -1, -1, -1, 60, - 61, -1, 63, -1, 65, -1, -1, 68, 69, -1, - 71, -1, -1, 74, 75, 76, 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, -1, 3, 4, -1, 54, - 7, 8, -1, -1, 11, 60, 61, -1, 63, -1, - 65, -1, -1, 68, 69, -1, 71, -1, -1, 74, - 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 39, -1, -1, -1, -1, 44, 45, 46, - 47, -1, -1, -1, -1, -1, 53, 54, -1, -1, - -1, -1, -1, 60, 61, -1, 63, -1, 65, -1, - -1, 68, 69, 70, 71, -1, 3, 4, -1, 76, - 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, - 3, 4, 39, 40, 7, 8, -1, 44, 45, 46, - 47, -1, -1, -1, -1, -1, -1, 54, -1, -1, - -1, -1, -1, 60, 61, -1, 63, -1, 65, -1, - -1, 68, 69, -1, 71, -1, 39, 74, -1, 76, - -1, 44, 45, 46, 47, -1, 1, -1, 3, 4, - -1, 54, 7, 8, 9, -1, -1, 60, 61, -1, - 63, -1, 65, -1, -1, 68, 69, -1, 71, -1, - -1, -1, -1, 76, 1, -1, 3, 4, -1, -1, - 7, 8, 9, -1, 39, -1, -1, -1, -1, 44, + 76, 192, 53, 67, 122, 76, 117, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 131, + 57, 346, 17, 57, 349, 76, 209, 210, 139, 325, + 213, 142, 215, 70, 53, 10, 219, 53, 131, 73, + 15, 146, 53, 1, 149, 10, 5, 152, 44, 45, + 59, 60, 224, 3, 4, 167, 4, 76, 233, 184, + 185, 39, 207, 74, 247, 76, 41, 25, 26, 9, + 242, 216, 14, 184, 185, 41, 70, 72, 69, 262, + 225, 253, 69, 58, 59, 69, 261, 69, 76, 10, + 265, 266, 4, 58, 59, 53, 46, 47, 270, 252, + 291, 70, 242, 214, 209, 210, 11, 27, 213, 254, + 215, 263, 69, 258, 219, 226, 234, 75, 293, 272, + 21, 71, 56, 75, 296, 236, 237, 302, 300, 240, + 241, 303, 284, 7, 309, 322, 281, 58, 59, 311, + 7, 252, 247, 288, 289, 317, 30, 292, 320, 322, + 3, 237, 25, 167, 329, 305, 296, 262, 284, 337, + 300, 272, 299, -1, -1, 310, 341, 312, -1, 314, + 315, 316, -1, 318, -1, -1, 348, 317, 350, 351, + 320, 353, 62, 63, 64, -1, 10, 67, -1, -1, + 301, 15, 303, 305, 339, -1, 49, 342, 51, 52, + 345, 313, 347, -1, -1, -1, 0, 1, 348, 3, + 4, 351, -1, 7, 8, -1, 1, 41, 42, 43, + 313, -1, -1, -1, 18, 19, 11, -1, -1, -1, + -1, 55, 13, 14, 58, 59, -1, -1, -1, 7, + 8, 9, 36, 37, 38, 39, 70, -1, -1, -1, + 44, 45, 46, 47, 48, -1, -1, -1, -1, 53, + 54, -1, -1, 44, 45, -1, 60, 61, 53, 63, + -1, 65, 57, 54, 68, 69, -1, 71, -1, -1, + 74, 1, 76, 3, 4, 70, 54, 7, 8, -1, + -1, 76, 60, 61, -1, 63, -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, 60, 61, + 62, 63, 64, 53, 54, 67, -1, -1, -1, -1, + 60, 61, -1, 63, -1, 65, -1, -1, 68, 69, + -1, 71, -1, -1, 74, 75, 76, 1, -1, 3, + 4, -1, -1, 7, 8, 60, 61, 62, 63, 64, + -1, -1, 67, -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, -1, 53, + 54, -1, -1, -1, -1, -1, 60, 61, -1, 63, + -1, 65, -1, -1, 68, 69, -1, 71, -1, -1, + 74, 75, 76, 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, + 10, 1, -1, 3, 4, 15, 54, 7, 8, -1, + -1, 11, 60, 61, -1, 63, -1, 65, -1, -1, + 68, 69, -1, 71, -1, -1, 74, 75, 76, -1, + -1, 41, 42, -1, -1, -1, -1, -1, -1, 39, + -1, -1, -1, -1, 44, 45, 46, 47, 58, 59, + -1, -1, -1, 53, 54, -1, -1, -1, -1, -1, + 60, 61, -1, 63, -1, 65, -1, -1, 68, 69, + 70, 71, -1, 3, 4, -1, 76, 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, 3, 4, 39, + 40, 7, 8, -1, 44, 45, 46, 47, -1, -1, + -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, + 60, 61, -1, 63, -1, 65, -1, -1, 68, 69, + -1, 71, -1, 39, 74, -1, 76, -1, 44, 45, + 46, 47, -1, 1, -1, 3, 4, -1, 54, 7, + 8, 9, -1, -1, 60, 61, -1, 63, -1, 65, + -1, -1, 68, 69, -1, 71, -1, -1, -1, -1, + 76, 1, -1, 3, 4, -1, -1, 7, 8, 9, + -1, 39, -1, -1, -1, -1, 44, 45, 46, 47, + -1, -1, -1, -1, -1, -1, 54, -1, -1, -1, + -1, -1, 60, 61, -1, 63, -1, 65, -1, 39, + 68, 69, 70, 71, 44, 45, 46, 47, -1, 1, + -1, 3, 4, -1, 54, 7, 8, -1, -1, -1, + 60, 61, -1, 63, -1, 65, -1, -1, 68, 69, + -1, 71, -1, -1, -1, -1, -1, 1, -1, 3, + 4, -1, -1, 7, 8, -1, -1, 39, -1, -1, + -1, -1, 44, 45, 46, 47, -1, -1, -1, -1, + -1, -1, 54, -1, -1, -1, -1, -1, 60, 61, + -1, 63, -1, 65, -1, 39, 68, 69, -1, 71, + 44, 45, 46, 47, -1, -1, -1, -1, 3, 4, + 54, -1, 7, 8, -1, -1, 60, 61, -1, 63, + -1, 65, -1, -1, 68, 69, -1, 71, 23, -1, + -1, -1, -1, -1, -1, -1, -1, 32, 33, -1, + -1, -1, 3, 4, 39, -1, 7, 8, -1, 44, 45, 46, 47, -1, -1, -1, -1, -1, -1, 54, - -1, -1, -1, -1, -1, 60, 61, -1, 63, -1, - 65, -1, 39, 68, 69, 70, 71, 44, 45, 46, - 47, -1, 1, -1, 3, 4, -1, 54, 7, 8, - -1, -1, -1, 60, 61, -1, 63, -1, 65, -1, - -1, 68, 69, -1, 71, -1, -1, -1, -1, -1, - 1, -1, 3, 4, -1, -1, 7, 8, -1, -1, - 39, -1, -1, -1, -1, 44, 45, 46, 47, -1, - -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, - -1, 60, 61, -1, 63, -1, 65, -1, 39, 68, - 69, -1, 71, 44, 45, 46, 47, -1, -1, -1, - -1, 3, 4, 54, -1, 7, 8, -1, -1, 60, + -1, -1, 23, -1, -1, 60, 61, -1, 63, -1, + 65, 32, 33, 68, 69, -1, 71, -1, 39, -1, + -1, -1, -1, 44, 45, 46, 47, 3, 4, -1, + -1, 7, 8, 54, -1, -1, 12, -1, -1, 60, 61, -1, 63, -1, 65, -1, -1, 68, 69, -1, - 71, 23, -1, -1, -1, -1, -1, -1, -1, -1, - 32, 33, -1, -1, 3, 4, -1, 39, 7, 8, - 9, -1, 44, 45, 46, 47, 3, 4, -1, -1, - 7, 8, 54, -1, -1, 12, -1, -1, 60, 61, - -1, 63, -1, 65, -1, -1, 68, 69, -1, 71, - 39, -1, -1, -1, -1, 44, 45, 46, 47, 3, - 4, -1, 39, 7, 8, 54, -1, 44, 45, 46, - 47, 60, 61, -1, 63, -1, 65, 54, -1, 68, - 69, -1, 71, 60, 61, -1, 63, -1, 65, -1, - -1, 68, 69, -1, 71, 39, -1, -1, -1, -1, - 44, 45, 46, 47, 3, 4, -1, -1, 7, 8, - 54, -1, -1, -1, -1, -1, 60, 61, -1, 63, - -1, 65, -1, -1, 68, 69, 10, 71, -1, -1, - -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 44, 45, 46, 47, 10, - -1, -1, -1, -1, 15, 54, -1, 41, 42, 43, - 10, 60, 61, -1, 63, 15, 65, -1, -1, 68, - 69, 55, 71, 57, 58, 59, -1, -1, -1, -1, - 41, 42, 43, -1, -1, -1, -1, -1, -1, -1, - -1, 41, 42, 43, 55, 56, -1, 58, 59, -1, - -1, -1, -1, -1, -1, 55, -1, -1, 58, 59 + 71, -1, -1, -1, -1, 3, 4, -1, -1, 7, + 8, 9, -1, 39, -1, -1, -1, -1, 44, 45, + 46, 47, -1, -1, -1, -1, -1, 10, 54, -1, + -1, -1, 15, -1, 60, 61, -1, 63, -1, 65, + -1, 39, 68, 69, -1, 71, 44, 45, 46, 47, + 3, 4, -1, -1, 7, 8, 54, -1, 41, 42, + 43, -1, 60, 61, -1, 63, -1, 65, -1, -1, + 68, 69, 55, 71, 57, 58, 59, -1, 3, 4, + -1, -1, 7, 8, -1, -1, 39, -1, -1, -1, + -1, 44, 45, 46, 47, -1, -1, -1, -1, -1, + 10, 54, -1, -1, -1, 15, -1, 60, 61, -1, + 63, -1, 65, -1, -1, 68, 69, -1, 71, 44, + 45, 46, 47, 10, -1, -1, -1, -1, 15, 54, + -1, 41, 42, 43, -1, 60, 61, -1, 63, -1, + 65, -1, 10, 68, 69, 55, 71, 15, 58, 59, + -1, -1, -1, -1, 41, 42, 43, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 76, -1, 55, 56, + -1, 58, 59, 41, 42, 43, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 55, -1, -1, + 58, 59 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1131,39 +1137,39 @@ static const yytype_uint8 yystos[] = 0, 78, 0, 1, 3, 4, 7, 8, 18, 19, 36, 37, 38, 39, 44, 45, 46, 47, 48, 53, 54, 60, 61, 63, 65, 68, 69, 71, 79, 83, - 85, 88, 90, 93, 111, 122, 126, 127, 128, 129, - 130, 131, 139, 140, 69, 3, 46, 47, 71, 85, - 86, 87, 132, 140, 140, 140, 69, 69, 71, 127, - 140, 127, 127, 69, 129, 140, 1, 118, 122, 49, - 51, 52, 131, 74, 76, 84, 95, 111, 142, 146, - 72, 136, 137, 138, 84, 91, 53, 10, 15, 41, - 42, 43, 55, 57, 58, 59, 124, 125, 148, 12, - 127, 60, 61, 62, 63, 64, 67, 60, 61, 62, - 63, 64, 67, 13, 14, 44, 45, 54, 123, 1, - 9, 92, 119, 120, 121, 122, 50, 69, 58, 113, - 119, 119, 122, 44, 45, 141, 1, 70, 144, 148, - 144, 1, 6, 80, 1, 6, 81, 1, 6, 82, - 111, 112, 94, 112, 118, 122, 17, 136, 5, 92, - 122, 139, 122, 122, 122, 112, 122, 122, 39, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 92, 14, 122, 144, 1, 148, 89, 127, 144, - 144, 122, 41, 1, 122, 1, 95, 1, 95, 1, - 95, 1, 20, 22, 23, 24, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 40, 75, 96, 97, 99, - 106, 110, 122, 142, 143, 146, 73, 56, 132, 121, - 1, 121, 1, 4, 114, 115, 139, 69, 98, 69, - 85, 69, 69, 112, 69, 95, 95, 95, 116, 122, - 95, 112, 95, 100, 94, 145, 146, 112, 122, 144, - 1, 148, 122, 116, 85, 101, 122, 122, 96, 85, - 99, 102, 95, 69, 107, 117, 118, 143, 112, 112, - 1, 4, 144, 95, 70, 133, 134, 135, 136, 144, - 144, 27, 41, 146, 118, 11, 108, 112, 17, 135, - 112, 112, 69, 139, 112, 144, 109, 96, 142, 96, - 122, 144, 122, 146, 126, 21, 103, 144, 112, 146, - 112, 112, 1, 25, 26, 104, 112, 112, 96, 112, - 102, 96, 7, 8, 60, 61, 90, 92, 105, 56, - 147, 143, 102, 144, 7, 7, 147, 112, 144, 112, - 112, 94, 112, 96, 94, 96 + 87, 89, 92, 110, 121, 125, 126, 127, 128, 129, + 130, 138, 139, 69, 72, 135, 136, 137, 3, 4, + 46, 47, 71, 85, 86, 131, 139, 139, 139, 69, + 69, 71, 126, 139, 126, 126, 69, 128, 139, 1, + 117, 121, 49, 51, 52, 130, 74, 76, 84, 94, + 110, 141, 145, 84, 90, 53, 10, 15, 41, 42, + 43, 55, 57, 58, 59, 123, 124, 147, 12, 126, + 60, 61, 62, 63, 64, 67, 60, 61, 62, 63, + 64, 67, 13, 14, 44, 45, 54, 122, 1, 9, + 91, 118, 119, 120, 121, 117, 121, 17, 135, 50, + 69, 58, 112, 118, 118, 121, 44, 45, 140, 1, + 70, 143, 147, 143, 1, 6, 80, 1, 6, 81, + 1, 6, 82, 110, 111, 93, 111, 5, 91, 121, + 138, 121, 121, 121, 111, 121, 121, 39, 126, 126, + 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, + 91, 14, 121, 143, 1, 147, 73, 88, 126, 143, + 143, 121, 41, 1, 121, 1, 94, 1, 94, 1, + 94, 1, 20, 22, 23, 24, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 40, 75, 95, 96, 98, + 105, 109, 121, 141, 142, 145, 56, 131, 120, 1, + 120, 1, 4, 113, 114, 138, 69, 97, 4, 69, + 69, 69, 111, 69, 94, 94, 94, 115, 121, 94, + 111, 94, 99, 93, 144, 145, 111, 121, 143, 1, + 147, 121, 115, 100, 4, 121, 121, 95, 4, 98, + 101, 94, 69, 106, 116, 117, 142, 111, 111, 1, + 4, 143, 94, 132, 133, 134, 135, 70, 143, 143, + 27, 41, 145, 117, 11, 107, 111, 17, 134, 111, + 111, 69, 138, 111, 143, 108, 95, 141, 95, 121, + 143, 121, 145, 125, 21, 102, 143, 111, 145, 111, + 111, 1, 25, 26, 103, 111, 111, 95, 111, 101, + 95, 7, 8, 60, 61, 89, 91, 104, 56, 146, + 142, 101, 143, 7, 7, 146, 111, 143, 111, 111, + 93, 111, 95, 93, 95 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ @@ -1172,24 +1178,24 @@ static const yytype_uint8 yyr1[] = 0, 77, 78, 78, 78, 78, 78, 79, 79, 79, 79, 79, 79, 80, 80, 80, 81, 81, 81, 82, 82, 82, 83, 83, 83, 83, 83, 83, 83, 84, - 85, 86, 86, 86, 86, 87, 87, 89, 88, 91, - 90, 92, 93, 93, 94, 94, 94, 95, 95, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 97, - 97, 97, 97, 97, 98, 97, 97, 100, 99, 101, - 99, 99, 99, 102, 102, 103, 103, 103, 104, 104, - 105, 105, 105, 105, 105, 105, 106, 106, 107, 107, - 108, 109, 108, 110, 110, 111, 111, 112, 112, 113, - 113, 114, 114, 115, 115, 115, 115, 115, 116, 116, - 117, 117, 118, 118, 118, 118, 118, 118, 119, 119, - 120, 120, 120, 120, 120, 120, 121, 121, 122, 122, - 122, 122, 122, 122, 122, 122, 122, 122, 123, 123, - 123, 124, 124, 125, 125, 126, 126, 126, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 128, - 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 130, 130, 131, 132, 132, 133, 133, 134, 134, 135, - 136, 137, 137, 138, 139, 139, 140, 140, 141, 141, - 141, 142, 143, 144, 145, 145, 146, 147, 148 + 85, 85, 85, 85, 86, 86, 88, 87, 90, 89, + 91, 92, 92, 93, 93, 93, 94, 94, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 96, 96, + 96, 96, 96, 97, 96, 96, 99, 98, 100, 98, + 98, 98, 101, 101, 102, 102, 102, 103, 103, 104, + 104, 104, 104, 104, 104, 105, 105, 106, 106, 107, + 108, 107, 109, 109, 110, 110, 111, 111, 112, 112, + 113, 113, 114, 114, 114, 114, 114, 115, 115, 116, + 116, 117, 117, 117, 117, 117, 117, 118, 118, 119, + 119, 119, 119, 119, 119, 120, 120, 121, 121, 121, + 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, + 123, 123, 124, 124, 125, 125, 125, 126, 126, 126, + 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, + 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, + 129, 130, 131, 131, 132, 132, 133, 133, 134, 135, + 136, 136, 137, 138, 138, 139, 139, 140, 140, 140, + 141, 142, 143, 144, 144, 145, 146, 147 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1198,24 +1204,24 @@ static const yytype_uint8 yyr2[] = 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 1, 2, 1, 1, 2, 1, 1, 2, 1, 0, 1, 3, 1, 1, 1, 1, 5, - 1, 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, 4, 2, 0, 4, 0, - 4, 4, 1, 0, 1, 0, 2, 2, 5, 4, - 1, 2, 2, 1, 1, 1, 1, 1, 1, 3, - 0, 0, 3, 6, 9, 1, 2, 0, 1, 0, - 2, 0, 1, 1, 3, 1, 2, 3, 0, 1, - 0, 1, 1, 3, 1, 2, 3, 3, 0, 1, - 1, 3, 1, 2, 3, 3, 1, 1, 3, 3, - 3, 3, 3, 3, 3, 3, 5, 1, 1, 1, - 2, 1, 1, 1, 1, 1, 1, 2, 1, 3, - 3, 3, 3, 3, 3, 3, 2, 2, 5, 4, - 3, 3, 3, 3, 3, 3, 1, 2, 3, 4, - 4, 1, 1, 1, 2, 2, 1, 1, 2, 2, - 1, 2, 4, 0, 1, 0, 2, 1, 2, 1, - 3, 1, 2, 2, 1, 2, 1, 3, 1, 1, - 0, 2, 2, 1, 0, 1, 1, 1, 2 + 1, 1, 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, 4, 2, 0, 4, 0, 4, + 4, 1, 0, 1, 0, 2, 2, 5, 4, 1, + 2, 2, 1, 1, 1, 1, 1, 1, 3, 0, + 0, 3, 6, 9, 1, 2, 0, 1, 0, 2, + 0, 1, 1, 3, 1, 2, 3, 0, 1, 0, + 1, 1, 3, 1, 2, 3, 3, 0, 1, 1, + 3, 1, 2, 3, 3, 1, 1, 3, 3, 3, + 3, 3, 3, 3, 3, 5, 1, 1, 1, 2, + 1, 1, 1, 1, 1, 1, 2, 1, 3, 3, + 3, 3, 3, 3, 3, 2, 2, 5, 4, 3, + 3, 3, 3, 3, 3, 1, 2, 3, 4, 4, + 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, + 2, 4, 0, 1, 0, 2, 1, 2, 1, 3, + 1, 2, 2, 1, 2, 1, 3, 1, 1, 0, + 2, 2, 1, 0, 1, 1, 1, 2 }; @@ -1894,7 +1900,7 @@ yyreduce: case 2: #line 231 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 1898 "awkgram.c" /* yacc.c:1645 */ +#line 1904 "awkgram.c" /* yacc.c:1645 */ break; case 3: @@ -1903,7 +1909,7 @@ yyreduce: rule = 0; yyerrok; } -#line 1907 "awkgram.c" /* yacc.c:1645 */ +#line 1913 "awkgram.c" /* yacc.c:1645 */ break; case 4: @@ -1917,7 +1923,7 @@ yyreduce: } (yyval) = (yyvsp[-1]); } -#line 1921 "awkgram.c" /* yacc.c:1645 */ +#line 1927 "awkgram.c" /* yacc.c:1645 */ break; case 5: @@ -1925,7 +1931,7 @@ yyreduce: { next_sourcefile(); } -#line 1929 "awkgram.c" /* yacc.c:1645 */ +#line 1935 "awkgram.c" /* yacc.c:1645 */ break; case 6: @@ -1938,7 +1944,7 @@ yyreduce: */ /* yyerrok; */ } -#line 1942 "awkgram.c" /* yacc.c:1645 */ +#line 1948 "awkgram.c" /* yacc.c:1645 */ break; case 7: @@ -1950,7 +1956,7 @@ yyreduce: pending_comment = NULL; } } -#line 1954 "awkgram.c" /* yacc.c:1645 */ +#line 1960 "awkgram.c" /* yacc.c:1645 */ break; case 8: @@ -1968,7 +1974,7 @@ yyreduce: (void) append_rule((yyvsp[-1]), NULL); } } -#line 1972 "awkgram.c" /* yacc.c:1645 */ +#line 1978 "awkgram.c" /* yacc.c:1645 */ break; case 9: @@ -1983,7 +1989,7 @@ yyreduce: } yyerrok; } -#line 1987 "awkgram.c" /* yacc.c:1645 */ +#line 1993 "awkgram.c" /* yacc.c:1645 */ break; case 10: @@ -1997,7 +2003,7 @@ yyreduce: } yyerrok; } -#line 2001 "awkgram.c" /* yacc.c:1645 */ +#line 2007 "awkgram.c" /* yacc.c:1645 */ break; case 11: @@ -2011,7 +2017,7 @@ yyreduce: } yyerrok; } -#line 2015 "awkgram.c" /* yacc.c:1645 */ +#line 2021 "awkgram.c" /* yacc.c:1645 */ break; case 12: @@ -2025,7 +2031,7 @@ yyreduce: yyerrok; } -#line 2029 "awkgram.c" /* yacc.c:1645 */ +#line 2035 "awkgram.c" /* yacc.c:1645 */ break; case 13: @@ -2039,19 +2045,19 @@ yyreduce: bcfree((yyvsp[0])); (yyval) = (INSTRUCTION *) srcfile; } -#line 2043 "awkgram.c" /* yacc.c:1645 */ +#line 2049 "awkgram.c" /* yacc.c:1645 */ break; case 14: #line 340 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 2049 "awkgram.c" /* yacc.c:1645 */ +#line 2055 "awkgram.c" /* yacc.c:1645 */ break; case 15: #line 342 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 2055 "awkgram.c" /* yacc.c:1645 */ +#line 2061 "awkgram.c" /* yacc.c:1645 */ break; case 16: @@ -2065,37 +2071,37 @@ yyreduce: bcfree((yyvsp[0])); (yyval) = (INSTRUCTION *) srcfile; } -#line 2069 "awkgram.c" /* yacc.c:1645 */ +#line 2075 "awkgram.c" /* yacc.c:1645 */ break; case 17: #line 357 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 2075 "awkgram.c" /* yacc.c:1645 */ +#line 2081 "awkgram.c" /* yacc.c:1645 */ break; case 18: #line 359 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 2081 "awkgram.c" /* yacc.c:1645 */ +#line 2087 "awkgram.c" /* yacc.c:1645 */ break; case 19: #line 364 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 2087 "awkgram.c" /* yacc.c:1645 */ +#line 2093 "awkgram.c" /* yacc.c:1645 */ break; case 20: #line 366 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 2093 "awkgram.c" /* yacc.c:1645 */ +#line 2099 "awkgram.c" /* yacc.c:1645 */ break; case 21: #line 368 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 2099 "awkgram.c" /* yacc.c:1645 */ +#line 2105 "awkgram.c" /* yacc.c:1645 */ break; case 22: @@ -2104,7 +2110,7 @@ yyreduce: rule = Rule; (yyval) = NULL; } -#line 2108 "awkgram.c" /* yacc.c:1645 */ +#line 2114 "awkgram.c" /* yacc.c:1645 */ break; case 23: @@ -2112,7 +2118,7 @@ yyreduce: { rule = Rule; } -#line 2116 "awkgram.c" /* yacc.c:1645 */ +#line 2122 "awkgram.c" /* yacc.c:1645 */ break; case 24: @@ -2146,7 +2152,7 @@ yyreduce: (yyval) = list_append(list_merge((yyvsp[-2]), (yyvsp[0])), tp); rule = Rule; } -#line 2150 "awkgram.c" /* yacc.c:1645 */ +#line 2156 "awkgram.c" /* yacc.c:1645 */ break; case 25: @@ -2162,7 +2168,7 @@ yyreduce: (yyvsp[0])->source_file = source; (yyval) = (yyvsp[0]); } -#line 2166 "awkgram.c" /* yacc.c:1645 */ +#line 2172 "awkgram.c" /* yacc.c:1645 */ break; case 26: @@ -2178,7 +2184,7 @@ yyreduce: (yyvsp[0])->source_file = source; (yyval) = (yyvsp[0]); } -#line 2182 "awkgram.c" /* yacc.c:1645 */ +#line 2188 "awkgram.c" /* yacc.c:1645 */ break; case 27: @@ -2188,7 +2194,7 @@ yyreduce: (yyvsp[0])->source_file = source; (yyval) = (yyvsp[0]); } -#line 2192 "awkgram.c" /* yacc.c:1645 */ +#line 2198 "awkgram.c" /* yacc.c:1645 */ break; case 28: @@ -2198,7 +2204,7 @@ yyreduce: (yyvsp[0])->source_file = source; (yyval) = (yyvsp[0]); } -#line 2202 "awkgram.c" /* yacc.c:1645 */ +#line 2208 "awkgram.c" /* yacc.c:1645 */ break; case 29: @@ -2217,11 +2223,11 @@ yyreduce: (yyval) = ip; } -#line 2221 "awkgram.c" /* yacc.c:1645 */ +#line 2227 "awkgram.c" /* yacc.c:1645 */ break; - case 30: -#line 470 "awkgram.y" /* yacc.c:1645 */ + case 31: +#line 471 "awkgram.y" /* yacc.c:1645 */ { const char *name = (yyvsp[0])->lextok; char *qname = qualify_name(name, strlen(name)); @@ -2232,51 +2238,36 @@ yyreduce: } (yyval) = (yyvsp[0]); } -#line 2236 "awkgram.c" /* yacc.c:1645 */ +#line 2242 "awkgram.c" /* yacc.c:1645 */ break; case 32: -#line 485 "awkgram.y" /* yacc.c:1645 */ - { - const char *name = (yyvsp[0])->lextok; - char *qname = qualify_name(name, strlen(name)); - - if (qname != name) { - efree((void *)name); - (yyvsp[0])->lextok = qname; - } - (yyval) = (yyvsp[0]); - } -#line 2251 "awkgram.c" /* yacc.c:1645 */ - break; - - case 33: -#line 496 "awkgram.y" /* yacc.c:1645 */ +#line 482 "awkgram.y" /* yacc.c:1645 */ { yyerror(_("`%s' is a built-in function, it cannot be redefined"), tokstart); YYABORT; } -#line 2261 "awkgram.c" /* yacc.c:1645 */ +#line 2252 "awkgram.c" /* yacc.c:1645 */ break; - case 34: -#line 502 "awkgram.y" /* yacc.c:1645 */ + case 33: +#line 488 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); at_seen = false; } -#line 2270 "awkgram.c" /* yacc.c:1645 */ +#line 2261 "awkgram.c" /* yacc.c:1645 */ break; - case 37: -#line 514 "awkgram.y" /* yacc.c:1645 */ + case 36: +#line 500 "awkgram.y" /* yacc.c:1645 */ { want_param_names = FUNC_HEADER; } -#line 2276 "awkgram.c" /* yacc.c:1645 */ +#line 2267 "awkgram.c" /* yacc.c:1645 */ break; - case 38: -#line 515 "awkgram.y" /* yacc.c:1645 */ + case 37: +#line 501 "awkgram.y" /* yacc.c:1645 */ { INSTRUCTION *func_comment = NULL; // Merge any comments found in the parameter list with those @@ -2302,17 +2293,17 @@ yyreduce: (yyval) = (yyvsp[-6]); want_param_names = FUNC_BODY; } -#line 2306 "awkgram.c" /* yacc.c:1645 */ +#line 2297 "awkgram.c" /* yacc.c:1645 */ break; - case 39: -#line 548 "awkgram.y" /* yacc.c:1645 */ + case 38: +#line 534 "awkgram.y" /* yacc.c:1645 */ { want_regexp = true; } -#line 2312 "awkgram.c" /* yacc.c:1645 */ +#line 2303 "awkgram.c" /* yacc.c:1645 */ break; - case 40: -#line 550 "awkgram.y" /* yacc.c:1645 */ + case 39: +#line 536 "awkgram.y" /* yacc.c:1645 */ { NODE *n, *exp; char *re; @@ -2341,11 +2332,11 @@ yyreduce: (yyval)->opcode = Op_match_rec; (yyval)->memory = n; } -#line 2345 "awkgram.c" /* yacc.c:1645 */ +#line 2336 "awkgram.c" /* yacc.c:1645 */ break; - case 41: -#line 582 "awkgram.y" /* yacc.c:1645 */ + case 40: +#line 568 "awkgram.y" /* yacc.c:1645 */ { char *re; size_t len; @@ -2358,23 +2349,23 @@ yyreduce: (yyval)->opcode = Op_push_re; (yyval)->memory = make_typed_regex(re, len); } -#line 2362 "awkgram.c" /* yacc.c:1645 */ +#line 2353 "awkgram.c" /* yacc.c:1645 */ break; - case 42: -#line 597 "awkgram.y" /* yacc.c:1645 */ + case 41: +#line 583 "awkgram.y" /* yacc.c:1645 */ { bcfree((yyvsp[0])); } -#line 2368 "awkgram.c" /* yacc.c:1645 */ +#line 2359 "awkgram.c" /* yacc.c:1645 */ break; - case 44: -#line 603 "awkgram.y" /* yacc.c:1645 */ + case 43: +#line 589 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 2374 "awkgram.c" /* yacc.c:1645 */ +#line 2365 "awkgram.c" /* yacc.c:1645 */ break; - case 45: -#line 605 "awkgram.y" /* yacc.c:1645 */ + case 44: +#line 591 "awkgram.y" /* yacc.c:1645 */ { if ((yyvsp[0]) == NULL) { (yyval) = (yyvsp[-1]); @@ -2394,29 +2385,29 @@ yyreduce: yyerrok; } -#line 2398 "awkgram.c" /* yacc.c:1645 */ +#line 2389 "awkgram.c" /* yacc.c:1645 */ break; - case 46: -#line 625 "awkgram.y" /* yacc.c:1645 */ + case 45: +#line 611 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 2404 "awkgram.c" /* yacc.c:1645 */ +#line 2395 "awkgram.c" /* yacc.c:1645 */ break; - case 47: -#line 629 "awkgram.y" /* yacc.c:1645 */ + case 46: +#line 615 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 2410 "awkgram.c" /* yacc.c:1645 */ +#line 2401 "awkgram.c" /* yacc.c:1645 */ break; - case 48: -#line 630 "awkgram.y" /* yacc.c:1645 */ + case 47: +#line 616 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 2416 "awkgram.c" /* yacc.c:1645 */ +#line 2407 "awkgram.c" /* yacc.c:1645 */ break; - case 49: -#line 635 "awkgram.y" /* yacc.c:1645 */ + case 48: +#line 621 "awkgram.y" /* yacc.c:1645 */ { if ((yyvsp[0]) != NULL) { INSTRUCTION *ip; @@ -2427,31 +2418,31 @@ yyreduce: } else (yyval) = NULL; } -#line 2431 "awkgram.c" /* yacc.c:1645 */ +#line 2422 "awkgram.c" /* yacc.c:1645 */ break; - case 50: -#line 646 "awkgram.y" /* yacc.c:1645 */ + case 49: +#line 632 "awkgram.y" /* yacc.c:1645 */ { trailing_comment = (yyvsp[0]); // NULL or comment (yyval) = make_braced_statements((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0])); } -#line 2440 "awkgram.c" /* yacc.c:1645 */ +#line 2431 "awkgram.c" /* yacc.c:1645 */ break; - case 51: -#line 651 "awkgram.y" /* yacc.c:1645 */ + case 50: +#line 637 "awkgram.y" /* yacc.c:1645 */ { if (do_pretty_print) (yyval) = list_prepend((yyvsp[0]), instruction(Op_exec_count)); else (yyval) = (yyvsp[0]); } -#line 2451 "awkgram.c" /* yacc.c:1645 */ +#line 2442 "awkgram.c" /* yacc.c:1645 */ break; - case 52: -#line 658 "awkgram.y" /* yacc.c:1645 */ + case 51: +#line 644 "awkgram.y" /* yacc.c:1645 */ { INSTRUCTION *dflt, *curr = NULL, *cexp, *cstmt; INSTRUCTION *ip, *nextc, *tbreak; @@ -2559,11 +2550,11 @@ yyreduce: break_allowed--; fix_break_continue(ip, tbreak, NULL); } -#line 2563 "awkgram.c" /* yacc.c:1645 */ +#line 2554 "awkgram.c" /* yacc.c:1645 */ break; - case 53: -#line 766 "awkgram.y" /* yacc.c:1645 */ + case 52: +#line 752 "awkgram.y" /* yacc.c:1645 */ { /* * ----------------- @@ -2614,11 +2605,11 @@ yyreduce: continue_allowed--; fix_break_continue(ip, tbreak, tcont); } -#line 2618 "awkgram.c" /* yacc.c:1645 */ +#line 2609 "awkgram.c" /* yacc.c:1645 */ break; - case 54: -#line 817 "awkgram.y" /* yacc.c:1645 */ + case 53: +#line 803 "awkgram.y" /* yacc.c:1645 */ { /* * ----------------- @@ -2668,11 +2659,11 @@ yyreduce: /* else $1 and $4 are NULLs */ } -#line 2672 "awkgram.c" /* yacc.c:1645 */ +#line 2663 "awkgram.c" /* yacc.c:1645 */ break; - case 55: -#line 867 "awkgram.y" /* yacc.c:1645 */ + case 54: +#line 853 "awkgram.y" /* yacc.c:1645 */ { INSTRUCTION *ip; char *var_name = (yyvsp[-5])->lextok; @@ -2798,11 +2789,11 @@ regular_loop: break_allowed--; continue_allowed--; } -#line 2802 "awkgram.c" /* yacc.c:1645 */ +#line 2793 "awkgram.c" /* yacc.c:1645 */ break; - case 56: -#line 993 "awkgram.y" /* yacc.c:1645 */ + case 55: +#line 979 "awkgram.y" /* yacc.c:1645 */ { if ((yyvsp[-7]) != NULL) { merge_comments((yyvsp[-7]), NULL); @@ -2823,11 +2814,11 @@ regular_loop: break_allowed--; continue_allowed--; } -#line 2827 "awkgram.c" /* yacc.c:1645 */ +#line 2818 "awkgram.c" /* yacc.c:1645 */ break; - case 57: -#line 1014 "awkgram.y" /* yacc.c:1645 */ + case 56: +#line 1000 "awkgram.y" /* yacc.c:1645 */ { if ((yyvsp[-6]) != NULL) { merge_comments((yyvsp[-6]), NULL); @@ -2848,22 +2839,22 @@ regular_loop: break_allowed--; continue_allowed--; } -#line 2852 "awkgram.c" /* yacc.c:1645 */ +#line 2843 "awkgram.c" /* yacc.c:1645 */ break; - case 58: -#line 1035 "awkgram.y" /* yacc.c:1645 */ + case 57: +#line 1021 "awkgram.y" /* yacc.c:1645 */ { if (do_pretty_print) (yyval) = list_prepend((yyvsp[0]), instruction(Op_exec_count)); else (yyval) = (yyvsp[0]); } -#line 2863 "awkgram.c" /* yacc.c:1645 */ +#line 2854 "awkgram.c" /* yacc.c:1645 */ break; - case 59: -#line 1045 "awkgram.y" /* yacc.c:1645 */ + case 58: +#line 1031 "awkgram.y" /* yacc.c:1645 */ { if (! break_allowed) error_ln((yyvsp[-1])->source_line, @@ -2873,11 +2864,11 @@ regular_loop: if ((yyvsp[0]) != NULL) (yyval) = list_append((yyval), (yyvsp[0])); } -#line 2877 "awkgram.c" /* yacc.c:1645 */ +#line 2868 "awkgram.c" /* yacc.c:1645 */ break; - case 60: -#line 1055 "awkgram.y" /* yacc.c:1645 */ + case 59: +#line 1041 "awkgram.y" /* yacc.c:1645 */ { if (! continue_allowed) error_ln((yyvsp[-1])->source_line, @@ -2887,11 +2878,11 @@ regular_loop: if ((yyvsp[0]) != NULL) (yyval) = list_append((yyval), (yyvsp[0])); } -#line 2891 "awkgram.c" /* yacc.c:1645 */ +#line 2882 "awkgram.c" /* yacc.c:1645 */ break; - case 61: -#line 1065 "awkgram.y" /* yacc.c:1645 */ + case 60: +#line 1051 "awkgram.y" /* yacc.c:1645 */ { /* if inside function (rule = 0), resolve context at run-time */ if (rule && rule != Rule) @@ -2902,11 +2893,11 @@ regular_loop: if ((yyvsp[0]) != NULL) (yyval) = list_append((yyval), (yyvsp[0])); } -#line 2906 "awkgram.c" /* yacc.c:1645 */ +#line 2897 "awkgram.c" /* yacc.c:1645 */ break; - case 62: -#line 1076 "awkgram.y" /* yacc.c:1645 */ + case 61: +#line 1062 "awkgram.y" /* yacc.c:1645 */ { /* if inside function (rule = 0), resolve context at run-time */ if (rule == BEGIN || rule == END || rule == ENDFILE) @@ -2919,11 +2910,11 @@ regular_loop: if ((yyvsp[0]) != NULL) (yyval) = list_append((yyval), (yyvsp[0])); } -#line 2923 "awkgram.c" /* yacc.c:1645 */ +#line 2914 "awkgram.c" /* yacc.c:1645 */ break; - case 63: -#line 1089 "awkgram.y" /* yacc.c:1645 */ + case 62: +#line 1075 "awkgram.y" /* yacc.c:1645 */ { /* Initialize the two possible jump targets, the actual target * is resolved at run-time. @@ -2940,20 +2931,20 @@ regular_loop: if ((yyvsp[0]) != NULL) (yyval) = list_append((yyval), (yyvsp[0])); } -#line 2944 "awkgram.c" /* yacc.c:1645 */ +#line 2935 "awkgram.c" /* yacc.c:1645 */ break; - case 64: -#line 1106 "awkgram.y" /* yacc.c:1645 */ + case 63: +#line 1092 "awkgram.y" /* yacc.c:1645 */ { if (! in_function) yyerror(_("`return' used outside function context")); } -#line 2953 "awkgram.c" /* yacc.c:1645 */ +#line 2944 "awkgram.c" /* yacc.c:1645 */ break; - case 65: -#line 1109 "awkgram.y" /* yacc.c:1645 */ + case 64: +#line 1095 "awkgram.y" /* yacc.c:1645 */ { if ((yyvsp[-1]) == NULL) { (yyval) = list_create((yyvsp[-3])); @@ -2964,28 +2955,28 @@ regular_loop: if ((yyvsp[0]) != NULL) (yyval) = list_append((yyval), (yyvsp[0])); } -#line 2968 "awkgram.c" /* yacc.c:1645 */ +#line 2959 "awkgram.c" /* yacc.c:1645 */ break; - case 66: -#line 1120 "awkgram.y" /* yacc.c:1645 */ + case 65: +#line 1106 "awkgram.y" /* yacc.c:1645 */ { if ((yyvsp[0]) != NULL) (yyval) = list_append((yyvsp[-1]), (yyvsp[0])); else (yyval) = (yyvsp[-1]); } -#line 2979 "awkgram.c" /* yacc.c:1645 */ +#line 2970 "awkgram.c" /* yacc.c:1645 */ break; - case 67: -#line 1137 "awkgram.y" /* yacc.c:1645 */ + case 66: +#line 1123 "awkgram.y" /* yacc.c:1645 */ { in_print = true; in_parens = 0; } -#line 2985 "awkgram.c" /* yacc.c:1645 */ +#line 2976 "awkgram.c" /* yacc.c:1645 */ break; - case 68: -#line 1138 "awkgram.y" /* yacc.c:1645 */ + case 67: +#line 1124 "awkgram.y" /* yacc.c:1645 */ { /* * Optimization: plain `print' has no expression list, so $3 is null. @@ -3082,17 +3073,17 @@ regular_print: } } } -#line 3086 "awkgram.c" /* yacc.c:1645 */ +#line 3077 "awkgram.c" /* yacc.c:1645 */ break; - case 69: -#line 1235 "awkgram.y" /* yacc.c:1645 */ + case 68: +#line 1221 "awkgram.y" /* yacc.c:1645 */ { sub_counter = 0; } -#line 3092 "awkgram.c" /* yacc.c:1645 */ +#line 3083 "awkgram.c" /* yacc.c:1645 */ break; - case 70: -#line 1236 "awkgram.y" /* yacc.c:1645 */ + case 69: +#line 1222 "awkgram.y" /* yacc.c:1645 */ { char *arr = (yyvsp[-2])->lextok; @@ -3125,11 +3116,11 @@ regular_print: (yyval) = list_append(list_append((yyvsp[0]), (yyvsp[-2])), (yyvsp[-3])); } } -#line 3129 "awkgram.c" /* yacc.c:1645 */ +#line 3120 "awkgram.c" /* yacc.c:1645 */ break; - case 71: -#line 1273 "awkgram.y" /* yacc.c:1645 */ + case 70: +#line 1259 "awkgram.y" /* yacc.c:1645 */ { static bool warned = false; char *arr = (yyvsp[-1])->lextok; @@ -3155,54 +3146,54 @@ regular_print: fatal(_("`delete' is not allowed with FUNCTAB")); } } -#line 3159 "awkgram.c" /* yacc.c:1645 */ +#line 3150 "awkgram.c" /* yacc.c:1645 */ break; - case 72: -#line 1299 "awkgram.y" /* yacc.c:1645 */ + case 71: +#line 1285 "awkgram.y" /* yacc.c:1645 */ { (yyval) = optimize_assignment((yyvsp[0])); } -#line 3167 "awkgram.c" /* yacc.c:1645 */ +#line 3158 "awkgram.c" /* yacc.c:1645 */ break; - case 73: -#line 1306 "awkgram.y" /* yacc.c:1645 */ + case 72: +#line 1292 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 3173 "awkgram.c" /* yacc.c:1645 */ +#line 3164 "awkgram.c" /* yacc.c:1645 */ break; - case 74: -#line 1308 "awkgram.y" /* yacc.c:1645 */ + case 73: +#line 1294 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 3179 "awkgram.c" /* yacc.c:1645 */ +#line 3170 "awkgram.c" /* yacc.c:1645 */ break; - case 75: -#line 1313 "awkgram.y" /* yacc.c:1645 */ + case 74: +#line 1299 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 3185 "awkgram.c" /* yacc.c:1645 */ +#line 3176 "awkgram.c" /* yacc.c:1645 */ break; - case 76: -#line 1315 "awkgram.y" /* yacc.c:1645 */ + case 75: +#line 1301 "awkgram.y" /* yacc.c:1645 */ { if ((yyvsp[-1]) == NULL) (yyval) = list_create((yyvsp[0])); else (yyval) = list_prepend((yyvsp[-1]), (yyvsp[0])); } -#line 3196 "awkgram.c" /* yacc.c:1645 */ +#line 3187 "awkgram.c" /* yacc.c:1645 */ break; - case 77: -#line 1322 "awkgram.y" /* yacc.c:1645 */ + case 76: +#line 1308 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 3202 "awkgram.c" /* yacc.c:1645 */ +#line 3193 "awkgram.c" /* yacc.c:1645 */ break; - case 78: -#line 1327 "awkgram.y" /* yacc.c:1645 */ + case 77: +#line 1313 "awkgram.y" /* yacc.c:1645 */ { INSTRUCTION *casestmt = (yyvsp[0]); if ((yyvsp[0]) == NULL) @@ -3215,11 +3206,11 @@ regular_print: bcfree((yyvsp[-2])); (yyval) = (yyvsp[-4]); } -#line 3219 "awkgram.c" /* yacc.c:1645 */ +#line 3210 "awkgram.c" /* yacc.c:1645 */ break; - case 79: -#line 1340 "awkgram.y" /* yacc.c:1645 */ + case 78: +#line 1326 "awkgram.y" /* yacc.c:1645 */ { INSTRUCTION *casestmt = (yyvsp[0]); if ((yyvsp[0]) == NULL) @@ -3231,17 +3222,17 @@ regular_print: (yyvsp[-3])->comment = (yyvsp[-1]); (yyval) = (yyvsp[-3]); } -#line 3235 "awkgram.c" /* yacc.c:1645 */ +#line 3226 "awkgram.c" /* yacc.c:1645 */ break; - case 80: -#line 1355 "awkgram.y" /* yacc.c:1645 */ + case 79: +#line 1341 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 3241 "awkgram.c" /* yacc.c:1645 */ +#line 3232 "awkgram.c" /* yacc.c:1645 */ break; - case 81: -#line 1357 "awkgram.y" /* yacc.c:1645 */ + case 80: +#line 1343 "awkgram.y" /* yacc.c:1645 */ { NODE *n = (yyvsp[0])->memory; (void) force_number(n); @@ -3249,28 +3240,28 @@ regular_print: bcfree((yyvsp[-1])); (yyval) = (yyvsp[0]); } -#line 3253 "awkgram.c" /* yacc.c:1645 */ +#line 3244 "awkgram.c" /* yacc.c:1645 */ break; - case 82: -#line 1365 "awkgram.y" /* yacc.c:1645 */ + case 81: +#line 1351 "awkgram.y" /* yacc.c:1645 */ { NODE *n = (yyvsp[0])->lasti->memory; bcfree((yyvsp[-1])); add_sign_to_num(n, '+'); (yyval) = (yyvsp[0]); } -#line 3264 "awkgram.c" /* yacc.c:1645 */ +#line 3255 "awkgram.c" /* yacc.c:1645 */ break; - case 83: -#line 1372 "awkgram.y" /* yacc.c:1645 */ + case 82: +#line 1358 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 3270 "awkgram.c" /* yacc.c:1645 */ +#line 3261 "awkgram.c" /* yacc.c:1645 */ break; - case 84: -#line 1374 "awkgram.y" /* yacc.c:1645 */ + case 83: +#line 1360 "awkgram.y" /* yacc.c:1645 */ { if ((yyvsp[0])->memory->type == Node_regex) (yyvsp[0])->opcode = Op_push_re; @@ -3278,57 +3269,57 @@ regular_print: (yyvsp[0])->opcode = Op_push; (yyval) = (yyvsp[0]); } -#line 3282 "awkgram.c" /* yacc.c:1645 */ +#line 3273 "awkgram.c" /* yacc.c:1645 */ break; - case 85: -#line 1382 "awkgram.y" /* yacc.c:1645 */ + case 84: +#line 1368 "awkgram.y" /* yacc.c:1645 */ { assert(((yyvsp[0])->memory->flags & REGEX) == REGEX); (yyvsp[0])->opcode = Op_push_re; (yyval) = (yyvsp[0]); } -#line 3292 "awkgram.c" /* yacc.c:1645 */ +#line 3283 "awkgram.c" /* yacc.c:1645 */ break; - case 86: -#line 1391 "awkgram.y" /* yacc.c:1645 */ + case 85: +#line 1377 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 3298 "awkgram.c" /* yacc.c:1645 */ +#line 3289 "awkgram.c" /* yacc.c:1645 */ break; - case 87: -#line 1393 "awkgram.y" /* yacc.c:1645 */ + case 86: +#line 1379 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 3304 "awkgram.c" /* yacc.c:1645 */ +#line 3295 "awkgram.c" /* yacc.c:1645 */ break; - case 89: -#line 1403 "awkgram.y" /* yacc.c:1645 */ + case 88: +#line 1389 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[-1]); } -#line 3312 "awkgram.c" /* yacc.c:1645 */ +#line 3303 "awkgram.c" /* yacc.c:1645 */ break; - case 90: -#line 1410 "awkgram.y" /* yacc.c:1645 */ + case 89: +#line 1396 "awkgram.y" /* yacc.c:1645 */ { in_print = false; in_parens = 0; (yyval) = NULL; } -#line 3322 "awkgram.c" /* yacc.c:1645 */ +#line 3313 "awkgram.c" /* yacc.c:1645 */ break; - case 91: -#line 1415 "awkgram.y" /* yacc.c:1645 */ + case 90: +#line 1401 "awkgram.y" /* yacc.c:1645 */ { in_print = false; in_parens = 0; } -#line 3328 "awkgram.c" /* yacc.c:1645 */ +#line 3319 "awkgram.c" /* yacc.c:1645 */ break; - case 92: -#line 1416 "awkgram.y" /* yacc.c:1645 */ + case 91: +#line 1402 "awkgram.y" /* yacc.c:1645 */ { if ((yyvsp[-2])->redir_type == redirect_twoway && (yyvsp[0])->lasti->opcode == Op_K_getline_redir @@ -3338,21 +3329,21 @@ regular_print: lintwarn(_("concatenation as I/O `>' redirection target is ambiguous")); (yyval) = list_prepend((yyvsp[0]), (yyvsp[-2])); } -#line 3342 "awkgram.c" /* yacc.c:1645 */ +#line 3333 "awkgram.c" /* yacc.c:1645 */ break; - case 93: -#line 1429 "awkgram.y" /* yacc.c:1645 */ + case 92: +#line 1415 "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 3352 "awkgram.c" /* yacc.c:1645 */ +#line 3343 "awkgram.c" /* yacc.c:1645 */ break; - case 94: -#line 1436 "awkgram.y" /* yacc.c:1645 */ + case 93: +#line 1422 "awkgram.y" /* yacc.c:1645 */ { if ((yyvsp[-4]) != NULL) (yyvsp[-8])->comment = (yyvsp[-4]); @@ -3360,19 +3351,19 @@ regular_print: (yyvsp[-2])->comment = (yyvsp[-1]); (yyval) = mk_condition((yyvsp[-6]), (yyvsp[-8]), (yyvsp[-3]), (yyvsp[-2]), (yyvsp[0])); } -#line 3364 "awkgram.c" /* yacc.c:1645 */ +#line 3355 "awkgram.c" /* yacc.c:1645 */ break; - case 95: -#line 1447 "awkgram.y" /* yacc.c:1645 */ + case 94: +#line 1433 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 3372 "awkgram.c" /* yacc.c:1645 */ +#line 3363 "awkgram.c" /* yacc.c:1645 */ break; - case 96: -#line 1451 "awkgram.y" /* yacc.c:1645 */ + case 95: +#line 1437 "awkgram.y" /* yacc.c:1645 */ { if ((yyvsp[-1]) != NULL && (yyvsp[0]) != NULL) { if ((yyvsp[-1])->memory->comment_type == EOL_COMMENT) { @@ -3390,59 +3381,59 @@ regular_print: } else (yyval) = NULL; } -#line 3394 "awkgram.c" /* yacc.c:1645 */ +#line 3385 "awkgram.c" /* yacc.c:1645 */ break; - case 97: -#line 1472 "awkgram.y" /* yacc.c:1645 */ + case 96: +#line 1458 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 3400 "awkgram.c" /* yacc.c:1645 */ +#line 3391 "awkgram.c" /* yacc.c:1645 */ break; - case 98: -#line 1474 "awkgram.y" /* yacc.c:1645 */ + case 97: +#line 1460 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 3406 "awkgram.c" /* yacc.c:1645 */ +#line 3397 "awkgram.c" /* yacc.c:1645 */ break; - case 99: -#line 1479 "awkgram.y" /* yacc.c:1645 */ + case 98: +#line 1465 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 3412 "awkgram.c" /* yacc.c:1645 */ +#line 3403 "awkgram.c" /* yacc.c:1645 */ break; - case 100: -#line 1481 "awkgram.y" /* yacc.c:1645 */ + case 99: +#line 1467 "awkgram.y" /* yacc.c:1645 */ { bcfree((yyvsp[-1])); (yyval) = (yyvsp[0]); } -#line 3421 "awkgram.c" /* yacc.c:1645 */ +#line 3412 "awkgram.c" /* yacc.c:1645 */ break; - case 101: -#line 1489 "awkgram.y" /* yacc.c:1645 */ + case 100: +#line 1475 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 3427 "awkgram.c" /* yacc.c:1645 */ +#line 3418 "awkgram.c" /* yacc.c:1645 */ break; - case 102: -#line 1491 "awkgram.y" /* yacc.c:1645 */ + case 101: +#line 1477 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 3433 "awkgram.c" /* yacc.c:1645 */ +#line 3424 "awkgram.c" /* yacc.c:1645 */ break; - case 103: -#line 1496 "awkgram.y" /* yacc.c:1645 */ + case 102: +#line 1482 "awkgram.y" /* yacc.c:1645 */ { (yyvsp[0])->param_count = 0; (yyval) = list_create((yyvsp[0])); } -#line 3442 "awkgram.c" /* yacc.c:1645 */ +#line 3433 "awkgram.c" /* yacc.c:1645 */ break; - case 104: -#line 1501 "awkgram.y" /* yacc.c:1645 */ + case 103: +#line 1487 "awkgram.y" /* yacc.c:1645 */ { if ((yyvsp[-2]) != NULL && (yyvsp[0]) != NULL) { (yyvsp[0])->param_count = (yyvsp[-2])->lasti->param_count + 1; @@ -3459,76 +3450,76 @@ regular_print: } else (yyval) = NULL; } -#line 3463 "awkgram.c" /* yacc.c:1645 */ +#line 3454 "awkgram.c" /* yacc.c:1645 */ break; - case 105: -#line 1518 "awkgram.y" /* yacc.c:1645 */ + case 104: +#line 1504 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 3469 "awkgram.c" /* yacc.c:1645 */ +#line 3460 "awkgram.c" /* yacc.c:1645 */ break; - case 106: -#line 1520 "awkgram.y" /* yacc.c:1645 */ + case 105: +#line 1506 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[-1]); } -#line 3475 "awkgram.c" /* yacc.c:1645 */ +#line 3466 "awkgram.c" /* yacc.c:1645 */ break; - case 107: -#line 1522 "awkgram.y" /* yacc.c:1645 */ + case 106: +#line 1508 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[-2]); } -#line 3481 "awkgram.c" /* yacc.c:1645 */ +#line 3472 "awkgram.c" /* yacc.c:1645 */ break; - case 108: -#line 1528 "awkgram.y" /* yacc.c:1645 */ + case 107: +#line 1514 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 3487 "awkgram.c" /* yacc.c:1645 */ +#line 3478 "awkgram.c" /* yacc.c:1645 */ break; - case 109: -#line 1530 "awkgram.y" /* yacc.c:1645 */ + case 108: +#line 1516 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 3493 "awkgram.c" /* yacc.c:1645 */ +#line 3484 "awkgram.c" /* yacc.c:1645 */ break; - case 110: -#line 1535 "awkgram.y" /* yacc.c:1645 */ + case 109: +#line 1521 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 3499 "awkgram.c" /* yacc.c:1645 */ +#line 3490 "awkgram.c" /* yacc.c:1645 */ break; - case 111: -#line 1537 "awkgram.y" /* yacc.c:1645 */ + case 110: +#line 1523 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 3505 "awkgram.c" /* yacc.c:1645 */ +#line 3496 "awkgram.c" /* yacc.c:1645 */ break; - case 112: -#line 1542 "awkgram.y" /* yacc.c:1645 */ + case 111: +#line 1528 "awkgram.y" /* yacc.c:1645 */ { (yyval) = mk_expression_list(NULL, (yyvsp[0])); } -#line 3511 "awkgram.c" /* yacc.c:1645 */ +#line 3502 "awkgram.c" /* yacc.c:1645 */ break; - case 113: -#line 1544 "awkgram.y" /* yacc.c:1645 */ + case 112: +#line 1530 "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 3522 "awkgram.c" /* yacc.c:1645 */ +#line 3513 "awkgram.c" /* yacc.c:1645 */ break; - case 114: -#line 1551 "awkgram.y" /* yacc.c:1645 */ + case 113: +#line 1537 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 3528 "awkgram.c" /* yacc.c:1645 */ +#line 3519 "awkgram.c" /* yacc.c:1645 */ break; - case 115: -#line 1553 "awkgram.y" /* yacc.c:1645 */ + case 114: +#line 1539 "awkgram.y" /* yacc.c:1645 */ { /* * Returning the expression list instead of NULL lets @@ -3536,66 +3527,66 @@ regular_print: */ (yyval) = (yyvsp[-1]); } -#line 3540 "awkgram.c" /* yacc.c:1645 */ +#line 3531 "awkgram.c" /* yacc.c:1645 */ break; - case 116: -#line 1561 "awkgram.y" /* yacc.c:1645 */ + case 115: +#line 1547 "awkgram.y" /* yacc.c:1645 */ { /* Ditto */ (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0])); } -#line 3549 "awkgram.c" /* yacc.c:1645 */ +#line 3540 "awkgram.c" /* yacc.c:1645 */ break; - case 117: -#line 1566 "awkgram.y" /* yacc.c:1645 */ + case 116: +#line 1552 "awkgram.y" /* yacc.c:1645 */ { /* Ditto */ if ((yyvsp[-1]) != NULL) (yyvsp[-2])->lasti->comment = (yyvsp[-1]); (yyval) = (yyvsp[-2]); } -#line 3560 "awkgram.c" /* yacc.c:1645 */ +#line 3551 "awkgram.c" /* yacc.c:1645 */ break; - case 118: -#line 1576 "awkgram.y" /* yacc.c:1645 */ + case 117: +#line 1562 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 3566 "awkgram.c" /* yacc.c:1645 */ +#line 3557 "awkgram.c" /* yacc.c:1645 */ break; - case 119: -#line 1578 "awkgram.y" /* yacc.c:1645 */ + case 118: +#line 1564 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 3572 "awkgram.c" /* yacc.c:1645 */ +#line 3563 "awkgram.c" /* yacc.c:1645 */ break; - case 120: -#line 1583 "awkgram.y" /* yacc.c:1645 */ + case 119: +#line 1569 "awkgram.y" /* yacc.c:1645 */ { (yyval) = mk_expression_list(NULL, (yyvsp[0])); } -#line 3578 "awkgram.c" /* yacc.c:1645 */ +#line 3569 "awkgram.c" /* yacc.c:1645 */ break; - case 121: -#line 1585 "awkgram.y" /* yacc.c:1645 */ + case 120: +#line 1571 "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 3589 "awkgram.c" /* yacc.c:1645 */ +#line 3580 "awkgram.c" /* yacc.c:1645 */ break; - case 122: -#line 1592 "awkgram.y" /* yacc.c:1645 */ + case 121: +#line 1578 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 3595 "awkgram.c" /* yacc.c:1645 */ +#line 3586 "awkgram.c" /* yacc.c:1645 */ break; - case 123: -#line 1594 "awkgram.y" /* yacc.c:1645 */ + case 122: +#line 1580 "awkgram.y" /* yacc.c:1645 */ { /* * Returning the expression list instead of NULL lets @@ -3603,74 +3594,74 @@ regular_print: */ (yyval) = (yyvsp[-1]); } -#line 3607 "awkgram.c" /* yacc.c:1645 */ +#line 3598 "awkgram.c" /* yacc.c:1645 */ break; - case 124: -#line 1602 "awkgram.y" /* yacc.c:1645 */ + case 123: +#line 1588 "awkgram.y" /* yacc.c:1645 */ { /* Ditto */ (yyval) = mk_expression_list((yyvsp[-2]), (yyvsp[0])); } -#line 3616 "awkgram.c" /* yacc.c:1645 */ +#line 3607 "awkgram.c" /* yacc.c:1645 */ break; - case 125: -#line 1607 "awkgram.y" /* yacc.c:1645 */ + case 124: +#line 1593 "awkgram.y" /* yacc.c:1645 */ { /* Ditto */ if ((yyvsp[-1]) != NULL) (yyvsp[-2])->comment = (yyvsp[-1]); (yyval) = (yyvsp[-2]); } -#line 3627 "awkgram.c" /* yacc.c:1645 */ +#line 3618 "awkgram.c" /* yacc.c:1645 */ break; - case 126: -#line 1616 "awkgram.y" /* yacc.c:1645 */ + case 125: +#line 1602 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 3633 "awkgram.c" /* yacc.c:1645 */ +#line 3624 "awkgram.c" /* yacc.c:1645 */ break; - case 127: -#line 1617 "awkgram.y" /* yacc.c:1645 */ + case 126: +#line 1603 "awkgram.y" /* yacc.c:1645 */ { (yyval) = list_create((yyvsp[0])); } -#line 3639 "awkgram.c" /* yacc.c:1645 */ +#line 3630 "awkgram.c" /* yacc.c:1645 */ break; - case 128: -#line 1623 "awkgram.y" /* yacc.c:1645 */ + case 127: +#line 1609 "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 3650 "awkgram.c" /* yacc.c:1645 */ +#line 3641 "awkgram.c" /* yacc.c:1645 */ break; - case 129: -#line 1630 "awkgram.y" /* yacc.c:1645 */ + case 128: +#line 1616 "awkgram.y" /* yacc.c:1645 */ { (yyval) = mk_assignment((yyvsp[-2]), list_create((yyvsp[0])), (yyvsp[-1])); } -#line 3658 "awkgram.c" /* yacc.c:1645 */ +#line 3649 "awkgram.c" /* yacc.c:1645 */ break; - case 130: -#line 1634 "awkgram.y" /* yacc.c:1645 */ + case 129: +#line 1620 "awkgram.y" /* yacc.c:1645 */ { (yyval) = mk_boolean((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); } -#line 3664 "awkgram.c" /* yacc.c:1645 */ +#line 3655 "awkgram.c" /* yacc.c:1645 */ break; - case 131: -#line 1636 "awkgram.y" /* yacc.c:1645 */ + case 130: +#line 1622 "awkgram.y" /* yacc.c:1645 */ { (yyval) = mk_boolean((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); } -#line 3670 "awkgram.c" /* yacc.c:1645 */ +#line 3661 "awkgram.c" /* yacc.c:1645 */ break; - case 132: -#line 1638 "awkgram.y" /* yacc.c:1645 */ + case 131: +#line 1624 "awkgram.y" /* yacc.c:1645 */ { if ((yyvsp[-2])->lasti->opcode == Op_match_rec) warning_ln((yyvsp[-1])->source_line, @@ -3683,11 +3674,11 @@ regular_print: bcfree((yyvsp[0])); (yyval) = list_append((yyvsp[-2]), (yyvsp[-1])); } -#line 3687 "awkgram.c" /* yacc.c:1645 */ +#line 3678 "awkgram.c" /* yacc.c:1645 */ break; - case 133: -#line 1651 "awkgram.y" /* yacc.c:1645 */ + case 132: +#line 1637 "awkgram.y" /* yacc.c:1645 */ { if ((yyvsp[-2])->lasti->opcode == Op_match_rec) warning_ln((yyvsp[-1])->source_line, @@ -3704,11 +3695,11 @@ regular_print: (yyval) = list_append(list_merge((yyvsp[-2]), (yyvsp[0])), (yyvsp[-1])); } } -#line 3708 "awkgram.c" /* yacc.c:1645 */ +#line 3699 "awkgram.c" /* yacc.c:1645 */ break; - case 134: -#line 1668 "awkgram.y" /* yacc.c:1645 */ + case 133: +#line 1654 "awkgram.y" /* yacc.c:1645 */ { if (do_lint_old) warning_ln((yyvsp[-1])->source_line, @@ -3718,91 +3709,91 @@ regular_print: (yyvsp[-1])->expr_count = 1; (yyval) = list_append(list_merge((yyvsp[-2]), (yyvsp[0])), (yyvsp[-1])); } -#line 3722 "awkgram.c" /* yacc.c:1645 */ +#line 3713 "awkgram.c" /* yacc.c:1645 */ break; - case 135: -#line 1678 "awkgram.y" /* yacc.c:1645 */ + case 134: +#line 1664 "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 3733 "awkgram.c" /* yacc.c:1645 */ +#line 3724 "awkgram.c" /* yacc.c:1645 */ break; - case 136: -#line 1685 "awkgram.y" /* yacc.c:1645 */ + case 135: +#line 1671 "awkgram.y" /* yacc.c:1645 */ { (yyval) = mk_condition((yyvsp[-4]), (yyvsp[-3]), (yyvsp[-2]), (yyvsp[-1]), (yyvsp[0])); } -#line 3739 "awkgram.c" /* yacc.c:1645 */ +#line 3730 "awkgram.c" /* yacc.c:1645 */ break; - case 137: -#line 1687 "awkgram.y" /* yacc.c:1645 */ + case 136: +#line 1673 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 3745 "awkgram.c" /* yacc.c:1645 */ +#line 3736 "awkgram.c" /* yacc.c:1645 */ break; - case 138: -#line 1692 "awkgram.y" /* yacc.c:1645 */ + case 137: +#line 1678 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 3751 "awkgram.c" /* yacc.c:1645 */ +#line 3742 "awkgram.c" /* yacc.c:1645 */ break; - case 139: -#line 1694 "awkgram.y" /* yacc.c:1645 */ + case 138: +#line 1680 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 3757 "awkgram.c" /* yacc.c:1645 */ +#line 3748 "awkgram.c" /* yacc.c:1645 */ break; - case 140: -#line 1696 "awkgram.y" /* yacc.c:1645 */ + case 139: +#line 1682 "awkgram.y" /* yacc.c:1645 */ { (yyvsp[0])->opcode = Op_assign_quotient; (yyval) = (yyvsp[0]); } -#line 3766 "awkgram.c" /* yacc.c:1645 */ +#line 3757 "awkgram.c" /* yacc.c:1645 */ + break; + + case 140: +#line 1690 "awkgram.y" /* yacc.c:1645 */ + { (yyval) = (yyvsp[0]); } +#line 3763 "awkgram.c" /* yacc.c:1645 */ break; case 141: -#line 1704 "awkgram.y" /* yacc.c:1645 */ +#line 1692 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 3772 "awkgram.c" /* yacc.c:1645 */ +#line 3769 "awkgram.c" /* yacc.c:1645 */ break; case 142: -#line 1706 "awkgram.y" /* yacc.c:1645 */ +#line 1697 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 3778 "awkgram.c" /* yacc.c:1645 */ +#line 3775 "awkgram.c" /* yacc.c:1645 */ break; case 143: -#line 1711 "awkgram.y" /* yacc.c:1645 */ +#line 1699 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 3784 "awkgram.c" /* yacc.c:1645 */ +#line 3781 "awkgram.c" /* yacc.c:1645 */ break; case 144: -#line 1713 "awkgram.y" /* yacc.c:1645 */ +#line 1704 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 3790 "awkgram.c" /* yacc.c:1645 */ +#line 3787 "awkgram.c" /* yacc.c:1645 */ break; case 145: -#line 1718 "awkgram.y" /* yacc.c:1645 */ +#line 1706 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 3796 "awkgram.c" /* yacc.c:1645 */ +#line 3793 "awkgram.c" /* yacc.c:1645 */ break; case 146: -#line 1720 "awkgram.y" /* yacc.c:1645 */ - { (yyval) = (yyvsp[0]); } -#line 3802 "awkgram.c" /* yacc.c:1645 */ - break; - - case 147: -#line 1722 "awkgram.y" /* yacc.c:1645 */ +#line 1708 "awkgram.y" /* yacc.c:1645 */ { int count = 2; bool is_simple_var = false; @@ -3856,47 +3847,47 @@ regular_print: max_args = count; } } -#line 3860 "awkgram.c" /* yacc.c:1645 */ +#line 3851 "awkgram.c" /* yacc.c:1645 */ + break; + + case 148: +#line 1767 "awkgram.y" /* yacc.c:1645 */ + { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); } +#line 3857 "awkgram.c" /* yacc.c:1645 */ break; case 149: -#line 1781 "awkgram.y" /* yacc.c:1645 */ +#line 1769 "awkgram.y" /* yacc.c:1645 */ { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); } -#line 3866 "awkgram.c" /* yacc.c:1645 */ +#line 3863 "awkgram.c" /* yacc.c:1645 */ break; case 150: -#line 1783 "awkgram.y" /* yacc.c:1645 */ +#line 1771 "awkgram.y" /* yacc.c:1645 */ { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); } -#line 3872 "awkgram.c" /* yacc.c:1645 */ +#line 3869 "awkgram.c" /* yacc.c:1645 */ break; case 151: -#line 1785 "awkgram.y" /* yacc.c:1645 */ +#line 1773 "awkgram.y" /* yacc.c:1645 */ { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); } -#line 3878 "awkgram.c" /* yacc.c:1645 */ +#line 3875 "awkgram.c" /* yacc.c:1645 */ break; case 152: -#line 1787 "awkgram.y" /* yacc.c:1645 */ +#line 1775 "awkgram.y" /* yacc.c:1645 */ { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); } -#line 3884 "awkgram.c" /* yacc.c:1645 */ +#line 3881 "awkgram.c" /* yacc.c:1645 */ break; case 153: -#line 1789 "awkgram.y" /* yacc.c:1645 */ +#line 1777 "awkgram.y" /* yacc.c:1645 */ { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); } -#line 3890 "awkgram.c" /* yacc.c:1645 */ +#line 3887 "awkgram.c" /* yacc.c:1645 */ break; case 154: -#line 1791 "awkgram.y" /* yacc.c:1645 */ - { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); } -#line 3896 "awkgram.c" /* yacc.c:1645 */ - break; - - case 155: -#line 1793 "awkgram.y" /* yacc.c:1645 */ +#line 1779 "awkgram.y" /* yacc.c:1645 */ { /* * In BEGINFILE/ENDFILE, allow `getline [var] < file' @@ -3910,29 +3901,29 @@ regular_print: _("non-redirected `getline' undefined inside END action")); (yyval) = mk_getline((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]), redirect_input); } -#line 3914 "awkgram.c" /* yacc.c:1645 */ +#line 3905 "awkgram.c" /* yacc.c:1645 */ break; - case 156: -#line 1807 "awkgram.y" /* yacc.c:1645 */ + case 155: +#line 1793 "awkgram.y" /* yacc.c:1645 */ { (yyvsp[0])->opcode = Op_postincrement; (yyval) = mk_assignment((yyvsp[-1]), NULL, (yyvsp[0])); } -#line 3923 "awkgram.c" /* yacc.c:1645 */ +#line 3914 "awkgram.c" /* yacc.c:1645 */ break; - case 157: -#line 1812 "awkgram.y" /* yacc.c:1645 */ + case 156: +#line 1798 "awkgram.y" /* yacc.c:1645 */ { (yyvsp[0])->opcode = Op_postdecrement; (yyval) = mk_assignment((yyvsp[-1]), NULL, (yyvsp[0])); } -#line 3932 "awkgram.c" /* yacc.c:1645 */ +#line 3923 "awkgram.c" /* yacc.c:1645 */ break; - case 158: -#line 1817 "awkgram.y" /* yacc.c:1645 */ + case 157: +#line 1803 "awkgram.y" /* yacc.c:1645 */ { if (do_lint_old) { warning_ln((yyvsp[-1])->source_line, @@ -3952,64 +3943,64 @@ regular_print: (yyval) = list_append(list_merge(t, (yyvsp[0])), (yyvsp[-1])); } } -#line 3956 "awkgram.c" /* yacc.c:1645 */ +#line 3947 "awkgram.c" /* yacc.c:1645 */ break; - case 159: -#line 1842 "awkgram.y" /* yacc.c:1645 */ + case 158: +#line 1828 "awkgram.y" /* yacc.c:1645 */ { (yyval) = mk_getline((yyvsp[-1]), (yyvsp[0]), (yyvsp[-3]), (yyvsp[-2])->redir_type); bcfree((yyvsp[-2])); } -#line 3965 "awkgram.c" /* yacc.c:1645 */ +#line 3956 "awkgram.c" /* yacc.c:1645 */ + break; + + case 159: +#line 1834 "awkgram.y" /* yacc.c:1645 */ + { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); } +#line 3962 "awkgram.c" /* yacc.c:1645 */ break; case 160: -#line 1848 "awkgram.y" /* yacc.c:1645 */ +#line 1836 "awkgram.y" /* yacc.c:1645 */ { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); } -#line 3971 "awkgram.c" /* yacc.c:1645 */ +#line 3968 "awkgram.c" /* yacc.c:1645 */ break; case 161: -#line 1850 "awkgram.y" /* yacc.c:1645 */ +#line 1838 "awkgram.y" /* yacc.c:1645 */ { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); } -#line 3977 "awkgram.c" /* yacc.c:1645 */ +#line 3974 "awkgram.c" /* yacc.c:1645 */ break; case 162: -#line 1852 "awkgram.y" /* yacc.c:1645 */ +#line 1840 "awkgram.y" /* yacc.c:1645 */ { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); } -#line 3983 "awkgram.c" /* yacc.c:1645 */ +#line 3980 "awkgram.c" /* yacc.c:1645 */ break; case 163: -#line 1854 "awkgram.y" /* yacc.c:1645 */ +#line 1842 "awkgram.y" /* yacc.c:1645 */ { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); } -#line 3989 "awkgram.c" /* yacc.c:1645 */ +#line 3986 "awkgram.c" /* yacc.c:1645 */ break; case 164: -#line 1856 "awkgram.y" /* yacc.c:1645 */ +#line 1844 "awkgram.y" /* yacc.c:1645 */ { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); } -#line 3995 "awkgram.c" /* yacc.c:1645 */ +#line 3992 "awkgram.c" /* yacc.c:1645 */ break; case 165: -#line 1858 "awkgram.y" /* yacc.c:1645 */ - { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); } -#line 4001 "awkgram.c" /* yacc.c:1645 */ - break; - - case 166: -#line 1863 "awkgram.y" /* yacc.c:1645 */ +#line 1849 "awkgram.y" /* yacc.c:1645 */ { (yyval) = list_create((yyvsp[0])); } -#line 4009 "awkgram.c" /* yacc.c:1645 */ +#line 4000 "awkgram.c" /* yacc.c:1645 */ break; - case 167: -#line 1867 "awkgram.y" /* yacc.c:1645 */ + case 166: +#line 1853 "awkgram.y" /* yacc.c:1645 */ { if ((yyvsp[0])->opcode == Op_match_rec) { (yyvsp[0])->opcode = Op_nomatch; @@ -4041,11 +4032,11 @@ regular_print: } } } -#line 4045 "awkgram.c" /* yacc.c:1645 */ +#line 4036 "awkgram.c" /* yacc.c:1645 */ break; - case 168: -#line 1899 "awkgram.y" /* yacc.c:1645 */ + case 167: +#line 1885 "awkgram.y" /* yacc.c:1645 */ { // Always include. Allows us to lint warn on // print "foo" > "bar" 1 @@ -4053,31 +4044,31 @@ regular_print: // print "foo" > ("bar" 1) (yyval) = list_append((yyvsp[-1]), bcalloc(Op_parens, 1, sourceline)); } -#line 4057 "awkgram.c" /* yacc.c:1645 */ +#line 4048 "awkgram.c" /* yacc.c:1645 */ break; - case 169: -#line 1907 "awkgram.y" /* yacc.c:1645 */ + case 168: +#line 1893 "awkgram.y" /* yacc.c:1645 */ { (yyval) = snode((yyvsp[-1]), (yyvsp[-3])); if ((yyval) == NULL) YYABORT; } -#line 4067 "awkgram.c" /* yacc.c:1645 */ +#line 4058 "awkgram.c" /* yacc.c:1645 */ break; - case 170: -#line 1913 "awkgram.y" /* yacc.c:1645 */ + case 169: +#line 1899 "awkgram.y" /* yacc.c:1645 */ { (yyval) = snode((yyvsp[-1]), (yyvsp[-3])); if ((yyval) == NULL) YYABORT; } -#line 4077 "awkgram.c" /* yacc.c:1645 */ +#line 4068 "awkgram.c" /* yacc.c:1645 */ break; - case 171: -#line 1919 "awkgram.y" /* yacc.c:1645 */ + case 170: +#line 1905 "awkgram.y" /* yacc.c:1645 */ { static bool warned = false; @@ -4090,45 +4081,45 @@ regular_print: if ((yyval) == NULL) YYABORT; } -#line 4094 "awkgram.c" /* yacc.c:1645 */ +#line 4085 "awkgram.c" /* yacc.c:1645 */ break; - case 174: -#line 1934 "awkgram.y" /* yacc.c:1645 */ + case 173: +#line 1920 "awkgram.y" /* yacc.c:1645 */ { (yyvsp[-1])->opcode = Op_preincrement; (yyval) = mk_assignment((yyvsp[0]), NULL, (yyvsp[-1])); } -#line 4103 "awkgram.c" /* yacc.c:1645 */ +#line 4094 "awkgram.c" /* yacc.c:1645 */ break; - case 175: -#line 1939 "awkgram.y" /* yacc.c:1645 */ + case 174: +#line 1925 "awkgram.y" /* yacc.c:1645 */ { (yyvsp[-1])->opcode = Op_predecrement; (yyval) = mk_assignment((yyvsp[0]), NULL, (yyvsp[-1])); } -#line 4112 "awkgram.c" /* yacc.c:1645 */ +#line 4103 "awkgram.c" /* yacc.c:1645 */ break; - case 176: -#line 1944 "awkgram.y" /* yacc.c:1645 */ + case 175: +#line 1930 "awkgram.y" /* yacc.c:1645 */ { (yyval) = list_create((yyvsp[0])); } -#line 4120 "awkgram.c" /* yacc.c:1645 */ +#line 4111 "awkgram.c" /* yacc.c:1645 */ break; - case 177: -#line 1948 "awkgram.y" /* yacc.c:1645 */ + case 176: +#line 1934 "awkgram.y" /* yacc.c:1645 */ { (yyval) = list_create((yyvsp[0])); } -#line 4128 "awkgram.c" /* yacc.c:1645 */ +#line 4119 "awkgram.c" /* yacc.c:1645 */ break; - case 178: -#line 1952 "awkgram.y" /* yacc.c:1645 */ + case 177: +#line 1938 "awkgram.y" /* yacc.c:1645 */ { if ((yyvsp[0])->lasti->opcode == Op_push_i && ((yyvsp[0])->lasti->memory->flags & STRING) == 0 @@ -4143,11 +4134,11 @@ regular_print: (yyval) = list_append((yyvsp[0]), (yyvsp[-1])); } } -#line 4147 "awkgram.c" /* yacc.c:1645 */ +#line 4138 "awkgram.c" /* yacc.c:1645 */ break; - case 179: -#line 1967 "awkgram.y" /* yacc.c:1645 */ + case 178: +#line 1953 "awkgram.y" /* yacc.c:1645 */ { if ((yyvsp[0])->lasti->opcode == Op_push_i && ((yyvsp[0])->lasti->memory->flags & STRING) == 0 @@ -4165,20 +4156,20 @@ regular_print: (yyval) = list_append((yyvsp[0]), (yyvsp[-1])); } } -#line 4169 "awkgram.c" /* yacc.c:1645 */ +#line 4160 "awkgram.c" /* yacc.c:1645 */ break; - case 180: -#line 1988 "awkgram.y" /* yacc.c:1645 */ + case 179: +#line 1974 "awkgram.y" /* yacc.c:1645 */ { func_use((yyvsp[0])->lasti->func_name, FUNC_USE); (yyval) = (yyvsp[0]); } -#line 4178 "awkgram.c" /* yacc.c:1645 */ +#line 4169 "awkgram.c" /* yacc.c:1645 */ break; - case 181: -#line 1993 "awkgram.y" /* yacc.c:1645 */ + case 180: +#line 1979 "awkgram.y" /* yacc.c:1645 */ { /* indirect function call */ INSTRUCTION *f, *t; @@ -4212,11 +4203,11 @@ regular_print: (yyval) = list_prepend((yyvsp[0]), t); at_seen = false; } -#line 4216 "awkgram.c" /* yacc.c:1645 */ +#line 4207 "awkgram.c" /* yacc.c:1645 */ break; - case 182: -#line 2030 "awkgram.y" /* yacc.c:1645 */ + case 181: +#line 2016 "awkgram.y" /* yacc.c:1645 */ { NODE *n; char *name = (yyvsp[-3])->func_name; @@ -4249,49 +4240,49 @@ regular_print: (yyval) = list_append(t, (yyvsp[-3])); } } -#line 4253 "awkgram.c" /* yacc.c:1645 */ +#line 4244 "awkgram.c" /* yacc.c:1645 */ break; - case 183: -#line 2066 "awkgram.y" /* yacc.c:1645 */ + case 182: +#line 2052 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 4259 "awkgram.c" /* yacc.c:1645 */ +#line 4250 "awkgram.c" /* yacc.c:1645 */ break; - case 184: -#line 2068 "awkgram.y" /* yacc.c:1645 */ + case 183: +#line 2054 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 4265 "awkgram.c" /* yacc.c:1645 */ +#line 4256 "awkgram.c" /* yacc.c:1645 */ break; - case 185: -#line 2073 "awkgram.y" /* yacc.c:1645 */ + case 184: +#line 2059 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 4271 "awkgram.c" /* yacc.c:1645 */ +#line 4262 "awkgram.c" /* yacc.c:1645 */ break; - case 186: -#line 2075 "awkgram.y" /* yacc.c:1645 */ + case 185: +#line 2061 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[-1]); } -#line 4277 "awkgram.c" /* yacc.c:1645 */ +#line 4268 "awkgram.c" /* yacc.c:1645 */ break; - case 187: -#line 2080 "awkgram.y" /* yacc.c:1645 */ + case 186: +#line 2066 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 4283 "awkgram.c" /* yacc.c:1645 */ +#line 4274 "awkgram.c" /* yacc.c:1645 */ break; - case 188: -#line 2082 "awkgram.y" /* yacc.c:1645 */ + case 187: +#line 2068 "awkgram.y" /* yacc.c:1645 */ { (yyval) = list_merge((yyvsp[-1]), (yyvsp[0])); } -#line 4291 "awkgram.c" /* yacc.c:1645 */ +#line 4282 "awkgram.c" /* yacc.c:1645 */ break; - case 189: -#line 2089 "awkgram.y" /* yacc.c:1645 */ + case 188: +#line 2075 "awkgram.y" /* yacc.c:1645 */ { INSTRUCTION *ip = (yyvsp[0])->lasti; int count = ip->sub_count; /* # of SUBSEP-seperated expressions */ @@ -4305,11 +4296,11 @@ regular_print: sub_counter++; /* count # of dimensions */ (yyval) = (yyvsp[0]); } -#line 4309 "awkgram.c" /* yacc.c:1645 */ +#line 4300 "awkgram.c" /* yacc.c:1645 */ break; - case 190: -#line 2106 "awkgram.y" /* yacc.c:1645 */ + case 189: +#line 2092 "awkgram.y" /* yacc.c:1645 */ { INSTRUCTION *t = (yyvsp[-1]); if ((yyvsp[-1]) == NULL) { @@ -4323,41 +4314,41 @@ regular_print: (yyvsp[0])->sub_count = count_expressions(&t, false); (yyval) = list_append(t, (yyvsp[0])); } -#line 4327 "awkgram.c" /* yacc.c:1645 */ +#line 4318 "awkgram.c" /* yacc.c:1645 */ break; - case 191: -#line 2123 "awkgram.y" /* yacc.c:1645 */ + case 190: +#line 2109 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 4333 "awkgram.c" /* yacc.c:1645 */ +#line 4324 "awkgram.c" /* yacc.c:1645 */ break; - case 192: -#line 2125 "awkgram.y" /* yacc.c:1645 */ + case 191: +#line 2111 "awkgram.y" /* yacc.c:1645 */ { (yyval) = list_merge((yyvsp[-1]), (yyvsp[0])); } -#line 4341 "awkgram.c" /* yacc.c:1645 */ +#line 4332 "awkgram.c" /* yacc.c:1645 */ break; - case 193: -#line 2132 "awkgram.y" /* yacc.c:1645 */ + case 192: +#line 2118 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[-1]); } -#line 4347 "awkgram.c" /* yacc.c:1645 */ +#line 4338 "awkgram.c" /* yacc.c:1645 */ break; - case 194: -#line 2137 "awkgram.y" /* yacc.c:1645 */ + case 193: +#line 2123 "awkgram.y" /* yacc.c:1645 */ { (yyvsp[0])->opcode = Op_push; (yyvsp[0])->memory = variable((yyvsp[0])->source_line, (yyvsp[0])->lextok, Node_var_new); (yyval) = list_create((yyvsp[0])); } -#line 4357 "awkgram.c" /* yacc.c:1645 */ +#line 4348 "awkgram.c" /* yacc.c:1645 */ break; - case 195: -#line 2143 "awkgram.y" /* yacc.c:1645 */ + case 194: +#line 2129 "awkgram.y" /* yacc.c:1645 */ { char *arr = (yyvsp[-1])->lextok; @@ -4365,11 +4356,11 @@ regular_print: (yyvsp[-1])->opcode = Op_push_array; (yyval) = list_prepend((yyvsp[0]), (yyvsp[-1])); } -#line 4369 "awkgram.c" /* yacc.c:1645 */ +#line 4360 "awkgram.c" /* yacc.c:1645 */ break; - case 196: -#line 2154 "awkgram.y" /* yacc.c:1645 */ + case 195: +#line 2140 "awkgram.y" /* yacc.c:1645 */ { INSTRUCTION *ip = (yyvsp[0])->nexti; if (ip->opcode == Op_push @@ -4381,85 +4372,85 @@ regular_print: } else (yyval) = (yyvsp[0]); } -#line 4385 "awkgram.c" /* yacc.c:1645 */ +#line 4376 "awkgram.c" /* yacc.c:1645 */ break; - case 197: -#line 2166 "awkgram.y" /* yacc.c:1645 */ + case 196: +#line 2152 "awkgram.y" /* yacc.c:1645 */ { (yyval) = list_append((yyvsp[-1]), (yyvsp[-2])); if ((yyvsp[0]) != NULL) mk_assignment((yyvsp[-1]), NULL, (yyvsp[0])); } -#line 4395 "awkgram.c" /* yacc.c:1645 */ +#line 4386 "awkgram.c" /* yacc.c:1645 */ break; - case 198: -#line 2175 "awkgram.y" /* yacc.c:1645 */ + case 197: +#line 2161 "awkgram.y" /* yacc.c:1645 */ { (yyvsp[0])->opcode = Op_postincrement; } -#line 4403 "awkgram.c" /* yacc.c:1645 */ +#line 4394 "awkgram.c" /* yacc.c:1645 */ break; - case 199: -#line 2179 "awkgram.y" /* yacc.c:1645 */ + case 198: +#line 2165 "awkgram.y" /* yacc.c:1645 */ { (yyvsp[0])->opcode = Op_postdecrement; } -#line 4411 "awkgram.c" /* yacc.c:1645 */ +#line 4402 "awkgram.c" /* yacc.c:1645 */ break; - case 200: -#line 2183 "awkgram.y" /* yacc.c:1645 */ + case 199: +#line 2169 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 4417 "awkgram.c" /* yacc.c:1645 */ +#line 4408 "awkgram.c" /* yacc.c:1645 */ break; - case 201: -#line 2187 "awkgram.y" /* yacc.c:1645 */ + case 200: +#line 2173 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); } -#line 4423 "awkgram.c" /* yacc.c:1645 */ +#line 4414 "awkgram.c" /* yacc.c:1645 */ break; - case 202: -#line 2191 "awkgram.y" /* yacc.c:1645 */ + case 201: +#line 2177 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); yyerrok; } -#line 4429 "awkgram.c" /* yacc.c:1645 */ +#line 4420 "awkgram.c" /* yacc.c:1645 */ break; - case 203: -#line 2195 "awkgram.y" /* yacc.c:1645 */ + case 202: +#line 2181 "awkgram.y" /* yacc.c:1645 */ { yyerrok; } -#line 4435 "awkgram.c" /* yacc.c:1645 */ +#line 4426 "awkgram.c" /* yacc.c:1645 */ break; - case 204: -#line 2200 "awkgram.y" /* yacc.c:1645 */ + case 203: +#line 2186 "awkgram.y" /* yacc.c:1645 */ { (yyval) = NULL; } -#line 4441 "awkgram.c" /* yacc.c:1645 */ +#line 4432 "awkgram.c" /* yacc.c:1645 */ break; - case 206: -#line 2205 "awkgram.y" /* yacc.c:1645 */ + case 205: +#line 2191 "awkgram.y" /* yacc.c:1645 */ { yyerrok; } -#line 4447 "awkgram.c" /* yacc.c:1645 */ +#line 4438 "awkgram.c" /* yacc.c:1645 */ break; - case 207: -#line 2209 "awkgram.y" /* yacc.c:1645 */ + case 206: +#line 2195 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); yyerrok; } -#line 4453 "awkgram.c" /* yacc.c:1645 */ +#line 4444 "awkgram.c" /* yacc.c:1645 */ break; - case 208: -#line 2213 "awkgram.y" /* yacc.c:1645 */ + case 207: +#line 2199 "awkgram.y" /* yacc.c:1645 */ { (yyval) = (yyvsp[0]); yyerrok; } -#line 4459 "awkgram.c" /* yacc.c:1645 */ +#line 4450 "awkgram.c" /* yacc.c:1645 */ break; -#line 4463 "awkgram.c" /* yacc.c:1645 */ +#line 4454 "awkgram.c" /* yacc.c:1645 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -4686,7 +4677,7 @@ yyreturn: #endif return yyresult; } -#line 2215 "awkgram.y" /* yacc.c:1903 */ +#line 2201 "awkgram.y" /* yacc.c:1903 */ struct token { @@ -6948,7 +6939,11 @@ make_instruction: return lasttok = class; } out: - tokkey = estrdup(tokstart, tok - tokstart - 1); + if (want_param_names == FUNC_HEADER) + tokkey = estrdup(tokstart, tok - tokstart - 1); + else + tokkey = qualify_name(tokstart, tok - tokstart - 1); + if (*lexptr == '(') { yylval = bcalloc(Op_token, 2, sourceline); yylval->lextok = tokkey; @@ -9323,11 +9318,11 @@ static char * qualify_name(const char *name, size_t len) { if (strchr(name, ':') != NULL) // already qualified - return (char *) name; + return estrdup(name, len); NODE *p = lookup(name); if (p != NULL && p->type == Node_param_list) - return (char *) name; + return estrdup(name, len); if (current_namespace != awk_namespace && ! is_all_upper(name)) { size_t length = strlen(current_namespace) + 2 + len + 1; @@ -9339,5 +9334,5 @@ qualify_name(const char *name, size_t len) return buf; } - return (char *) name; + return estrdup(name, len); } @@ -465,22 +465,8 @@ action } ; -qualified_name - : NAME - { - const char *name = $1->lextok; - char *qname = qualify_name(name, strlen(name)); - - if (qname != name) { - efree((void *)name); - $1->lextok = qname; - } - $$ = $1; - } - ; - func_name - : qualified_name + : NAME | FUNC_CALL { const char *name = $1->lextok; @@ -863,7 +849,7 @@ statement /* else $1 and $4 are NULLs */ } - | LEX_FOR '(' qualified_name LEX_IN simple_variable r_paren opt_nls statement + | LEX_FOR '(' NAME LEX_IN simple_variable r_paren opt_nls statement { INSTRUCTION *ip; char *var_name = $3->lextok; @@ -1232,7 +1218,7 @@ regular_print: } } - | LEX_DELETE qualified_name { sub_counter = 0; } delete_subscript_list + | LEX_DELETE NAME { sub_counter = 0; } delete_subscript_list { char *arr = $2->lextok; @@ -1265,7 +1251,7 @@ regular_print: $$ = list_append(list_append($4, $2), $1); } } - | LEX_DELETE '(' qualified_name ')' + | LEX_DELETE '(' NAME ')' /* * this is for tawk compatibility. maybe the warnings * should always be done. @@ -2133,13 +2119,13 @@ subscript_list ; simple_variable - : qualified_name + : NAME { $1->opcode = Op_push; $1->memory = variable($1->source_line, $1->lextok, Node_var_new); $$ = list_create($1); } - | qualified_name subscript_list + | NAME subscript_list { char *arr = $1->lextok; @@ -4473,7 +4459,11 @@ make_instruction: return lasttok = class; } out: - tokkey = estrdup(tokstart, tok - tokstart - 1); + if (want_param_names == FUNC_HEADER) + tokkey = estrdup(tokstart, tok - tokstart - 1); + else + tokkey = qualify_name(tokstart, tok - tokstart - 1); + if (*lexptr == '(') { yylval = bcalloc(Op_token, 2, sourceline); yylval->lextok = tokkey; @@ -6848,11 +6838,11 @@ static char * qualify_name(const char *name, size_t len) { if (strchr(name, ':') != NULL) // already qualified - return (char *) name; + return estrdup(name, len); NODE *p = lookup(name); if (p != NULL && p->type == Node_param_list) - return (char *) name; + return estrdup(name, len); if (current_namespace != awk_namespace && ! is_all_upper(name)) { size_t length = strlen(current_namespace) + 2 + len + 1; @@ -6864,5 +6854,5 @@ qualify_name(const char *name, size_t len) return buf; } - return (char *) name; + return estrdup(name, len); } |