ruby_parser 3.0.0.a9 → 3.0.0.a10

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.

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