rubinius-melbourne 2.2.0.0 → 2.2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 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;