ruby_parser 3.0.0.a9 → 3.0.0.a10

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of ruby_parser might be problematic. Click here for more details.

data.tar.gz.sig CHANGED
Binary file
data/History.txt CHANGED
@@ -1,3 +1,16 @@
1
+ === 3.0.0.a10 / 2012-10-26
2
+
3
+ * 1 major enhancement:
4
+
5
+ * iter nodes are now structurally the same as defs. Block args are COMPLETELY different.
6
+
7
+ * 4 minor enhancements:
8
+
9
+ * 1.8 and 1.9 now treat f { |(...)| } differently, per MRI.
10
+ * 1.9: Added __ENCODING__ support. (witlessbird)
11
+ * 1.9: Finished coverage for masgn variants in block args
12
+ * 1.9: covered all forms of block args: optional, splat, block, and destructuring
13
+
1
14
  === 3.0.0.a9 / 2012-10-22
2
15
 
3
16
  Holy crap! I've hit a 99.92% success rate against 558k files! 492
data/lib/ruby18_parser.rb CHANGED
@@ -4782,85 +4782,85 @@ def _reduce_340(val, _values, result)
4782
4782
  end
4783
4783
 
4784
4784
  def _reduce_341(val, _values, result)
4785
- result = s(:array, val[0])
4785
+ result = s(:array, clean_mlhs(val[0]))
4786
4786
 
4787
4787
  result
4788
4788
  end
4789
4789
 
4790
4790
  def _reduce_342(val, _values, result)
4791
- result = list_append val[0], val[2]
4791
+ result = list_append val[0], clean_mlhs(val[2])
4792
4792
 
4793
4793
  result
4794
4794
  end
4795
4795
 
4796
4796
  def _reduce_343(val, _values, result)
4797
- result = block_var val[0], nil, nil
4797
+ result = block_var18 val[0], nil, nil
4798
4798
 
4799
4799
  result
4800
4800
  end
4801
4801
 
4802
4802
  def _reduce_344(val, _values, result)
4803
- result = block_var val[0], nil, nil
4803
+ result = block_var18 val[0], nil, nil
4804
4804
 
4805
4805
  result
4806
4806
  end
4807
4807
 
4808
4808
  def _reduce_345(val, _values, result)
4809
- result = block_var val[0], nil, val[3]
4809
+ result = block_var18 val[0], nil, val[3]
4810
4810
 
4811
4811
  result
4812
4812
  end
4813
4813
 
4814
4814
  def _reduce_346(val, _values, result)
4815
- result = block_var val[0], val[3], val[6]
4815
+ result = block_var18 val[0], val[3], val[6]
4816
4816
 
4817
4817
  result
4818
4818
  end
4819
4819
 
4820
4820
  def _reduce_347(val, _values, result)
4821
- result = block_var val[0], s(:splat), val[5]
4821
+ result = block_var18 val[0], s(:splat), val[5]
4822
4822
 
4823
4823
  result
4824
4824
  end
4825
4825
 
4826
4826
  def _reduce_348(val, _values, result)
4827
- result = block_var val[0], val[3], nil
4827
+ result = block_var18 val[0], val[3], nil
4828
4828
 
4829
4829
  result
4830
4830
  end
4831
4831
 
4832
4832
  def _reduce_349(val, _values, result)
4833
- result = block_var val[0], s(:splat), nil
4833
+ result = block_var18 val[0], s(:splat), nil
4834
4834
 
4835
4835
  result
4836
4836
  end
4837
4837
 
4838
4838
  def _reduce_350(val, _values, result)
4839
- result = block_var nil, val[1], val[4]
4839
+ result = block_var18 nil, val[1], val[4]
4840
4840
 
4841
4841
  result
4842
4842
  end
4843
4843
 
4844
4844
  def _reduce_351(val, _values, result)
4845
- result = block_var nil, s(:splat), val[3]
4845
+ result = block_var18 nil, s(:splat), val[3]
4846
4846
 
4847
4847
  result
4848
4848
  end
4849
4849
 
4850
4850
  def _reduce_352(val, _values, result)
4851
- result = block_var nil, val[1], nil
4851
+ result = block_var18 nil, val[1], nil
4852
4852
 
4853
4853
  result
4854
4854
  end
4855
4855
 
4856
4856
  def _reduce_353(val, _values, result)
4857
- result = block_var nil, s(:splat), nil
4857
+ result = block_var18 nil, s(:splat), nil
4858
4858
 
4859
4859
  result
4860
4860
  end
4861
4861
 
4862
4862
  def _reduce_354(val, _values, result)
4863
- result = block_var nil, nil, val[1]
4863
+ result = block_var18 nil, nil, val[1]
4864
4864
 
4865
4865
  result
4866
4866
  end
@@ -5463,55 +5463,55 @@ def _reduce_458(val, _values, result)
5463
5463
  end
5464
5464
 
5465
5465
  def _reduce_459(val, _values, result)
5466
- result = args val[0], val[2], val[4], val[5]
5466
+ result = args val
5467
5467
 
5468
5468
  result
5469
5469
  end
5470
5470
 
5471
5471
  def _reduce_460(val, _values, result)
5472
- result = args val[0], val[2], nil, val[3]
5472
+ result = args val
5473
5473
 
5474
5474
  result
5475
5475
  end
5476
5476
 
5477
5477
  def _reduce_461(val, _values, result)
5478
- result = args val[0], nil, val[2], val[3]
5478
+ result = args val
5479
5479
 
5480
5480
  result
5481
5481
  end
5482
5482
 
5483
5483
  def _reduce_462(val, _values, result)
5484
- result = args val[0], nil, nil, val[1]
5484
+ result = args val
5485
5485
 
5486
5486
  result
5487
5487
  end
5488
5488
 
5489
5489
  def _reduce_463(val, _values, result)
5490
- result = args nil, val[0], val[2], val[3]
5490
+ result = args val
5491
5491
 
5492
5492
  result
5493
5493
  end
5494
5494
 
5495
5495
  def _reduce_464(val, _values, result)
5496
- result = args nil, val[0], nil, val[1]
5496
+ result = args val
5497
5497
 
5498
5498
  result
5499
5499
  end
5500
5500
 
5501
5501
  def _reduce_465(val, _values, result)
5502
- result = args nil, nil, val[0], val[1]
5502
+ result = args val
5503
5503
 
5504
5504
  result
5505
5505
  end
5506
5506
 
5507
5507
  def _reduce_466(val, _values, result)
5508
- result = args nil, nil, nil, val[0]
5508
+ result = args val
5509
5509
 
5510
5510
  result
5511
5511
  end
5512
5512
 
5513
5513
  def _reduce_467(val, _values, result)
5514
- result = args nil, nil, nil, nil
5514
+ result = args val
5515
5515
 
5516
5516
  result
5517
5517
  end
data/lib/ruby18_parser.y CHANGED
@@ -1203,60 +1203,60 @@ rule
1203
1203
 
1204
1204
  block_par: mlhs_item
1205
1205
  {
1206
- result = s(:array, val[0])
1206
+ result = s(:array, clean_mlhs(val[0]))
1207
1207
  }
1208
1208
  | block_par tCOMMA mlhs_item
1209
1209
  {
1210
- result = list_append val[0], val[2]
1210
+ result = list_append val[0], clean_mlhs(val[2])
1211
1211
  }
1212
1212
 
1213
1213
  block_var: block_par
1214
1214
  {
1215
- result = block_var val[0], nil, nil
1215
+ result = block_var18 val[0], nil, nil
1216
1216
  }
1217
1217
  | block_par tCOMMA
1218
1218
  {
1219
- result = block_var val[0], nil, nil
1219
+ result = block_var18 val[0], nil, nil
1220
1220
  }
1221
1221
  | block_par tCOMMA tAMPER lhs
1222
1222
  {
1223
- result = block_var val[0], nil, val[3]
1223
+ result = block_var18 val[0], nil, val[3]
1224
1224
  }
1225
1225
  | block_par tCOMMA tSTAR lhs tCOMMA tAMPER lhs
1226
1226
  {
1227
- result = block_var val[0], val[3], val[6]
1227
+ result = block_var18 val[0], val[3], val[6]
1228
1228
  }
1229
1229
  | block_par tCOMMA tSTAR tCOMMA tAMPER lhs
1230
1230
  {
1231
- result = block_var val[0], s(:splat), val[5]
1231
+ result = block_var18 val[0], s(:splat), val[5]
1232
1232
  }
1233
1233
  | block_par tCOMMA tSTAR lhs
1234
1234
  {
1235
- result = block_var val[0], val[3], nil
1235
+ result = block_var18 val[0], val[3], nil
1236
1236
  }
1237
1237
  | block_par tCOMMA tSTAR
1238
1238
  {
1239
- result = block_var val[0], s(:splat), nil
1239
+ result = block_var18 val[0], s(:splat), nil
1240
1240
  }
1241
1241
  | tSTAR lhs tCOMMA tAMPER lhs
1242
1242
  {
1243
- result = block_var nil, val[1], val[4]
1243
+ result = block_var18 nil, val[1], val[4]
1244
1244
  }
1245
1245
  | tSTAR tCOMMA tAMPER lhs
1246
1246
  {
1247
- result = block_var nil, s(:splat), val[3]
1247
+ result = block_var18 nil, s(:splat), val[3]
1248
1248
  }
1249
1249
  | tSTAR lhs
1250
1250
  {
1251
- result = block_var nil, val[1], nil
1251
+ result = block_var18 nil, val[1], nil
1252
1252
  }
1253
1253
  | tSTAR
1254
1254
  {
1255
- result = block_var nil, s(:splat), nil
1255
+ result = block_var18 nil, s(:splat), nil
1256
1256
  }
1257
1257
  | tAMPER lhs
1258
1258
  {
1259
- result = block_var nil, nil, val[1]
1259
+ result = block_var18 nil, nil, val[1]
1260
1260
  }
1261
1261
  ;
1262
1262
 
@@ -1682,39 +1682,39 @@ xstring_contents: none
1682
1682
 
1683
1683
  f_args: f_arg tCOMMA f_optarg tCOMMA f_rest_arg opt_f_block_arg
1684
1684
  {
1685
- result = args val[0], val[2], val[4], val[5]
1685
+ result = args val
1686
1686
  }
1687
1687
  | f_arg tCOMMA f_optarg opt_f_block_arg
1688
1688
  {
1689
- result = args val[0], val[2], nil, val[3]
1689
+ result = args val
1690
1690
  }
1691
1691
  | f_arg tCOMMA f_rest_arg opt_f_block_arg
1692
1692
  {
1693
- result = args val[0], nil, val[2], val[3]
1693
+ result = args val
1694
1694
  }
1695
1695
  | f_arg opt_f_block_arg
1696
1696
  {
1697
- result = args val[0], nil, nil, val[1]
1697
+ result = args val
1698
1698
  }
1699
1699
  | f_optarg tCOMMA f_rest_arg opt_f_block_arg
1700
1700
  {
1701
- result = args nil, val[0], val[2], val[3]
1701
+ result = args val
1702
1702
  }
1703
1703
  | f_optarg opt_f_block_arg
1704
1704
  {
1705
- result = args nil, val[0], nil, val[1]
1705
+ result = args val
1706
1706
  }
1707
1707
  | f_rest_arg opt_f_block_arg
1708
1708
  {
1709
- result = args nil, nil, val[0], val[1]
1709
+ result = args val
1710
1710
  }
1711
1711
  | f_block_arg
1712
1712
  {
1713
- result = args nil, nil, nil, val[0]
1713
+ result = args val
1714
1714
  }
1715
1715
  |
1716
1716
  {
1717
- result = args nil, nil, nil, nil
1717
+ result = args val
1718
1718
  }
1719
1719
 
1720
1720
  f_norm_arg: tCONSTANT
data/lib/ruby19_parser.rb CHANGED
@@ -2417,7 +2417,7 @@ racc_reduce_table = [
2417
2417
  2, 151, :_reduce_351,
2418
2418
  1, 226, :_reduce_none,
2419
2419
  1, 226, :_reduce_353,
2420
- 1, 261, :_reduce_354,
2420
+ 1, 261, :_reduce_none,
2421
2421
  3, 261, :_reduce_355,
2422
2422
  1, 264, :_reduce_356,
2423
2423
  3, 264, :_reduce_357,
@@ -3429,6 +3429,8 @@ end
3429
3429
 
3430
3430
  def _reduce_58(val, _values, result)
3431
3431
  result = new_iter nil, val[2], val[4]
3432
+ result.line = val[1]
3433
+
3432
3434
  self.env.unextend
3433
3435
 
3434
3436
  result
@@ -4577,7 +4579,7 @@ def _reduce_297(val, _values, result)
4577
4579
  end
4578
4580
 
4579
4581
  def _reduce_298(val, _values, result)
4580
- result = val[1]
4582
+ result = val[1] # TODO: fix lineno
4581
4583
 
4582
4584
  result
4583
4585
  end
@@ -4861,11 +4863,7 @@ def _reduce_353(val, _values, result)
4861
4863
  result
4862
4864
  end
4863
4865
 
4864
- def _reduce_354(val, _values, result)
4865
- result = assignable val[0]
4866
-
4867
- result
4868
- end
4866
+ # reduce 354 omitted
4869
4867
 
4870
4868
  def _reduce_355(val, _values, result)
4871
4869
  result = val[1]
@@ -4886,159 +4884,161 @@ def _reduce_357(val, _values, result)
4886
4884
  end
4887
4885
 
4888
4886
  def _reduce_358(val, _values, result)
4889
- result = block_var val[0], nil, nil
4887
+ args, = val
4888
+
4889
+ result = block_var args
4890
4890
 
4891
4891
  result
4892
4892
  end
4893
4893
 
4894
4894
  def _reduce_359(val, _values, result)
4895
- result = block_var val[0], val[3], nil
4895
+ args, _, _, splat = val
4896
+
4897
+ result = block_var args, "*#{splat}".to_sym
4896
4898
 
4897
4899
  result
4898
4900
  end
4899
4901
 
4900
4902
  def _reduce_360(val, _values, result)
4901
- raise "no10\non: #{val.inspect}"
4903
+ args, _, _, splat, _, args2 = val
4904
+
4905
+ result = block_var args, "*#{splat}".to_sym, args2
4902
4906
 
4903
4907
  result
4904
4908
  end
4905
4909
 
4906
4910
  def _reduce_361(val, _values, result)
4907
- raise "no11\non: #{val.inspect}"
4911
+ args, _, _ = val
4912
+
4913
+ result = block_var args, :*
4908
4914
 
4909
4915
  result
4910
4916
  end
4911
4917
 
4912
4918
  def _reduce_362(val, _values, result)
4913
- raise "no12\non: #{val.inspect}"
4919
+ args, _, _, _, args2 = val
4920
+
4921
+ result = block_var args, :*, args2
4914
4922
 
4915
4923
  result
4916
4924
  end
4917
4925
 
4918
4926
  def _reduce_363(val, _values, result)
4919
- raise "no13\non: #{val.inspect}"
4927
+ _, splat = val
4928
+
4929
+ result = block_var :"*#{splat}"
4920
4930
 
4921
4931
  result
4922
4932
  end
4923
4933
 
4924
4934
  def _reduce_364(val, _values, result)
4925
- raise "no14\non: #{val.inspect}"
4935
+ _, splat, _, args = val
4936
+
4937
+ result = block_var :"*#{splat}", args
4926
4938
 
4927
4939
  result
4928
4940
  end
4929
4941
 
4930
4942
  def _reduce_365(val, _values, result)
4931
- raise "no15\non: #{val.inspect}"
4943
+ result = block_var :*
4932
4944
 
4933
4945
  result
4934
4946
  end
4935
4947
 
4936
4948
  def _reduce_366(val, _values, result)
4937
- raise "no16\non: #{val.inspect}"
4949
+ _, _, args = val
4950
+
4951
+ result = block_var :*, args
4938
4952
 
4939
4953
  result
4940
4954
  end
4941
4955
 
4942
4956
  def _reduce_367(val, _values, result)
4943
- result = block_args19 val, "1"
4957
+ result = args val
4944
4958
 
4945
4959
  result
4946
4960
  end
4947
4961
 
4948
4962
  def _reduce_368(val, _values, result)
4949
- result = block_args19 val, "2"
4963
+ result = args val
4950
4964
 
4951
4965
  result
4952
4966
  end
4953
4967
 
4954
4968
  def _reduce_369(val, _values, result)
4955
- arg, _, opt, block = val
4956
-
4957
- result = arg
4958
- result.concat opt[1..-1].map { |s| s[1] }
4959
- result << "&#{block.last}".to_sym if block
4960
- result << opt
4969
+ result = args val
4961
4970
 
4962
4971
  result
4963
4972
  end
4964
4973
 
4965
4974
  def _reduce_370(val, _values, result)
4966
- result = block_args19 val, "4"
4975
+ result = args val
4967
4976
 
4968
4977
  result
4969
4978
  end
4970
4979
 
4971
4980
  def _reduce_371(val, _values, result)
4972
- result = block_args19 val, "5"
4981
+ result = args val
4973
4982
 
4974
4983
  result
4975
4984
  end
4976
4985
 
4977
4986
  def _reduce_372(val, _values, result)
4978
- result = block_args19 val, "6"
4987
+ result = args val
4979
4988
 
4980
4989
  result
4981
4990
  end
4982
4991
 
4983
4992
  def _reduce_373(val, _values, result)
4984
- result = block_args19 val, "7"
4993
+ result = args val
4985
4994
 
4986
4995
  result
4987
4996
  end
4988
4997
 
4989
4998
  def _reduce_374(val, _values, result)
4990
- result = block_args19 val, "8"
4999
+ result = args val
4991
5000
 
4992
5001
  result
4993
5002
  end
4994
5003
 
4995
5004
  def _reduce_375(val, _values, result)
4996
- result = block_args19 val, "9"
5005
+ result = args val
4997
5006
 
4998
5007
  result
4999
5008
  end
5000
5009
 
5001
5010
  def _reduce_376(val, _values, result)
5002
- result = block_args19 val, "10"
5011
+ result = args val
5003
5012
 
5004
5013
  result
5005
5014
  end
5006
5015
 
5007
5016
  def _reduce_377(val, _values, result)
5008
- opt, block = val
5009
-
5010
- result = s(:args)
5011
- result.concat opt[1..-1].map { |s| s[1] }
5012
- result << "&#{block.last}".to_sym if block
5013
- result << opt
5017
+ result = args val
5014
5018
 
5015
5019
  result
5016
5020
  end
5017
5021
 
5018
5022
  def _reduce_378(val, _values, result)
5019
- result = block_args19 val, "12"
5023
+ result = args val
5020
5024
 
5021
5025
  result
5022
5026
  end
5023
5027
 
5024
5028
  def _reduce_379(val, _values, result)
5025
- result = block_args19 val, "13"
5029
+ result = args val
5026
5030
 
5027
5031
  result
5028
5032
  end
5029
5033
 
5030
5034
  def _reduce_380(val, _values, result)
5031
- rest, _, args, block = val
5032
-
5033
- result = args
5034
- result[1,0] = rest
5035
- result << "&#{block.last}".to_sym if block
5035
+ result = args val
5036
5036
 
5037
5037
  result
5038
5038
  end
5039
5039
 
5040
5040
  def _reduce_381(val, _values, result)
5041
- result = block_args19 val, "15"
5041
+ result = args val
5042
5042
 
5043
5043
  result
5044
5044
  end
@@ -5093,24 +5093,19 @@ end
5093
5093
  # reduce 392 omitted
5094
5094
 
5095
5095
  def _reduce_393(val, _values, result)
5096
- case val[0].size
5097
- when 1
5098
- args = 0
5099
- when 2
5100
- args = s(:lasgn, val[0][1])
5101
- else
5102
- vars = val[0][1..-1].map { |name| s(:lasgn, name) }
5103
- args = s(:masgn, s(:array, *vars))
5104
- end
5096
+ args, body = val
5097
+
5098
+ args = 0 if args == s(:args)
5105
5099
 
5106
5100
  call = new_call nil, :lambda
5107
- result = s(:iter, call, args, val[1])
5101
+ result = new_iter call, args, body
5108
5102
 
5109
5103
  result
5110
5104
  end
5111
5105
 
5112
5106
  def _reduce_394(val, _values, result)
5113
5107
  result = val[1]
5108
+ raise "not yet: #{val.inspect}" if val[2]
5114
5109
 
5115
5110
  result
5116
5111
  end
@@ -5147,9 +5142,9 @@ def _reduce_399(val, _values, result)
5147
5142
  end
5148
5143
 
5149
5144
  def _reduce_400(val, _values, result)
5150
- vars = val[2]
5145
+ args = val[2]
5151
5146
  body = val[4]
5152
- result = new_iter nil, vars, body
5147
+ result = new_iter nil, args, body
5153
5148
  result.line = val[1]
5154
5149
 
5155
5150
  self.env.unextend
@@ -5257,12 +5252,12 @@ def _reduce_415(val, _values, result)
5257
5252
  end
5258
5253
 
5259
5254
  def _reduce_416(val, _values, result)
5260
- # REFACTOR
5261
- args = val[2]
5262
- body = val[4]
5255
+ _, line, args, _, body, _ = val
5256
+
5263
5257
  result = new_iter nil, args, body
5258
+ result.line = line
5259
+
5264
5260
  self.env.unextend
5265
- result.line = val[1]
5266
5261
 
5267
5262
  result
5268
5263
  end
@@ -5281,11 +5276,12 @@ def _reduce_418(val, _values, result)
5281
5276
  end
5282
5277
 
5283
5278
  def _reduce_419(val, _values, result)
5284
- args = val[2]
5285
- body = val[4]
5279
+ _, line, args, _, body, _ = val
5280
+
5286
5281
  result = new_iter nil, args, body
5282
+ result.line = line
5283
+
5287
5284
  self.env.unextend
5288
- result.line = val[1]
5289
5285
 
5290
5286
  result
5291
5287
  end
@@ -5309,7 +5305,7 @@ end
5309
5305
  # reduce 423 omitted
5310
5306
 
5311
5307
  def _reduce_424(val, _values, result)
5312
- klasses, var, body, rest = val[1], val[2], val[4], val[5]
5308
+ _, klasses, var, _, body, rest = val
5313
5309
 
5314
5310
  klasses ||= s(:array)
5315
5311
  klasses << node_assign(var, s(:gvar, :"$!")) if var
@@ -5345,11 +5341,9 @@ end
5345
5341
  # reduce 430 omitted
5346
5342
 
5347
5343
  def _reduce_431(val, _values, result)
5348
- if (val[1] != nil) then
5349
- result = val[1]
5350
- else
5351
- result = s(:nil)
5352
- end
5344
+ _, body = val
5345
+
5346
+ result = body || s(:nil)
5353
5347
 
5354
5348
  result
5355
5349
  end
@@ -5547,7 +5541,7 @@ def _reduce_463(val, _values, result)
5547
5541
  when nil then
5548
5542
  result = s(:evstr)
5549
5543
  else
5550
- raise "unknown rescue body: #{val[2].inspect}"
5544
+ raise "unknown string body: #{val[2].inspect}"
5551
5545
  end
5552
5546
 
5553
5547
  result
@@ -5667,7 +5661,13 @@ def _reduce_489(val, _values, result)
5667
5661
  end
5668
5662
 
5669
5663
  def _reduce_490(val, _values, result)
5670
- result = s(:str, "Unsupported!")
5664
+ result =
5665
+ if defined? Encoding then
5666
+ s(:const, Encoding::UTF_8)
5667
+ else
5668
+ s(:str, "Unsupported!")
5669
+ end
5670
+
5671
5671
  result
5672
5672
  end
5673
5673
 
@@ -5747,91 +5747,91 @@ def _reduce_502(val, _values, result)
5747
5747
  end
5748
5748
 
5749
5749
  def _reduce_503(val, _values, result)
5750
- result = args19 val
5750
+ result = args val
5751
5751
 
5752
5752
  result
5753
5753
  end
5754
5754
 
5755
5755
  def _reduce_504(val, _values, result)
5756
- result = args19 val
5756
+ result = args val
5757
5757
 
5758
5758
  result
5759
5759
  end
5760
5760
 
5761
5761
  def _reduce_505(val, _values, result)
5762
- result = args19 val
5762
+ result = args val
5763
5763
 
5764
5764
  result
5765
5765
  end
5766
5766
 
5767
5767
  def _reduce_506(val, _values, result)
5768
- result = args19 val
5768
+ result = args val
5769
5769
 
5770
5770
  result
5771
5771
  end
5772
5772
 
5773
5773
  def _reduce_507(val, _values, result)
5774
- result = args19 val
5774
+ result = args val
5775
5775
 
5776
5776
  result
5777
5777
  end
5778
5778
 
5779
5779
  def _reduce_508(val, _values, result)
5780
- result = args19 val
5780
+ result = args val
5781
5781
 
5782
5782
  result
5783
5783
  end
5784
5784
 
5785
5785
  def _reduce_509(val, _values, result)
5786
- result = args19 val
5786
+ result = args val
5787
5787
 
5788
5788
  result
5789
5789
  end
5790
5790
 
5791
5791
  def _reduce_510(val, _values, result)
5792
- result = args19 val
5792
+ result = args val
5793
5793
 
5794
5794
  result
5795
5795
  end
5796
5796
 
5797
5797
  def _reduce_511(val, _values, result)
5798
- result = args19 val
5798
+ result = args val
5799
5799
 
5800
5800
  result
5801
5801
  end
5802
5802
 
5803
5803
  def _reduce_512(val, _values, result)
5804
- result = args19 val
5804
+ result = args val
5805
5805
 
5806
5806
  result
5807
5807
  end
5808
5808
 
5809
5809
  def _reduce_513(val, _values, result)
5810
- result = args19 val
5810
+ result = args val
5811
5811
 
5812
5812
  result
5813
5813
  end
5814
5814
 
5815
5815
  def _reduce_514(val, _values, result)
5816
- result = args19 val
5816
+ result = args val
5817
5817
 
5818
5818
  result
5819
5819
  end
5820
5820
 
5821
5821
  def _reduce_515(val, _values, result)
5822
- result = args19 val
5822
+ result = args val
5823
5823
 
5824
5824
  result
5825
5825
  end
5826
5826
 
5827
5827
  def _reduce_516(val, _values, result)
5828
- result = args19 val
5828
+ result = args val
5829
5829
 
5830
5830
  result
5831
5831
  end
5832
5832
 
5833
5833
  def _reduce_517(val, _values, result)
5834
- result = args19 val
5834
+ result = args val
5835
5835
 
5836
5836
  result
5837
5837
  end
@@ -5883,7 +5883,7 @@ def _reduce_526(val, _values, result)
5883
5883
  case val[0]
5884
5884
  when Symbol then
5885
5885
  result = s(:args)
5886
- result << val[0].to_sym
5886
+ result << val[0]
5887
5887
  when Sexp then
5888
5888
  result = val[0]
5889
5889
  else
@@ -5894,8 +5894,15 @@ def _reduce_526(val, _values, result)
5894
5894
  end
5895
5895
 
5896
5896
  def _reduce_527(val, _values, result)
5897
- val[0] << val[2]
5898
- result = val[0]
5897
+ list, _, item = val
5898
+
5899
+ if list.sexp_type == :args then
5900
+ result = list
5901
+ else
5902
+ result = s(:args, list)
5903
+ end
5904
+
5905
+ result << item
5899
5906
 
5900
5907
  result
5901
5908
  end
@@ -5967,7 +5974,7 @@ def _reduce_540(val, _values, result)
5967
5974
  identifier = val[1].to_sym
5968
5975
 
5969
5976
  self.env[identifier] = :lvar
5970
- result = s(:block_arg, identifier.to_sym)
5977
+ result = "&#{identifier}".to_sym
5971
5978
 
5972
5979
  result
5973
5980
  end