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