ruby_parser 3.19.1 → 3.20.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.
data/lib/ruby3_parser.yy CHANGED
@@ -4,6 +4,8 @@
4
4
  class Ruby30Parser
5
5
  #elif V == 31
6
6
  class Ruby31Parser
7
+ #elif V == 32
8
+ class Ruby32Parser
7
9
  #else
8
10
  fail "version not specified or supported on code generation"
9
11
  #endif
@@ -2591,9 +2593,21 @@ opt_block_args_tail: tCOMMA block_args_tail
2591
2593
  | xstring
2592
2594
  | regexp
2593
2595
  | words
2596
+ {
2597
+ result = ary_to_pat val[0]
2598
+ }
2594
2599
  | qwords
2600
+ {
2601
+ result = ary_to_pat val[0]
2602
+ }
2595
2603
  | symbols
2604
+ {
2605
+ result = ary_to_pat val[0]
2606
+ }
2596
2607
  | qsymbols
2608
+ {
2609
+ result = ary_to_pat val[0]
2610
+ }
2597
2611
  | keyword_variable
2598
2612
  {
2599
2613
  # TODO? if (!($$ = gettable(p, $1, &@$))) $$ = NEW_BEGIN(0, &@$);
@@ -2607,7 +2621,7 @@ opt_block_args_tail: tCOMMA block_args_tail
2607
2621
  {
2608
2622
  # TODO: error_duplicate_pattern_variable(p, $1, &@1);
2609
2623
  # TODO: assignable(p, $1, 0, &@$);
2610
- result = wrap :lvar, val[0]
2624
+ result = wrap :lasgn, val[0]
2611
2625
  }
2612
2626
 
2613
2627
  p_var_ref: tCARET tIDENTIFIER
data/lib/ruby_lexer.rb CHANGED
@@ -232,7 +232,7 @@ class RubyLexer
232
232
  content = match[1]
233
233
 
234
234
  if text =~ check then
235
- content.gsub(ESC) { unescape $1 }
235
+ unescape_string content
236
236
  else
237
237
  content.gsub(/\\\\/, "\\").gsub(/\\\'/, "'")
238
238
  end
@@ -590,9 +590,7 @@ class RubyLexer
590
590
  orig_line = lineno
591
591
  self.lineno += text.count("\n")
592
592
 
593
- str = text[1..-2]
594
- .gsub(ESC) { unescape($1).b.force_encoding Encoding::UTF_8 }
595
- str = str.b unless str.valid_encoding?
593
+ str = unescape_string text[1..-2]
596
594
 
597
595
  result EXPR_END, :tSTRING, str, orig_line
598
596
  end
@@ -817,6 +815,15 @@ class RubyLexer
817
815
  end
818
816
  end
819
817
 
818
+ def unescape_string str
819
+ str = str.gsub(ESC) { unescape($1).b.force_encoding Encoding::UTF_8 }
820
+ if str.valid_encoding?
821
+ str
822
+ else
823
+ str.b
824
+ end
825
+ end
826
+
820
827
  def unescape s
821
828
  r = ESCAPES[s]
822
829
 
data/lib/ruby_parser.rb CHANGED
@@ -81,10 +81,12 @@ require "ruby26_parser"
81
81
  require "ruby27_parser"
82
82
  require "ruby30_parser"
83
83
  require "ruby31_parser"
84
+ require "ruby32_parser"
84
85
 
85
86
  class RubyParser # HACK
86
87
  VERSIONS.clear # also a HACK caused by racc namespace issues
87
88
 
89
+ class V32 < ::Ruby32Parser; end
88
90
  class V31 < ::Ruby31Parser; end
89
91
  class V30 < ::Ruby30Parser; end
90
92
  class V27 < ::Ruby27Parser; end
data/lib/ruby_parser.yy CHANGED
@@ -2530,9 +2530,21 @@ opt_block_args_tail: tCOMMA block_args_tail
2530
2530
  | xstring
2531
2531
  | regexp
2532
2532
  | words
2533
+ {
2534
+ result = ary_to_pat val[0]
2535
+ }
2533
2536
  | qwords
2537
+ {
2538
+ result = ary_to_pat val[0]
2539
+ }
2534
2540
  | symbols
2541
+ {
2542
+ result = ary_to_pat val[0]
2543
+ }
2535
2544
  | qsymbols
2545
+ {
2546
+ result = ary_to_pat val[0]
2547
+ }
2536
2548
  | keyword_variable
2537
2549
  {
2538
2550
  # TODO? if (!($$ = gettable(p, $1, &@$))) $$ = NEW_BEGIN(0, &@$);
@@ -2546,7 +2558,7 @@ opt_block_args_tail: tCOMMA block_args_tail
2546
2558
  {
2547
2559
  # TODO: error_duplicate_pattern_variable(p, $1, &@1);
2548
2560
  # TODO: assignable(p, $1, 0, &@$);
2549
- result = wrap :lvar, val[0]
2561
+ result = wrap :lasgn, val[0]
2550
2562
  }
2551
2563
 
2552
2564
  p_var_ref: tCARET tIDENTIFIER
@@ -30,7 +30,7 @@ class Sexp
30
30
  end
31
31
 
32
32
  module RubyParserStuff
33
- VERSION = "3.19.1"
33
+ VERSION = "3.20.0"
34
34
 
35
35
  attr_accessor :lexer, :in_def, :in_single, :file
36
36
  attr_accessor :in_kwarg
@@ -471,7 +471,7 @@ module RubyParserStuff
471
471
  end
472
472
  else
473
473
  warn "unprocessed: %p" % [s]
474
- end.map { |l| whitespace_width l.chomp }
474
+ end.map { |l| whitespace_width l }
475
475
  }.compact.min
476
476
  end
477
477
 
@@ -731,6 +731,13 @@ module RubyParserStuff
731
731
  result
732
732
  end
733
733
 
734
+ def ary_to_pat ary
735
+ pat = ary.dup
736
+ pat.sexp_type = :array_TAIL
737
+
738
+ new_array_pattern nil, nil, pat, ary.line
739
+ end
740
+
734
741
  def new_array_pattern const, pre_arg, arypat, loc
735
742
  result = s(:array_pat, const).line loc
736
743
  result << pre_arg if pre_arg
@@ -1066,9 +1073,9 @@ module RubyParserStuff
1066
1073
  lhs_id = "*#{lhs_id}".to_sym
1067
1074
  rhs_id = "*#{rhs_id}".to_sym
1068
1075
 
1069
- mid.sexp_type = :array_pat # HACK?
1076
+ raise "BAD?" unless mid.sexp_type == :array_TAIL
1070
1077
 
1071
- s(:find_pat_TAIL, lhs_id, mid, rhs_id).line line
1078
+ s(:find_pat_TAIL, lhs_id, *mid.sexp_body, rhs_id).line line
1072
1079
  end
1073
1080
 
1074
1081
  def new_for expr, var, body
@@ -1651,7 +1658,7 @@ module RubyParserStuff
1651
1658
 
1652
1659
  if remove_width then
1653
1660
  line[idx..-1]
1654
- elsif line[idx].nil?
1661
+ elsif line[idx] == "\n"
1655
1662
  nil
1656
1663
  else
1657
1664
  col
@@ -3009,6 +3009,19 @@ class TestRubyLexer < Minitest::Test
3009
3009
  :tSTRING_END, "\"", EXPR_LIT)
3010
3010
  end
3011
3011
 
3012
+ def test_yylex_symbol_double_escape_octal
3013
+ setup_lexer ":\"Variet\\303\\240\""
3014
+
3015
+ adv = @lex.next_token
3016
+ act_token, act_value = adv
3017
+ act_value = act_value.first
3018
+
3019
+ assert_equal :tSYMBOL, act_token
3020
+ assert_match EXPR_LIT, @lex.lex_state
3021
+ # Force comparison of encodings
3022
+ assert_equal "Varietà", act_value
3023
+ end
3024
+
3012
3025
  def test_yylex_symbol_single
3013
3026
  assert_lex3(":'symbol'",
3014
3027
  nil,
@@ -826,6 +826,13 @@ module TestRubyParserShared
826
826
  assert_parse rb, pt
827
827
  end
828
828
 
829
+ def test_dsym_esc_to_sym
830
+ rb = ':"Variet\303\240"'
831
+ pt = s(:lit, :Varietà)
832
+
833
+ assert_parse rb, pt
834
+ end
835
+
829
836
  def test_empty
830
837
  refute_parse ""
831
838
  end
@@ -3541,10 +3548,8 @@ module TestRubyParserShared20Plus
3541
3548
  end
3542
3549
 
3543
3550
  def test_regexp_esc_C_slash
3544
- skip "https://bugs.ruby-lang.org/issues/18449" if RUBY_VERSION == "3.1.0"
3545
-
3546
3551
  rb = "/\\cC\\d/"
3547
- pt = s(:lit, /\cC\d/)
3552
+ pt = s(:lit, Regexp.new('\cC\d')) # https://bugs.ruby-lang.org/issues/18449
3548
3553
 
3549
3554
  assert_parse rb, pt
3550
3555
  end
@@ -4270,6 +4275,21 @@ module TestRubyParserShared23Plus
4270
4275
  assert_parse rb, pt
4271
4276
  end
4272
4277
 
4278
+ def test_heredoc_squiggly_blank_line_plus_interpolation
4279
+ rb = "a = foo(<<~EOF.chop)\n\n #\{bar}baz\n EOF"
4280
+ pt = s(:lasgn, :a,
4281
+ s(:call,
4282
+ nil,
4283
+ :foo,
4284
+ s(:call,
4285
+ s(:dstr, "\n",
4286
+ s(:evstr, s(:call, nil, :bar).line(3)).line(3),
4287
+ s(:str, "baz\n").line(3)).line(1),
4288
+ :chop).line(1)).line(1)).line(1)
4289
+
4290
+ assert_parse rb, pt
4291
+ end
4292
+
4273
4293
  def test_integer_with_if_modifier
4274
4294
  rb = "1_234if true"
4275
4295
  pt = s(:if, s(:true), s(:lit, 1234), nil)
@@ -4553,8 +4573,8 @@ module TestPatternMatching
4553
4573
  pt = s(:array_pat,
4554
4574
  nil,
4555
4575
  s(:lit, :a).line(2),
4556
- s(:lvar, :b).line(2),
4557
- s(:lvar, :c).line(2),
4576
+ s(:lasgn, :b).line(2),
4577
+ s(:lasgn, :c).line(2),
4558
4578
  s(:array_pat,
4559
4579
  nil,
4560
4580
  s(:lit, :d).line(2),
@@ -4647,19 +4667,19 @@ module TestPatternMatching
4647
4667
  end
4648
4668
 
4649
4669
  def test_case_in_78
4650
- assert_case_in "%W[a b]", s(:array, s(:str, "a").line(2), s(:str, "b").line(2)).line(2)
4670
+ assert_case_in "%W[a b]", s(:array_pat, nil, s(:str, "a").line(2), s(:str, "b").line(2)).line(2)
4651
4671
  end
4652
4672
 
4653
4673
  def test_case_in_79
4654
- assert_case_in "%w[a b]", s(:array, s(:str, "a").line(2), s(:str, "b").line(2)).line(2)
4674
+ assert_case_in "%w[a b]", s(:array_pat, nil, s(:str, "a").line(2), s(:str, "b").line(2)).line(2)
4655
4675
  end
4656
4676
 
4657
4677
  def test_case_in_80
4658
- assert_case_in "%I[a b]", s(:array, s(:lit, :a).line(2), s(:lit, :b).line(2)).line(2)
4678
+ assert_case_in "%I[a b]", s(:array_pat, nil, s(:lit, :a).line(2), s(:lit, :b).line(2)).line(2)
4659
4679
  end
4660
4680
 
4661
4681
  def test_case_in_81
4662
- assert_case_in "%i[a b]", s(:array, s(:lit, :a).line(2), s(:lit, :b).line(2)).line(2)
4682
+ assert_case_in "%i[a b]", s(:array_pat, nil, s(:lit, :a).line(2), s(:lit, :b).line(2)).line(2)
4663
4683
  end
4664
4684
 
4665
4685
  def test_case_in_83
@@ -4667,7 +4687,7 @@ module TestPatternMatching
4667
4687
  pt = s(:array_pat, nil,
4668
4688
  s(:iter, s(:lambda).line(2), s(:args, :b).line(2),
4669
4689
  s(:true).line(2)).line(2),
4670
- s(:lvar, :c).line(2)).line(2)
4690
+ s(:lasgn, :c).line(2)).line(2)
4671
4691
 
4672
4692
  assert_case_in rb, pt
4673
4693
  end
@@ -4677,7 +4697,7 @@ module TestPatternMatching
4677
4697
  pt = s(:array_pat, nil,
4678
4698
  s(:array_pat, nil,
4679
4699
  s(:lit, :b).line(2),
4680
- s(:lvar, :c).line(2)).line(2),
4700
+ s(:lasgn, :c).line(2)).line(2),
4681
4701
  s(:array_pat,
4682
4702
  nil,
4683
4703
  s(:lit, :d).line(2),
@@ -4723,7 +4743,7 @@ module TestPatternMatching
4723
4743
  s(:in,
4724
4744
  s(:array_pat,
4725
4745
  s(:const, :B).line(2),
4726
- s(:lvar, :c).line(2)).line(2),
4746
+ s(:lasgn, :c).line(2)).line(2),
4727
4747
  s(:lit, :d).line(3)).line(2),
4728
4748
  nil)
4729
4749
 
@@ -4736,7 +4756,7 @@ module TestPatternMatching
4736
4756
  s(:in,
4737
4757
  s(:array_pat,
4738
4758
  s(:const, s(:colon2, s(:const, :B).line(2), :C).line(2)).line(2),
4739
- s(:lvar, :d).line(2)).line(2),
4759
+ s(:lasgn, :d).line(2)).line(2),
4740
4760
  s(:lit, :e).line(3)).line(2),
4741
4761
  nil)
4742
4762
 
@@ -4841,7 +4861,7 @@ module TestPatternMatching
4841
4861
  s(:hash_pat,
4842
4862
  nil,
4843
4863
  s(:lit, :b).line(2),
4844
- s(:lvar, :c).line(2),
4864
+ s(:lasgn, :c).line(2),
4845
4865
  s(:kwrest, :"**rest").line(2)).line(2),
4846
4866
  s(:lit, :d).line(2)).line(2),
4847
4867
  nil)
@@ -4934,12 +4954,12 @@ module TestPatternMatching
4934
4954
  end
4935
4955
 
4936
4956
  def test_parse_pattern_044
4937
- rb = <<~RUBY
4938
- case obj
4939
- in Object[]
4940
- true
4941
- end
4942
- RUBY
4957
+ rb = <<~RUBY
4958
+ case obj
4959
+ in Object[]
4960
+ true
4961
+ end
4962
+ RUBY
4943
4963
  pt = s(:case,
4944
4964
  s(:call, nil, :obj),
4945
4965
  s(:in, s(:array_pat, s(:const, :Object).line(2)).line(2),
@@ -5072,7 +5092,7 @@ module TestPatternMatching30
5072
5092
  s(:find_pat,
5073
5093
  s(:const, :Symbol).line(2),
5074
5094
  :"*lhs",
5075
- s(:array_pat, s(:lvar, :x).line(2)).line(2),
5095
+ s(:lasgn, :x).line(2),
5076
5096
  :"*rhs").line(2))
5077
5097
  end
5078
5098
 
@@ -5080,7 +5100,7 @@ module TestPatternMatching30
5080
5100
  assert_case_in("Symbol[*lhs, x, *rhs]",
5081
5101
  s(:find_pat, s(:const, :Symbol).line(2),
5082
5102
  :"*lhs",
5083
- s(:array_pat, s(:lvar, :x).line(2)).line(2),
5103
+ s(:lasgn, :x).line(2),
5084
5104
  :"*rhs").line(2))
5085
5105
  end
5086
5106
  end
@@ -5196,7 +5216,7 @@ module TestRubyParserShared30Plus
5196
5216
  rb = "42 => n"
5197
5217
  pt = s(:case,
5198
5218
  s(:lit, 42),
5199
- s(:in, s(:lvar, :n), nil), nil)
5219
+ s(:in, s(:lasgn, :n), nil), nil)
5200
5220
 
5201
5221
  assert_parse rb, pt
5202
5222
  end
@@ -5208,7 +5228,7 @@ module TestRubyParserShared30Plus
5208
5228
  s(:in,
5209
5229
  s(:find_pat, nil,
5210
5230
  :"*a",
5211
- s(:array_pat, s(:lit, :+).line(2)).line(2),
5231
+ s(:lit, :+).line(2),
5212
5232
  :"*b").line(2),
5213
5233
  nil).line(2),
5214
5234
  nil)
@@ -5223,7 +5243,7 @@ module TestRubyParserShared30Plus
5223
5243
  s(:in,
5224
5244
  s(:find_pat, nil,
5225
5245
  :*,
5226
- s(:array_pat, s(:lit, :b).line(2), s(:lvar, :c).line(2)).line(2),
5246
+ s(:lit, :b).line(2), s(:lasgn, :c).line(2),
5227
5247
  :*).line(2),
5228
5248
  nil).line(2),
5229
5249
  nil)
@@ -5458,6 +5478,10 @@ module TestRubyParserShared31Plus
5458
5478
  end
5459
5479
  end
5460
5480
 
5481
+ module TestRubyParserShared32Plus
5482
+ include TestRubyParserShared31Plus
5483
+ end
5484
+
5461
5485
  class Minitest::Test
5462
5486
  def skip s = "blah"
5463
5487
  warn "ignoring skip for %s: %s" % [name, s]
@@ -5524,6 +5548,8 @@ class RubyParserTestCase < ParseTreeTestCase
5524
5548
 
5525
5549
  attr_accessor :assert_parse_ran
5526
5550
 
5551
+ require "ruby2ruby" if ENV["R2R"]
5552
+
5527
5553
  def assert_parse rb, pt
5528
5554
  self.processor.reset if assert_parse_ran # allows multiple calls
5529
5555
  self.assert_parse_ran = true
@@ -5534,6 +5560,10 @@ class RubyParserTestCase < ParseTreeTestCase
5534
5560
  pt.line ||= 1
5535
5561
 
5536
5562
  self.result = processor.parse rb, "(string)", timeout
5563
+
5564
+ # just try it for now:
5565
+ Ruby2Ruby.new.process(result.deep_clone) if ENV["R2R"]
5566
+
5537
5567
  assert_equal pt, result
5538
5568
  end
5539
5569
 
@@ -5803,6 +5833,16 @@ class TestRubyParserV31 < RubyParserTestCase
5803
5833
  end
5804
5834
  end
5805
5835
 
5836
+ class TestRubyParserV32 < RubyParserTestCase
5837
+ include TestRubyParserShared32Plus
5838
+
5839
+ def setup
5840
+ super
5841
+
5842
+ self.processor = RubyParser::V32.new
5843
+ end
5844
+ end
5845
+
5806
5846
  RubyParser::VERSIONS.each do |klass|
5807
5847
  v = klass.version
5808
5848
  describe "block args arity #{v}" do
data.tar.gz.sig CHANGED
@@ -1 +1 @@
1
- ��C-]̓�˺��)5J��������I�[���Y5��St?� ��e��z�1�Q����e��i��ł��^���BU4�'b�����o!_�ٝ:�Q"l�l�$c��5n�V6L5{І��� 0�}���By�p3�^�H�{���5�����j�y���I�N^�6�����IZ�DQ݆M� 2w|(|x�uaP�F��L�i���6��M�>5s��@_�%�|�P����[��GP��i���
1
+ P��FV�ʿx��O��)(�n��'�M�2$���x/멀�o�ѝ�/gs�h�l���؉G
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.19.1
4
+ version: 3.20.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
@@ -10,9 +10,9 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDPjCCAiagAwIBAgIBBjANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
13
+ MIIDPjCCAiagAwIBAgIBBzANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
14
14
  ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
15
- GRYDY29tMB4XDTIxMTIyMzIzMTkwNFoXDTIyMTIyMzIzMTkwNFowRTETMBEGA1UE
15
+ GRYDY29tMB4XDTIzMDEwMTA3NTExN1oXDTI0MDEwMTA3NTExN1owRTETMBEGA1UE
16
16
  AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
17
17
  JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
18
18
  b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
@@ -22,14 +22,14 @@ cert_chain:
22
22
  qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
23
23
  gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
24
24
  HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBCwUAA4IB
25
- AQCKB5jfsuSnKb+t/Wrh3UpdkmX7TrEsjVmERC0pPqzQ5GQJgmEXDD7oMgaKXaAq
26
- x2m+KSZDrqk7c8uho5OX6YMqg4KdxehfSLqqTZGoeV78qwf/jpPQZKTf+W9gUSJh
27
- zsWpo4K50MP+QtdSbKXZwjAafpQ8hK0MnnZ/aeCsW9ov5vdXpYbf3dpg6ADXRGE7
28
- lQY2y1tJ5/chqu6h7dQmnm2ABUqx9O+JcN9hbCYoA5i/EeubUEtFIh2w3SpO6YfB
29
- JFmxn4h9YO/pVdB962BdBNNDia0kgIjI3ENnkLq0dKpYU3+F3KhEuTksLO0L6X/V
30
- YsuyUzsMz6GQA4khyaMgKNSD
25
+ AQAkg3y+PBnBAPWdxxITm5sPHqdWQgSyCpRA20o4LTuWr8BWhSXBkfQNa7cY6fOn
26
+ xyM34VPzBFbExv6XOGDfOMFBVaYTHuN9peC/5/umL7kLl+nflXzL2QA7K6LYj5Bg
27
+ sM574Onr0dZDM6Vn69bzQ7rBIFDfK/OhlPzqKZad4nsdcsVH8ODCiT+ATMIZyz5K
28
+ WCnNtqlyiWXI8tdTpahDgcUwfcN/oN7v4K8iU5IbLJX6HQ5DKgmKjfb6XyMth16k
29
+ ROfWo9Uyp8ba/j9eVG14KkYRaLydAY1MNQk2yd3R5CGfeOpD1kttxjoypoUJ2dOG
30
+ nsNBRuQJ1UfiCG97a6DNm+Fr
31
31
  -----END CERTIFICATE-----
32
- date: 2022-04-06 00:00:00.000000000 Z
32
+ date: 2023-03-04 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: sexp_processor
@@ -119,14 +119,14 @@ dependencies:
119
119
  requirements:
120
120
  - - "~>"
121
121
  - !ruby/object:Gem::Version
122
- version: '3.23'
122
+ version: '4.0'
123
123
  type: :development
124
124
  prerelease: false
125
125
  version_requirements: !ruby/object:Gem::Requirement
126
126
  requirements:
127
127
  - - "~>"
128
128
  - !ruby/object:Gem::Version
129
- version: '3.23'
129
+ version: '4.0'
130
130
  description: |-
131
131
  ruby_parser (RP) is a ruby parser written in pure ruby (utilizing
132
132
  racc--which does by default use a C extension). It outputs
@@ -204,6 +204,8 @@ files:
204
204
  - lib/ruby30_parser.y
205
205
  - lib/ruby31_parser.rb
206
206
  - lib/ruby31_parser.y
207
+ - lib/ruby32_parser.rb
208
+ - lib/ruby32_parser.y
207
209
  - lib/ruby3_parser.yy
208
210
  - lib/ruby_lexer.rb
209
211
  - lib/ruby_lexer.rex
@@ -233,7 +235,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
233
235
  requirements:
234
236
  - - ">="
235
237
  - !ruby/object:Gem::Version
236
- version: '2.1'
238
+ version: '2.6'
237
239
  - - "<"
238
240
  - !ruby/object:Gem::Version
239
241
  version: '4'
@@ -243,7 +245,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
243
245
  - !ruby/object:Gem::Version
244
246
  version: '0'
245
247
  requirements: []
246
- rubygems_version: 3.3.3
248
+ rubygems_version: 3.4.6
247
249
  signing_key:
248
250
  specification_version: 4
249
251
  summary: ruby_parser (RP) is a ruby parser written in pure ruby (utilizing racc--which
metadata.gz.sig CHANGED
Binary file