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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/History.rdoc +24 -0
- data/Manifest.txt +2 -0
- data/README.rdoc +2 -1
- data/Rakefile +14 -8
- data/lib/ruby20_parser.rb +1 -1
- data/lib/ruby21_parser.rb +1 -1
- data/lib/ruby22_parser.rb +1 -1
- data/lib/ruby23_parser.rb +1 -1
- data/lib/ruby24_parser.rb +1 -1
- data/lib/ruby25_parser.rb +1 -1
- data/lib/ruby26_parser.rb +1 -1
- data/lib/ruby27_parser.rb +26 -10
- data/lib/ruby27_parser.y +13 -1
- data/lib/ruby30_parser.rb +26 -10
- data/lib/ruby30_parser.y +13 -1
- data/lib/ruby31_parser.rb +26 -10
- data/lib/ruby31_parser.y +13 -1
- data/lib/ruby32_parser.rb +13638 -0
- data/lib/ruby32_parser.y +3493 -0
- data/lib/ruby3_parser.yy +15 -1
- data/lib/ruby_lexer.rb +11 -4
- data/lib/ruby_parser.rb +2 -0
- data/lib/ruby_parser.yy +13 -1
- data/lib/ruby_parser_extras.rb +12 -5
- data/test/test_ruby_lexer.rb +13 -0
- data/test/test_ruby_parser.rb +65 -25
- data.tar.gz.sig +1 -1
- metadata +16 -14
- metadata.gz.sig +0 -0
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 :
|
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
|
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 :
|
2561
|
+
result = wrap :lasgn, val[0]
|
2550
2562
|
}
|
2551
2563
|
|
2552
2564
|
p_var_ref: tCARET tIDENTIFIER
|
data/lib/ruby_parser_extras.rb
CHANGED
@@ -30,7 +30,7 @@ class Sexp
|
|
30
30
|
end
|
31
31
|
|
32
32
|
module RubyParserStuff
|
33
|
-
VERSION = "3.
|
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
|
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
|
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]
|
1661
|
+
elsif line[idx] == "\n"
|
1655
1662
|
nil
|
1656
1663
|
else
|
1657
1664
|
col
|
data/test/test_ruby_lexer.rb
CHANGED
@@ -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,
|
data/test/test_ruby_parser.rb
CHANGED
@@ -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,
|
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(:
|
4557
|
-
s(:
|
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(:
|
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(:
|
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(:
|
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(:
|
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(:
|
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(:
|
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(:
|
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(:
|
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(:
|
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
|
-
|
4938
|
-
|
4939
|
-
|
4940
|
-
|
4941
|
-
|
4942
|
-
|
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(:
|
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(:
|
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(:
|
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(:
|
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(:
|
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
|
-
|
1
|
+
P��F�V�ʿx��O��)(�n��'�M�2$���x/멀�o�ѝ�/g�s�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.
|
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
|
-
|
13
|
+
MIIDPjCCAiagAwIBAgIBBzANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
|
14
14
|
ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
|
15
|
-
|
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
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
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:
|
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: '
|
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: '
|
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.
|
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.
|
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
|