rubinius-melbourne 2.2.1.0 → 2.2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ea1fafe0b2d0e0ddb2bd6b2e08516067d1fbeef2
4
- data.tar.gz: 6bf31d7999d5b62917fc797c05d0bb16b1b779d4
3
+ metadata.gz: ba4c017c57885cec1212ad04403b47343bdf8490
4
+ data.tar.gz: e3387799366025acba4b8af8a89ad076627dd1e9
5
5
  SHA512:
6
- metadata.gz: abece0d51b70e70ea64c43f656a0632da71d72f96244659a2a07a93d08a229e584ca75e3d94b9d6c4fb2ce70cf552baf487feba175896fdf66f1a6ff1a262965
7
- data.tar.gz: 5585aa58534990f9affa776fa5bf5015461c8197b2660685d92f4b578d6599c24a156f29bcb02fcee22f357e5179c4efa58cca60f28ee3cdcb832df542c242a4
6
+ metadata.gz: 1a4310ce6107ff36f49ef42c5abbf7f9e7e20567e6ff48ecfe59d311226269a7ea63a4c8d1761825a98e2a5bda9618e02bdf5349a0f3ff5000c7c04e1285b526
7
+ data.tar.gz: a798063f95c28ab65f487a3fb79746b4038a1da258f5bb5caee6bf6af162416993a3510b22c48b23a8dd089c94a74caa4c78dc73ab03909bf6dd666eb8fea277
@@ -312,7 +312,6 @@
312
312
 
313
313
  #include "namespace.h"
314
314
  #include "melbourne.hpp"
315
- #include "missing.hpp"
316
315
  #include "grammar.hpp"
317
316
  #include "parser_state.hpp"
318
317
  #include "visitor.hpp"
@@ -734,7 +733,7 @@ static int scan_hex(const char *start, size_t len, size_t *retlen);
734
733
 
735
734
  #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
736
735
  typedef union YYSTYPE
737
- #line 428 "grammar.y"
736
+ #line 427 "grammar.y"
738
737
  {
739
738
  VALUE val;
740
739
  NODE *node;
@@ -743,7 +742,7 @@ typedef union YYSTYPE
743
742
  const struct vtable* vars;
744
743
  }
745
744
  /* Line 193 of yacc.c. */
746
- #line 747 "grammar.cpp"
745
+ #line 746 "grammar.cpp"
747
746
  YYSTYPE;
748
747
  # define yystype YYSTYPE /* obsolescent; will be withdrawn */
749
748
  # define YYSTYPE_IS_DECLARED 1
@@ -756,7 +755,7 @@ typedef union YYSTYPE
756
755
 
757
756
 
758
757
  /* Line 216 of yacc.c. */
759
- #line 760 "grammar.cpp"
758
+ #line 759 "grammar.cpp"
760
759
 
761
760
  #ifdef short
762
761
  # undef short
@@ -1300,69 +1299,69 @@ static const yytype_int16 yyrhs[] =
1300
1299
  /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
1301
1300
  static const yytype_uint16 yyrline[] =
1302
1301
  {
1303
- 0, 579, 579, 579, 604, 611, 615, 619, 623, 629,
1304
- 631, 630, 642, 665, 672, 676, 680, 684, 690, 695,
1305
- 694, 704, 704, 708, 712, 719, 724, 728, 733, 738,
1306
- 746, 754, 759, 768, 769, 775, 780, 797, 802, 807,
1307
- 812, 817, 822, 827, 832, 835, 840, 847, 848, 852,
1308
- 856, 860, 864, 867, 875, 876, 879, 880, 887, 886,
1309
- 901, 908, 913, 921, 926, 933, 938, 945, 950, 955,
1310
- 959, 963, 969, 970, 976, 977, 983, 987, 991, 995,
1311
- 999, 1003, 1007, 1011, 1015, 1019, 1025, 1026, 1032, 1036,
1312
- 1042, 1046, 1052, 1056, 1060, 1064, 1068, 1072, 1076, 1082,
1313
- 1088, 1095, 1100, 1105, 1109, 1113, 1117, 1121, 1127, 1133,
1314
- 1140, 1144, 1147, 1151, 1155, 1161, 1162, 1163, 1164, 1169,
1315
- 1176, 1177, 1180, 1184, 1187, 1191, 1191, 1197, 1198, 1199,
1316
- 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209,
1317
- 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219,
1318
- 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1229, 1229, 1229,
1319
- 1230, 1230, 1231, 1231, 1231, 1232, 1232, 1232, 1232, 1233,
1320
- 1233, 1233, 1233, 1234, 1234, 1234, 1235, 1235, 1235, 1235,
1321
- 1236, 1236, 1236, 1236, 1237, 1237, 1237, 1237, 1238, 1238,
1322
- 1238, 1238, 1239, 1239, 1239, 1239, 1240, 1240, 1243, 1248,
1323
- 1254, 1259, 1265, 1286, 1291, 1296, 1301, 1306, 1311, 1316,
1324
- 1322, 1328, 1332, 1336, 1340, 1344, 1348, 1352, 1356, 1360,
1325
- 1364, 1368, 1372, 1376, 1380, 1384, 1388, 1392, 1396, 1400,
1326
- 1404, 1408, 1418, 1422, 1426, 1430, 1434, 1438, 1442, 1446,
1327
- 1446, 1451, 1457, 1463, 1471, 1472, 1476, 1480, 1486, 1492,
1328
- 1493, 1496, 1497, 1498, 1502, 1506, 1512, 1517, 1521, 1526,
1329
- 1531, 1534, 1534, 1546, 1552, 1556, 1562, 1566, 1570, 1579,
1330
- 1590, 1591, 1594, 1603, 1612, 1618, 1619, 1620, 1621, 1622,
1331
- 1623, 1624, 1625, 1626, 1627, 1628, 1633, 1632, 1652, 1652,
1332
- 1656, 1656, 1660, 1664, 1668, 1672, 1680, 1684, 1688, 1692,
1333
- 1696, 1700, 1700, 1705, 1709, 1713, 1719, 1720, 1727, 1731,
1334
- 1739, 1747, 1747, 1747, 1754, 1754, 1754, 1761, 1768, 1773,
1335
- 1775, 1772, 1792, 1791, 1808, 1813, 1807, 1830, 1829, 1846,
1336
- 1845, 1863, 1864, 1863, 1879, 1883, 1887, 1891, 1897, 1905,
1337
- 1911, 1917, 1923, 1929, 1935, 1941, 1947, 1953, 1959, 1966,
1338
- 1972, 1973, 1974, 1977, 1978, 1981, 1982, 1991, 1992, 1998,
1339
- 1999, 2002, 2006, 2012, 2016, 2022, 2026, 2031, 2036, 2040,
1340
- 2044, 2049, 2054, 2058, 2064, 2068, 2072, 2076, 2082, 2087,
1341
- 2092, 2096, 2100, 2104, 2108, 2112, 2116, 2120, 2124, 2128,
1342
- 2132, 2136, 2140, 2144, 2148, 2154, 2155, 2161, 2166, 2170,
1343
- 2177, 2181, 2188, 2193, 2200, 2206, 2212, 2215, 2220, 2212,
1344
- 2232, 2236, 2242, 2246, 2253, 2252, 2267, 2278, 2282, 2289,
1345
- 2298, 2305, 2304, 2314, 2313, 2322, 2327, 2326, 2336, 2335,
1346
- 2344, 2348, 2352, 2364, 2363, 2376, 2375, 2389, 2397, 2398,
1347
- 2401, 2413, 2416, 2420, 2424, 2427, 2431, 2434, 2438, 2441,
1348
- 2442, 2446, 2449, 2461, 2462, 2463, 2469, 2475, 2497, 2557,
1349
- 2561, 2568, 2571, 2577, 2578, 2584, 2588, 2595, 2598, 2606,
1350
- 2610, 2616, 2620, 2627, 2630, 2637, 2640, 2651, 2654, 2661,
1351
- 2664, 2671, 2674, 2697, 2699, 2698, 2710, 2716, 2721, 2709,
1352
- 2737, 2738, 2739, 2740, 2743, 2750, 2751, 2752, 2753, 2756,
1353
- 2782, 2783, 2789, 2790, 2791, 2792, 2795, 2796, 2797, 2798,
1354
- 2799, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2811, 2817,
1355
- 2825, 2829, 2835, 2836, 2839, 2844, 2843, 2852, 2859, 2865,
1356
- 2873, 2877, 2881, 2885, 2891, 2896, 2901, 2905, 2909, 2913,
1357
- 2917, 2921, 2925, 2929, 2933, 2937, 2941, 2945, 2949, 2953,
1358
- 2958, 2964, 2969, 2974, 2979, 2986, 2987, 2994, 2999, 3009,
1359
- 3010, 3018, 3025, 3030, 3037, 3042, 3049, 3053, 3064, 3068,
1360
- 3079, 3080, 3083, 3088, 3094, 3102, 3110, 3114, 3125, 3129,
1361
- 3140, 3141, 3144, 3152, 3159, 3160, 3163, 3174, 3178, 3184,
1362
- 3190, 3190, 3214, 3215, 3221, 3222, 3228, 3232, 3236, 3242,
1363
- 3243, 3244, 3247, 3248, 3249, 3250, 3253, 3254, 3255, 3258,
1364
- 3259, 3262, 3263, 3266, 3267, 3270, 3273, 3276, 3277, 3278,
1365
- 3281, 3282, 3285, 3286, 3289
1302
+ 0, 578, 578, 578, 603, 610, 614, 618, 622, 628,
1303
+ 630, 629, 641, 664, 671, 675, 679, 683, 689, 694,
1304
+ 693, 703, 703, 707, 711, 718, 723, 727, 732, 737,
1305
+ 745, 753, 758, 767, 768, 774, 779, 796, 801, 806,
1306
+ 811, 816, 821, 826, 831, 834, 839, 846, 847, 851,
1307
+ 855, 859, 863, 866, 874, 875, 878, 879, 886, 885,
1308
+ 900, 907, 912, 920, 925, 932, 937, 944, 949, 954,
1309
+ 958, 962, 968, 969, 975, 976, 982, 986, 990, 994,
1310
+ 998, 1002, 1006, 1010, 1014, 1018, 1024, 1025, 1031, 1035,
1311
+ 1041, 1045, 1051, 1055, 1059, 1063, 1067, 1071, 1075, 1081,
1312
+ 1087, 1094, 1099, 1104, 1108, 1112, 1116, 1120, 1126, 1132,
1313
+ 1139, 1143, 1146, 1150, 1154, 1160, 1161, 1162, 1163, 1168,
1314
+ 1175, 1176, 1179, 1183, 1186, 1190, 1190, 1196, 1197, 1198,
1315
+ 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208,
1316
+ 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218,
1317
+ 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1228, 1228, 1228,
1318
+ 1229, 1229, 1230, 1230, 1230, 1231, 1231, 1231, 1231, 1232,
1319
+ 1232, 1232, 1232, 1233, 1233, 1233, 1234, 1234, 1234, 1234,
1320
+ 1235, 1235, 1235, 1235, 1236, 1236, 1236, 1236, 1237, 1237,
1321
+ 1237, 1237, 1238, 1238, 1238, 1238, 1239, 1239, 1242, 1247,
1322
+ 1253, 1258, 1264, 1285, 1290, 1295, 1300, 1305, 1310, 1315,
1323
+ 1321, 1327, 1331, 1335, 1339, 1343, 1347, 1351, 1355, 1359,
1324
+ 1363, 1367, 1371, 1375, 1379, 1383, 1387, 1391, 1395, 1399,
1325
+ 1403, 1407, 1417, 1421, 1425, 1429, 1433, 1437, 1441, 1445,
1326
+ 1445, 1450, 1456, 1462, 1470, 1471, 1475, 1479, 1485, 1491,
1327
+ 1492, 1495, 1496, 1497, 1501, 1505, 1511, 1516, 1520, 1525,
1328
+ 1530, 1533, 1533, 1545, 1551, 1555, 1561, 1565, 1569, 1578,
1329
+ 1589, 1590, 1593, 1602, 1611, 1617, 1618, 1619, 1620, 1621,
1330
+ 1622, 1623, 1624, 1625, 1626, 1627, 1632, 1631, 1651, 1651,
1331
+ 1655, 1655, 1659, 1663, 1667, 1671, 1679, 1683, 1687, 1691,
1332
+ 1695, 1699, 1699, 1704, 1708, 1712, 1718, 1719, 1726, 1730,
1333
+ 1738, 1746, 1746, 1746, 1753, 1753, 1753, 1760, 1767, 1772,
1334
+ 1774, 1771, 1791, 1790, 1807, 1812, 1806, 1829, 1828, 1845,
1335
+ 1844, 1862, 1863, 1862, 1878, 1882, 1886, 1890, 1896, 1904,
1336
+ 1910, 1916, 1922, 1928, 1934, 1940, 1946, 1952, 1958, 1965,
1337
+ 1971, 1972, 1973, 1976, 1977, 1980, 1981, 1990, 1991, 1997,
1338
+ 1998, 2001, 2005, 2011, 2015, 2021, 2025, 2030, 2035, 2039,
1339
+ 2043, 2048, 2053, 2057, 2063, 2067, 2071, 2075, 2081, 2086,
1340
+ 2091, 2095, 2099, 2103, 2107, 2111, 2115, 2119, 2123, 2127,
1341
+ 2131, 2135, 2139, 2143, 2147, 2153, 2154, 2160, 2165, 2169,
1342
+ 2176, 2180, 2187, 2192, 2199, 2205, 2211, 2214, 2219, 2211,
1343
+ 2231, 2235, 2241, 2245, 2252, 2251, 2266, 2277, 2281, 2288,
1344
+ 2297, 2304, 2303, 2313, 2312, 2321, 2326, 2325, 2335, 2334,
1345
+ 2343, 2347, 2351, 2363, 2362, 2375, 2374, 2388, 2396, 2397,
1346
+ 2400, 2412, 2415, 2419, 2423, 2426, 2430, 2433, 2437, 2440,
1347
+ 2441, 2445, 2448, 2460, 2461, 2462, 2468, 2474, 2496, 2556,
1348
+ 2560, 2567, 2570, 2576, 2577, 2583, 2587, 2594, 2597, 2605,
1349
+ 2609, 2615, 2619, 2626, 2629, 2636, 2639, 2650, 2653, 2660,
1350
+ 2663, 2670, 2673, 2696, 2698, 2697, 2709, 2715, 2720, 2708,
1351
+ 2736, 2737, 2738, 2739, 2742, 2749, 2750, 2751, 2752, 2755,
1352
+ 2781, 2782, 2788, 2789, 2790, 2791, 2794, 2795, 2796, 2797,
1353
+ 2798, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2810, 2816,
1354
+ 2824, 2828, 2834, 2835, 2838, 2843, 2842, 2851, 2858, 2864,
1355
+ 2872, 2876, 2880, 2884, 2890, 2895, 2900, 2904, 2908, 2912,
1356
+ 2916, 2920, 2924, 2928, 2932, 2936, 2940, 2944, 2948, 2952,
1357
+ 2957, 2963, 2968, 2973, 2978, 2985, 2986, 2993, 2998, 3008,
1358
+ 3009, 3017, 3024, 3029, 3036, 3041, 3048, 3052, 3063, 3067,
1359
+ 3078, 3079, 3082, 3087, 3093, 3101, 3109, 3113, 3124, 3128,
1360
+ 3139, 3140, 3143, 3151, 3158, 3159, 3162, 3173, 3177, 3183,
1361
+ 3189, 3189, 3213, 3214, 3220, 3221, 3227, 3231, 3235, 3241,
1362
+ 3242, 3243, 3246, 3247, 3248, 3249, 3252, 3253, 3254, 3257,
1363
+ 3258, 3261, 3262, 3265, 3266, 3269, 3272, 3275, 3276, 3277,
1364
+ 3280, 3281, 3284, 3285, 3288
1366
1365
  };
1367
1366
  #endif
1368
1367
 
@@ -5046,7 +5045,7 @@ yyreduce:
5046
5045
  switch (yyn)
5047
5046
  {
5048
5047
  case 2:
5049
- #line 579 "grammar.y"
5048
+ #line 578 "grammar.y"
5050
5049
  {
5051
5050
  lex_state = EXPR_BEG;
5052
5051
  local_push(0);
@@ -5055,7 +5054,7 @@ yyreduce:
5055
5054
  break;
5056
5055
 
5057
5056
  case 3:
5058
- #line 585 "grammar.y"
5057
+ #line 584 "grammar.y"
5059
5058
  {
5060
5059
  if((yyvsp[(2) - (2)].node) && !compile_for_eval) {
5061
5060
  /* last expression should not be void */
@@ -5076,7 +5075,7 @@ yyreduce:
5076
5075
  break;
5077
5076
 
5078
5077
  case 4:
5079
- #line 605 "grammar.y"
5078
+ #line 604 "grammar.y"
5080
5079
  {
5081
5080
  void_stmts((yyvsp[(1) - (2)].node));
5082
5081
  (yyval.node) = (yyvsp[(1) - (2)].node);
@@ -5084,35 +5083,35 @@ yyreduce:
5084
5083
  break;
5085
5084
 
5086
5085
  case 5:
5087
- #line 612 "grammar.y"
5086
+ #line 611 "grammar.y"
5088
5087
  {
5089
5088
  (yyval.node) = NEW_BEGIN(0);
5090
5089
  ;}
5091
5090
  break;
5092
5091
 
5093
5092
  case 6:
5094
- #line 616 "grammar.y"
5093
+ #line 615 "grammar.y"
5095
5094
  {
5096
5095
  (yyval.node) = newline_node((yyvsp[(1) - (1)].node));
5097
5096
  ;}
5098
5097
  break;
5099
5098
 
5100
5099
  case 7:
5101
- #line 620 "grammar.y"
5100
+ #line 619 "grammar.y"
5102
5101
  {
5103
5102
  (yyval.node) = block_append((yyvsp[(1) - (3)].node), newline_node((yyvsp[(3) - (3)].node)));
5104
5103
  ;}
5105
5104
  break;
5106
5105
 
5107
5106
  case 8:
5108
- #line 624 "grammar.y"
5107
+ #line 623 "grammar.y"
5109
5108
  {
5110
5109
  (yyval.node) = remove_begin((yyvsp[(2) - (2)].node));
5111
5110
  ;}
5112
5111
  break;
5113
5112
 
5114
5113
  case 10:
5115
- #line 631 "grammar.y"
5114
+ #line 630 "grammar.y"
5116
5115
  {
5117
5116
  if(in_def || in_single) {
5118
5117
  yy_error("BEGIN in method");
@@ -5121,14 +5120,14 @@ yyreduce:
5121
5120
  break;
5122
5121
 
5123
5122
  case 11:
5124
- #line 637 "grammar.y"
5123
+ #line 636 "grammar.y"
5125
5124
  {
5126
5125
  (yyval.node) = NEW_PREEXE((yyvsp[(4) - (5)].node));
5127
5126
  ;}
5128
5127
  break;
5129
5128
 
5130
5129
  case 12:
5131
- #line 646 "grammar.y"
5130
+ #line 645 "grammar.y"
5132
5131
  {
5133
5132
  (yyval.node) = (yyvsp[(1) - (4)].node);
5134
5133
  if((yyvsp[(2) - (4)].node)) {
@@ -5149,7 +5148,7 @@ yyreduce:
5149
5148
  break;
5150
5149
 
5151
5150
  case 13:
5152
- #line 666 "grammar.y"
5151
+ #line 665 "grammar.y"
5153
5152
  {
5154
5153
  void_stmts((yyvsp[(1) - (2)].node));
5155
5154
  (yyval.node) = (yyvsp[(1) - (2)].node);
@@ -5157,75 +5156,75 @@ yyreduce:
5157
5156
  break;
5158
5157
 
5159
5158
  case 14:
5160
- #line 673 "grammar.y"
5159
+ #line 672 "grammar.y"
5161
5160
  {
5162
5161
  (yyval.node) = NEW_BEGIN(0);
5163
5162
  ;}
5164
5163
  break;
5165
5164
 
5166
5165
  case 15:
5167
- #line 677 "grammar.y"
5166
+ #line 676 "grammar.y"
5168
5167
  {
5169
5168
  (yyval.node) = newline_node((yyvsp[(1) - (1)].node));
5170
5169
  ;}
5171
5170
  break;
5172
5171
 
5173
5172
  case 16:
5174
- #line 681 "grammar.y"
5173
+ #line 680 "grammar.y"
5175
5174
  {
5176
5175
  (yyval.node) = block_append((yyvsp[(1) - (3)].node), newline_node((yyvsp[(3) - (3)].node)));
5177
5176
  ;}
5178
5177
  break;
5179
5178
 
5180
5179
  case 17:
5181
- #line 685 "grammar.y"
5180
+ #line 684 "grammar.y"
5182
5181
  {
5183
5182
  (yyval.node) = remove_begin((yyvsp[(2) - (2)].node));
5184
5183
  ;}
5185
5184
  break;
5186
5185
 
5187
5186
  case 18:
5188
- #line 691 "grammar.y"
5187
+ #line 690 "grammar.y"
5189
5188
  {
5190
5189
  (yyval.node) = (yyvsp[(1) - (1)].node);
5191
5190
  ;}
5192
5191
  break;
5193
5192
 
5194
5193
  case 19:
5195
- #line 695 "grammar.y"
5194
+ #line 694 "grammar.y"
5196
5195
  {
5197
5196
  yy_error("BEGIN is permitted only at toplevel");
5198
5197
  ;}
5199
5198
  break;
5200
5199
 
5201
5200
  case 20:
5202
- #line 699 "grammar.y"
5201
+ #line 698 "grammar.y"
5203
5202
  {
5204
5203
  (yyval.node) = NEW_BEGIN(0);
5205
5204
  ;}
5206
5205
  break;
5207
5206
 
5208
5207
  case 21:
5209
- #line 704 "grammar.y"
5208
+ #line 703 "grammar.y"
5210
5209
  {lex_state = EXPR_FNAME;;}
5211
5210
  break;
5212
5211
 
5213
5212
  case 22:
5214
- #line 705 "grammar.y"
5213
+ #line 704 "grammar.y"
5215
5214
  {
5216
5215
  (yyval.node) = NEW_ALIAS((yyvsp[(2) - (4)].node), (yyvsp[(4) - (4)].node));
5217
5216
  ;}
5218
5217
  break;
5219
5218
 
5220
5219
  case 23:
5221
- #line 709 "grammar.y"
5220
+ #line 708 "grammar.y"
5222
5221
  {
5223
5222
  (yyval.node) = NEW_VALIAS((yyvsp[(2) - (3)].id), (yyvsp[(3) - (3)].id));
5224
5223
  ;}
5225
5224
  break;
5226
5225
 
5227
5226
  case 24:
5228
- #line 713 "grammar.y"
5227
+ #line 712 "grammar.y"
5229
5228
  {
5230
5229
  char buf[2];
5231
5230
  buf[0] = '$';
@@ -5235,7 +5234,7 @@ yyreduce:
5235
5234
  break;
5236
5235
 
5237
5236
  case 25:
5238
- #line 720 "grammar.y"
5237
+ #line 719 "grammar.y"
5239
5238
  {
5240
5239
  yy_error("can't make alias for the number variables");
5241
5240
  (yyval.node) = NEW_BEGIN(0);
@@ -5243,14 +5242,14 @@ yyreduce:
5243
5242
  break;
5244
5243
 
5245
5244
  case 26:
5246
- #line 725 "grammar.y"
5245
+ #line 724 "grammar.y"
5247
5246
  {
5248
5247
  (yyval.node) = (yyvsp[(2) - (2)].node);
5249
5248
  ;}
5250
5249
  break;
5251
5250
 
5252
5251
  case 27:
5253
- #line 729 "grammar.y"
5252
+ #line 728 "grammar.y"
5254
5253
  {
5255
5254
  (yyval.node) = NEW_IF(cond((yyvsp[(3) - (3)].node)), remove_begin((yyvsp[(1) - (3)].node)), 0);
5256
5255
  fixpos((yyval.node), (yyvsp[(3) - (3)].node));
@@ -5258,7 +5257,7 @@ yyreduce:
5258
5257
  break;
5259
5258
 
5260
5259
  case 28:
5261
- #line 734 "grammar.y"
5260
+ #line 733 "grammar.y"
5262
5261
  {
5263
5262
  (yyval.node) = NEW_UNLESS(cond((yyvsp[(3) - (3)].node)), remove_begin((yyvsp[(1) - (3)].node)), 0);
5264
5263
  fixpos((yyval.node), (yyvsp[(3) - (3)].node));
@@ -5266,7 +5265,7 @@ yyreduce:
5266
5265
  break;
5267
5266
 
5268
5267
  case 29:
5269
- #line 739 "grammar.y"
5268
+ #line 738 "grammar.y"
5270
5269
  {
5271
5270
  if((yyvsp[(1) - (3)].node) && nd_type((yyvsp[(1) - (3)].node)) == NODE_BEGIN) {
5272
5271
  (yyval.node) = NEW_WHILE(cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node)->nd_body, 0);
@@ -5277,7 +5276,7 @@ yyreduce:
5277
5276
  break;
5278
5277
 
5279
5278
  case 30:
5280
- #line 747 "grammar.y"
5279
+ #line 746 "grammar.y"
5281
5280
  {
5282
5281
  if((yyvsp[(1) - (3)].node) && nd_type((yyvsp[(1) - (3)].node)) == NODE_BEGIN) {
5283
5282
  (yyval.node) = NEW_UNTIL(cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node)->nd_body, 0);
@@ -5288,7 +5287,7 @@ yyreduce:
5288
5287
  break;
5289
5288
 
5290
5289
  case 31:
5291
- #line 755 "grammar.y"
5290
+ #line 754 "grammar.y"
5292
5291
  {
5293
5292
  NODE *resq = NEW_RESBODY(0, remove_begin((yyvsp[(3) - (3)].node)), 0);
5294
5293
  (yyval.node) = NEW_RESCUE(remove_begin((yyvsp[(1) - (3)].node)), resq, 0);
@@ -5296,7 +5295,7 @@ yyreduce:
5296
5295
  break;
5297
5296
 
5298
5297
  case 32:
5299
- #line 760 "grammar.y"
5298
+ #line 759 "grammar.y"
5300
5299
  {
5301
5300
  if(in_def || in_single) {
5302
5301
  rb_warn("END in method; use at_exit");
@@ -5308,7 +5307,7 @@ yyreduce:
5308
5307
  break;
5309
5308
 
5310
5309
  case 34:
5311
- #line 770 "grammar.y"
5310
+ #line 769 "grammar.y"
5312
5311
  {
5313
5312
  value_expr((yyvsp[(3) - (3)].node));
5314
5313
  (yyvsp[(1) - (3)].node)->nd_value = (yyvsp[(3) - (3)].node);
@@ -5317,7 +5316,7 @@ yyreduce:
5317
5316
  break;
5318
5317
 
5319
5318
  case 35:
5320
- #line 776 "grammar.y"
5319
+ #line 775 "grammar.y"
5321
5320
  {
5322
5321
  value_expr((yyvsp[(3) - (3)].node));
5323
5322
  (yyval.node) = new_op_assign((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].id), (yyvsp[(3) - (3)].node));
@@ -5325,7 +5324,7 @@ yyreduce:
5325
5324
  break;
5326
5325
 
5327
5326
  case 36:
5328
- #line 781 "grammar.y"
5327
+ #line 780 "grammar.y"
5329
5328
  {
5330
5329
  NODE *args;
5331
5330
 
@@ -5345,7 +5344,7 @@ yyreduce:
5345
5344
  break;
5346
5345
 
5347
5346
  case 37:
5348
- #line 798 "grammar.y"
5347
+ #line 797 "grammar.y"
5349
5348
  {
5350
5349
  value_expr((yyvsp[(5) - (5)].node));
5351
5350
  (yyval.node) = new_attr_op_assign((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].id), (yyvsp[(5) - (5)].node));
@@ -5353,7 +5352,7 @@ yyreduce:
5353
5352
  break;
5354
5353
 
5355
5354
  case 38:
5356
- #line 803 "grammar.y"
5355
+ #line 802 "grammar.y"
5357
5356
  {
5358
5357
  value_expr((yyvsp[(5) - (5)].node));
5359
5358
  (yyval.node) = new_attr_op_assign((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].id), (yyvsp[(5) - (5)].node));
@@ -5361,7 +5360,7 @@ yyreduce:
5361
5360
  break;
5362
5361
 
5363
5362
  case 39:
5364
- #line 808 "grammar.y"
5363
+ #line 807 "grammar.y"
5365
5364
  {
5366
5365
  (yyval.node) = NEW_COLON2((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].id));
5367
5366
  (yyval.node) = new_const_op_assign((yyval.node), (yyvsp[(4) - (5)].id), (yyvsp[(5) - (5)].node));
@@ -5369,7 +5368,7 @@ yyreduce:
5369
5368
  break;
5370
5369
 
5371
5370
  case 40:
5372
- #line 813 "grammar.y"
5371
+ #line 812 "grammar.y"
5373
5372
  {
5374
5373
  value_expr((yyvsp[(5) - (5)].node));
5375
5374
  (yyval.node) = new_attr_op_assign((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].id), (yyvsp[(5) - (5)].node));
@@ -5377,7 +5376,7 @@ yyreduce:
5377
5376
  break;
5378
5377
 
5379
5378
  case 41:
5380
- #line 818 "grammar.y"
5379
+ #line 817 "grammar.y"
5381
5380
  {
5382
5381
  rb_backref_error((yyvsp[(1) - (3)].node));
5383
5382
  (yyval.node) = NEW_BEGIN(0);
@@ -5385,7 +5384,7 @@ yyreduce:
5385
5384
  break;
5386
5385
 
5387
5386
  case 42:
5388
- #line 823 "grammar.y"
5387
+ #line 822 "grammar.y"
5389
5388
  {
5390
5389
  value_expr((yyvsp[(3) - (3)].node));
5391
5390
  (yyval.node) = node_assign((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
@@ -5393,7 +5392,7 @@ yyreduce:
5393
5392
  break;
5394
5393
 
5395
5394
  case 43:
5396
- #line 828 "grammar.y"
5395
+ #line 827 "grammar.y"
5397
5396
  {
5398
5397
  (yyvsp[(1) - (3)].node)->nd_value = (yyvsp[(3) - (3)].node);
5399
5398
  (yyval.node) = (yyvsp[(1) - (3)].node);
@@ -5401,7 +5400,7 @@ yyreduce:
5401
5400
  break;
5402
5401
 
5403
5402
  case 45:
5404
- #line 836 "grammar.y"
5403
+ #line 835 "grammar.y"
5405
5404
  {
5406
5405
  value_expr((yyvsp[(3) - (3)].node));
5407
5406
  (yyval.node) = node_assign((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
@@ -5409,7 +5408,7 @@ yyreduce:
5409
5408
  break;
5410
5409
 
5411
5410
  case 46:
5412
- #line 841 "grammar.y"
5411
+ #line 840 "grammar.y"
5413
5412
  {
5414
5413
  value_expr((yyvsp[(3) - (3)].node));
5415
5414
  (yyval.node) = node_assign((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
@@ -5417,35 +5416,35 @@ yyreduce:
5417
5416
  break;
5418
5417
 
5419
5418
  case 48:
5420
- #line 849 "grammar.y"
5419
+ #line 848 "grammar.y"
5421
5420
  {
5422
5421
  (yyval.node) = logop(NODE_AND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
5423
5422
  ;}
5424
5423
  break;
5425
5424
 
5426
5425
  case 49:
5427
- #line 853 "grammar.y"
5426
+ #line 852 "grammar.y"
5428
5427
  {
5429
5428
  (yyval.node) = logop(NODE_OR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
5430
5429
  ;}
5431
5430
  break;
5432
5431
 
5433
5432
  case 50:
5434
- #line 857 "grammar.y"
5433
+ #line 856 "grammar.y"
5435
5434
  {
5436
5435
  (yyval.node) = call_uni_op(cond((yyvsp[(3) - (3)].node)), '!');
5437
5436
  ;}
5438
5437
  break;
5439
5438
 
5440
5439
  case 51:
5441
- #line 861 "grammar.y"
5440
+ #line 860 "grammar.y"
5442
5441
  {
5443
5442
  (yyval.node) = call_uni_op(cond((yyvsp[(2) - (2)].node)), '!');
5444
5443
  ;}
5445
5444
  break;
5446
5445
 
5447
5446
  case 53:
5448
- #line 868 "grammar.y"
5447
+ #line 867 "grammar.y"
5449
5448
  {
5450
5449
  value_expr((yyvsp[(1) - (1)].node));
5451
5450
  (yyval.node) = (yyvsp[(1) - (1)].node);
@@ -5454,14 +5453,14 @@ yyreduce:
5454
5453
  break;
5455
5454
 
5456
5455
  case 57:
5457
- #line 881 "grammar.y"
5456
+ #line 880 "grammar.y"
5458
5457
  {
5459
5458
  (yyval.node) = NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].id), (yyvsp[(4) - (4)].node));
5460
5459
  ;}
5461
5460
  break;
5462
5461
 
5463
5462
  case 58:
5464
- #line 887 "grammar.y"
5463
+ #line 886 "grammar.y"
5465
5464
  {
5466
5465
  (yyvsp[(1) - (1)].vars) = bv_push();
5467
5466
  (yyval.num) = sourceline;
@@ -5469,7 +5468,7 @@ yyreduce:
5469
5468
  break;
5470
5469
 
5471
5470
  case 59:
5472
- #line 894 "grammar.y"
5471
+ #line 893 "grammar.y"
5473
5472
  {
5474
5473
  (yyval.node) = NEW_ITER((yyvsp[(3) - (5)].node), (yyvsp[(4) - (5)].node));
5475
5474
  nd_set_line((yyval.node), (yyvsp[(2) - (5)].num));
@@ -5478,7 +5477,7 @@ yyreduce:
5478
5477
  break;
5479
5478
 
5480
5479
  case 60:
5481
- #line 902 "grammar.y"
5480
+ #line 901 "grammar.y"
5482
5481
  {
5483
5482
  (yyval.node) = NEW_FCALL((yyvsp[(1) - (1)].id), 0);
5484
5483
  nd_set_line((yyval.node), tokline);
@@ -5486,7 +5485,7 @@ yyreduce:
5486
5485
  break;
5487
5486
 
5488
5487
  case 61:
5489
- #line 909 "grammar.y"
5488
+ #line 908 "grammar.y"
5490
5489
  {
5491
5490
  (yyval.node) = (yyvsp[(1) - (2)].node);
5492
5491
  (yyval.node)->nd_args = (yyvsp[(2) - (2)].node);
@@ -5494,7 +5493,7 @@ yyreduce:
5494
5493
  break;
5495
5494
 
5496
5495
  case 62:
5497
- #line 914 "grammar.y"
5496
+ #line 913 "grammar.y"
5498
5497
  {
5499
5498
  block_dup_check((yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node));
5500
5499
  (yyvsp[(1) - (3)].node)->nd_args = (yyvsp[(2) - (3)].node);
@@ -5505,7 +5504,7 @@ yyreduce:
5505
5504
  break;
5506
5505
 
5507
5506
  case 63:
5508
- #line 922 "grammar.y"
5507
+ #line 921 "grammar.y"
5509
5508
  {
5510
5509
  (yyval.node) = NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].id), (yyvsp[(4) - (4)].node));
5511
5510
  fixpos((yyval.node), (yyvsp[(1) - (4)].node));
@@ -5513,7 +5512,7 @@ yyreduce:
5513
5512
  break;
5514
5513
 
5515
5514
  case 64:
5516
- #line 927 "grammar.y"
5515
+ #line 926 "grammar.y"
5517
5516
  {
5518
5517
  block_dup_check((yyvsp[(4) - (5)].node), (yyvsp[(5) - (5)].node));
5519
5518
  (yyvsp[(5) - (5)].node)->nd_iter = NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].node));
@@ -5523,7 +5522,7 @@ yyreduce:
5523
5522
  break;
5524
5523
 
5525
5524
  case 65:
5526
- #line 934 "grammar.y"
5525
+ #line 933 "grammar.y"
5527
5526
  {
5528
5527
  (yyval.node) = NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].id), (yyvsp[(4) - (4)].node));
5529
5528
  fixpos((yyval.node), (yyvsp[(1) - (4)].node));
@@ -5531,7 +5530,7 @@ yyreduce:
5531
5530
  break;
5532
5531
 
5533
5532
  case 66:
5534
- #line 939 "grammar.y"
5533
+ #line 938 "grammar.y"
5535
5534
  {
5536
5535
  block_dup_check((yyvsp[(4) - (5)].node), (yyvsp[(5) - (5)].node));
5537
5536
  (yyvsp[(5) - (5)].node)->nd_iter = NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].node));
@@ -5541,7 +5540,7 @@ yyreduce:
5541
5540
  break;
5542
5541
 
5543
5542
  case 67:
5544
- #line 946 "grammar.y"
5543
+ #line 945 "grammar.y"
5545
5544
  {
5546
5545
  (yyval.node) = NEW_SUPER((yyvsp[(2) - (2)].node));
5547
5546
  fixpos((yyval.node), (yyvsp[(2) - (2)].node));
@@ -5549,7 +5548,7 @@ yyreduce:
5549
5548
  break;
5550
5549
 
5551
5550
  case 68:
5552
- #line 951 "grammar.y"
5551
+ #line 950 "grammar.y"
5553
5552
  {
5554
5553
  (yyval.node) = new_yield((yyvsp[(2) - (2)].node));
5555
5554
  fixpos((yyval.node), (yyvsp[(2) - (2)].node));
@@ -5557,189 +5556,189 @@ yyreduce:
5557
5556
  break;
5558
5557
 
5559
5558
  case 69:
5560
- #line 956 "grammar.y"
5559
+ #line 955 "grammar.y"
5561
5560
  {
5562
5561
  (yyval.node) = NEW_RETURN(ret_args((yyvsp[(2) - (2)].node)));
5563
5562
  ;}
5564
5563
  break;
5565
5564
 
5566
5565
  case 70:
5567
- #line 960 "grammar.y"
5566
+ #line 959 "grammar.y"
5568
5567
  {
5569
5568
  (yyval.node) = NEW_BREAK(ret_args((yyvsp[(2) - (2)].node)));
5570
5569
  ;}
5571
5570
  break;
5572
5571
 
5573
5572
  case 71:
5574
- #line 964 "grammar.y"
5573
+ #line 963 "grammar.y"
5575
5574
  {
5576
5575
  (yyval.node) = NEW_NEXT(ret_args((yyvsp[(2) - (2)].node)));
5577
5576
  ;}
5578
5577
  break;
5579
5578
 
5580
5579
  case 73:
5581
- #line 971 "grammar.y"
5580
+ #line 970 "grammar.y"
5582
5581
  {
5583
5582
  (yyval.node) = (yyvsp[(2) - (3)].node);
5584
5583
  ;}
5585
5584
  break;
5586
5585
 
5587
5586
  case 75:
5588
- #line 978 "grammar.y"
5587
+ #line 977 "grammar.y"
5589
5588
  {
5590
5589
  (yyval.node) = NEW_MASGN(NEW_LIST((yyvsp[(2) - (3)].node)), 0);
5591
5590
  ;}
5592
5591
  break;
5593
5592
 
5594
5593
  case 76:
5595
- #line 984 "grammar.y"
5594
+ #line 983 "grammar.y"
5596
5595
  {
5597
5596
  (yyval.node) = NEW_MASGN((yyvsp[(1) - (1)].node), 0);
5598
5597
  ;}
5599
5598
  break;
5600
5599
 
5601
5600
  case 77:
5602
- #line 988 "grammar.y"
5601
+ #line 987 "grammar.y"
5603
5602
  {
5604
5603
  (yyval.node) = NEW_MASGN(list_append((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)), 0);
5605
5604
  ;}
5606
5605
  break;
5607
5606
 
5608
5607
  case 78:
5609
- #line 992 "grammar.y"
5608
+ #line 991 "grammar.y"
5610
5609
  {
5611
5610
  (yyval.node) = NEW_MASGN((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
5612
5611
  ;}
5613
5612
  break;
5614
5613
 
5615
5614
  case 79:
5616
- #line 996 "grammar.y"
5615
+ #line 995 "grammar.y"
5617
5616
  {
5618
5617
  (yyval.node) = NEW_MASGN((yyvsp[(1) - (5)].node), NEW_POSTARG((yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)));
5619
5618
  ;}
5620
5619
  break;
5621
5620
 
5622
5621
  case 80:
5623
- #line 1000 "grammar.y"
5622
+ #line 999 "grammar.y"
5624
5623
  {
5625
5624
  (yyval.node) = NEW_MASGN((yyvsp[(1) - (2)].node), -1);
5626
5625
  ;}
5627
5626
  break;
5628
5627
 
5629
5628
  case 81:
5630
- #line 1004 "grammar.y"
5629
+ #line 1003 "grammar.y"
5631
5630
  {
5632
5631
  (yyval.node) = NEW_MASGN((yyvsp[(1) - (4)].node), NEW_POSTARG(-1, (yyvsp[(4) - (4)].node)));
5633
5632
  ;}
5634
5633
  break;
5635
5634
 
5636
5635
  case 82:
5637
- #line 1008 "grammar.y"
5636
+ #line 1007 "grammar.y"
5638
5637
  {
5639
5638
  (yyval.node) = NEW_MASGN(0, (yyvsp[(2) - (2)].node));
5640
5639
  ;}
5641
5640
  break;
5642
5641
 
5643
5642
  case 83:
5644
- #line 1012 "grammar.y"
5643
+ #line 1011 "grammar.y"
5645
5644
  {
5646
5645
  (yyval.node) = NEW_MASGN(0, NEW_POSTARG((yyvsp[(2) - (4)].node), (yyvsp[(4) - (4)].node)));
5647
5646
  ;}
5648
5647
  break;
5649
5648
 
5650
5649
  case 84:
5651
- #line 1016 "grammar.y"
5650
+ #line 1015 "grammar.y"
5652
5651
  {
5653
5652
  (yyval.node) = NEW_MASGN(0, -1);
5654
5653
  ;}
5655
5654
  break;
5656
5655
 
5657
5656
  case 85:
5658
- #line 1020 "grammar.y"
5657
+ #line 1019 "grammar.y"
5659
5658
  {
5660
5659
  (yyval.node) = NEW_MASGN(0, NEW_POSTARG(-1, (yyvsp[(3) - (3)].node)));
5661
5660
  ;}
5662
5661
  break;
5663
5662
 
5664
5663
  case 87:
5665
- #line 1027 "grammar.y"
5664
+ #line 1026 "grammar.y"
5666
5665
  {
5667
5666
  (yyval.node) = (yyvsp[(2) - (3)].node);
5668
5667
  ;}
5669
5668
  break;
5670
5669
 
5671
5670
  case 88:
5672
- #line 1033 "grammar.y"
5671
+ #line 1032 "grammar.y"
5673
5672
  {
5674
5673
  (yyval.node) = NEW_LIST((yyvsp[(1) - (2)].node));
5675
5674
  ;}
5676
5675
  break;
5677
5676
 
5678
5677
  case 89:
5679
- #line 1037 "grammar.y"
5678
+ #line 1036 "grammar.y"
5680
5679
  {
5681
5680
  (yyval.node) = list_append((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node));
5682
5681
  ;}
5683
5682
  break;
5684
5683
 
5685
5684
  case 90:
5686
- #line 1043 "grammar.y"
5685
+ #line 1042 "grammar.y"
5687
5686
  {
5688
5687
  (yyval.node) = NEW_LIST((yyvsp[(1) - (1)].node));
5689
5688
  ;}
5690
5689
  break;
5691
5690
 
5692
5691
  case 91:
5693
- #line 1047 "grammar.y"
5692
+ #line 1046 "grammar.y"
5694
5693
  {
5695
5694
  (yyval.node) = list_append((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
5696
5695
  ;}
5697
5696
  break;
5698
5697
 
5699
5698
  case 92:
5700
- #line 1053 "grammar.y"
5699
+ #line 1052 "grammar.y"
5701
5700
  {
5702
5701
  (yyval.node) = assignable((yyvsp[(1) - (1)].id), 0);
5703
5702
  ;}
5704
5703
  break;
5705
5704
 
5706
5705
  case 93:
5707
- #line 1057 "grammar.y"
5706
+ #line 1056 "grammar.y"
5708
5707
  {
5709
5708
  (yyval.node) = assignable((yyvsp[(1) - (1)].id), 0);
5710
5709
  ;}
5711
5710
  break;
5712
5711
 
5713
5712
  case 94:
5714
- #line 1061 "grammar.y"
5713
+ #line 1060 "grammar.y"
5715
5714
  {
5716
5715
  (yyval.node) = aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node));
5717
5716
  ;}
5718
5717
  break;
5719
5718
 
5720
5719
  case 95:
5721
- #line 1065 "grammar.y"
5720
+ #line 1064 "grammar.y"
5722
5721
  {
5723
5722
  (yyval.node) = attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id));
5724
5723
  ;}
5725
5724
  break;
5726
5725
 
5727
5726
  case 96:
5728
- #line 1069 "grammar.y"
5727
+ #line 1068 "grammar.y"
5729
5728
  {
5730
5729
  (yyval.node) = attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id));
5731
5730
  ;}
5732
5731
  break;
5733
5732
 
5734
5733
  case 97:
5735
- #line 1073 "grammar.y"
5734
+ #line 1072 "grammar.y"
5736
5735
  {
5737
5736
  (yyval.node) = attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id));
5738
5737
  ;}
5739
5738
  break;
5740
5739
 
5741
5740
  case 98:
5742
- #line 1077 "grammar.y"
5741
+ #line 1076 "grammar.y"
5743
5742
  {
5744
5743
  if(in_def || in_single)
5745
5744
  yy_error("dynamic constant assignment");
@@ -5748,7 +5747,7 @@ yyreduce:
5748
5747
  break;
5749
5748
 
5750
5749
  case 99:
5751
- #line 1083 "grammar.y"
5750
+ #line 1082 "grammar.y"
5752
5751
  {
5753
5752
  if(in_def || in_single)
5754
5753
  yy_error("dynamic constant assignment");
@@ -5757,7 +5756,7 @@ yyreduce:
5757
5756
  break;
5758
5757
 
5759
5758
  case 100:
5760
- #line 1089 "grammar.y"
5759
+ #line 1088 "grammar.y"
5761
5760
  {
5762
5761
  rb_backref_error((yyvsp[(1) - (1)].node));
5763
5762
  (yyval.node) = NEW_BEGIN(0);
@@ -5765,7 +5764,7 @@ yyreduce:
5765
5764
  break;
5766
5765
 
5767
5766
  case 101:
5768
- #line 1096 "grammar.y"
5767
+ #line 1095 "grammar.y"
5769
5768
  {
5770
5769
  (yyval.node) = assignable((yyvsp[(1) - (1)].id), 0);
5771
5770
  if(!(yyval.node)) (yyval.node) = NEW_BEGIN(0);
@@ -5773,7 +5772,7 @@ yyreduce:
5773
5772
  break;
5774
5773
 
5775
5774
  case 102:
5776
- #line 1101 "grammar.y"
5775
+ #line 1100 "grammar.y"
5777
5776
  {
5778
5777
  (yyval.node) = assignable((yyvsp[(1) - (1)].id), 0);
5779
5778
  if(!(yyval.node)) (yyval.node) = NEW_BEGIN(0);
@@ -5781,35 +5780,35 @@ yyreduce:
5781
5780
  break;
5782
5781
 
5783
5782
  case 103:
5784
- #line 1106 "grammar.y"
5783
+ #line 1105 "grammar.y"
5785
5784
  {
5786
5785
  (yyval.node) = aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node));
5787
5786
  ;}
5788
5787
  break;
5789
5788
 
5790
5789
  case 104:
5791
- #line 1110 "grammar.y"
5790
+ #line 1109 "grammar.y"
5792
5791
  {
5793
5792
  (yyval.node) = attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id));
5794
5793
  ;}
5795
5794
  break;
5796
5795
 
5797
5796
  case 105:
5798
- #line 1114 "grammar.y"
5797
+ #line 1113 "grammar.y"
5799
5798
  {
5800
5799
  (yyval.node) = attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id));
5801
5800
  ;}
5802
5801
  break;
5803
5802
 
5804
5803
  case 106:
5805
- #line 1118 "grammar.y"
5804
+ #line 1117 "grammar.y"
5806
5805
  {
5807
5806
  (yyval.node) = attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id));
5808
5807
  ;}
5809
5808
  break;
5810
5809
 
5811
5810
  case 107:
5812
- #line 1122 "grammar.y"
5811
+ #line 1121 "grammar.y"
5813
5812
  {
5814
5813
  if(in_def || in_single)
5815
5814
  yy_error("dynamic constant assignment");
@@ -5818,7 +5817,7 @@ yyreduce:
5818
5817
  break;
5819
5818
 
5820
5819
  case 108:
5821
- #line 1128 "grammar.y"
5820
+ #line 1127 "grammar.y"
5822
5821
  {
5823
5822
  if(in_def || in_single)
5824
5823
  yy_error("dynamic constant assignment");
@@ -5827,7 +5826,7 @@ yyreduce:
5827
5826
  break;
5828
5827
 
5829
5828
  case 109:
5830
- #line 1134 "grammar.y"
5829
+ #line 1133 "grammar.y"
5831
5830
  {
5832
5831
  rb_backref_error((yyvsp[(1) - (1)].node));
5833
5832
  (yyval.node) = NEW_BEGIN(0);
@@ -5835,35 +5834,35 @@ yyreduce:
5835
5834
  break;
5836
5835
 
5837
5836
  case 110:
5838
- #line 1141 "grammar.y"
5837
+ #line 1140 "grammar.y"
5839
5838
  {
5840
5839
  yy_error("class/module name must be CONSTANT");
5841
5840
  ;}
5842
5841
  break;
5843
5842
 
5844
5843
  case 112:
5845
- #line 1148 "grammar.y"
5844
+ #line 1147 "grammar.y"
5846
5845
  {
5847
5846
  (yyval.node) = NEW_COLON3((yyvsp[(2) - (2)].id));
5848
5847
  ;}
5849
5848
  break;
5850
5849
 
5851
5850
  case 113:
5852
- #line 1152 "grammar.y"
5851
+ #line 1151 "grammar.y"
5853
5852
  {
5854
5853
  (yyval.node) = NEW_COLON2(0, (yyval.node));
5855
5854
  ;}
5856
5855
  break;
5857
5856
 
5858
5857
  case 114:
5859
- #line 1156 "grammar.y"
5858
+ #line 1155 "grammar.y"
5860
5859
  {
5861
5860
  (yyval.node) = NEW_COLON2((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id));
5862
5861
  ;}
5863
5862
  break;
5864
5863
 
5865
5864
  case 118:
5866
- #line 1165 "grammar.y"
5865
+ #line 1164 "grammar.y"
5867
5866
  {
5868
5867
  lex_state = EXPR_ENDFN;
5869
5868
  (yyval.id) = convert_op((yyvsp[(1) - (1)].id));
@@ -5871,7 +5870,7 @@ yyreduce:
5871
5870
  break;
5872
5871
 
5873
5872
  case 119:
5874
- #line 1170 "grammar.y"
5873
+ #line 1169 "grammar.y"
5875
5874
  {
5876
5875
  lex_state = EXPR_ENDFN;
5877
5876
  (yyval.id) = (yyvsp[(1) - (1)].id);
@@ -5879,183 +5878,183 @@ yyreduce:
5879
5878
  break;
5880
5879
 
5881
5880
  case 122:
5882
- #line 1181 "grammar.y"
5881
+ #line 1180 "grammar.y"
5883
5882
  {
5884
5883
  (yyval.node) = NEW_LIT(ID2SYM((yyvsp[(1) - (1)].id)));
5885
5884
  ;}
5886
5885
  break;
5887
5886
 
5888
5887
  case 124:
5889
- #line 1188 "grammar.y"
5888
+ #line 1187 "grammar.y"
5890
5889
  {
5891
5890
  (yyval.node) = NEW_UNDEF((yyvsp[(1) - (1)].node));
5892
5891
  ;}
5893
5892
  break;
5894
5893
 
5895
5894
  case 125:
5896
- #line 1191 "grammar.y"
5895
+ #line 1190 "grammar.y"
5897
5896
  {lex_state = EXPR_FNAME;;}
5898
5897
  break;
5899
5898
 
5900
5899
  case 126:
5901
- #line 1192 "grammar.y"
5900
+ #line 1191 "grammar.y"
5902
5901
  {
5903
5902
  (yyval.node) = block_append((yyvsp[(1) - (4)].node), NEW_UNDEF((yyvsp[(4) - (4)].node)));
5904
5903
  ;}
5905
5904
  break;
5906
5905
 
5907
5906
  case 127:
5908
- #line 1197 "grammar.y"
5907
+ #line 1196 "grammar.y"
5909
5908
  { (yyval.id) = '|'; ;}
5910
5909
  break;
5911
5910
 
5912
5911
  case 128:
5913
- #line 1198 "grammar.y"
5912
+ #line 1197 "grammar.y"
5914
5913
  { (yyval.id) = '^'; ;}
5915
5914
  break;
5916
5915
 
5917
5916
  case 129:
5918
- #line 1199 "grammar.y"
5917
+ #line 1198 "grammar.y"
5919
5918
  { (yyval.id) = '&'; ;}
5920
5919
  break;
5921
5920
 
5922
5921
  case 130:
5923
- #line 1200 "grammar.y"
5922
+ #line 1199 "grammar.y"
5924
5923
  { (yyval.id) = tCMP; ;}
5925
5924
  break;
5926
5925
 
5927
5926
  case 131:
5928
- #line 1201 "grammar.y"
5927
+ #line 1200 "grammar.y"
5929
5928
  { (yyval.id) = tEQ; ;}
5930
5929
  break;
5931
5930
 
5932
5931
  case 132:
5933
- #line 1202 "grammar.y"
5932
+ #line 1201 "grammar.y"
5934
5933
  { (yyval.id) = tEQQ; ;}
5935
5934
  break;
5936
5935
 
5937
5936
  case 133:
5938
- #line 1203 "grammar.y"
5937
+ #line 1202 "grammar.y"
5939
5938
  { (yyval.id) = tMATCH; ;}
5940
5939
  break;
5941
5940
 
5942
5941
  case 134:
5943
- #line 1204 "grammar.y"
5942
+ #line 1203 "grammar.y"
5944
5943
  { (yyval.id) = tNMATCH; ;}
5945
5944
  break;
5946
5945
 
5947
5946
  case 135:
5948
- #line 1205 "grammar.y"
5947
+ #line 1204 "grammar.y"
5949
5948
  { (yyval.id) = '>'; ;}
5950
5949
  break;
5951
5950
 
5952
5951
  case 136:
5953
- #line 1206 "grammar.y"
5952
+ #line 1205 "grammar.y"
5954
5953
  { (yyval.id) = tGEQ; ;}
5955
5954
  break;
5956
5955
 
5957
5956
  case 137:
5958
- #line 1207 "grammar.y"
5957
+ #line 1206 "grammar.y"
5959
5958
  { (yyval.id) = '<'; ;}
5960
5959
  break;
5961
5960
 
5962
5961
  case 138:
5963
- #line 1208 "grammar.y"
5962
+ #line 1207 "grammar.y"
5964
5963
  { (yyval.id) = tLEQ; ;}
5965
5964
  break;
5966
5965
 
5967
5966
  case 139:
5968
- #line 1209 "grammar.y"
5967
+ #line 1208 "grammar.y"
5969
5968
  { (yyval.id) = tNEQ; ;}
5970
5969
  break;
5971
5970
 
5972
5971
  case 140:
5973
- #line 1210 "grammar.y"
5972
+ #line 1209 "grammar.y"
5974
5973
  { (yyval.id) = tLSHFT; ;}
5975
5974
  break;
5976
5975
 
5977
5976
  case 141:
5978
- #line 1211 "grammar.y"
5977
+ #line 1210 "grammar.y"
5979
5978
  { (yyval.id) = tRSHFT; ;}
5980
5979
  break;
5981
5980
 
5982
5981
  case 142:
5983
- #line 1212 "grammar.y"
5982
+ #line 1211 "grammar.y"
5984
5983
  { (yyval.id) = '+'; ;}
5985
5984
  break;
5986
5985
 
5987
5986
  case 143:
5988
- #line 1213 "grammar.y"
5987
+ #line 1212 "grammar.y"
5989
5988
  { (yyval.id) = '-'; ;}
5990
5989
  break;
5991
5990
 
5992
5991
  case 144:
5993
- #line 1214 "grammar.y"
5992
+ #line 1213 "grammar.y"
5994
5993
  { (yyval.id) = '*'; ;}
5995
5994
  break;
5996
5995
 
5997
5996
  case 145:
5998
- #line 1215 "grammar.y"
5997
+ #line 1214 "grammar.y"
5999
5998
  { (yyval.id) = '*'; ;}
6000
5999
  break;
6001
6000
 
6002
6001
  case 146:
6003
- #line 1216 "grammar.y"
6002
+ #line 1215 "grammar.y"
6004
6003
  { (yyval.id) = '/'; ;}
6005
6004
  break;
6006
6005
 
6007
6006
  case 147:
6008
- #line 1217 "grammar.y"
6007
+ #line 1216 "grammar.y"
6009
6008
  { (yyval.id) = '%'; ;}
6010
6009
  break;
6011
6010
 
6012
6011
  case 148:
6013
- #line 1218 "grammar.y"
6012
+ #line 1217 "grammar.y"
6014
6013
  { (yyval.id) = tPOW; ;}
6015
6014
  break;
6016
6015
 
6017
6016
  case 149:
6018
- #line 1219 "grammar.y"
6017
+ #line 1218 "grammar.y"
6019
6018
  { (yyval.id) = tDSTAR; ;}
6020
6019
  break;
6021
6020
 
6022
6021
  case 150:
6023
- #line 1220 "grammar.y"
6022
+ #line 1219 "grammar.y"
6024
6023
  { (yyval.id) = '!'; ;}
6025
6024
  break;
6026
6025
 
6027
6026
  case 151:
6028
- #line 1221 "grammar.y"
6027
+ #line 1220 "grammar.y"
6029
6028
  { (yyval.id) = '~'; ;}
6030
6029
  break;
6031
6030
 
6032
6031
  case 152:
6033
- #line 1222 "grammar.y"
6032
+ #line 1221 "grammar.y"
6034
6033
  { (yyval.id) = tUPLUS; ;}
6035
6034
  break;
6036
6035
 
6037
6036
  case 153:
6038
- #line 1223 "grammar.y"
6037
+ #line 1222 "grammar.y"
6039
6038
  { (yyval.id) = tUMINUS; ;}
6040
6039
  break;
6041
6040
 
6042
6041
  case 154:
6043
- #line 1224 "grammar.y"
6042
+ #line 1223 "grammar.y"
6044
6043
  { (yyval.id) = tAREF; ;}
6045
6044
  break;
6046
6045
 
6047
6046
  case 155:
6048
- #line 1225 "grammar.y"
6047
+ #line 1224 "grammar.y"
6049
6048
  { (yyval.id) = tASET; ;}
6050
6049
  break;
6051
6050
 
6052
6051
  case 156:
6053
- #line 1226 "grammar.y"
6052
+ #line 1225 "grammar.y"
6054
6053
  { (yyval.id) = '`'; ;}
6055
6054
  break;
6056
6055
 
6057
6056
  case 198:
6058
- #line 1244 "grammar.y"
6057
+ #line 1243 "grammar.y"
6059
6058
  {
6060
6059
  value_expr((yyvsp[(3) - (3)].node));
6061
6060
  (yyval.node) = node_assign((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
@@ -6063,7 +6062,7 @@ yyreduce:
6063
6062
  break;
6064
6063
 
6065
6064
  case 199:
6066
- #line 1249 "grammar.y"
6065
+ #line 1248 "grammar.y"
6067
6066
  {
6068
6067
  value_expr((yyvsp[(3) - (5)].node));
6069
6068
  (yyvsp[(3) - (5)].node) = NEW_RESCUE((yyvsp[(3) - (5)].node), NEW_RESBODY(0, (yyvsp[(5) - (5)].node), 0), 0);
@@ -6072,7 +6071,7 @@ yyreduce:
6072
6071
  break;
6073
6072
 
6074
6073
  case 200:
6075
- #line 1255 "grammar.y"
6074
+ #line 1254 "grammar.y"
6076
6075
  {
6077
6076
  value_expr((yyvsp[(3) - (3)].node));
6078
6077
  (yyval.node) = new_op_assign((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].id), (yyvsp[(3) - (3)].node));
@@ -6080,7 +6079,7 @@ yyreduce:
6080
6079
  break;
6081
6080
 
6082
6081
  case 201:
6083
- #line 1260 "grammar.y"
6082
+ #line 1259 "grammar.y"
6084
6083
  {
6085
6084
  value_expr((yyvsp[(3) - (5)].node));
6086
6085
  (yyvsp[(3) - (5)].node) = NEW_RESCUE((yyvsp[(3) - (5)].node), NEW_RESBODY(0, (yyvsp[(5) - (5)].node), 0), 0);
@@ -6089,7 +6088,7 @@ yyreduce:
6089
6088
  break;
6090
6089
 
6091
6090
  case 202:
6092
- #line 1266 "grammar.y"
6091
+ #line 1265 "grammar.y"
6093
6092
  {
6094
6093
  NODE *args;
6095
6094
 
@@ -6113,7 +6112,7 @@ yyreduce:
6113
6112
  break;
6114
6113
 
6115
6114
  case 203:
6116
- #line 1287 "grammar.y"
6115
+ #line 1286 "grammar.y"
6117
6116
  {
6118
6117
  value_expr((yyvsp[(5) - (5)].node));
6119
6118
  (yyval.node) = new_attr_op_assign((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].id), (yyvsp[(5) - (5)].node));
@@ -6121,7 +6120,7 @@ yyreduce:
6121
6120
  break;
6122
6121
 
6123
6122
  case 204:
6124
- #line 1292 "grammar.y"
6123
+ #line 1291 "grammar.y"
6125
6124
  {
6126
6125
  value_expr((yyvsp[(5) - (5)].node));
6127
6126
  (yyval.node) = new_attr_op_assign((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].id), (yyvsp[(5) - (5)].node));
@@ -6129,7 +6128,7 @@ yyreduce:
6129
6128
  break;
6130
6129
 
6131
6130
  case 205:
6132
- #line 1297 "grammar.y"
6131
+ #line 1296 "grammar.y"
6133
6132
  {
6134
6133
  value_expr((yyvsp[(5) - (5)].node));
6135
6134
  (yyval.node) = new_attr_op_assign((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].id), (yyvsp[(5) - (5)].node));
@@ -6137,7 +6136,7 @@ yyreduce:
6137
6136
  break;
6138
6137
 
6139
6138
  case 206:
6140
- #line 1302 "grammar.y"
6139
+ #line 1301 "grammar.y"
6141
6140
  {
6142
6141
  (yyval.node) = NEW_COLON2((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].id));
6143
6142
  (yyval.node) = new_const_op_assign((yyval.node), (yyvsp[(4) - (5)].id), (yyvsp[(5) - (5)].node));
@@ -6145,7 +6144,7 @@ yyreduce:
6145
6144
  break;
6146
6145
 
6147
6146
  case 207:
6148
- #line 1307 "grammar.y"
6147
+ #line 1306 "grammar.y"
6149
6148
  {
6150
6149
  (yyval.node) = NEW_COLON3((yyvsp[(2) - (4)].id));
6151
6150
  (yyval.node) = new_const_op_assign((yyval.node), (yyvsp[(3) - (4)].id), (yyvsp[(4) - (4)].node));
@@ -6153,7 +6152,7 @@ yyreduce:
6153
6152
  break;
6154
6153
 
6155
6154
  case 208:
6156
- #line 1312 "grammar.y"
6155
+ #line 1311 "grammar.y"
6157
6156
  {
6158
6157
  rb_backref_error((yyvsp[(1) - (3)].node));
6159
6158
  (yyval.node) = NEW_BEGIN(0);
@@ -6161,7 +6160,7 @@ yyreduce:
6161
6160
  break;
6162
6161
 
6163
6162
  case 209:
6164
- #line 1317 "grammar.y"
6163
+ #line 1316 "grammar.y"
6165
6164
  {
6166
6165
  value_expr((yyvsp[(1) - (3)].node));
6167
6166
  value_expr((yyvsp[(3) - (3)].node));
@@ -6170,7 +6169,7 @@ yyreduce:
6170
6169
  break;
6171
6170
 
6172
6171
  case 210:
6173
- #line 1323 "grammar.y"
6172
+ #line 1322 "grammar.y"
6174
6173
  {
6175
6174
  value_expr((yyvsp[(1) - (3)].node));
6176
6175
  value_expr((yyvsp[(3) - (3)].node));
@@ -6179,147 +6178,147 @@ yyreduce:
6179
6178
  break;
6180
6179
 
6181
6180
  case 211:
6182
- #line 1329 "grammar.y"
6181
+ #line 1328 "grammar.y"
6183
6182
  {
6184
6183
  (yyval.node) = call_bin_op((yyvsp[(1) - (3)].node), '+', (yyvsp[(3) - (3)].node));
6185
6184
  ;}
6186
6185
  break;
6187
6186
 
6188
6187
  case 212:
6189
- #line 1333 "grammar.y"
6188
+ #line 1332 "grammar.y"
6190
6189
  {
6191
6190
  (yyval.node) = call_bin_op((yyvsp[(1) - (3)].node), '-', (yyvsp[(3) - (3)].node));
6192
6191
  ;}
6193
6192
  break;
6194
6193
 
6195
6194
  case 213:
6196
- #line 1337 "grammar.y"
6195
+ #line 1336 "grammar.y"
6197
6196
  {
6198
6197
  (yyval.node) = call_bin_op((yyvsp[(1) - (3)].node), '*', (yyvsp[(3) - (3)].node));
6199
6198
  ;}
6200
6199
  break;
6201
6200
 
6202
6201
  case 214:
6203
- #line 1341 "grammar.y"
6202
+ #line 1340 "grammar.y"
6204
6203
  {
6205
6204
  (yyval.node) = call_bin_op((yyvsp[(1) - (3)].node), '/', (yyvsp[(3) - (3)].node));
6206
6205
  ;}
6207
6206
  break;
6208
6207
 
6209
6208
  case 215:
6210
- #line 1345 "grammar.y"
6209
+ #line 1344 "grammar.y"
6211
6210
  {
6212
6211
  (yyval.node) = call_bin_op((yyvsp[(1) - (3)].node), '%', (yyvsp[(3) - (3)].node));
6213
6212
  ;}
6214
6213
  break;
6215
6214
 
6216
6215
  case 216:
6217
- #line 1349 "grammar.y"
6216
+ #line 1348 "grammar.y"
6218
6217
  {
6219
6218
  (yyval.node) = call_bin_op((yyvsp[(1) - (3)].node), tPOW, (yyvsp[(3) - (3)].node));
6220
6219
  ;}
6221
6220
  break;
6222
6221
 
6223
6222
  case 217:
6224
- #line 1353 "grammar.y"
6223
+ #line 1352 "grammar.y"
6225
6224
  {
6226
6225
  (yyval.node) = NEW_CALL(call_bin_op((yyvsp[(2) - (4)].node), tPOW, (yyvsp[(4) - (4)].node)), tUMINUS, 0);
6227
6226
  ;}
6228
6227
  break;
6229
6228
 
6230
6229
  case 218:
6231
- #line 1357 "grammar.y"
6230
+ #line 1356 "grammar.y"
6232
6231
  {
6233
6232
  (yyval.node) = call_uni_op((yyvsp[(2) - (2)].node), tUPLUS);
6234
6233
  ;}
6235
6234
  break;
6236
6235
 
6237
6236
  case 219:
6238
- #line 1361 "grammar.y"
6237
+ #line 1360 "grammar.y"
6239
6238
  {
6240
6239
  (yyval.node) = call_uni_op((yyvsp[(2) - (2)].node), tUMINUS);
6241
6240
  ;}
6242
6241
  break;
6243
6242
 
6244
6243
  case 220:
6245
- #line 1365 "grammar.y"
6244
+ #line 1364 "grammar.y"
6246
6245
  {
6247
6246
  (yyval.node) = call_bin_op((yyvsp[(1) - (3)].node), '|', (yyvsp[(3) - (3)].node));
6248
6247
  ;}
6249
6248
  break;
6250
6249
 
6251
6250
  case 221:
6252
- #line 1369 "grammar.y"
6251
+ #line 1368 "grammar.y"
6253
6252
  {
6254
6253
  (yyval.node) = call_bin_op((yyvsp[(1) - (3)].node), '^', (yyvsp[(3) - (3)].node));
6255
6254
  ;}
6256
6255
  break;
6257
6256
 
6258
6257
  case 222:
6259
- #line 1373 "grammar.y"
6258
+ #line 1372 "grammar.y"
6260
6259
  {
6261
6260
  (yyval.node) = call_bin_op((yyvsp[(1) - (3)].node), '&', (yyvsp[(3) - (3)].node));
6262
6261
  ;}
6263
6262
  break;
6264
6263
 
6265
6264
  case 223:
6266
- #line 1377 "grammar.y"
6265
+ #line 1376 "grammar.y"
6267
6266
  {
6268
6267
  (yyval.node) = call_bin_op((yyvsp[(1) - (3)].node), tCMP, (yyvsp[(3) - (3)].node));
6269
6268
  ;}
6270
6269
  break;
6271
6270
 
6272
6271
  case 224:
6273
- #line 1381 "grammar.y"
6272
+ #line 1380 "grammar.y"
6274
6273
  {
6275
6274
  (yyval.node) = call_bin_op((yyvsp[(1) - (3)].node), '>', (yyvsp[(3) - (3)].node));
6276
6275
  ;}
6277
6276
  break;
6278
6277
 
6279
6278
  case 225:
6280
- #line 1385 "grammar.y"
6279
+ #line 1384 "grammar.y"
6281
6280
  {
6282
6281
  (yyval.node) = call_bin_op((yyvsp[(1) - (3)].node), tGEQ, (yyvsp[(3) - (3)].node));
6283
6282
  ;}
6284
6283
  break;
6285
6284
 
6286
6285
  case 226:
6287
- #line 1389 "grammar.y"
6286
+ #line 1388 "grammar.y"
6288
6287
  {
6289
6288
  (yyval.node) = call_bin_op((yyvsp[(1) - (3)].node), '<', (yyvsp[(3) - (3)].node));
6290
6289
  ;}
6291
6290
  break;
6292
6291
 
6293
6292
  case 227:
6294
- #line 1393 "grammar.y"
6293
+ #line 1392 "grammar.y"
6295
6294
  {
6296
6295
  (yyval.node) = call_bin_op((yyvsp[(1) - (3)].node), tLEQ, (yyvsp[(3) - (3)].node));
6297
6296
  ;}
6298
6297
  break;
6299
6298
 
6300
6299
  case 228:
6301
- #line 1397 "grammar.y"
6300
+ #line 1396 "grammar.y"
6302
6301
  {
6303
6302
  (yyval.node) = call_bin_op((yyvsp[(1) - (3)].node), tEQ, (yyvsp[(3) - (3)].node));
6304
6303
  ;}
6305
6304
  break;
6306
6305
 
6307
6306
  case 229:
6308
- #line 1401 "grammar.y"
6307
+ #line 1400 "grammar.y"
6309
6308
  {
6310
6309
  (yyval.node) = call_bin_op((yyvsp[(1) - (3)].node), tEQQ, (yyvsp[(3) - (3)].node));
6311
6310
  ;}
6312
6311
  break;
6313
6312
 
6314
6313
  case 230:
6315
- #line 1405 "grammar.y"
6314
+ #line 1404 "grammar.y"
6316
6315
  {
6317
6316
  (yyval.node) = call_bin_op((yyvsp[(1) - (3)].node), tNEQ, (yyvsp[(3) - (3)].node));
6318
6317
  ;}
6319
6318
  break;
6320
6319
 
6321
6320
  case 231:
6322
- #line 1409 "grammar.y"
6321
+ #line 1408 "grammar.y"
6323
6322
  {
6324
6323
  /* TODO */
6325
6324
  (yyval.node) = match_op((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
@@ -6332,61 +6331,61 @@ yyreduce:
6332
6331
  break;
6333
6332
 
6334
6333
  case 232:
6335
- #line 1419 "grammar.y"
6334
+ #line 1418 "grammar.y"
6336
6335
  {
6337
6336
  (yyval.node) = call_bin_op((yyvsp[(1) - (3)].node), tNMATCH, (yyvsp[(3) - (3)].node));
6338
6337
  ;}
6339
6338
  break;
6340
6339
 
6341
6340
  case 233:
6342
- #line 1423 "grammar.y"
6341
+ #line 1422 "grammar.y"
6343
6342
  {
6344
6343
  (yyval.node) = call_uni_op(cond((yyvsp[(2) - (2)].node)), '!');
6345
6344
  ;}
6346
6345
  break;
6347
6346
 
6348
6347
  case 234:
6349
- #line 1427 "grammar.y"
6348
+ #line 1426 "grammar.y"
6350
6349
  {
6351
6350
  (yyval.node) = call_uni_op((yyvsp[(2) - (2)].node), '~');
6352
6351
  ;}
6353
6352
  break;
6354
6353
 
6355
6354
  case 235:
6356
- #line 1431 "grammar.y"
6355
+ #line 1430 "grammar.y"
6357
6356
  {
6358
6357
  (yyval.node) = call_bin_op((yyvsp[(1) - (3)].node), tLSHFT, (yyvsp[(3) - (3)].node));
6359
6358
  ;}
6360
6359
  break;
6361
6360
 
6362
6361
  case 236:
6363
- #line 1435 "grammar.y"
6362
+ #line 1434 "grammar.y"
6364
6363
  {
6365
6364
  (yyval.node) = call_bin_op((yyvsp[(1) - (3)].node), tRSHFT, (yyvsp[(3) - (3)].node));
6366
6365
  ;}
6367
6366
  break;
6368
6367
 
6369
6368
  case 237:
6370
- #line 1439 "grammar.y"
6369
+ #line 1438 "grammar.y"
6371
6370
  {
6372
6371
  (yyval.node) = logop(NODE_AND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
6373
6372
  ;}
6374
6373
  break;
6375
6374
 
6376
6375
  case 238:
6377
- #line 1443 "grammar.y"
6376
+ #line 1442 "grammar.y"
6378
6377
  {
6379
6378
  (yyval.node) = logop(NODE_OR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
6380
6379
  ;}
6381
6380
  break;
6382
6381
 
6383
6382
  case 239:
6384
- #line 1446 "grammar.y"
6383
+ #line 1445 "grammar.y"
6385
6384
  {in_defined = 1;;}
6386
6385
  break;
6387
6386
 
6388
6387
  case 240:
6389
- #line 1447 "grammar.y"
6388
+ #line 1446 "grammar.y"
6390
6389
  {
6391
6390
  in_defined = 0;
6392
6391
  (yyval.node) = NEW_DEFINED((yyvsp[(4) - (4)].node));
@@ -6394,7 +6393,7 @@ yyreduce:
6394
6393
  break;
6395
6394
 
6396
6395
  case 241:
6397
- #line 1452 "grammar.y"
6396
+ #line 1451 "grammar.y"
6398
6397
  {
6399
6398
  value_expr((yyvsp[(1) - (6)].node));
6400
6399
  (yyval.node) = NEW_IF(cond((yyvsp[(1) - (6)].node)), (yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
@@ -6403,14 +6402,14 @@ yyreduce:
6403
6402
  break;
6404
6403
 
6405
6404
  case 242:
6406
- #line 1458 "grammar.y"
6405
+ #line 1457 "grammar.y"
6407
6406
  {
6408
6407
  (yyval.node) = (yyvsp[(1) - (1)].node);
6409
6408
  ;}
6410
6409
  break;
6411
6410
 
6412
6411
  case 243:
6413
- #line 1464 "grammar.y"
6412
+ #line 1463 "grammar.y"
6414
6413
  {
6415
6414
  value_expr((yyvsp[(1) - (1)].node));
6416
6415
  (yyval.node) = (yyvsp[(1) - (1)].node);
@@ -6419,56 +6418,56 @@ yyreduce:
6419
6418
  break;
6420
6419
 
6421
6420
  case 245:
6422
- #line 1473 "grammar.y"
6421
+ #line 1472 "grammar.y"
6423
6422
  {
6424
6423
  (yyval.node) = (yyvsp[(1) - (2)].node);
6425
6424
  ;}
6426
6425
  break;
6427
6426
 
6428
6427
  case 246:
6429
- #line 1477 "grammar.y"
6428
+ #line 1476 "grammar.y"
6430
6429
  {
6431
6430
  (yyval.node) = arg_append((yyvsp[(1) - (4)].node), NEW_HASH((yyvsp[(3) - (4)].node)));
6432
6431
  ;}
6433
6432
  break;
6434
6433
 
6435
6434
  case 247:
6436
- #line 1481 "grammar.y"
6435
+ #line 1480 "grammar.y"
6437
6436
  {
6438
6437
  (yyval.node) = NEW_LIST(NEW_HASH((yyvsp[(1) - (2)].node)));
6439
6438
  ;}
6440
6439
  break;
6441
6440
 
6442
6441
  case 248:
6443
- #line 1487 "grammar.y"
6442
+ #line 1486 "grammar.y"
6444
6443
  {
6445
6444
  (yyval.node) = (yyvsp[(2) - (3)].node);
6446
6445
  ;}
6447
6446
  break;
6448
6447
 
6449
6448
  case 253:
6450
- #line 1499 "grammar.y"
6449
+ #line 1498 "grammar.y"
6451
6450
  {
6452
6451
  (yyval.node) = (yyvsp[(1) - (2)].node);
6453
6452
  ;}
6454
6453
  break;
6455
6454
 
6456
6455
  case 254:
6457
- #line 1503 "grammar.y"
6456
+ #line 1502 "grammar.y"
6458
6457
  {
6459
6458
  (yyval.node) = arg_append((yyvsp[(1) - (4)].node), NEW_HASH((yyvsp[(3) - (4)].node)));
6460
6459
  ;}
6461
6460
  break;
6462
6461
 
6463
6462
  case 255:
6464
- #line 1507 "grammar.y"
6463
+ #line 1506 "grammar.y"
6465
6464
  {
6466
6465
  (yyval.node) = NEW_LIST(NEW_HASH((yyvsp[(1) - (2)].node)));
6467
6466
  ;}
6468
6467
  break;
6469
6468
 
6470
6469
  case 256:
6471
- #line 1513 "grammar.y"
6470
+ #line 1512 "grammar.y"
6472
6471
  {
6473
6472
  value_expr((yyvsp[(1) - (1)].node));
6474
6473
  (yyval.node) = NEW_LIST((yyvsp[(1) - (1)].node));
@@ -6476,14 +6475,14 @@ yyreduce:
6476
6475
  break;
6477
6476
 
6478
6477
  case 257:
6479
- #line 1518 "grammar.y"
6478
+ #line 1517 "grammar.y"
6480
6479
  {
6481
6480
  (yyval.node) = arg_blk_pass((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));
6482
6481
  ;}
6483
6482
  break;
6484
6483
 
6485
6484
  case 258:
6486
- #line 1522 "grammar.y"
6485
+ #line 1521 "grammar.y"
6487
6486
  {
6488
6487
  (yyval.node) = NEW_LIST(NEW_HASH((yyvsp[(1) - (2)].node)));
6489
6488
  (yyval.node) = arg_blk_pass((yyval.node), (yyvsp[(2) - (2)].node));
@@ -6491,7 +6490,7 @@ yyreduce:
6491
6490
  break;
6492
6491
 
6493
6492
  case 259:
6494
- #line 1527 "grammar.y"
6493
+ #line 1526 "grammar.y"
6495
6494
  {
6496
6495
  (yyval.node) = arg_append((yyvsp[(1) - (4)].node), NEW_HASH((yyvsp[(3) - (4)].node)));
6497
6496
  (yyval.node) = arg_blk_pass((yyval.node), (yyvsp[(4) - (4)].node));
@@ -6499,7 +6498,7 @@ yyreduce:
6499
6498
  break;
6500
6499
 
6501
6500
  case 261:
6502
- #line 1534 "grammar.y"
6501
+ #line 1533 "grammar.y"
6503
6502
  {
6504
6503
  (yyval.val) = cmdarg_stack;
6505
6504
  CMDARG_PUSH(1);
@@ -6507,7 +6506,7 @@ yyreduce:
6507
6506
  break;
6508
6507
 
6509
6508
  case 262:
6510
- #line 1539 "grammar.y"
6509
+ #line 1538 "grammar.y"
6511
6510
  {
6512
6511
  /* CMDARG_POP() */
6513
6512
  cmdarg_stack = (yyvsp[(1) - (2)].val);
@@ -6516,42 +6515,42 @@ yyreduce:
6516
6515
  break;
6517
6516
 
6518
6517
  case 263:
6519
- #line 1547 "grammar.y"
6518
+ #line 1546 "grammar.y"
6520
6519
  {
6521
6520
  (yyval.node) = NEW_BLOCK_PASS((yyvsp[(2) - (2)].node));
6522
6521
  ;}
6523
6522
  break;
6524
6523
 
6525
6524
  case 264:
6526
- #line 1553 "grammar.y"
6525
+ #line 1552 "grammar.y"
6527
6526
  {
6528
6527
  (yyval.node) = (yyvsp[(2) - (2)].node);
6529
6528
  ;}
6530
6529
  break;
6531
6530
 
6532
6531
  case 265:
6533
- #line 1557 "grammar.y"
6532
+ #line 1556 "grammar.y"
6534
6533
  {
6535
6534
  (yyval.node) = 0;
6536
6535
  ;}
6537
6536
  break;
6538
6537
 
6539
6538
  case 266:
6540
- #line 1563 "grammar.y"
6539
+ #line 1562 "grammar.y"
6541
6540
  {
6542
6541
  (yyval.node) = NEW_LIST((yyvsp[(1) - (1)].node));
6543
6542
  ;}
6544
6543
  break;
6545
6544
 
6546
6545
  case 267:
6547
- #line 1567 "grammar.y"
6546
+ #line 1566 "grammar.y"
6548
6547
  {
6549
6548
  (yyval.node) = NEW_SPLAT((yyvsp[(2) - (2)].node));
6550
6549
  ;}
6551
6550
  break;
6552
6551
 
6553
6552
  case 268:
6554
- #line 1571 "grammar.y"
6553
+ #line 1570 "grammar.y"
6555
6554
  {
6556
6555
  NODE *n1;
6557
6556
  if((n1 = splat_array((yyvsp[(1) - (3)].node))) != 0) {
@@ -6563,7 +6562,7 @@ yyreduce:
6563
6562
  break;
6564
6563
 
6565
6564
  case 269:
6566
- #line 1580 "grammar.y"
6565
+ #line 1579 "grammar.y"
6567
6566
  {
6568
6567
  NODE *n1;
6569
6568
  if((nd_type((yyvsp[(4) - (4)].node)) == NODE_ARRAY) && (n1 = splat_array((yyvsp[(1) - (4)].node))) != 0) {
@@ -6575,7 +6574,7 @@ yyreduce:
6575
6574
  break;
6576
6575
 
6577
6576
  case 272:
6578
- #line 1595 "grammar.y"
6577
+ #line 1594 "grammar.y"
6579
6578
  {
6580
6579
  NODE *n1;
6581
6580
  if((n1 = splat_array((yyvsp[(1) - (3)].node))) != 0) {
@@ -6587,7 +6586,7 @@ yyreduce:
6587
6586
  break;
6588
6587
 
6589
6588
  case 273:
6590
- #line 1604 "grammar.y"
6589
+ #line 1603 "grammar.y"
6591
6590
  {
6592
6591
  NODE *n1;
6593
6592
  if(nd_type((yyvsp[(4) - (4)].node)) == NODE_ARRAY && (n1 = splat_array((yyvsp[(1) - (4)].node))) != 0) {
@@ -6599,21 +6598,21 @@ yyreduce:
6599
6598
  break;
6600
6599
 
6601
6600
  case 274:
6602
- #line 1613 "grammar.y"
6601
+ #line 1612 "grammar.y"
6603
6602
  {
6604
6603
  (yyval.node) = NEW_SPLAT((yyvsp[(2) - (2)].node));
6605
6604
  ;}
6606
6605
  break;
6607
6606
 
6608
6607
  case 285:
6609
- #line 1629 "grammar.y"
6608
+ #line 1628 "grammar.y"
6610
6609
  {
6611
6610
  (yyval.node) = NEW_FCALL((yyvsp[(1) - (1)].id), 0);
6612
6611
  ;}
6613
6612
  break;
6614
6613
 
6615
6614
  case 286:
6616
- #line 1633 "grammar.y"
6615
+ #line 1632 "grammar.y"
6617
6616
  {
6618
6617
  (yyvsp[(1) - (1)].val) = cmdarg_stack;
6619
6618
  cmdarg_stack = 0;
@@ -6622,7 +6621,7 @@ yyreduce:
6622
6621
  break;
6623
6622
 
6624
6623
  case 287:
6625
- #line 1640 "grammar.y"
6624
+ #line 1639 "grammar.y"
6626
6625
  {
6627
6626
  cmdarg_stack = (yyvsp[(1) - (4)].val);
6628
6627
  if((yyvsp[(3) - (4)].node) == NULL) {
@@ -6638,52 +6637,52 @@ yyreduce:
6638
6637
  break;
6639
6638
 
6640
6639
  case 288:
6641
- #line 1652 "grammar.y"
6640
+ #line 1651 "grammar.y"
6642
6641
  {lex_state = EXPR_ENDARG;;}
6643
6642
  break;
6644
6643
 
6645
6644
  case 289:
6646
- #line 1653 "grammar.y"
6645
+ #line 1652 "grammar.y"
6647
6646
  {
6648
6647
  (yyval.node) = 0;
6649
6648
  ;}
6650
6649
  break;
6651
6650
 
6652
6651
  case 290:
6653
- #line 1656 "grammar.y"
6652
+ #line 1655 "grammar.y"
6654
6653
  {lex_state = EXPR_ENDARG;;}
6655
6654
  break;
6656
6655
 
6657
6656
  case 291:
6658
- #line 1657 "grammar.y"
6657
+ #line 1656 "grammar.y"
6659
6658
  {
6660
6659
  (yyval.node) = (yyvsp[(2) - (4)].node);
6661
6660
  ;}
6662
6661
  break;
6663
6662
 
6664
6663
  case 292:
6665
- #line 1661 "grammar.y"
6664
+ #line 1660 "grammar.y"
6666
6665
  {
6667
6666
  (yyval.node) = (yyvsp[(2) - (3)].node);
6668
6667
  ;}
6669
6668
  break;
6670
6669
 
6671
6670
  case 293:
6672
- #line 1665 "grammar.y"
6671
+ #line 1664 "grammar.y"
6673
6672
  {
6674
6673
  (yyval.node) = NEW_COLON2((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id));
6675
6674
  ;}
6676
6675
  break;
6677
6676
 
6678
6677
  case 294:
6679
- #line 1669 "grammar.y"
6678
+ #line 1668 "grammar.y"
6680
6679
  {
6681
6680
  (yyval.node) = NEW_COLON3((yyvsp[(2) - (2)].id));
6682
6681
  ;}
6683
6682
  break;
6684
6683
 
6685
6684
  case 295:
6686
- #line 1673 "grammar.y"
6685
+ #line 1672 "grammar.y"
6687
6686
  {
6688
6687
  if((yyvsp[(2) - (3)].node) == 0) {
6689
6688
  (yyval.node) = NEW_ZARRAY(); /* zero length array*/
@@ -6694,47 +6693,47 @@ yyreduce:
6694
6693
  break;
6695
6694
 
6696
6695
  case 296:
6697
- #line 1681 "grammar.y"
6696
+ #line 1680 "grammar.y"
6698
6697
  {
6699
6698
  (yyval.node) = NEW_HASH((yyvsp[(2) - (3)].node));
6700
6699
  ;}
6701
6700
  break;
6702
6701
 
6703
6702
  case 297:
6704
- #line 1685 "grammar.y"
6703
+ #line 1684 "grammar.y"
6705
6704
  {
6706
6705
  (yyval.node) = NEW_RETURN(0);
6707
6706
  ;}
6708
6707
  break;
6709
6708
 
6710
6709
  case 298:
6711
- #line 1689 "grammar.y"
6710
+ #line 1688 "grammar.y"
6712
6711
  {
6713
6712
  (yyval.node) = new_yield((yyvsp[(3) - (4)].node));
6714
6713
  ;}
6715
6714
  break;
6716
6715
 
6717
6716
  case 299:
6718
- #line 1693 "grammar.y"
6717
+ #line 1692 "grammar.y"
6719
6718
  {
6720
6719
  (yyval.node) = NEW_YIELD(0, Qfalse);
6721
6720
  ;}
6722
6721
  break;
6723
6722
 
6724
6723
  case 300:
6725
- #line 1697 "grammar.y"
6724
+ #line 1696 "grammar.y"
6726
6725
  {
6727
6726
  (yyval.node) = NEW_YIELD(0, Qfalse);
6728
6727
  ;}
6729
6728
  break;
6730
6729
 
6731
6730
  case 301:
6732
- #line 1700 "grammar.y"
6731
+ #line 1699 "grammar.y"
6733
6732
  {in_defined = 1;;}
6734
6733
  break;
6735
6734
 
6736
6735
  case 302:
6737
- #line 1701 "grammar.y"
6736
+ #line 1700 "grammar.y"
6738
6737
  {
6739
6738
  in_defined = 0;
6740
6739
  (yyval.node) = NEW_DEFINED((yyvsp[(5) - (6)].node));
@@ -6742,21 +6741,21 @@ yyreduce:
6742
6741
  break;
6743
6742
 
6744
6743
  case 303:
6745
- #line 1706 "grammar.y"
6744
+ #line 1705 "grammar.y"
6746
6745
  {
6747
6746
  (yyval.node) = call_uni_op(cond((yyvsp[(3) - (4)].node)), '!');
6748
6747
  ;}
6749
6748
  break;
6750
6749
 
6751
6750
  case 304:
6752
- #line 1710 "grammar.y"
6751
+ #line 1709 "grammar.y"
6753
6752
  {
6754
6753
  (yyval.node) = call_uni_op(cond(NEW_NIL()), '!');
6755
6754
  ;}
6756
6755
  break;
6757
6756
 
6758
6757
  case 305:
6759
- #line 1714 "grammar.y"
6758
+ #line 1713 "grammar.y"
6760
6759
  {
6761
6760
  (yyvsp[(2) - (2)].node)->nd_iter = (yyvsp[(1) - (2)].node);
6762
6761
  (yyval.node) = (yyvsp[(2) - (2)].node);
@@ -6765,7 +6764,7 @@ yyreduce:
6765
6764
  break;
6766
6765
 
6767
6766
  case 307:
6768
- #line 1721 "grammar.y"
6767
+ #line 1720 "grammar.y"
6769
6768
  {
6770
6769
  block_dup_check((yyvsp[(1) - (2)].node)->nd_args, (yyvsp[(2) - (2)].node));
6771
6770
  (yyvsp[(2) - (2)].node)->nd_iter = (yyvsp[(1) - (2)].node);
@@ -6775,14 +6774,14 @@ yyreduce:
6775
6774
  break;
6776
6775
 
6777
6776
  case 308:
6778
- #line 1728 "grammar.y"
6777
+ #line 1727 "grammar.y"
6779
6778
  {
6780
6779
  (yyval.node) = (yyvsp[(2) - (2)].node);
6781
6780
  ;}
6782
6781
  break;
6783
6782
 
6784
6783
  case 309:
6785
- #line 1735 "grammar.y"
6784
+ #line 1734 "grammar.y"
6786
6785
  {
6787
6786
  (yyval.node) = NEW_IF(cond((yyvsp[(2) - (6)].node)), (yyvsp[(4) - (6)].node), (yyvsp[(5) - (6)].node));
6788
6787
  fixpos((yyval.node), (yyvsp[(2) - (6)].node));
@@ -6790,7 +6789,7 @@ yyreduce:
6790
6789
  break;
6791
6790
 
6792
6791
  case 310:
6793
- #line 1743 "grammar.y"
6792
+ #line 1742 "grammar.y"
6794
6793
  {
6795
6794
  (yyval.node) = NEW_UNLESS(cond((yyvsp[(2) - (6)].node)), (yyvsp[(4) - (6)].node), (yyvsp[(5) - (6)].node));
6796
6795
  fixpos((yyval.node), (yyvsp[(2) - (6)].node));
@@ -6798,17 +6797,17 @@ yyreduce:
6798
6797
  break;
6799
6798
 
6800
6799
  case 311:
6801
- #line 1747 "grammar.y"
6800
+ #line 1746 "grammar.y"
6802
6801
  {COND_PUSH(1);;}
6803
6802
  break;
6804
6803
 
6805
6804
  case 312:
6806
- #line 1747 "grammar.y"
6805
+ #line 1746 "grammar.y"
6807
6806
  {COND_POP();;}
6808
6807
  break;
6809
6808
 
6810
6809
  case 313:
6811
- #line 1750 "grammar.y"
6810
+ #line 1749 "grammar.y"
6812
6811
  {
6813
6812
  (yyval.node) = NEW_WHILE(cond((yyvsp[(3) - (7)].node)), (yyvsp[(6) - (7)].node), 1);
6814
6813
  fixpos((yyval.node), (yyvsp[(3) - (7)].node));
@@ -6816,17 +6815,17 @@ yyreduce:
6816
6815
  break;
6817
6816
 
6818
6817
  case 314:
6819
- #line 1754 "grammar.y"
6818
+ #line 1753 "grammar.y"
6820
6819
  {COND_PUSH(1);;}
6821
6820
  break;
6822
6821
 
6823
6822
  case 315:
6824
- #line 1754 "grammar.y"
6823
+ #line 1753 "grammar.y"
6825
6824
  {COND_POP();;}
6826
6825
  break;
6827
6826
 
6828
6827
  case 316:
6829
- #line 1757 "grammar.y"
6828
+ #line 1756 "grammar.y"
6830
6829
  {
6831
6830
  (yyval.node) = NEW_UNTIL(cond((yyvsp[(3) - (7)].node)), (yyvsp[(6) - (7)].node), 1);
6832
6831
  fixpos((yyval.node), (yyvsp[(3) - (7)].node));
@@ -6834,7 +6833,7 @@ yyreduce:
6834
6833
  break;
6835
6834
 
6836
6835
  case 317:
6837
- #line 1764 "grammar.y"
6836
+ #line 1763 "grammar.y"
6838
6837
  {
6839
6838
  (yyval.node) = NEW_CASE((yyvsp[(2) - (5)].node), (yyvsp[(4) - (5)].node));
6840
6839
  fixpos((yyval.node), (yyvsp[(2) - (5)].node));
@@ -6842,24 +6841,24 @@ yyreduce:
6842
6841
  break;
6843
6842
 
6844
6843
  case 318:
6845
- #line 1769 "grammar.y"
6844
+ #line 1768 "grammar.y"
6846
6845
  {
6847
6846
  (yyval.node) = NEW_CASE(0, (yyvsp[(3) - (4)].node));
6848
6847
  ;}
6849
6848
  break;
6850
6849
 
6851
6850
  case 319:
6852
- #line 1773 "grammar.y"
6851
+ #line 1772 "grammar.y"
6853
6852
  {COND_PUSH(1);;}
6854
6853
  break;
6855
6854
 
6856
6855
  case 320:
6857
- #line 1775 "grammar.y"
6856
+ #line 1774 "grammar.y"
6858
6857
  {COND_POP();;}
6859
6858
  break;
6860
6859
 
6861
6860
  case 321:
6862
- #line 1778 "grammar.y"
6861
+ #line 1777 "grammar.y"
6863
6862
  {
6864
6863
  /*
6865
6864
  * for a, b, c in e
@@ -6876,7 +6875,7 @@ yyreduce:
6876
6875
  break;
6877
6876
 
6878
6877
  case 322:
6879
- #line 1792 "grammar.y"
6878
+ #line 1791 "grammar.y"
6880
6879
  {
6881
6880
  if(in_def || in_single)
6882
6881
  yy_error("class definition in method body");
@@ -6887,7 +6886,7 @@ yyreduce:
6887
6886
  break;
6888
6887
 
6889
6888
  case 323:
6890
- #line 1801 "grammar.y"
6889
+ #line 1800 "grammar.y"
6891
6890
  {
6892
6891
  (yyval.node) = NEW_CLASS((yyvsp[(2) - (6)].node), (yyvsp[(5) - (6)].node), (yyvsp[(3) - (6)].node));
6893
6892
  nd_set_line((yyval.node), (yyvsp[(4) - (6)].num));
@@ -6897,7 +6896,7 @@ yyreduce:
6897
6896
  break;
6898
6897
 
6899
6898
  case 324:
6900
- #line 1808 "grammar.y"
6899
+ #line 1807 "grammar.y"
6901
6900
  {
6902
6901
  (yyval.num) = in_def;
6903
6902
  in_def = 0;
@@ -6905,7 +6904,7 @@ yyreduce:
6905
6904
  break;
6906
6905
 
6907
6906
  case 325:
6908
- #line 1813 "grammar.y"
6907
+ #line 1812 "grammar.y"
6909
6908
  {
6910
6909
  (yyval.num) = in_single;
6911
6910
  in_single = 0;
@@ -6915,7 +6914,7 @@ yyreduce:
6915
6914
  break;
6916
6915
 
6917
6916
  case 326:
6918
- #line 1821 "grammar.y"
6917
+ #line 1820 "grammar.y"
6919
6918
  {
6920
6919
  (yyval.node) = NEW_SCLASS((yyvsp[(3) - (8)].node), (yyvsp[(7) - (8)].node));
6921
6920
  fixpos((yyval.node), (yyvsp[(3) - (8)].node));
@@ -6927,7 +6926,7 @@ yyreduce:
6927
6926
  break;
6928
6927
 
6929
6928
  case 327:
6930
- #line 1830 "grammar.y"
6929
+ #line 1829 "grammar.y"
6931
6930
  {
6932
6931
  if(in_def || in_single)
6933
6932
  yy_error("module definition in method body");
@@ -6938,7 +6937,7 @@ yyreduce:
6938
6937
  break;
6939
6938
 
6940
6939
  case 328:
6941
- #line 1839 "grammar.y"
6940
+ #line 1838 "grammar.y"
6942
6941
  {
6943
6942
  (yyval.node) = NEW_MODULE((yyvsp[(2) - (5)].node), (yyvsp[(4) - (5)].node));
6944
6943
  nd_set_line((yyval.node), (yyvsp[(3) - (5)].num));
@@ -6948,7 +6947,7 @@ yyreduce:
6948
6947
  break;
6949
6948
 
6950
6949
  case 329:
6951
- #line 1846 "grammar.y"
6950
+ #line 1845 "grammar.y"
6952
6951
  {
6953
6952
  (yyval.id) = cur_mid;
6954
6953
  cur_mid = (yyvsp[(2) - (2)].id);
@@ -6958,7 +6957,7 @@ yyreduce:
6958
6957
  break;
6959
6958
 
6960
6959
  case 330:
6961
- #line 1855 "grammar.y"
6960
+ #line 1854 "grammar.y"
6962
6961
  {
6963
6962
  NODE* body = remove_begin((yyvsp[(5) - (6)].node));
6964
6963
  (yyval.node) = NEW_DEFN((yyvsp[(2) - (6)].id), (yyvsp[(4) - (6)].node), body, NOEX_PRIVATE);
@@ -6970,12 +6969,12 @@ yyreduce:
6970
6969
  break;
6971
6970
 
6972
6971
  case 331:
6973
- #line 1863 "grammar.y"
6972
+ #line 1862 "grammar.y"
6974
6973
  {lex_state = EXPR_FNAME;;}
6975
6974
  break;
6976
6975
 
6977
6976
  case 332:
6978
- #line 1864 "grammar.y"
6977
+ #line 1863 "grammar.y"
6979
6978
  {
6980
6979
  in_single++;
6981
6980
  lex_state = EXPR_ENDFN; /* force for args */
@@ -6984,7 +6983,7 @@ yyreduce:
6984
6983
  break;
6985
6984
 
6986
6985
  case 333:
6987
- #line 1872 "grammar.y"
6986
+ #line 1871 "grammar.y"
6988
6987
  {
6989
6988
  NODE* body = remove_begin((yyvsp[(8) - (9)].node));
6990
6989
  (yyval.node) = NEW_DEFS((yyvsp[(2) - (9)].node), (yyvsp[(5) - (9)].id), (yyvsp[(7) - (9)].node), body);
@@ -6995,35 +6994,35 @@ yyreduce:
6995
6994
  break;
6996
6995
 
6997
6996
  case 334:
6998
- #line 1880 "grammar.y"
6997
+ #line 1879 "grammar.y"
6999
6998
  {
7000
6999
  (yyval.node) = NEW_BREAK(0);
7001
7000
  ;}
7002
7001
  break;
7003
7002
 
7004
7003
  case 335:
7005
- #line 1884 "grammar.y"
7004
+ #line 1883 "grammar.y"
7006
7005
  {
7007
7006
  (yyval.node) = NEW_NEXT(0);
7008
7007
  ;}
7009
7008
  break;
7010
7009
 
7011
7010
  case 336:
7012
- #line 1888 "grammar.y"
7011
+ #line 1887 "grammar.y"
7013
7012
  {
7014
7013
  (yyval.node) = NEW_REDO();
7015
7014
  ;}
7016
7015
  break;
7017
7016
 
7018
7017
  case 337:
7019
- #line 1892 "grammar.y"
7018
+ #line 1891 "grammar.y"
7020
7019
  {
7021
7020
  (yyval.node) = NEW_RETRY();
7022
7021
  ;}
7023
7022
  break;
7024
7023
 
7025
7024
  case 338:
7026
- #line 1898 "grammar.y"
7025
+ #line 1897 "grammar.y"
7027
7026
  {
7028
7027
  value_expr((yyvsp[(1) - (1)].node));
7029
7028
  (yyval.node) = (yyvsp[(1) - (1)].node);
@@ -7032,70 +7031,70 @@ yyreduce:
7032
7031
  break;
7033
7032
 
7034
7033
  case 339:
7035
- #line 1906 "grammar.y"
7034
+ #line 1905 "grammar.y"
7036
7035
  {
7037
7036
  token_info_push("begin");
7038
7037
  ;}
7039
7038
  break;
7040
7039
 
7041
7040
  case 340:
7042
- #line 1912 "grammar.y"
7041
+ #line 1911 "grammar.y"
7043
7042
  {
7044
7043
  token_info_push("if");
7045
7044
  ;}
7046
7045
  break;
7047
7046
 
7048
7047
  case 341:
7049
- #line 1918 "grammar.y"
7048
+ #line 1917 "grammar.y"
7050
7049
  {
7051
7050
  token_info_push("unless");
7052
7051
  ;}
7053
7052
  break;
7054
7053
 
7055
7054
  case 342:
7056
- #line 1924 "grammar.y"
7055
+ #line 1923 "grammar.y"
7057
7056
  {
7058
7057
  token_info_push("while");
7059
7058
  ;}
7060
7059
  break;
7061
7060
 
7062
7061
  case 343:
7063
- #line 1930 "grammar.y"
7062
+ #line 1929 "grammar.y"
7064
7063
  {
7065
7064
  token_info_push("until");
7066
7065
  ;}
7067
7066
  break;
7068
7067
 
7069
7068
  case 344:
7070
- #line 1936 "grammar.y"
7069
+ #line 1935 "grammar.y"
7071
7070
  {
7072
7071
  token_info_push("case");
7073
7072
  ;}
7074
7073
  break;
7075
7074
 
7076
7075
  case 345:
7077
- #line 1942 "grammar.y"
7076
+ #line 1941 "grammar.y"
7078
7077
  {
7079
7078
  token_info_push("for");
7080
7079
  ;}
7081
7080
  break;
7082
7081
 
7083
7082
  case 346:
7084
- #line 1948 "grammar.y"
7083
+ #line 1947 "grammar.y"
7085
7084
  {
7086
7085
  token_info_push("class");
7087
7086
  ;}
7088
7087
  break;
7089
7088
 
7090
7089
  case 347:
7091
- #line 1954 "grammar.y"
7090
+ #line 1953 "grammar.y"
7092
7091
  {
7093
7092
  token_info_push("module");
7094
7093
  ;}
7095
7094
  break;
7096
7095
 
7097
7096
  case 348:
7098
- #line 1960 "grammar.y"
7097
+ #line 1959 "grammar.y"
7099
7098
  {
7100
7099
  token_info_push("def");
7101
7100
  (yyval.num) = sourceline;
@@ -7103,14 +7102,14 @@ yyreduce:
7103
7102
  break;
7104
7103
 
7105
7104
  case 349:
7106
- #line 1967 "grammar.y"
7105
+ #line 1966 "grammar.y"
7107
7106
  {
7108
7107
  token_info_pop("end");
7109
7108
  ;}
7110
7109
  break;
7111
7110
 
7112
7111
  case 356:
7113
- #line 1985 "grammar.y"
7112
+ #line 1984 "grammar.y"
7114
7113
  {
7115
7114
  (yyval.node) = NEW_IF(cond((yyvsp[(2) - (5)].node)), (yyvsp[(4) - (5)].node), (yyvsp[(5) - (5)].node));
7116
7115
  fixpos((yyval.node), (yyvsp[(2) - (5)].node));
@@ -7118,49 +7117,49 @@ yyreduce:
7118
7117
  break;
7119
7118
 
7120
7119
  case 358:
7121
- #line 1993 "grammar.y"
7120
+ #line 1992 "grammar.y"
7122
7121
  {
7123
7122
  (yyval.node) = (yyvsp[(2) - (2)].node);
7124
7123
  ;}
7125
7124
  break;
7126
7125
 
7127
7126
  case 361:
7128
- #line 2003 "grammar.y"
7127
+ #line 2002 "grammar.y"
7129
7128
  {
7130
7129
  (yyval.node) = assignable((yyvsp[(1) - (1)].id), 0);
7131
7130
  ;}
7132
7131
  break;
7133
7132
 
7134
7133
  case 362:
7135
- #line 2007 "grammar.y"
7134
+ #line 2006 "grammar.y"
7136
7135
  {
7137
7136
  (yyval.node) = (yyvsp[(2) - (3)].node);
7138
7137
  ;}
7139
7138
  break;
7140
7139
 
7141
7140
  case 363:
7142
- #line 2013 "grammar.y"
7141
+ #line 2012 "grammar.y"
7143
7142
  {
7144
7143
  (yyval.node) = NEW_LIST((yyvsp[(1) - (1)].node));
7145
7144
  ;}
7146
7145
  break;
7147
7146
 
7148
7147
  case 364:
7149
- #line 2017 "grammar.y"
7148
+ #line 2016 "grammar.y"
7150
7149
  {
7151
7150
  (yyval.node) = list_append((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
7152
7151
  ;}
7153
7152
  break;
7154
7153
 
7155
7154
  case 365:
7156
- #line 2023 "grammar.y"
7155
+ #line 2022 "grammar.y"
7157
7156
  {
7158
7157
  (yyval.node) = NEW_MASGN((yyvsp[(1) - (1)].node), 0);
7159
7158
  ;}
7160
7159
  break;
7161
7160
 
7162
7161
  case 366:
7163
- #line 2027 "grammar.y"
7162
+ #line 2026 "grammar.y"
7164
7163
  {
7165
7164
  (yyval.node) = assignable((yyvsp[(4) - (4)].id), 0);
7166
7165
  (yyval.node) = NEW_MASGN((yyvsp[(1) - (4)].node), (yyval.node));
@@ -7168,7 +7167,7 @@ yyreduce:
7168
7167
  break;
7169
7168
 
7170
7169
  case 367:
7171
- #line 2032 "grammar.y"
7170
+ #line 2031 "grammar.y"
7172
7171
  {
7173
7172
  (yyval.node) = assignable((yyvsp[(4) - (6)].id), 0);
7174
7173
  (yyval.node) = NEW_MASGN((yyvsp[(1) - (6)].node), NEW_POSTARG((yyval.node), (yyvsp[(6) - (6)].node)));
@@ -7176,21 +7175,21 @@ yyreduce:
7176
7175
  break;
7177
7176
 
7178
7177
  case 368:
7179
- #line 2037 "grammar.y"
7178
+ #line 2036 "grammar.y"
7180
7179
  {
7181
7180
  (yyval.node) = NEW_MASGN((yyvsp[(1) - (3)].node), -1);
7182
7181
  ;}
7183
7182
  break;
7184
7183
 
7185
7184
  case 369:
7186
- #line 2041 "grammar.y"
7185
+ #line 2040 "grammar.y"
7187
7186
  {
7188
7187
  (yyval.node) = NEW_MASGN((yyvsp[(1) - (5)].node), NEW_POSTARG(-1, (yyvsp[(5) - (5)].node)));
7189
7188
  ;}
7190
7189
  break;
7191
7190
 
7192
7191
  case 370:
7193
- #line 2045 "grammar.y"
7192
+ #line 2044 "grammar.y"
7194
7193
  {
7195
7194
  (yyval.node) = assignable((yyvsp[(2) - (2)].id), 0);
7196
7195
  (yyval.node) = NEW_MASGN(0, (yyval.node));
@@ -7198,7 +7197,7 @@ yyreduce:
7198
7197
  break;
7199
7198
 
7200
7199
  case 371:
7201
- #line 2050 "grammar.y"
7200
+ #line 2049 "grammar.y"
7202
7201
  {
7203
7202
  (yyval.node) = assignable((yyvsp[(2) - (4)].id), 0);
7204
7203
  (yyval.node) = NEW_MASGN(0, NEW_POSTARG((yyval.node), (yyvsp[(4) - (4)].node)));
@@ -7206,175 +7205,175 @@ yyreduce:
7206
7205
  break;
7207
7206
 
7208
7207
  case 372:
7209
- #line 2055 "grammar.y"
7208
+ #line 2054 "grammar.y"
7210
7209
  {
7211
7210
  (yyval.node) = NEW_MASGN(0, -1);
7212
7211
  ;}
7213
7212
  break;
7214
7213
 
7215
7214
  case 373:
7216
- #line 2059 "grammar.y"
7215
+ #line 2058 "grammar.y"
7217
7216
  {
7218
7217
  (yyval.node) = NEW_MASGN(0, NEW_POSTARG(-1, (yyvsp[(3) - (3)].node)));
7219
7218
  ;}
7220
7219
  break;
7221
7220
 
7222
7221
  case 374:
7223
- #line 2065 "grammar.y"
7222
+ #line 2064 "grammar.y"
7224
7223
  {
7225
7224
  (yyval.node) = new_args_tail((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].id), (yyvsp[(4) - (4)].id));
7226
7225
  ;}
7227
7226
  break;
7228
7227
 
7229
7228
  case 375:
7230
- #line 2069 "grammar.y"
7229
+ #line 2068 "grammar.y"
7231
7230
  {
7232
7231
  (yyval.node) = new_args_tail((yyvsp[(1) - (2)].node), 0, (yyvsp[(2) - (2)].id));
7233
7232
  ;}
7234
7233
  break;
7235
7234
 
7236
7235
  case 376:
7237
- #line 2073 "grammar.y"
7236
+ #line 2072 "grammar.y"
7238
7237
  {
7239
7238
  (yyval.node) = new_args_tail(0, (yyvsp[(1) - (2)].id), (yyvsp[(2) - (2)].id));
7240
7239
  ;}
7241
7240
  break;
7242
7241
 
7243
7242
  case 377:
7244
- #line 2077 "grammar.y"
7243
+ #line 2076 "grammar.y"
7245
7244
  {
7246
7245
  (yyval.node) = new_args_tail(0, 0, (yyvsp[(1) - (1)].id));
7247
7246
  ;}
7248
7247
  break;
7249
7248
 
7250
7249
  case 378:
7251
- #line 2083 "grammar.y"
7250
+ #line 2082 "grammar.y"
7252
7251
  {
7253
7252
  (yyval.node) = (yyvsp[(2) - (2)].node);
7254
7253
  ;}
7255
7254
  break;
7256
7255
 
7257
7256
  case 379:
7258
- #line 2087 "grammar.y"
7257
+ #line 2086 "grammar.y"
7259
7258
  {
7260
7259
  (yyval.node) = new_args_tail(0, 0, 0);
7261
7260
  ;}
7262
7261
  break;
7263
7262
 
7264
7263
  case 380:
7265
- #line 2093 "grammar.y"
7264
+ #line 2092 "grammar.y"
7266
7265
  {
7267
7266
  (yyval.node) = new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].id), 0, (yyvsp[(6) - (6)].node));
7268
7267
  ;}
7269
7268
  break;
7270
7269
 
7271
7270
  case 381:
7272
- #line 2097 "grammar.y"
7271
+ #line 2096 "grammar.y"
7273
7272
  {
7274
7273
  (yyval.node) = new_args((yyvsp[(1) - (8)].node), (yyvsp[(3) - (8)].node), (yyvsp[(5) - (8)].id), (yyvsp[(7) - (8)].node), (yyvsp[(8) - (8)].node));
7275
7274
  ;}
7276
7275
  break;
7277
7276
 
7278
7277
  case 382:
7279
- #line 2101 "grammar.y"
7278
+ #line 2100 "grammar.y"
7280
7279
  {
7281
7280
  (yyval.node) = new_args((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node), 0, 0, (yyvsp[(4) - (4)].node));
7282
7281
  ;}
7283
7282
  break;
7284
7283
 
7285
7284
  case 383:
7286
- #line 2105 "grammar.y"
7285
+ #line 2104 "grammar.y"
7287
7286
  {
7288
7287
  (yyval.node) = new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].node), 0, (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].node));
7289
7288
  ;}
7290
7289
  break;
7291
7290
 
7292
7291
  case 384:
7293
- #line 2109 "grammar.y"
7292
+ #line 2108 "grammar.y"
7294
7293
  {
7295
7294
  (yyval.node) = new_args((yyvsp[(1) - (4)].node), 0, (yyvsp[(3) - (4)].id), 0, (yyvsp[(4) - (4)].node));
7296
7295
  ;}
7297
7296
  break;
7298
7297
 
7299
7298
  case 385:
7300
- #line 2113 "grammar.y"
7299
+ #line 2112 "grammar.y"
7301
7300
  {
7302
7301
  (yyval.node) = new_args((yyvsp[(1) - (2)].node), 0, 1, 0, new_args_tail(0, 0, 0));
7303
7302
  ;}
7304
7303
  break;
7305
7304
 
7306
7305
  case 386:
7307
- #line 2117 "grammar.y"
7306
+ #line 2116 "grammar.y"
7308
7307
  {
7309
7308
  (yyval.node) = new_args((yyvsp[(1) - (6)].node), 0, (yyvsp[(3) - (6)].id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].node));
7310
7309
  ;}
7311
7310
  break;
7312
7311
 
7313
7312
  case 387:
7314
- #line 2121 "grammar.y"
7313
+ #line 2120 "grammar.y"
7315
7314
  {
7316
7315
  (yyval.node) = new_args((yyvsp[(1) - (2)].node), 0, 0, 0, (yyvsp[(2) - (2)].node));
7317
7316
  ;}
7318
7317
  break;
7319
7318
 
7320
7319
  case 388:
7321
- #line 2125 "grammar.y"
7320
+ #line 2124 "grammar.y"
7322
7321
  {
7323
7322
  (yyval.node) = new_args(0, (yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].id), 0, (yyvsp[(4) - (4)].node));
7324
7323
  ;}
7325
7324
  break;
7326
7325
 
7327
7326
  case 389:
7328
- #line 2129 "grammar.y"
7327
+ #line 2128 "grammar.y"
7329
7328
  {
7330
7329
  (yyval.node) = new_args(0, (yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].node));
7331
7330
  ;}
7332
7331
  break;
7333
7332
 
7334
7333
  case 390:
7335
- #line 2133 "grammar.y"
7334
+ #line 2132 "grammar.y"
7336
7335
  {
7337
7336
  (yyval.node) = new_args(0, (yyvsp[(1) - (2)].node), 0, 0, (yyvsp[(2) - (2)].node));
7338
7337
  ;}
7339
7338
  break;
7340
7339
 
7341
7340
  case 391:
7342
- #line 2137 "grammar.y"
7341
+ #line 2136 "grammar.y"
7343
7342
  {
7344
7343
  (yyval.node) = new_args(0, (yyvsp[(1) - (4)].node), 0, (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node));
7345
7344
  ;}
7346
7345
  break;
7347
7346
 
7348
7347
  case 392:
7349
- #line 2141 "grammar.y"
7348
+ #line 2140 "grammar.y"
7350
7349
  {
7351
7350
  (yyval.node) = new_args(0, 0, (yyvsp[(1) - (2)].id), 0, (yyvsp[(2) - (2)].node));
7352
7351
  ;}
7353
7352
  break;
7354
7353
 
7355
7354
  case 393:
7356
- #line 2145 "grammar.y"
7355
+ #line 2144 "grammar.y"
7357
7356
  {
7358
7357
  (yyval.node) = new_args(0, 0, (yyvsp[(1) - (4)].id), (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node));
7359
7358
  ;}
7360
7359
  break;
7361
7360
 
7362
7361
  case 394:
7363
- #line 2149 "grammar.y"
7362
+ #line 2148 "grammar.y"
7364
7363
  {
7365
7364
  (yyval.node) = new_args(0, 0, 0, 0, (yyvsp[(1) - (1)].node));
7366
7365
  ;}
7367
7366
  break;
7368
7367
 
7369
7368
  case 396:
7370
- #line 2156 "grammar.y"
7369
+ #line 2155 "grammar.y"
7371
7370
  {
7372
7371
  command_start = TRUE;
7373
7372
  ;}
7374
7373
  break;
7375
7374
 
7376
7375
  case 397:
7377
- #line 2162 "grammar.y"
7376
+ #line 2161 "grammar.y"
7378
7377
  {
7379
7378
  // This is deliberately different than MRI.
7380
7379
  (yyval.node) = (yyvsp[(2) - (3)].node) ? NEW_ARGS_AUX(0, (yyvsp[(2) - (3)].node)) : 0;
@@ -7382,14 +7381,14 @@ yyreduce:
7382
7381
  break;
7383
7382
 
7384
7383
  case 398:
7385
- #line 2167 "grammar.y"
7384
+ #line 2166 "grammar.y"
7386
7385
  {
7387
7386
  (yyval.node) = 0;
7388
7387
  ;}
7389
7388
  break;
7390
7389
 
7391
7390
  case 399:
7392
- #line 2171 "grammar.y"
7391
+ #line 2170 "grammar.y"
7393
7392
  {
7394
7393
  // This is deliberately different than MRI.
7395
7394
  (yyval.node) = (yyvsp[(3) - (4)].node) ? NEW_ARGS_AUX((yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node)) : (yyvsp[(2) - (4)].node);
@@ -7397,14 +7396,14 @@ yyreduce:
7397
7396
  break;
7398
7397
 
7399
7398
  case 400:
7400
- #line 2178 "grammar.y"
7399
+ #line 2177 "grammar.y"
7401
7400
  {
7402
7401
  (yyval.node) = 0;
7403
7402
  ;}
7404
7403
  break;
7405
7404
 
7406
7405
  case 401:
7407
- #line 2182 "grammar.y"
7406
+ #line 2181 "grammar.y"
7408
7407
  {
7409
7408
  // This is deliberately different than MRI.
7410
7409
  (yyval.node) = (yyvsp[(3) - (3)].node);
@@ -7412,7 +7411,7 @@ yyreduce:
7412
7411
  break;
7413
7412
 
7414
7413
  case 402:
7415
- #line 2189 "grammar.y"
7414
+ #line 2188 "grammar.y"
7416
7415
  {
7417
7416
  // This is deliberately different than MRI.
7418
7417
  (yyval.node) = NEW_LIST((yyvsp[(1) - (1)].node));
@@ -7420,7 +7419,7 @@ yyreduce:
7420
7419
  break;
7421
7420
 
7422
7421
  case 403:
7423
- #line 2194 "grammar.y"
7422
+ #line 2193 "grammar.y"
7424
7423
  {
7425
7424
  // This is deliberately different than MRI.
7426
7425
  (yyval.node) = list_append((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
@@ -7428,7 +7427,7 @@ yyreduce:
7428
7427
  break;
7429
7428
 
7430
7429
  case 404:
7431
- #line 2201 "grammar.y"
7430
+ #line 2200 "grammar.y"
7432
7431
  {
7433
7432
  new_bv(get_id((yyvsp[(1) - (1)].id)));
7434
7433
  // This is deliberately different than MRI.
@@ -7437,21 +7436,21 @@ yyreduce:
7437
7436
  break;
7438
7437
 
7439
7438
  case 405:
7440
- #line 2207 "grammar.y"
7439
+ #line 2206 "grammar.y"
7441
7440
  {
7442
7441
  (yyval.node) = 0;
7443
7442
  ;}
7444
7443
  break;
7445
7444
 
7446
7445
  case 406:
7447
- #line 2212 "grammar.y"
7446
+ #line 2211 "grammar.y"
7448
7447
  {
7449
7448
  (yyval.vars) = bv_push();
7450
7449
  ;}
7451
7450
  break;
7452
7451
 
7453
7452
  case 407:
7454
- #line 2215 "grammar.y"
7453
+ #line 2214 "grammar.y"
7455
7454
  {
7456
7455
  (yyval.num) = lpar_beg;
7457
7456
  lpar_beg = ++paren_nest;
@@ -7459,14 +7458,14 @@ yyreduce:
7459
7458
  break;
7460
7459
 
7461
7460
  case 408:
7462
- #line 2220 "grammar.y"
7461
+ #line 2219 "grammar.y"
7463
7462
  {
7464
7463
  (yyval.num) = sourceline;
7465
7464
  ;}
7466
7465
  break;
7467
7466
 
7468
7467
  case 409:
7469
- #line 2224 "grammar.y"
7468
+ #line 2223 "grammar.y"
7470
7469
  {
7471
7470
  lpar_beg = (yyvsp[(2) - (5)].num);
7472
7471
  (yyval.node) = NEW_LAMBDA((yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node));
@@ -7476,35 +7475,35 @@ yyreduce:
7476
7475
  break;
7477
7476
 
7478
7477
  case 410:
7479
- #line 2233 "grammar.y"
7478
+ #line 2232 "grammar.y"
7480
7479
  {
7481
7480
  (yyval.node) = (yyvsp[(2) - (4)].node);
7482
7481
  ;}
7483
7482
  break;
7484
7483
 
7485
7484
  case 411:
7486
- #line 2237 "grammar.y"
7485
+ #line 2236 "grammar.y"
7487
7486
  {
7488
7487
  (yyval.node) = (yyvsp[(1) - (1)].node);
7489
7488
  ;}
7490
7489
  break;
7491
7490
 
7492
7491
  case 412:
7493
- #line 2243 "grammar.y"
7492
+ #line 2242 "grammar.y"
7494
7493
  {
7495
7494
  (yyval.node) = (yyvsp[(2) - (3)].node);
7496
7495
  ;}
7497
7496
  break;
7498
7497
 
7499
7498
  case 413:
7500
- #line 2247 "grammar.y"
7499
+ #line 2246 "grammar.y"
7501
7500
  {
7502
7501
  (yyval.node) = (yyvsp[(2) - (3)].node);
7503
7502
  ;}
7504
7503
  break;
7505
7504
 
7506
7505
  case 414:
7507
- #line 2253 "grammar.y"
7506
+ #line 2252 "grammar.y"
7508
7507
  {
7509
7508
  (yyvsp[(1) - (1)].vars) = bv_push();
7510
7509
  (yyval.num) = sourceline;
@@ -7512,7 +7511,7 @@ yyreduce:
7512
7511
  break;
7513
7512
 
7514
7513
  case 415:
7515
- #line 2260 "grammar.y"
7514
+ #line 2259 "grammar.y"
7516
7515
  {
7517
7516
  (yyval.node) = NEW_ITER((yyvsp[(3) - (5)].node), (yyvsp[(4) - (5)].node));
7518
7517
  nd_set_line((yyval.node), (yyvsp[(2) - (5)].num));
@@ -7521,7 +7520,7 @@ yyreduce:
7521
7520
  break;
7522
7521
 
7523
7522
  case 416:
7524
- #line 2268 "grammar.y"
7523
+ #line 2267 "grammar.y"
7525
7524
  {
7526
7525
  if(nd_type((yyvsp[(1) - (2)].node)) == NODE_YIELD) {
7527
7526
  compile_error("block given to yield");
@@ -7535,14 +7534,14 @@ yyreduce:
7535
7534
  break;
7536
7535
 
7537
7536
  case 417:
7538
- #line 2279 "grammar.y"
7537
+ #line 2278 "grammar.y"
7539
7538
  {
7540
7539
  (yyval.node) = NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].id), (yyvsp[(4) - (4)].node));
7541
7540
  ;}
7542
7541
  break;
7543
7542
 
7544
7543
  case 418:
7545
- #line 2283 "grammar.y"
7544
+ #line 2282 "grammar.y"
7546
7545
  {
7547
7546
  block_dup_check((yyvsp[(4) - (5)].node), (yyvsp[(5) - (5)].node));
7548
7547
  (yyvsp[(5) - (5)].node)->nd_iter = NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].node));
@@ -7552,7 +7551,7 @@ yyreduce:
7552
7551
  break;
7553
7552
 
7554
7553
  case 419:
7555
- #line 2290 "grammar.y"
7554
+ #line 2289 "grammar.y"
7556
7555
  {
7557
7556
  block_dup_check((yyvsp[(4) - (5)].node), (yyvsp[(5) - (5)].node));
7558
7557
  (yyvsp[(5) - (5)].node)->nd_iter = NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].node));
@@ -7562,7 +7561,7 @@ yyreduce:
7562
7561
  break;
7563
7562
 
7564
7563
  case 420:
7565
- #line 2299 "grammar.y"
7564
+ #line 2298 "grammar.y"
7566
7565
  {
7567
7566
  (yyval.node) = (yyvsp[(1) - (2)].node);
7568
7567
  (yyval.node)->nd_args = (yyvsp[(2) - (2)].node);
@@ -7571,14 +7570,14 @@ yyreduce:
7571
7570
  break;
7572
7571
 
7573
7572
  case 421:
7574
- #line 2305 "grammar.y"
7573
+ #line 2304 "grammar.y"
7575
7574
  {
7576
7575
  (yyval.num) = sourceline;
7577
7576
  ;}
7578
7577
  break;
7579
7578
 
7580
7579
  case 422:
7581
- #line 2309 "grammar.y"
7580
+ #line 2308 "grammar.y"
7582
7581
  {
7583
7582
  (yyval.node) = NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].id), (yyvsp[(5) - (5)].node));
7584
7583
  nd_set_line((yyval.node), (yyvsp[(4) - (5)].num));
@@ -7586,14 +7585,14 @@ yyreduce:
7586
7585
  break;
7587
7586
 
7588
7587
  case 423:
7589
- #line 2314 "grammar.y"
7588
+ #line 2313 "grammar.y"
7590
7589
  {
7591
7590
  (yyval.num) = sourceline;
7592
7591
  ;}
7593
7592
  break;
7594
7593
 
7595
7594
  case 424:
7596
- #line 2318 "grammar.y"
7595
+ #line 2317 "grammar.y"
7597
7596
  {
7598
7597
  (yyval.node) = NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].id), (yyvsp[(5) - (5)].node));
7599
7598
  nd_set_line((yyval.node), (yyvsp[(4) - (5)].num));
@@ -7601,21 +7600,21 @@ yyreduce:
7601
7600
  break;
7602
7601
 
7603
7602
  case 425:
7604
- #line 2323 "grammar.y"
7603
+ #line 2322 "grammar.y"
7605
7604
  {
7606
7605
  (yyval.node) = NEW_CALL((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].id), 0);
7607
7606
  ;}
7608
7607
  break;
7609
7608
 
7610
7609
  case 426:
7611
- #line 2327 "grammar.y"
7610
+ #line 2326 "grammar.y"
7612
7611
  {
7613
7612
  (yyval.num) = sourceline;
7614
7613
  ;}
7615
7614
  break;
7616
7615
 
7617
7616
  case 427:
7618
- #line 2331 "grammar.y"
7617
+ #line 2330 "grammar.y"
7619
7618
  {
7620
7619
  (yyval.node) = NEW_CALL((yyvsp[(1) - (4)].node), parser_intern("call"), (yyvsp[(4) - (4)].node));
7621
7620
  nd_set_line((yyval.node), (yyvsp[(3) - (4)].num));
@@ -7623,14 +7622,14 @@ yyreduce:
7623
7622
  break;
7624
7623
 
7625
7624
  case 428:
7626
- #line 2336 "grammar.y"
7625
+ #line 2335 "grammar.y"
7627
7626
  {
7628
7627
  (yyval.num) = sourceline;
7629
7628
  ;}
7630
7629
  break;
7631
7630
 
7632
7631
  case 429:
7633
- #line 2340 "grammar.y"
7632
+ #line 2339 "grammar.y"
7634
7633
  {
7635
7634
  (yyval.node) = NEW_CALL((yyvsp[(1) - (4)].node), parser_intern("call"), (yyvsp[(4) - (4)].node));
7636
7635
  nd_set_line((yyval.node), (yyvsp[(3) - (4)].num));
@@ -7638,21 +7637,21 @@ yyreduce:
7638
7637
  break;
7639
7638
 
7640
7639
  case 430:
7641
- #line 2345 "grammar.y"
7640
+ #line 2344 "grammar.y"
7642
7641
  {
7643
7642
  (yyval.node) = NEW_SUPER((yyvsp[(2) - (2)].node));
7644
7643
  ;}
7645
7644
  break;
7646
7645
 
7647
7646
  case 431:
7648
- #line 2349 "grammar.y"
7647
+ #line 2348 "grammar.y"
7649
7648
  {
7650
7649
  (yyval.node) = NEW_ZSUPER();
7651
7650
  ;}
7652
7651
  break;
7653
7652
 
7654
7653
  case 432:
7655
- #line 2353 "grammar.y"
7654
+ #line 2352 "grammar.y"
7656
7655
  {
7657
7656
  if((yyvsp[(1) - (4)].node) && nd_type((yyvsp[(1) - (4)].node)) == NODE_SELF) {
7658
7657
  (yyval.node) = NEW_FCALL(tAREF, (yyvsp[(3) - (4)].node));
@@ -7664,7 +7663,7 @@ yyreduce:
7664
7663
  break;
7665
7664
 
7666
7665
  case 433:
7667
- #line 2364 "grammar.y"
7666
+ #line 2363 "grammar.y"
7668
7667
  {
7669
7668
  (yyvsp[(1) - (1)].vars) = bv_push();
7670
7669
  (yyval.num) = sourceline;
@@ -7672,7 +7671,7 @@ yyreduce:
7672
7671
  break;
7673
7672
 
7674
7673
  case 434:
7675
- #line 2370 "grammar.y"
7674
+ #line 2369 "grammar.y"
7676
7675
  {
7677
7676
  (yyval.node) = NEW_ITER((yyvsp[(3) - (5)].node), (yyvsp[(4) - (5)].node));
7678
7677
  nd_set_line((yyval.node), (yyvsp[(2) - (5)].num));
@@ -7681,7 +7680,7 @@ yyreduce:
7681
7680
  break;
7682
7681
 
7683
7682
  case 435:
7684
- #line 2376 "grammar.y"
7683
+ #line 2375 "grammar.y"
7685
7684
  {
7686
7685
  (yyvsp[(1) - (1)].vars) = bv_push();
7687
7686
  (yyval.num) = sourceline;
@@ -7689,7 +7688,7 @@ yyreduce:
7689
7688
  break;
7690
7689
 
7691
7690
  case 436:
7692
- #line 2382 "grammar.y"
7691
+ #line 2381 "grammar.y"
7693
7692
  {
7694
7693
  (yyval.node) = NEW_ITER((yyvsp[(3) - (5)].node), (yyvsp[(4) - (5)].node));
7695
7694
  nd_set_line((yyval.node), (yyvsp[(2) - (5)].num));
@@ -7698,14 +7697,14 @@ yyreduce:
7698
7697
  break;
7699
7698
 
7700
7699
  case 437:
7701
- #line 2392 "grammar.y"
7700
+ #line 2391 "grammar.y"
7702
7701
  {
7703
7702
  (yyval.node) = NEW_WHEN((yyvsp[(2) - (5)].node), (yyvsp[(4) - (5)].node), (yyvsp[(5) - (5)].node));
7704
7703
  ;}
7705
7704
  break;
7706
7705
 
7707
7706
  case 440:
7708
- #line 2404 "grammar.y"
7707
+ #line 2403 "grammar.y"
7709
7708
  {
7710
7709
  if((yyvsp[(3) - (6)].node)) {
7711
7710
  /* TODO NEW_ERRINFO() */
@@ -7718,42 +7717,42 @@ yyreduce:
7718
7717
  break;
7719
7718
 
7720
7719
  case 442:
7721
- #line 2417 "grammar.y"
7720
+ #line 2416 "grammar.y"
7722
7721
  {
7723
7722
  (yyval.node) = NEW_LIST((yyvsp[(1) - (1)].node));
7724
7723
  ;}
7725
7724
  break;
7726
7725
 
7727
7726
  case 443:
7728
- #line 2421 "grammar.y"
7727
+ #line 2420 "grammar.y"
7729
7728
  {
7730
7729
  if(!((yyval.node) = splat_array((yyvsp[(1) - (1)].node)))) (yyval.node) = (yyvsp[(1) - (1)].node);
7731
7730
  ;}
7732
7731
  break;
7733
7732
 
7734
7733
  case 445:
7735
- #line 2428 "grammar.y"
7734
+ #line 2427 "grammar.y"
7736
7735
  {
7737
7736
  (yyval.node) = (yyvsp[(2) - (2)].node);
7738
7737
  ;}
7739
7738
  break;
7740
7739
 
7741
7740
  case 447:
7742
- #line 2435 "grammar.y"
7741
+ #line 2434 "grammar.y"
7743
7742
  {
7744
7743
  (yyval.node) = (yyvsp[(2) - (2)].node);
7745
7744
  ;}
7746
7745
  break;
7747
7746
 
7748
7747
  case 450:
7749
- #line 2443 "grammar.y"
7748
+ #line 2442 "grammar.y"
7750
7749
  {
7751
7750
  (yyval.node) = NEW_LIT(ID2SYM((yyvsp[(1) - (1)].id)));
7752
7751
  ;}
7753
7752
  break;
7754
7753
 
7755
7754
  case 452:
7756
- #line 2450 "grammar.y"
7755
+ #line 2449 "grammar.y"
7757
7756
  {
7758
7757
  NODE *node = (yyvsp[(1) - (1)].node);
7759
7758
  if(!node) {
@@ -7766,21 +7765,21 @@ yyreduce:
7766
7765
  break;
7767
7766
 
7768
7767
  case 455:
7769
- #line 2464 "grammar.y"
7768
+ #line 2463 "grammar.y"
7770
7769
  {
7771
7770
  (yyval.node) = literal_concat((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));
7772
7771
  ;}
7773
7772
  break;
7774
7773
 
7775
7774
  case 456:
7776
- #line 2470 "grammar.y"
7775
+ #line 2469 "grammar.y"
7777
7776
  {
7778
7777
  (yyval.node) = (yyvsp[(2) - (3)].node);
7779
7778
  ;}
7780
7779
  break;
7781
7780
 
7782
7781
  case 457:
7783
- #line 2476 "grammar.y"
7782
+ #line 2475 "grammar.y"
7784
7783
  {
7785
7784
  NODE *node = (yyvsp[(2) - (3)].node);
7786
7785
  if(!node) {
@@ -7803,7 +7802,7 @@ yyreduce:
7803
7802
  break;
7804
7803
 
7805
7804
  case 458:
7806
- #line 2498 "grammar.y"
7805
+ #line 2497 "grammar.y"
7807
7806
  {
7808
7807
  intptr_t options = (yyvsp[(3) - (3)].num);
7809
7808
  NODE *node = (yyvsp[(2) - (3)].node);
@@ -7864,63 +7863,63 @@ yyreduce:
7864
7863
  break;
7865
7864
 
7866
7865
  case 459:
7867
- #line 2558 "grammar.y"
7866
+ #line 2557 "grammar.y"
7868
7867
  {
7869
7868
  (yyval.node) = NEW_ZARRAY();
7870
7869
  ;}
7871
7870
  break;
7872
7871
 
7873
7872
  case 460:
7874
- #line 2562 "grammar.y"
7873
+ #line 2561 "grammar.y"
7875
7874
  {
7876
7875
  (yyval.node) = (yyvsp[(2) - (3)].node);
7877
7876
  ;}
7878
7877
  break;
7879
7878
 
7880
7879
  case 461:
7881
- #line 2568 "grammar.y"
7880
+ #line 2567 "grammar.y"
7882
7881
  {
7883
7882
  (yyval.node) = 0;
7884
7883
  ;}
7885
7884
  break;
7886
7885
 
7887
7886
  case 462:
7888
- #line 2572 "grammar.y"
7887
+ #line 2571 "grammar.y"
7889
7888
  {
7890
7889
  (yyval.node) = list_append((yyvsp[(1) - (3)].node), evstr2dstr((yyvsp[(2) - (3)].node)));
7891
7890
  ;}
7892
7891
  break;
7893
7892
 
7894
7893
  case 464:
7895
- #line 2579 "grammar.y"
7894
+ #line 2578 "grammar.y"
7896
7895
  {
7897
7896
  (yyval.node) = literal_concat((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));
7898
7897
  ;}
7899
7898
  break;
7900
7899
 
7901
7900
  case 465:
7902
- #line 2585 "grammar.y"
7901
+ #line 2584 "grammar.y"
7903
7902
  {
7904
7903
  (yyval.node) = NEW_ZARRAY();
7905
7904
  ;}
7906
7905
  break;
7907
7906
 
7908
7907
  case 466:
7909
- #line 2589 "grammar.y"
7908
+ #line 2588 "grammar.y"
7910
7909
  {
7911
7910
  (yyval.node) = (yyvsp[(2) - (3)].node);
7912
7911
  ;}
7913
7912
  break;
7914
7913
 
7915
7914
  case 467:
7916
- #line 2595 "grammar.y"
7915
+ #line 2594 "grammar.y"
7917
7916
  {
7918
7917
  (yyval.node) = 0;
7919
7918
  ;}
7920
7919
  break;
7921
7920
 
7922
7921
  case 468:
7923
- #line 2599 "grammar.y"
7922
+ #line 2598 "grammar.y"
7924
7923
  {
7925
7924
  (yyvsp[(2) - (3)].node) = evstr2dstr((yyvsp[(2) - (3)].node));
7926
7925
  nd_set_type((yyvsp[(2) - (3)].node), NODE_DSYM);
@@ -7929,56 +7928,56 @@ yyreduce:
7929
7928
  break;
7930
7929
 
7931
7930
  case 469:
7932
- #line 2607 "grammar.y"
7931
+ #line 2606 "grammar.y"
7933
7932
  {
7934
7933
  (yyval.node) = NEW_ZARRAY();
7935
7934
  ;}
7936
7935
  break;
7937
7936
 
7938
7937
  case 470:
7939
- #line 2611 "grammar.y"
7938
+ #line 2610 "grammar.y"
7940
7939
  {
7941
7940
  (yyval.node) = (yyvsp[(2) - (3)].node);
7942
7941
  ;}
7943
7942
  break;
7944
7943
 
7945
7944
  case 471:
7946
- #line 2617 "grammar.y"
7945
+ #line 2616 "grammar.y"
7947
7946
  {
7948
7947
  (yyval.node) = NEW_ZARRAY();
7949
7948
  ;}
7950
7949
  break;
7951
7950
 
7952
7951
  case 472:
7953
- #line 2621 "grammar.y"
7952
+ #line 2620 "grammar.y"
7954
7953
  {
7955
7954
  (yyval.node) = (yyvsp[(2) - (3)].node);
7956
7955
  ;}
7957
7956
  break;
7958
7957
 
7959
7958
  case 473:
7960
- #line 2627 "grammar.y"
7959
+ #line 2626 "grammar.y"
7961
7960
  {
7962
7961
  (yyval.node) = 0;
7963
7962
  ;}
7964
7963
  break;
7965
7964
 
7966
7965
  case 474:
7967
- #line 2631 "grammar.y"
7966
+ #line 2630 "grammar.y"
7968
7967
  {
7969
7968
  (yyval.node) = list_append((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node));
7970
7969
  ;}
7971
7970
  break;
7972
7971
 
7973
7972
  case 475:
7974
- #line 2637 "grammar.y"
7973
+ #line 2636 "grammar.y"
7975
7974
  {
7976
7975
  (yyval.node) = 0;
7977
7976
  ;}
7978
7977
  break;
7979
7978
 
7980
7979
  case 476:
7981
- #line 2641 "grammar.y"
7980
+ #line 2640 "grammar.y"
7982
7981
  {
7983
7982
  VALUE lit;
7984
7983
  lit = (yyvsp[(2) - (3)].node)->nd_lit;
@@ -7989,42 +7988,42 @@ yyreduce:
7989
7988
  break;
7990
7989
 
7991
7990
  case 477:
7992
- #line 2651 "grammar.y"
7991
+ #line 2650 "grammar.y"
7993
7992
  {
7994
7993
  (yyval.node) = 0;
7995
7994
  ;}
7996
7995
  break;
7997
7996
 
7998
7997
  case 478:
7999
- #line 2655 "grammar.y"
7998
+ #line 2654 "grammar.y"
8000
7999
  {
8001
8000
  (yyval.node) = literal_concat((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));
8002
8001
  ;}
8003
8002
  break;
8004
8003
 
8005
8004
  case 479:
8006
- #line 2661 "grammar.y"
8005
+ #line 2660 "grammar.y"
8007
8006
  {
8008
8007
  (yyval.node) = 0;
8009
8008
  ;}
8010
8009
  break;
8011
8010
 
8012
8011
  case 480:
8013
- #line 2665 "grammar.y"
8012
+ #line 2664 "grammar.y"
8014
8013
  {
8015
8014
  (yyval.node) = literal_concat((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node));
8016
8015
  ;}
8017
8016
  break;
8018
8017
 
8019
8018
  case 481:
8020
- #line 2671 "grammar.y"
8019
+ #line 2670 "grammar.y"
8021
8020
  {
8022
8021
  (yyval.node) = 0;
8023
8022
  ;}
8024
8023
  break;
8025
8024
 
8026
8025
  case 482:
8027
- #line 2675 "grammar.y"
8026
+ #line 2674 "grammar.y"
8028
8027
  {
8029
8028
  NODE *head = (yyvsp[(1) - (2)].node), *tail = (yyvsp[(2) - (2)].node);
8030
8029
  if(!head) {
@@ -8048,7 +8047,7 @@ yyreduce:
8048
8047
  break;
8049
8048
 
8050
8049
  case 484:
8051
- #line 2699 "grammar.y"
8050
+ #line 2698 "grammar.y"
8052
8051
  {
8053
8052
  (yyval.node) = lex_strterm;
8054
8053
  lex_strterm = 0;
@@ -8057,7 +8056,7 @@ yyreduce:
8057
8056
  break;
8058
8057
 
8059
8058
  case 485:
8060
- #line 2705 "grammar.y"
8059
+ #line 2704 "grammar.y"
8061
8060
  {
8062
8061
  lex_strterm = (yyvsp[(2) - (3)].node);
8063
8062
  (yyval.node) = NEW_EVSTR((yyvsp[(3) - (3)].node));
@@ -8065,7 +8064,7 @@ yyreduce:
8065
8064
  break;
8066
8065
 
8067
8066
  case 486:
8068
- #line 2710 "grammar.y"
8067
+ #line 2709 "grammar.y"
8069
8068
  {
8070
8069
  (yyvsp[(1) - (1)].val) = cond_stack;
8071
8070
  (yyval.val) = cmdarg_stack;
@@ -8075,7 +8074,7 @@ yyreduce:
8075
8074
  break;
8076
8075
 
8077
8076
  case 487:
8078
- #line 2716 "grammar.y"
8077
+ #line 2715 "grammar.y"
8079
8078
  {
8080
8079
  (yyval.node) = lex_strterm;
8081
8080
  lex_strterm = 0;
@@ -8084,7 +8083,7 @@ yyreduce:
8084
8083
  break;
8085
8084
 
8086
8085
  case 488:
8087
- #line 2721 "grammar.y"
8086
+ #line 2720 "grammar.y"
8088
8087
  {
8089
8088
  (yyval.num) = brace_nest;
8090
8089
  brace_nest = 0;
@@ -8092,7 +8091,7 @@ yyreduce:
8092
8091
  break;
8093
8092
 
8094
8093
  case 489:
8095
- #line 2726 "grammar.y"
8094
+ #line 2725 "grammar.y"
8096
8095
  {
8097
8096
  cond_stack = (yyvsp[(1) - (6)].val);
8098
8097
  cmdarg_stack = (yyvsp[(2) - (6)].val);
@@ -8105,22 +8104,22 @@ yyreduce:
8105
8104
  break;
8106
8105
 
8107
8106
  case 490:
8108
- #line 2737 "grammar.y"
8107
+ #line 2736 "grammar.y"
8109
8108
  {(yyval.node) = NEW_GVAR((yyvsp[(1) - (1)].id));;}
8110
8109
  break;
8111
8110
 
8112
8111
  case 491:
8113
- #line 2738 "grammar.y"
8112
+ #line 2737 "grammar.y"
8114
8113
  {(yyval.node) = NEW_IVAR((yyvsp[(1) - (1)].id));;}
8115
8114
  break;
8116
8115
 
8117
8116
  case 492:
8118
- #line 2739 "grammar.y"
8117
+ #line 2738 "grammar.y"
8119
8118
  {(yyval.node) = NEW_CVAR((yyvsp[(1) - (1)].id));;}
8120
8119
  break;
8121
8120
 
8122
8121
  case 494:
8123
- #line 2744 "grammar.y"
8122
+ #line 2743 "grammar.y"
8124
8123
  {
8125
8124
  lex_state = EXPR_END;
8126
8125
  (yyval.id) = (yyvsp[(2) - (2)].id);
@@ -8128,7 +8127,7 @@ yyreduce:
8128
8127
  break;
8129
8128
 
8130
8129
  case 499:
8131
- #line 2757 "grammar.y"
8130
+ #line 2756 "grammar.y"
8132
8131
  {
8133
8132
  lex_state = EXPR_END;
8134
8133
  // TODO dsym_node($2);
@@ -8155,49 +8154,49 @@ yyreduce:
8155
8154
  break;
8156
8155
 
8157
8156
  case 501:
8158
- #line 2784 "grammar.y"
8157
+ #line 2783 "grammar.y"
8159
8158
  {
8160
8159
  (yyval.node) = negate_lit((yyvsp[(2) - (2)].node));
8161
8160
  ;}
8162
8161
  break;
8163
8162
 
8164
8163
  case 511:
8165
- #line 2802 "grammar.y"
8164
+ #line 2801 "grammar.y"
8166
8165
  {(yyval.id) = keyword_nil;;}
8167
8166
  break;
8168
8167
 
8169
8168
  case 512:
8170
- #line 2803 "grammar.y"
8169
+ #line 2802 "grammar.y"
8171
8170
  {(yyval.id) = keyword_self;;}
8172
8171
  break;
8173
8172
 
8174
8173
  case 513:
8175
- #line 2804 "grammar.y"
8174
+ #line 2803 "grammar.y"
8176
8175
  {(yyval.id) = keyword_true;;}
8177
8176
  break;
8178
8177
 
8179
8178
  case 514:
8180
- #line 2805 "grammar.y"
8179
+ #line 2804 "grammar.y"
8181
8180
  {(yyval.id) = keyword_false;;}
8182
8181
  break;
8183
8182
 
8184
8183
  case 515:
8185
- #line 2806 "grammar.y"
8184
+ #line 2805 "grammar.y"
8186
8185
  {(yyval.id) = keyword__FILE__;;}
8187
8186
  break;
8188
8187
 
8189
8188
  case 516:
8190
- #line 2807 "grammar.y"
8189
+ #line 2806 "grammar.y"
8191
8190
  {(yyval.id) = keyword__LINE__;;}
8192
8191
  break;
8193
8192
 
8194
8193
  case 517:
8195
- #line 2808 "grammar.y"
8194
+ #line 2807 "grammar.y"
8196
8195
  {(yyval.id) = keyword__ENCODING__;;}
8197
8196
  break;
8198
8197
 
8199
8198
  case 518:
8200
- #line 2812 "grammar.y"
8199
+ #line 2811 "grammar.y"
8201
8200
  {
8202
8201
  if(!((yyval.node) = gettable((yyvsp[(1) - (1)].id)))) {
8203
8202
  (yyval.node) = NEW_BEGIN(0);
@@ -8206,7 +8205,7 @@ yyreduce:
8206
8205
  break;
8207
8206
 
8208
8207
  case 519:
8209
- #line 2818 "grammar.y"
8208
+ #line 2817 "grammar.y"
8210
8209
  {
8211
8210
  if(!((yyval.node) = gettable((yyvsp[(1) - (1)].id)))) {
8212
8211
  (yyval.node) = NEW_BEGIN(0);
@@ -8215,28 +8214,28 @@ yyreduce:
8215
8214
  break;
8216
8215
 
8217
8216
  case 520:
8218
- #line 2826 "grammar.y"
8217
+ #line 2825 "grammar.y"
8219
8218
  {
8220
8219
  (yyval.node) = assignable((yyvsp[(1) - (1)].id), 0);
8221
8220
  ;}
8222
8221
  break;
8223
8222
 
8224
8223
  case 521:
8225
- #line 2830 "grammar.y"
8224
+ #line 2829 "grammar.y"
8226
8225
  {
8227
8226
  (yyval.node) = assignable((yyvsp[(1) - (1)].id), 0);
8228
8227
  ;}
8229
8228
  break;
8230
8229
 
8231
8230
  case 524:
8232
- #line 2840 "grammar.y"
8231
+ #line 2839 "grammar.y"
8233
8232
  {
8234
8233
  (yyval.node) = 0;
8235
8234
  ;}
8236
8235
  break;
8237
8236
 
8238
8237
  case 525:
8239
- #line 2844 "grammar.y"
8238
+ #line 2843 "grammar.y"
8240
8239
  {
8241
8240
  lex_state = EXPR_BEG;
8242
8241
  command_start = TRUE;
@@ -8244,14 +8243,14 @@ yyreduce:
8244
8243
  break;
8245
8244
 
8246
8245
  case 526:
8247
- #line 2849 "grammar.y"
8246
+ #line 2848 "grammar.y"
8248
8247
  {
8249
8248
  (yyval.node) = (yyvsp[(3) - (4)].node);
8250
8249
  ;}
8251
8250
  break;
8252
8251
 
8253
8252
  case 527:
8254
- #line 2853 "grammar.y"
8253
+ #line 2852 "grammar.y"
8255
8254
  {
8256
8255
  yyerrok;
8257
8256
  (yyval.node) = 0;
@@ -8259,7 +8258,7 @@ yyreduce:
8259
8258
  break;
8260
8259
 
8261
8260
  case 528:
8262
- #line 2860 "grammar.y"
8261
+ #line 2859 "grammar.y"
8263
8262
  {
8264
8263
  (yyval.node) = (yyvsp[(2) - (3)].node);
8265
8264
  lex_state = EXPR_BEG;
@@ -8268,7 +8267,7 @@ yyreduce:
8268
8267
  break;
8269
8268
 
8270
8269
  case 529:
8271
- #line 2866 "grammar.y"
8270
+ #line 2865 "grammar.y"
8272
8271
  {
8273
8272
  (yyval.node) = (yyvsp[(1) - (2)].node);
8274
8273
  lex_state = EXPR_BEG;
@@ -8277,147 +8276,147 @@ yyreduce:
8277
8276
  break;
8278
8277
 
8279
8278
  case 530:
8280
- #line 2874 "grammar.y"
8279
+ #line 2873 "grammar.y"
8281
8280
  {
8282
8281
  (yyval.node) = new_args_tail((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].id), (yyvsp[(4) - (4)].id));
8283
8282
  ;}
8284
8283
  break;
8285
8284
 
8286
8285
  case 531:
8287
- #line 2878 "grammar.y"
8286
+ #line 2877 "grammar.y"
8288
8287
  {
8289
8288
  (yyval.node) = new_args_tail((yyvsp[(1) - (2)].node), 0, (yyvsp[(2) - (2)].id));
8290
8289
  ;}
8291
8290
  break;
8292
8291
 
8293
8292
  case 532:
8294
- #line 2882 "grammar.y"
8293
+ #line 2881 "grammar.y"
8295
8294
  {
8296
8295
  (yyval.node) = new_args_tail(0, (yyvsp[(1) - (2)].id), (yyvsp[(2) - (2)].id));
8297
8296
  ;}
8298
8297
  break;
8299
8298
 
8300
8299
  case 533:
8301
- #line 2886 "grammar.y"
8300
+ #line 2885 "grammar.y"
8302
8301
  {
8303
8302
  (yyval.node) = new_args_tail(0, 0, (yyvsp[(1) - (1)].id));
8304
8303
  ;}
8305
8304
  break;
8306
8305
 
8307
8306
  case 534:
8308
- #line 2892 "grammar.y"
8307
+ #line 2891 "grammar.y"
8309
8308
  {
8310
8309
  (yyval.node) = (yyvsp[(2) - (2)].node);
8311
8310
  ;}
8312
8311
  break;
8313
8312
 
8314
8313
  case 535:
8315
- #line 2896 "grammar.y"
8314
+ #line 2895 "grammar.y"
8316
8315
  {
8317
8316
  (yyval.node) = new_args_tail(0, 0, 0);
8318
8317
  ;}
8319
8318
  break;
8320
8319
 
8321
8320
  case 536:
8322
- #line 2902 "grammar.y"
8321
+ #line 2901 "grammar.y"
8323
8322
  {
8324
8323
  (yyval.node) = new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].id), 0, (yyvsp[(6) - (6)].node));
8325
8324
  ;}
8326
8325
  break;
8327
8326
 
8328
8327
  case 537:
8329
- #line 2906 "grammar.y"
8328
+ #line 2905 "grammar.y"
8330
8329
  {
8331
8330
  (yyval.node) = new_args((yyvsp[(1) - (8)].node), (yyvsp[(3) - (8)].node), (yyvsp[(5) - (8)].id), (yyvsp[(7) - (8)].node), (yyvsp[(8) - (8)].node));
8332
8331
  ;}
8333
8332
  break;
8334
8333
 
8335
8334
  case 538:
8336
- #line 2910 "grammar.y"
8335
+ #line 2909 "grammar.y"
8337
8336
  {
8338
8337
  (yyval.node) = new_args((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node), 0, 0, (yyvsp[(4) - (4)].node));
8339
8338
  ;}
8340
8339
  break;
8341
8340
 
8342
8341
  case 539:
8343
- #line 2914 "grammar.y"
8342
+ #line 2913 "grammar.y"
8344
8343
  {
8345
8344
  (yyval.node) = new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].node), 0, (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].node));
8346
8345
  ;}
8347
8346
  break;
8348
8347
 
8349
8348
  case 540:
8350
- #line 2918 "grammar.y"
8349
+ #line 2917 "grammar.y"
8351
8350
  {
8352
8351
  (yyval.node) = new_args((yyvsp[(1) - (4)].node), 0, (yyvsp[(3) - (4)].id), 0, (yyvsp[(4) - (4)].node));
8353
8352
  ;}
8354
8353
  break;
8355
8354
 
8356
8355
  case 541:
8357
- #line 2922 "grammar.y"
8356
+ #line 2921 "grammar.y"
8358
8357
  {
8359
8358
  (yyval.node) = new_args((yyvsp[(1) - (6)].node), 0, (yyvsp[(3) - (6)].id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].node));
8360
8359
  ;}
8361
8360
  break;
8362
8361
 
8363
8362
  case 542:
8364
- #line 2926 "grammar.y"
8363
+ #line 2925 "grammar.y"
8365
8364
  {
8366
8365
  (yyval.node) = new_args((yyvsp[(1) - (2)].node), 0, 0, 0, (yyvsp[(2) - (2)].node));
8367
8366
  ;}
8368
8367
  break;
8369
8368
 
8370
8369
  case 543:
8371
- #line 2930 "grammar.y"
8370
+ #line 2929 "grammar.y"
8372
8371
  {
8373
8372
  (yyval.node) = new_args(0, (yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].id), 0, (yyvsp[(4) - (4)].node));
8374
8373
  ;}
8375
8374
  break;
8376
8375
 
8377
8376
  case 544:
8378
- #line 2934 "grammar.y"
8377
+ #line 2933 "grammar.y"
8379
8378
  {
8380
8379
  (yyval.node) = new_args(0, (yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].node));
8381
8380
  ;}
8382
8381
  break;
8383
8382
 
8384
8383
  case 545:
8385
- #line 2938 "grammar.y"
8384
+ #line 2937 "grammar.y"
8386
8385
  {
8387
8386
  (yyval.node) = new_args(0, (yyvsp[(1) - (2)].node), 0, 0, (yyvsp[(2) - (2)].node));
8388
8387
  ;}
8389
8388
  break;
8390
8389
 
8391
8390
  case 546:
8392
- #line 2942 "grammar.y"
8391
+ #line 2941 "grammar.y"
8393
8392
  {
8394
8393
  (yyval.node) = new_args(0, (yyvsp[(1) - (4)].node), 0, (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node));
8395
8394
  ;}
8396
8395
  break;
8397
8396
 
8398
8397
  case 547:
8399
- #line 2946 "grammar.y"
8398
+ #line 2945 "grammar.y"
8400
8399
  {
8401
8400
  (yyval.node) = new_args(0, 0, (yyvsp[(1) - (2)].id), 0, (yyvsp[(2) - (2)].node));
8402
8401
  ;}
8403
8402
  break;
8404
8403
 
8405
8404
  case 548:
8406
- #line 2950 "grammar.y"
8405
+ #line 2949 "grammar.y"
8407
8406
  {
8408
8407
  (yyval.node) = new_args(0, 0, (yyvsp[(1) - (4)].id), (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node));
8409
8408
  ;}
8410
8409
  break;
8411
8410
 
8412
8411
  case 549:
8413
- #line 2954 "grammar.y"
8412
+ #line 2953 "grammar.y"
8414
8413
  {
8415
8414
  (yyval.node) = new_args(0, 0, 0, 0, (yyvsp[(1) - (1)].node));
8416
8415
  ;}
8417
8416
  break;
8418
8417
 
8419
8418
  case 550:
8420
- #line 2958 "grammar.y"
8419
+ #line 2957 "grammar.y"
8421
8420
  {
8422
8421
  (yyval.node) = new_args_tail(0, 0, 0);
8423
8422
  (yyval.node) = new_args(0, 0, 0, 0, (yyval.node));
@@ -8425,7 +8424,7 @@ yyreduce:
8425
8424
  break;
8426
8425
 
8427
8426
  case 551:
8428
- #line 2965 "grammar.y"
8427
+ #line 2964 "grammar.y"
8429
8428
  {
8430
8429
  yy_error("formal argument cannot be a constant");
8431
8430
  (yyval.id) = 0;
@@ -8433,7 +8432,7 @@ yyreduce:
8433
8432
  break;
8434
8433
 
8435
8434
  case 552:
8436
- #line 2970 "grammar.y"
8435
+ #line 2969 "grammar.y"
8437
8436
  {
8438
8437
  yy_error("formal argument cannot be an instance variable");
8439
8438
  (yyval.id) = 0;
@@ -8441,7 +8440,7 @@ yyreduce:
8441
8440
  break;
8442
8441
 
8443
8442
  case 553:
8444
- #line 2975 "grammar.y"
8443
+ #line 2974 "grammar.y"
8445
8444
  {
8446
8445
  yy_error("formal argument cannot be a global variable");
8447
8446
  (yyval.id) = 0;
@@ -8449,7 +8448,7 @@ yyreduce:
8449
8448
  break;
8450
8449
 
8451
8450
  case 554:
8452
- #line 2980 "grammar.y"
8451
+ #line 2979 "grammar.y"
8453
8452
  {
8454
8453
  yy_error("formal argument cannot be a class variable");
8455
8454
  (yyval.id) = 0;
@@ -8457,7 +8456,7 @@ yyreduce:
8457
8456
  break;
8458
8457
 
8459
8458
  case 556:
8460
- #line 2988 "grammar.y"
8459
+ #line 2987 "grammar.y"
8461
8460
  {
8462
8461
  formal_argument(get_id((yyvsp[(1) - (1)].id)));
8463
8462
  (yyval.id) = (yyvsp[(1) - (1)].id);
@@ -8465,7 +8464,7 @@ yyreduce:
8465
8464
  break;
8466
8465
 
8467
8466
  case 557:
8468
- #line 2995 "grammar.y"
8467
+ #line 2994 "grammar.y"
8469
8468
  {
8470
8469
  arg_var(get_id((yyvsp[(1) - (1)].id)));
8471
8470
  (yyval.node) = NEW_ARGS_AUX((yyvsp[(1) - (1)].id), 1);
@@ -8473,7 +8472,7 @@ yyreduce:
8473
8472
  break;
8474
8473
 
8475
8474
  case 558:
8476
- #line 3000 "grammar.y"
8475
+ #line 2999 "grammar.y"
8477
8476
  {
8478
8477
  ID tid = internal_id();
8479
8478
  arg_var(tid);
@@ -8484,7 +8483,7 @@ yyreduce:
8484
8483
  break;
8485
8484
 
8486
8485
  case 560:
8487
- #line 3011 "grammar.y"
8486
+ #line 3010 "grammar.y"
8488
8487
  {
8489
8488
  (yyval.node) = (yyvsp[(1) - (3)].node);
8490
8489
  (yyval.node)->nd_plen++;
@@ -8493,7 +8492,7 @@ yyreduce:
8493
8492
  break;
8494
8493
 
8495
8494
  case 561:
8496
- #line 3019 "grammar.y"
8495
+ #line 3018 "grammar.y"
8497
8496
  {
8498
8497
  arg_var(formal_argument(get_id((yyvsp[(1) - (1)].id))));
8499
8498
  (yyval.id) = (yyvsp[(1) - (1)].id);
@@ -8501,7 +8500,7 @@ yyreduce:
8501
8500
  break;
8502
8501
 
8503
8502
  case 562:
8504
- #line 3026 "grammar.y"
8503
+ #line 3025 "grammar.y"
8505
8504
  {
8506
8505
  (yyval.node) = assignable((yyvsp[(1) - (2)].id), (yyvsp[(2) - (2)].node));
8507
8506
  (yyval.node) = NEW_KW_ARG(0, (yyval.node));
@@ -8509,7 +8508,7 @@ yyreduce:
8509
8508
  break;
8510
8509
 
8511
8510
  case 563:
8512
- #line 3031 "grammar.y"
8511
+ #line 3030 "grammar.y"
8513
8512
  {
8514
8513
  (yyval.node) = assignable((yyvsp[(1) - (1)].id), NEW_REQ_KW);
8515
8514
  (yyval.node) = NEW_KW_ARG(0, (yyval.node));
@@ -8517,7 +8516,7 @@ yyreduce:
8517
8516
  break;
8518
8517
 
8519
8518
  case 564:
8520
- #line 3038 "grammar.y"
8519
+ #line 3037 "grammar.y"
8521
8520
  {
8522
8521
  (yyval.node) = assignable((yyvsp[(1) - (2)].id), (yyvsp[(2) - (2)].node));
8523
8522
  (yyval.node) = NEW_KW_ARG(0, (yyval.node));
@@ -8525,7 +8524,7 @@ yyreduce:
8525
8524
  break;
8526
8525
 
8527
8526
  case 565:
8528
- #line 3043 "grammar.y"
8527
+ #line 3042 "grammar.y"
8529
8528
  {
8530
8529
  (yyval.node) = assignable((yyvsp[(1) - (1)].id), NEW_REQ_KW);
8531
8530
  (yyval.node) = NEW_KW_ARG(0, (yyval.node));
@@ -8533,14 +8532,14 @@ yyreduce:
8533
8532
  break;
8534
8533
 
8535
8534
  case 566:
8536
- #line 3050 "grammar.y"
8535
+ #line 3049 "grammar.y"
8537
8536
  {
8538
8537
  (yyval.node) = (yyvsp[(1) - (1)].node);
8539
8538
  ;}
8540
8539
  break;
8541
8540
 
8542
8541
  case 567:
8543
- #line 3054 "grammar.y"
8542
+ #line 3053 "grammar.y"
8544
8543
  {
8545
8544
  NODE *kws = (yyvsp[(1) - (3)].node);
8546
8545
  while (kws->nd_next) {
@@ -8552,14 +8551,14 @@ yyreduce:
8552
8551
  break;
8553
8552
 
8554
8553
  case 568:
8555
- #line 3065 "grammar.y"
8554
+ #line 3064 "grammar.y"
8556
8555
  {
8557
8556
  (yyval.node) = (yyvsp[(1) - (1)].node);
8558
8557
  ;}
8559
8558
  break;
8560
8559
 
8561
8560
  case 569:
8562
- #line 3069 "grammar.y"
8561
+ #line 3068 "grammar.y"
8563
8562
  {
8564
8563
  NODE *kws = (yyvsp[(1) - (3)].node);
8565
8564
  while (kws->nd_next) {
@@ -8571,7 +8570,7 @@ yyreduce:
8571
8570
  break;
8572
8571
 
8573
8572
  case 572:
8574
- #line 3084 "grammar.y"
8573
+ #line 3083 "grammar.y"
8575
8574
  {
8576
8575
  shadowing_lvar(get_id((yyvsp[(2) - (2)].id)));
8577
8576
  (yyval.id) = (yyvsp[(2) - (2)].id);
@@ -8579,14 +8578,14 @@ yyreduce:
8579
8578
  break;
8580
8579
 
8581
8580
  case 573:
8582
- #line 3089 "grammar.y"
8581
+ #line 3088 "grammar.y"
8583
8582
  {
8584
8583
  (yyval.id) = internal_id();
8585
8584
  ;}
8586
8585
  break;
8587
8586
 
8588
8587
  case 574:
8589
- #line 3095 "grammar.y"
8588
+ #line 3094 "grammar.y"
8590
8589
  {
8591
8590
  arg_var(get_id((yyvsp[(1) - (3)].id)));
8592
8591
  (yyval.node) = assignable((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].node));
@@ -8595,7 +8594,7 @@ yyreduce:
8595
8594
  break;
8596
8595
 
8597
8596
  case 575:
8598
- #line 3103 "grammar.y"
8597
+ #line 3102 "grammar.y"
8599
8598
  {
8600
8599
  arg_var(get_id((yyvsp[(1) - (3)].id)));
8601
8600
  (yyval.node) = assignable((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].node));
@@ -8604,14 +8603,14 @@ yyreduce:
8604
8603
  break;
8605
8604
 
8606
8605
  case 576:
8607
- #line 3111 "grammar.y"
8606
+ #line 3110 "grammar.y"
8608
8607
  {
8609
8608
  (yyval.node) = (yyvsp[(1) - (1)].node);
8610
8609
  ;}
8611
8610
  break;
8612
8611
 
8613
8612
  case 577:
8614
- #line 3115 "grammar.y"
8613
+ #line 3114 "grammar.y"
8615
8614
  {
8616
8615
  NODE *opts = (yyvsp[(1) - (3)].node);
8617
8616
  while(opts->nd_next) {
@@ -8623,14 +8622,14 @@ yyreduce:
8623
8622
  break;
8624
8623
 
8625
8624
  case 578:
8626
- #line 3126 "grammar.y"
8625
+ #line 3125 "grammar.y"
8627
8626
  {
8628
8627
  (yyval.node) = (yyvsp[(1) - (1)].node);
8629
8628
  ;}
8630
8629
  break;
8631
8630
 
8632
8631
  case 579:
8633
- #line 3130 "grammar.y"
8632
+ #line 3129 "grammar.y"
8634
8633
  {
8635
8634
  NODE *opts = (yyvsp[(1) - (3)].node);
8636
8635
  while(opts->nd_next) {
@@ -8642,7 +8641,7 @@ yyreduce:
8642
8641
  break;
8643
8642
 
8644
8643
  case 582:
8645
- #line 3145 "grammar.y"
8644
+ #line 3144 "grammar.y"
8646
8645
  {
8647
8646
  if(!is_local_id((yyvsp[(2) - (2)].id))) {
8648
8647
  yy_error("rest argument must be local variable");
@@ -8653,7 +8652,7 @@ yyreduce:
8653
8652
  break;
8654
8653
 
8655
8654
  case 583:
8656
- #line 3153 "grammar.y"
8655
+ #line 3152 "grammar.y"
8657
8656
  {
8658
8657
  (yyval.id) = internal_id();
8659
8658
  arg_var((yyval.id));
@@ -8661,7 +8660,7 @@ yyreduce:
8661
8660
  break;
8662
8661
 
8663
8662
  case 586:
8664
- #line 3164 "grammar.y"
8663
+ #line 3163 "grammar.y"
8665
8664
  {
8666
8665
  if(!is_local_id((yyvsp[(2) - (2)].id)))
8667
8666
  yy_error("block argument must be local variable");
@@ -8673,21 +8672,21 @@ yyreduce:
8673
8672
  break;
8674
8673
 
8675
8674
  case 587:
8676
- #line 3175 "grammar.y"
8675
+ #line 3174 "grammar.y"
8677
8676
  {
8678
8677
  (yyval.id) = (yyvsp[(2) - (2)].id);
8679
8678
  ;}
8680
8679
  break;
8681
8680
 
8682
8681
  case 588:
8683
- #line 3179 "grammar.y"
8682
+ #line 3178 "grammar.y"
8684
8683
  {
8685
8684
  (yyval.id) = 0;
8686
8685
  ;}
8687
8686
  break;
8688
8687
 
8689
8688
  case 589:
8690
- #line 3185 "grammar.y"
8689
+ #line 3184 "grammar.y"
8691
8690
  {
8692
8691
  value_expr((yyvsp[(1) - (1)].node));
8693
8692
  (yyval.node) = (yyvsp[(1) - (1)].node);
@@ -8696,12 +8695,12 @@ yyreduce:
8696
8695
  break;
8697
8696
 
8698
8697
  case 590:
8699
- #line 3190 "grammar.y"
8698
+ #line 3189 "grammar.y"
8700
8699
  {lex_state = EXPR_BEG;;}
8701
8700
  break;
8702
8701
 
8703
8702
  case 591:
8704
- #line 3191 "grammar.y"
8703
+ #line 3190 "grammar.y"
8705
8704
  {
8706
8705
  if((yyvsp[(3) - (4)].node) == 0) {
8707
8706
  yy_error("can't define singleton method for ().");
@@ -8726,58 +8725,58 @@ yyreduce:
8726
8725
  break;
8727
8726
 
8728
8727
  case 593:
8729
- #line 3216 "grammar.y"
8728
+ #line 3215 "grammar.y"
8730
8729
  {
8731
8730
  (yyval.node) = (yyvsp[(1) - (2)].node);
8732
8731
  ;}
8733
8732
  break;
8734
8733
 
8735
8734
  case 595:
8736
- #line 3223 "grammar.y"
8735
+ #line 3222 "grammar.y"
8737
8736
  {
8738
8737
  (yyval.node) = list_concat((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
8739
8738
  ;}
8740
8739
  break;
8741
8740
 
8742
8741
  case 596:
8743
- #line 3229 "grammar.y"
8742
+ #line 3228 "grammar.y"
8744
8743
  {
8745
8744
  (yyval.node) = list_append(NEW_LIST((yyvsp[(1) - (3)].node)), (yyvsp[(3) - (3)].node));
8746
8745
  ;}
8747
8746
  break;
8748
8747
 
8749
8748
  case 597:
8750
- #line 3233 "grammar.y"
8749
+ #line 3232 "grammar.y"
8751
8750
  {
8752
8751
  (yyval.node) = list_append(NEW_LIST(NEW_LIT(ID2SYM((yyvsp[(1) - (2)].id)))), (yyvsp[(2) - (2)].node));
8753
8752
  ;}
8754
8753
  break;
8755
8754
 
8756
8755
  case 598:
8757
- #line 3237 "grammar.y"
8756
+ #line 3236 "grammar.y"
8758
8757
  {
8759
8758
  (yyval.node) = list_append(NEW_LIST(0), (yyvsp[(2) - (2)].node));
8760
8759
  ;}
8761
8760
  break;
8762
8761
 
8763
8762
  case 620:
8764
- #line 3281 "grammar.y"
8763
+ #line 3280 "grammar.y"
8765
8764
  {yyerrok;;}
8766
8765
  break;
8767
8766
 
8768
8767
  case 623:
8769
- #line 3286 "grammar.y"
8768
+ #line 3285 "grammar.y"
8770
8769
  {yyerrok;;}
8771
8770
  break;
8772
8771
 
8773
8772
  case 624:
8774
- #line 3289 "grammar.y"
8773
+ #line 3288 "grammar.y"
8775
8774
  {(yyval.node) = 0;;}
8776
8775
  break;
8777
8776
 
8778
8777
 
8779
8778
  /* Line 1267 of yacc.c. */
8780
- #line 8781 "grammar.cpp"
8779
+ #line 8780 "grammar.cpp"
8781
8780
  default: break;
8782
8781
  }
8783
8782
  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -8991,7 +8990,7 @@ yyreturn:
8991
8990
  }
8992
8991
 
8993
8992
 
8994
- #line 3291 "grammar.y"
8993
+ #line 3290 "grammar.y"
8995
8994
 
8996
8995
 
8997
8996
  #undef parser
@@ -13010,12 +13009,15 @@ parser_negate_lit(rb_parser_state* parser_state, NODE *node)
13010
13009
  case T_FIXNUM:
13011
13010
  node->nd_lit = LONG2FIX(-FIX2LONG(node->nd_lit));
13012
13011
  break;
13012
+ case T_BIGNUM:
13013
+ case T_RATIONAL:
13014
+ case T_COMPLEX:
13015
+ node->nd_lit = REF(rb_funcall(node->nd_lit, rb_intern("-@"), 0, 0));
13016
+ break;
13013
13017
  case T_FLOAT:
13014
13018
  node->nd_lit = REF(rb_float_new(-NUM2DBL(node->nd_lit)));
13015
13019
  break;
13016
- case T_BIGNUM:
13017
13020
  default:
13018
- node->nd_lit = REF(rb_funcall(node->nd_lit, rb_intern("-@"), 0, 0));
13019
13021
  break;
13020
13022
  }
13021
13023
  return node;