ruby_parser 3.21.0 → 3.22.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 +35 -0
- data/Manifest.txt +1 -0
- data/README.rdoc +12 -0
- data/Rakefile +28 -19
- data/bin/ruby_parse +0 -8
- data/compare/normalize.rb +17 -3
- data/gauntlet.md +35 -5
- data/lib/ruby_lexer.rb +0 -2
- data/lib/ruby_parser.rb +3 -1
- data/lib/ruby_parser2.yy +12 -12
- data/lib/ruby_parser20.rb +11 -11
- data/lib/ruby_parser21.rb +11 -11
- data/lib/ruby_parser22.rb +11 -11
- data/lib/ruby_parser23.rb +11 -11
- data/lib/ruby_parser24.rb +11 -11
- data/lib/ruby_parser25.rb +11 -11
- data/lib/ruby_parser26.rb +11 -11
- data/lib/ruby_parser27.rb +13 -13
- data/lib/ruby_parser3.yy +207 -46
- data/lib/ruby_parser30.rb +3329 -3317
- data/lib/ruby_parser31.rb +3762 -3774
- data/lib/ruby_parser32.rb +6240 -6252
- data/lib/ruby_parser33.rb +7918 -7842
- data/lib/ruby_parser34.rb +13653 -0
- data/lib/ruby_parser_extras.rb +78 -46
- data/test/test_ruby_lexer.rb +2 -2
- data/test/test_ruby_parser.rb +51 -94
- data.tar.gz.sig +3 -1
- metadata +15 -20
- metadata.gz.sig +0 -0
data/lib/ruby_parser_extras.rb
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
# encoding: ASCII-8BIT
|
|
2
1
|
# frozen_string_literal: true
|
|
3
|
-
# TODO: remove encoding comment
|
|
4
2
|
|
|
5
3
|
require "sexp"
|
|
6
4
|
require "ruby_lexer"
|
|
@@ -30,7 +28,7 @@ class Sexp
|
|
|
30
28
|
end
|
|
31
29
|
|
|
32
30
|
module RubyParserStuff
|
|
33
|
-
VERSION = "3.
|
|
31
|
+
VERSION = "3.22.0"
|
|
34
32
|
|
|
35
33
|
attr_accessor :lexer, :in_def, :in_single, :file, :in_argdef
|
|
36
34
|
attr_accessor :in_kwarg
|
|
@@ -92,9 +90,6 @@ module RubyParserStuff
|
|
|
92
90
|
[k, true]
|
|
93
91
|
}.to_h
|
|
94
92
|
|
|
95
|
-
# TODO: remove
|
|
96
|
-
has_enc = "".respond_to? :encoding
|
|
97
|
-
|
|
98
93
|
# This is in sorted order of occurrence according to
|
|
99
94
|
# charlock_holmes against 500k files, with UTF_8 forced
|
|
100
95
|
# to the top.
|
|
@@ -108,7 +103,7 @@ module RubyParserStuff
|
|
|
108
103
|
Encoding::SHIFT_JIS,
|
|
109
104
|
Encoding::WINDOWS_1252,
|
|
110
105
|
Encoding::EUC_JP
|
|
111
|
-
]
|
|
106
|
+
]
|
|
112
107
|
|
|
113
108
|
JUMP_TYPE = [:return, :next, :break, :yield].map { |k| [k, true] }.to_h
|
|
114
109
|
|
|
@@ -225,8 +220,8 @@ module RubyParserStuff
|
|
|
225
220
|
end
|
|
226
221
|
|
|
227
222
|
def endless_method_name defn_or_defs
|
|
228
|
-
name = defn_or_defs
|
|
229
|
-
name =
|
|
223
|
+
_, name, maybe_name, * = defn_or_defs
|
|
224
|
+
name = maybe_name unless Symbol === name
|
|
230
225
|
|
|
231
226
|
if attrset_id? name then
|
|
232
227
|
yyerror "setter method cannot be defined in an endless method definition"
|
|
@@ -254,6 +249,36 @@ module RubyParserStuff
|
|
|
254
249
|
end
|
|
255
250
|
|
|
256
251
|
def assignable(lhs, value = nil)
|
|
252
|
+
id, line = lhs.last, lhs.line
|
|
253
|
+
|
|
254
|
+
result =
|
|
255
|
+
case lhs.sexp_type
|
|
256
|
+
when :const then
|
|
257
|
+
s(:cdecl, id)
|
|
258
|
+
when :cvar then
|
|
259
|
+
asgn = in_def || in_single > 0
|
|
260
|
+
s((asgn ? :cvasgn : :cvdecl), id)
|
|
261
|
+
when :gvar then
|
|
262
|
+
s(:gasgn, id)
|
|
263
|
+
when :ivar then
|
|
264
|
+
s(:iasgn, id)
|
|
265
|
+
else
|
|
266
|
+
case self.env[id]
|
|
267
|
+
when :lvar, :dvar, nil then
|
|
268
|
+
self.env[id] ||= :lvar
|
|
269
|
+
s(:lasgn, id)
|
|
270
|
+
else
|
|
271
|
+
raise "wtf? unknown type: #{self.env[id]}"
|
|
272
|
+
end
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
result << value if value
|
|
276
|
+
result.line line
|
|
277
|
+
|
|
278
|
+
result
|
|
279
|
+
end
|
|
280
|
+
|
|
281
|
+
def old_assignable(lhs, value = nil)
|
|
257
282
|
id, line = lhs
|
|
258
283
|
id = id.to_sym
|
|
259
284
|
|
|
@@ -339,7 +364,7 @@ module RubyParserStuff
|
|
|
339
364
|
when Sexp then
|
|
340
365
|
case arg.sexp_type
|
|
341
366
|
when :array, :args, :call_args then # HACK? remove array at some point
|
|
342
|
-
result.
|
|
367
|
+
result.sexp_body += arg.sexp_body
|
|
343
368
|
else
|
|
344
369
|
result << arg
|
|
345
370
|
end
|
|
@@ -567,14 +592,13 @@ module RubyParserStuff
|
|
|
567
592
|
|
|
568
593
|
def handle_encoding str
|
|
569
594
|
str = str.dup
|
|
570
|
-
has_enc = str.respond_to? :encoding # TODO: remove
|
|
571
595
|
encoding = nil
|
|
572
596
|
|
|
573
597
|
header = str.each_line.first(2)
|
|
574
|
-
header.map! { |s| s.force_encoding "ASCII-8BIT" }
|
|
598
|
+
header.map! { |s| s.force_encoding "ASCII-8BIT" }
|
|
575
599
|
|
|
576
600
|
first = header.first || ""
|
|
577
|
-
encoding, str = +"utf-8", str.b[3..-1] if first =~ /\A\xEF\xBB\xBF/
|
|
601
|
+
encoding, str = +"utf-8", str.b[3..-1] if first =~ /\A\xEF\xBB\xBF/n
|
|
578
602
|
|
|
579
603
|
encoding = $1.strip if header.find { |s|
|
|
580
604
|
s[/^#.*?-\*-.*?coding:\s*([^ ;]+).*?-\*-/, 1] ||
|
|
@@ -582,15 +606,11 @@ module RubyParserStuff
|
|
|
582
606
|
}
|
|
583
607
|
|
|
584
608
|
if encoding then
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
hack_encoding str, encoding
|
|
588
|
-
else
|
|
589
|
-
warn "Skipping magic encoding comment"
|
|
590
|
-
end
|
|
609
|
+
encoding.sub!(/utf-8-.+$/, "utf-8") # HACK for stupid emacs formats
|
|
610
|
+
hack_encoding str, encoding
|
|
591
611
|
else
|
|
592
612
|
# nothing specified... ugh. try to encode as utf-8
|
|
593
|
-
hack_encoding str
|
|
613
|
+
hack_encoding str
|
|
594
614
|
end
|
|
595
615
|
|
|
596
616
|
str
|
|
@@ -645,13 +665,20 @@ module RubyParserStuff
|
|
|
645
665
|
when :dstr then
|
|
646
666
|
if htype == :str then
|
|
647
667
|
lineno = head.line
|
|
648
|
-
|
|
668
|
+
_, h1 = head
|
|
669
|
+
_, t1, *rest = tail
|
|
670
|
+
tail.sexp_body = [h1 + t1, *rest]
|
|
671
|
+
|
|
649
672
|
head = tail
|
|
650
673
|
head.line = lineno
|
|
651
674
|
else
|
|
652
675
|
tail.sexp_type = :array
|
|
653
|
-
|
|
654
|
-
|
|
676
|
+
_, tail_s, *tail_r = tail
|
|
677
|
+
if tail_s == "" then
|
|
678
|
+
tail.sexp_body = tail_r
|
|
679
|
+
else
|
|
680
|
+
tail.sexp_body = [s(:str, tail_s).line(tail.line), *tail_r]
|
|
681
|
+
end
|
|
655
682
|
|
|
656
683
|
head.push(*tail.sexp_body)
|
|
657
684
|
end
|
|
@@ -663,8 +690,11 @@ module RubyParserStuff
|
|
|
663
690
|
head.line = l
|
|
664
691
|
end
|
|
665
692
|
|
|
666
|
-
|
|
667
|
-
|
|
693
|
+
_, t1, * = tail
|
|
694
|
+
if head.size == 2 and tail.size > 1 and t1.sexp_type == :str then
|
|
695
|
+
_, h1 = head
|
|
696
|
+
head.sexp_body = [h1.dup] if h1.frozen? # this is dumb
|
|
697
|
+
head.last << t1.last
|
|
668
698
|
head.sexp_type = :str if head.size == 2 # HACK ?
|
|
669
699
|
else
|
|
670
700
|
head.push(tail)
|
|
@@ -846,7 +876,7 @@ module RubyParserStuff
|
|
|
846
876
|
|
|
847
877
|
while res do
|
|
848
878
|
result << res
|
|
849
|
-
res = res.resbody
|
|
879
|
+
res = res.find_node :resbody, :delete
|
|
850
880
|
end
|
|
851
881
|
|
|
852
882
|
result << elsebody if elsebody
|
|
@@ -915,8 +945,9 @@ module RubyParserStuff
|
|
|
915
945
|
body = body.delete_at 3
|
|
916
946
|
end
|
|
917
947
|
|
|
918
|
-
|
|
919
|
-
|
|
948
|
+
_, _expr, *cases = result
|
|
949
|
+
cases.each do |node|
|
|
950
|
+
block = node.find_node :block, :delete
|
|
920
951
|
node.concat block.sexp_body if block
|
|
921
952
|
end
|
|
922
953
|
|
|
@@ -1128,8 +1159,7 @@ module RubyParserStuff
|
|
|
1128
1159
|
|
|
1129
1160
|
if kw_rest_arg then
|
|
1130
1161
|
name = kw_rest_arg.value
|
|
1131
|
-
|
|
1132
|
-
assignable [name, kw_rest_arg.line] if name != :**
|
|
1162
|
+
assignable kw_rest_arg if name != :**
|
|
1133
1163
|
result << kw_rest_arg
|
|
1134
1164
|
end
|
|
1135
1165
|
|
|
@@ -1332,23 +1362,25 @@ module RubyParserStuff
|
|
|
1332
1362
|
|
|
1333
1363
|
case node.sexp_type
|
|
1334
1364
|
when :str then
|
|
1365
|
+
_, str = node
|
|
1335
1366
|
node.sexp_type = :lit
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
end
|
|
1350
|
-
end
|
|
1367
|
+
val = if k then
|
|
1368
|
+
Regexp.new(str, o, k)
|
|
1369
|
+
else
|
|
1370
|
+
begin
|
|
1371
|
+
Regexp.new(str, o)
|
|
1372
|
+
rescue RegexpError => e
|
|
1373
|
+
warn "WARNING: #{e.message} for #{str.inspect} #{options.inspect}"
|
|
1374
|
+
begin
|
|
1375
|
+
warn "WARNING: trying to recover with ENC_UTF8"
|
|
1376
|
+
Regexp.new(str, Regexp::ENC_UTF8)
|
|
1377
|
+
rescue RegexpError => e
|
|
1378
|
+
warn "WARNING: trying to recover with ENC_NONE"
|
|
1379
|
+
Regexp.new(str, Regexp::ENC_NONE)
|
|
1351
1380
|
end
|
|
1381
|
+
end
|
|
1382
|
+
end
|
|
1383
|
+
node.sexp_body = [val]
|
|
1352
1384
|
when :dstr then
|
|
1353
1385
|
if options =~ /o/ then
|
|
1354
1386
|
node.sexp_type = :dregx_once
|
|
@@ -1571,7 +1603,7 @@ module RubyParserStuff
|
|
|
1571
1603
|
|
|
1572
1604
|
self.lexer.string = handle_encoding str
|
|
1573
1605
|
|
|
1574
|
-
self.file = file
|
|
1606
|
+
self.file = file
|
|
1575
1607
|
|
|
1576
1608
|
@yydebug = ENV.has_key? "DEBUG"
|
|
1577
1609
|
|
data/test/test_ruby_lexer.rb
CHANGED
|
@@ -176,8 +176,6 @@ class TestRubyLexer < Minitest::Test
|
|
|
176
176
|
|
|
177
177
|
def test_pct_w_backslashes
|
|
178
178
|
["\t", "\n", "\r", "\v", "\f"].each do |char|
|
|
179
|
-
next if !RubyLexer::HAS_ENC and char == "\v"
|
|
180
|
-
|
|
181
179
|
assert_lex("%w[foo#{char}bar]",
|
|
182
180
|
s(:array, s(:str, "foo"), s(:str, "bar")),
|
|
183
181
|
|
|
@@ -2174,6 +2172,8 @@ class TestRubyLexer < Minitest::Test
|
|
|
2174
2172
|
end
|
|
2175
2173
|
|
|
2176
2174
|
def test_yylex_question_control_escape
|
|
2175
|
+
skip "bug in prism parser. Use --parser=parse.y" if ?\C-\] != "\u001D"
|
|
2176
|
+
|
|
2177
2177
|
assert_lex3('?\C-\]', nil, :tSTRING, ?\C-\], EXPR_END)
|
|
2178
2178
|
end
|
|
2179
2179
|
|
data/test/test_ruby_parser.rb
CHANGED
|
@@ -695,8 +695,10 @@ module TestRubyParserShared
|
|
|
695
695
|
|
|
696
696
|
assert_parse rb, pt
|
|
697
697
|
|
|
698
|
+
_, _, _, defn = result
|
|
699
|
+
|
|
698
700
|
assert_equal "# blah 1\n# blah 2\n\n", result.comments
|
|
699
|
-
assert_equal "# blah 3\n",
|
|
701
|
+
assert_equal "# blah 3\n", defn.comments
|
|
700
702
|
end
|
|
701
703
|
|
|
702
704
|
def test_cond_unary_minus
|
|
@@ -833,6 +835,13 @@ module TestRubyParserShared
|
|
|
833
835
|
assert_parse rb, pt
|
|
834
836
|
end
|
|
835
837
|
|
|
838
|
+
def test_symbol__at
|
|
839
|
+
rb = ":@diff"
|
|
840
|
+
pt = s(:lit, :@diff)
|
|
841
|
+
|
|
842
|
+
assert_parse rb, pt
|
|
843
|
+
end
|
|
844
|
+
|
|
836
845
|
def test_dsym_to_sym
|
|
837
846
|
pt = s(:alias, s(:lit, :<<), s(:lit, :>>))
|
|
838
847
|
|
|
@@ -1406,7 +1415,7 @@ module TestRubyParserShared
|
|
|
1406
1415
|
end
|
|
1407
1416
|
|
|
1408
1417
|
def test_literal_concat_str_evstr
|
|
1409
|
-
lhs = s(:str, "").line 1
|
|
1418
|
+
lhs = s(:str, +"").line 1
|
|
1410
1419
|
rhs = s(:evstr, s(:str, "blah").line(2)).line 2
|
|
1411
1420
|
|
|
1412
1421
|
assert_equal s(:str, "blah"), processor.literal_concat(lhs, rhs)
|
|
@@ -1496,9 +1505,9 @@ module TestRubyParserShared
|
|
|
1496
1505
|
end
|
|
1497
1506
|
|
|
1498
1507
|
def test_magic_encoding_comment
|
|
1499
|
-
rb = "# encoding: utf-8\nclass ExampleUTF8ClassNameVarietà; def self.è; così = :però; end\nend\n"
|
|
1508
|
+
rb = +"# encoding: utf-8\nclass ExampleUTF8ClassNameVarietà; def self.è; così = :però; end\nend\n"
|
|
1500
1509
|
|
|
1501
|
-
rb.force_encoding "ASCII-8BIT"
|
|
1510
|
+
rb.force_encoding "ASCII-8BIT"
|
|
1502
1511
|
|
|
1503
1512
|
# TODO: class vars
|
|
1504
1513
|
# TODO: odd-ternary: a ?bb : c
|
|
@@ -1508,9 +1517,7 @@ module TestRubyParserShared
|
|
|
1508
1517
|
s(:defs, s(:self).line(2), :"\303\250", s(:args).line(2),
|
|
1509
1518
|
s(:lasgn, :"cos\303\254", s(:lit, :"per\303\262").line(2)).line(2)).line(2)).line(2)
|
|
1510
1519
|
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
assert_output "", err do
|
|
1520
|
+
assert_output "", "" do
|
|
1514
1521
|
assert_parse rb, pt
|
|
1515
1522
|
end
|
|
1516
1523
|
end
|
|
@@ -1620,9 +1627,12 @@ module TestRubyParserShared
|
|
|
1620
1627
|
pt = s(:module, :X,
|
|
1621
1628
|
s(:defn, :blah, s(:args).line(7), s(:nil).line(7)).line(7)).line(5)
|
|
1622
1629
|
|
|
1630
|
+
|
|
1623
1631
|
assert_parse rb, pt
|
|
1632
|
+
|
|
1633
|
+
_, _name, defn = result
|
|
1624
1634
|
assert_equal "# blah 1\n\n# blah 2\n\n", result.comments
|
|
1625
|
-
assert_equal "# blah 3\n",
|
|
1635
|
+
assert_equal "# blah 3\n", defn.comments
|
|
1626
1636
|
end
|
|
1627
1637
|
|
|
1628
1638
|
def test_non_interpolated_word_array_line_breaks
|
|
@@ -1705,8 +1715,7 @@ module TestRubyParserShared
|
|
|
1705
1715
|
end
|
|
1706
1716
|
|
|
1707
1717
|
def test_parse_comments
|
|
1708
|
-
|
|
1709
|
-
sexp = p.parse <<-CODE
|
|
1718
|
+
sexp = processor.parse <<-CODE
|
|
1710
1719
|
# class comment
|
|
1711
1720
|
class Inline
|
|
1712
1721
|
def show
|
|
@@ -1758,9 +1767,10 @@ module TestRubyParserShared
|
|
|
1758
1767
|
|
|
1759
1768
|
assert_parse rb, pt
|
|
1760
1769
|
|
|
1770
|
+
_, lasgn, call = result
|
|
1761
1771
|
assert_equal "(string)", result.file
|
|
1762
|
-
assert_same result.file,
|
|
1763
|
-
assert_same result.file,
|
|
1772
|
+
assert_same result.file, lasgn.file
|
|
1773
|
+
assert_same result.file, call.file
|
|
1764
1774
|
end
|
|
1765
1775
|
|
|
1766
1776
|
def test_parse_line_block_inline_comment
|
|
@@ -1840,10 +1850,10 @@ module TestRubyParserShared
|
|
|
1840
1850
|
|
|
1841
1851
|
assert_parse rb, pt
|
|
1842
1852
|
|
|
1843
|
-
|
|
1844
|
-
assert_equal 2,
|
|
1845
|
-
assert_equal 3,
|
|
1846
|
-
assert_equal 4,
|
|
1853
|
+
_, _name, _args, call, lasgn, ret = result
|
|
1854
|
+
assert_equal 2, call.line, "call should have line number"
|
|
1855
|
+
assert_equal 3, lasgn.line, "lasgn should have line number"
|
|
1856
|
+
assert_equal 4, ret.line, "return should have line number"
|
|
1847
1857
|
end
|
|
1848
1858
|
|
|
1849
1859
|
def test_parse_line_defn_no_parens
|
|
@@ -2084,8 +2094,10 @@ module TestRubyParserShared
|
|
|
2084
2094
|
|
|
2085
2095
|
assert_parse rb, pt
|
|
2086
2096
|
|
|
2087
|
-
|
|
2088
|
-
|
|
2097
|
+
_, _, _, (_, _cond, t, _f) = result
|
|
2098
|
+
(_, lit) = t
|
|
2099
|
+
assert_equal 3, t.line
|
|
2100
|
+
assert_equal 3, lit.line
|
|
2089
2101
|
end
|
|
2090
2102
|
|
|
2091
2103
|
def test_parse_line_str_with_newline_escape
|
|
@@ -5446,9 +5458,8 @@ module TestRubyParserShared30Plus
|
|
|
5446
5458
|
end
|
|
5447
5459
|
|
|
5448
5460
|
def test_defn_oneliner_comment
|
|
5449
|
-
p = RubyParser.new
|
|
5450
5461
|
rb = "# blah\ndef exec(cmd) = system(cmd)"
|
|
5451
|
-
sexp =
|
|
5462
|
+
sexp = processor.parse rb
|
|
5452
5463
|
|
|
5453
5464
|
assert_equal :defn, sexp.sexp_type
|
|
5454
5465
|
assert_equal "# blah\n", sexp.comments
|
|
@@ -5478,9 +5489,8 @@ module TestRubyParserShared30Plus
|
|
|
5478
5489
|
end
|
|
5479
5490
|
|
|
5480
5491
|
def test_defs_oneliner_comment
|
|
5481
|
-
p = RubyParser.new
|
|
5482
5492
|
rb = "# blah\ndef self.exec(cmd) = system(cmd)"
|
|
5483
|
-
sexp =
|
|
5493
|
+
sexp = processor.parse rb
|
|
5484
5494
|
|
|
5485
5495
|
assert_equal :defs, sexp.sexp_type
|
|
5486
5496
|
assert_equal "# blah\n", sexp.comments
|
|
@@ -5675,6 +5685,10 @@ module TestRubyParserShared33Plus
|
|
|
5675
5685
|
include TestRubyParserShared32Plus
|
|
5676
5686
|
end
|
|
5677
5687
|
|
|
5688
|
+
module TestRubyParserShared34Plus
|
|
5689
|
+
include TestRubyParserShared33Plus
|
|
5690
|
+
end
|
|
5691
|
+
|
|
5678
5692
|
class Minitest::Test
|
|
5679
5693
|
def skip s = "blah"
|
|
5680
5694
|
warn "ignoring skip for %s: %s" % [name, s]
|
|
@@ -5702,7 +5716,7 @@ class TestRubyParser < Minitest::Test
|
|
|
5702
5716
|
processor = RubyParser.new
|
|
5703
5717
|
|
|
5704
5718
|
# bad syntax
|
|
5705
|
-
e = assert_raises
|
|
5719
|
+
e = assert_raises RubyParser::SyntaxError do
|
|
5706
5720
|
processor.parse "a.("
|
|
5707
5721
|
end
|
|
5708
5722
|
|
|
@@ -5715,6 +5729,17 @@ class RubyParserTestCase < ParseTreeTestCase
|
|
|
5715
5729
|
|
|
5716
5730
|
make_my_diffs_pretty!
|
|
5717
5731
|
|
|
5732
|
+
def parser_class
|
|
5733
|
+
v = self.class.name[/V\d\d$/]
|
|
5734
|
+
RubyParser.const_get(v)
|
|
5735
|
+
end
|
|
5736
|
+
|
|
5737
|
+
def setup
|
|
5738
|
+
super
|
|
5739
|
+
|
|
5740
|
+
self.processor = parser_class.new
|
|
5741
|
+
end
|
|
5742
|
+
|
|
5718
5743
|
def self.previous key
|
|
5719
5744
|
"Ruby"
|
|
5720
5745
|
end
|
|
@@ -5788,43 +5813,19 @@ end
|
|
|
5788
5813
|
|
|
5789
5814
|
class TestRubyParserV20 < RubyParserTestCase
|
|
5790
5815
|
include TestRubyParserShared20Plus
|
|
5791
|
-
|
|
5792
|
-
def setup
|
|
5793
|
-
super
|
|
5794
|
-
|
|
5795
|
-
self.processor = RubyParser::V20.new
|
|
5796
|
-
end
|
|
5797
5816
|
end
|
|
5798
5817
|
|
|
5799
5818
|
class TestRubyParserV21 < RubyParserTestCase
|
|
5800
5819
|
include TestRubyParserShared21Plus
|
|
5801
|
-
|
|
5802
|
-
def setup
|
|
5803
|
-
super
|
|
5804
|
-
|
|
5805
|
-
self.processor = RubyParser::V21.new
|
|
5806
|
-
end
|
|
5807
5820
|
end
|
|
5808
5821
|
|
|
5809
5822
|
class TestRubyParserV22 < RubyParserTestCase
|
|
5810
5823
|
include TestRubyParserShared22Plus
|
|
5811
|
-
|
|
5812
|
-
def setup
|
|
5813
|
-
super
|
|
5814
|
-
|
|
5815
|
-
self.processor = RubyParser::V22.new
|
|
5816
|
-
end
|
|
5817
5824
|
end
|
|
5818
5825
|
|
|
5819
5826
|
class TestRubyParserV23 < RubyParserTestCase
|
|
5820
5827
|
include TestRubyParserShared23Plus
|
|
5821
5828
|
|
|
5822
|
-
def setup
|
|
5823
|
-
super
|
|
5824
|
-
|
|
5825
|
-
self.processor = RubyParser::V23.new
|
|
5826
|
-
end
|
|
5827
|
-
|
|
5828
5829
|
def test_lasgn_call_nobracket_rescue_arg
|
|
5829
5830
|
rb = "a = b 1 rescue 2"
|
|
5830
5831
|
pt = s(:rescue,
|
|
@@ -5838,12 +5839,6 @@ end
|
|
|
5838
5839
|
class TestRubyParserV24 < RubyParserTestCase
|
|
5839
5840
|
include TestRubyParserShared24Plus
|
|
5840
5841
|
|
|
5841
|
-
def setup
|
|
5842
|
-
super
|
|
5843
|
-
|
|
5844
|
-
self.processor = RubyParser::V24.new
|
|
5845
|
-
end
|
|
5846
|
-
|
|
5847
5842
|
def test_rescue_parens
|
|
5848
5843
|
rb = "a (b rescue c)"
|
|
5849
5844
|
pt = s(:call, nil, :a,
|
|
@@ -5859,12 +5854,6 @@ end
|
|
|
5859
5854
|
class TestRubyParserV25 < RubyParserTestCase
|
|
5860
5855
|
include TestRubyParserShared25Plus
|
|
5861
5856
|
|
|
5862
|
-
def setup
|
|
5863
|
-
super
|
|
5864
|
-
|
|
5865
|
-
self.processor = RubyParser::V25.new
|
|
5866
|
-
end
|
|
5867
|
-
|
|
5868
5857
|
def test_rescue_do_end_ensure_result
|
|
5869
5858
|
rb = "proc do\n :begin\nensure\n :ensure\nend.call"
|
|
5870
5859
|
pt = s(:call,
|
|
@@ -5936,12 +5925,6 @@ end
|
|
|
5936
5925
|
class TestRubyParserV26 < RubyParserTestCase
|
|
5937
5926
|
include TestRubyParserShared26Plus
|
|
5938
5927
|
|
|
5939
|
-
def setup
|
|
5940
|
-
super
|
|
5941
|
-
|
|
5942
|
-
self.processor = RubyParser::V26.new
|
|
5943
|
-
end
|
|
5944
|
-
|
|
5945
5928
|
def test_parse_line_dot2_open
|
|
5946
5929
|
rb = "0..\n; a..\n; c"
|
|
5947
5930
|
pt = s(:block,
|
|
@@ -5966,12 +5949,6 @@ end
|
|
|
5966
5949
|
class TestRubyParserV27 < RubyParserTestCase
|
|
5967
5950
|
include TestRubyParserShared27Plus
|
|
5968
5951
|
|
|
5969
|
-
def setup
|
|
5970
|
-
super
|
|
5971
|
-
|
|
5972
|
-
self.processor = RubyParser::V27.new
|
|
5973
|
-
end
|
|
5974
|
-
|
|
5975
5952
|
def test_bdot2
|
|
5976
5953
|
rb = "..10\n; ..a\n; c"
|
|
5977
5954
|
pt = s(:block,
|
|
@@ -5995,42 +5972,22 @@ end
|
|
|
5995
5972
|
|
|
5996
5973
|
class TestRubyParserV30 < RubyParserTestCase
|
|
5997
5974
|
include TestRubyParserShared30Plus
|
|
5998
|
-
|
|
5999
|
-
def setup
|
|
6000
|
-
super
|
|
6001
|
-
|
|
6002
|
-
self.processor = RubyParser::V30.new
|
|
6003
|
-
end
|
|
6004
5975
|
end
|
|
6005
5976
|
|
|
6006
5977
|
class TestRubyParserV31 < RubyParserTestCase
|
|
6007
5978
|
include TestRubyParserShared31Plus
|
|
6008
|
-
|
|
6009
|
-
def setup
|
|
6010
|
-
super
|
|
6011
|
-
|
|
6012
|
-
self.processor = RubyParser::V31.new
|
|
6013
|
-
end
|
|
6014
5979
|
end
|
|
6015
5980
|
|
|
6016
5981
|
class TestRubyParserV32 < RubyParserTestCase
|
|
6017
5982
|
include TestRubyParserShared32Plus
|
|
6018
|
-
|
|
6019
|
-
def setup
|
|
6020
|
-
super
|
|
6021
|
-
|
|
6022
|
-
self.processor = RubyParser::V32.new
|
|
6023
|
-
end
|
|
6024
5983
|
end
|
|
6025
5984
|
|
|
6026
5985
|
class TestRubyParserV33 < RubyParserTestCase
|
|
6027
5986
|
include TestRubyParserShared33Plus
|
|
5987
|
+
end
|
|
6028
5988
|
|
|
6029
|
-
|
|
6030
|
-
|
|
6031
|
-
|
|
6032
|
-
self.processor = RubyParser::V33.new
|
|
6033
|
-
end
|
|
5989
|
+
class TestRubyParserV34 < RubyParserTestCase
|
|
5990
|
+
include TestRubyParserShared34Plus
|
|
6034
5991
|
end
|
|
6035
5992
|
|
|
6036
5993
|
RubyParser::VERSIONS.each do |klass|
|
data.tar.gz.sig
CHANGED
|
@@ -1 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
Sk��^�.��xED��Jg8�#��#eaG��V��R}��� .wW_�Z����9�~��V�y���@���ǜ"@$��R���wI���hgWz�$�}a���K�Hg��i��Y��ma����
|
|
2
|
+
���{�5s��V��A�G��xq!xiLW��"p�U�V�e^&�.
|
|
3
|
+
:����w8�E�^�j�$
|
metadata
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ruby_parser
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.22.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ryan Davis
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain:
|
|
11
10
|
- |
|
|
12
11
|
-----BEGIN CERTIFICATE-----
|
|
13
|
-
|
|
12
|
+
MIIDPjCCAiagAwIBAgIBCTANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
|
|
14
13
|
ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
|
|
15
|
-
|
|
14
|
+
GRYDY29tMB4XDTI1MDEwNjIzMjcwMVoXDTI2MDEwNjIzMjcwMVowRTETMBEGA1UE
|
|
16
15
|
AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
|
|
17
16
|
JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
|
|
18
17
|
b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
|
|
@@ -22,14 +21,14 @@ cert_chain:
|
|
|
22
21
|
qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
|
|
23
22
|
gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
|
|
24
23
|
HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBCwUAA4IB
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
24
|
+
AQAC0WQJcPOWPFwkojhzweilRVjTJ19UiLhiBTw3C1wJO3LVdBkWDmnnhAmKuX4D
|
|
25
|
+
r7vjQvESlABGIPdutI1Yl7mrHQzTkfLfXvNN6MT0nLChPyIYauT6SZZxubwJrUfA
|
|
26
|
+
7R0c2CJTIboZ0XaGpLsXqHEF1c29H7TV1QvVuqKAN2mCjh4N82QVn+ZKtys28AwT
|
|
27
|
+
6GfQX2fqLoi4KSc7xIzHKaNzqxeOICmJofk9w5VZ2rRN6yes8jvFYwz9HR41wdj8
|
|
28
|
+
bwfinv7Yp5fA6AysuZLhCykyfDuZVRrUp0Vb68YCKsLjJly/Theak+euNTxvHsB+
|
|
29
|
+
al9oSgPPHICMEX65qvLywitx
|
|
31
30
|
-----END CERTIFICATE-----
|
|
32
|
-
date:
|
|
31
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
33
32
|
dependencies:
|
|
34
33
|
- !ruby/object:Gem::Dependency
|
|
35
34
|
name: sexp_processor
|
|
@@ -119,14 +118,14 @@ dependencies:
|
|
|
119
118
|
requirements:
|
|
120
119
|
- - "~>"
|
|
121
120
|
- !ruby/object:Gem::Version
|
|
122
|
-
version: '4.
|
|
121
|
+
version: '4.3'
|
|
123
122
|
type: :development
|
|
124
123
|
prerelease: false
|
|
125
124
|
version_requirements: !ruby/object:Gem::Requirement
|
|
126
125
|
requirements:
|
|
127
126
|
- - "~>"
|
|
128
127
|
- !ruby/object:Gem::Version
|
|
129
|
-
version: '4.
|
|
128
|
+
version: '4.3'
|
|
130
129
|
description: |-
|
|
131
130
|
ruby_parser (RP) is a ruby parser written in pure ruby (utilizing
|
|
132
131
|
racc--which does by default use a C extension). It outputs
|
|
@@ -203,6 +202,7 @@ files:
|
|
|
203
202
|
- lib/ruby_parser31.rb
|
|
204
203
|
- lib/ruby_parser32.rb
|
|
205
204
|
- lib/ruby_parser33.rb
|
|
205
|
+
- lib/ruby_parser34.rb
|
|
206
206
|
- lib/ruby_parser_extras.rb
|
|
207
207
|
- test/test_ruby_lexer.rb
|
|
208
208
|
- test/test_ruby_parser.rb
|
|
@@ -215,7 +215,6 @@ licenses:
|
|
|
215
215
|
metadata:
|
|
216
216
|
homepage_uri: https://github.com/seattlerb/ruby_parser
|
|
217
217
|
bug_tracker_uri: https://github.com/seattlerb/ruby_parser/issues
|
|
218
|
-
post_install_message:
|
|
219
218
|
rdoc_options:
|
|
220
219
|
- "--main"
|
|
221
220
|
- README.rdoc
|
|
@@ -225,18 +224,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
225
224
|
requirements:
|
|
226
225
|
- - ">="
|
|
227
226
|
- !ruby/object:Gem::Version
|
|
228
|
-
version: '2
|
|
229
|
-
- - "<"
|
|
230
|
-
- !ruby/object:Gem::Version
|
|
231
|
-
version: '4'
|
|
227
|
+
version: '3.2'
|
|
232
228
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
233
229
|
requirements:
|
|
234
230
|
- - ">="
|
|
235
231
|
- !ruby/object:Gem::Version
|
|
236
232
|
version: '0'
|
|
237
233
|
requirements: []
|
|
238
|
-
rubygems_version: 3.
|
|
239
|
-
signing_key:
|
|
234
|
+
rubygems_version: 3.7.2
|
|
240
235
|
specification_version: 4
|
|
241
236
|
summary: ruby_parser (RP) is a ruby parser written in pure ruby (utilizing racc--which
|
|
242
237
|
does by default use a C extension)
|
metadata.gz.sig
CHANGED
|
Binary file
|