rubinius-melbourne 2.2.1.0 → 2.2.2.0

Sign up to get free protection for your applications and to get access to all the features.
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;