ruby_parser 3.13.1 → 3.21.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/.autotest +18 -29
- data/History.rdoc +312 -0
- data/Manifest.txt +16 -15
- data/README.rdoc +13 -9
- data/Rakefile +237 -106
- data/bin/ruby_parse +3 -1
- data/bin/ruby_parse_extract_error +9 -4
- data/compare/normalize.rb +54 -6
- data/debugging.md +172 -0
- data/gauntlet.md +107 -0
- data/lib/rp_extensions.rb +15 -36
- data/lib/rp_stringscanner.rb +20 -51
- data/lib/ruby_lexer.rb +515 -812
- data/lib/ruby_lexer.rex +33 -27
- data/lib/ruby_lexer.rex.rb +64 -31
- data/lib/ruby_lexer_strings.rb +638 -0
- data/lib/ruby_parser.rb +46 -36
- data/lib/{ruby_parser.yy → ruby_parser2.yy} +1400 -488
- data/lib/ruby_parser20.rb +10953 -0
- data/lib/ruby_parser21.rb +10978 -0
- data/lib/ruby_parser22.rb +11119 -0
- data/lib/ruby_parser23.rb +11160 -0
- data/lib/ruby_parser24.rb +11209 -0
- data/lib/ruby_parser25.rb +11209 -0
- data/lib/ruby_parser26.rb +11231 -0
- data/lib/ruby_parser27.rb +12960 -0
- data/lib/{ruby26_parser.y → ruby_parser3.yy} +1652 -521
- data/lib/ruby_parser30.rb +13292 -0
- data/lib/ruby_parser31.rb +13625 -0
- data/lib/ruby_parser32.rb +13577 -0
- data/lib/ruby_parser33.rb +13577 -0
- data/lib/ruby_parser_extras.rb +988 -474
- data/test/test_ruby_lexer.rb +1339 -1155
- data/test/test_ruby_parser.rb +4255 -2103
- data/test/test_ruby_parser_extras.rb +39 -4
- data/tools/munge.rb +52 -13
- data/tools/ripper.rb +24 -6
- data.tar.gz.sig +0 -0
- metadata +73 -56
- metadata.gz.sig +0 -0
- data/lib/ruby20_parser.rb +0 -6869
- data/lib/ruby20_parser.y +0 -2431
- data/lib/ruby21_parser.rb +0 -6944
- data/lib/ruby21_parser.y +0 -2449
- data/lib/ruby22_parser.rb +0 -6968
- data/lib/ruby22_parser.y +0 -2458
- data/lib/ruby23_parser.rb +0 -6987
- data/lib/ruby23_parser.y +0 -2460
- data/lib/ruby24_parser.rb +0 -6994
- data/lib/ruby24_parser.y +0 -2466
- data/lib/ruby25_parser.rb +0 -6994
- data/lib/ruby25_parser.y +0 -2466
- data/lib/ruby26_parser.rb +0 -7012
@@ -16,11 +16,11 @@ class TestStackState < Minitest::Test
|
|
16
16
|
p = RubyParser.latest
|
17
17
|
s = nil
|
18
18
|
|
19
|
-
out, err = capture_io
|
19
|
+
out, err = capture_io {
|
20
20
|
s = p.handle_encoding str
|
21
|
-
|
21
|
+
}
|
22
22
|
|
23
|
-
assert_equal orig_str.sub(/\357\273\277/,
|
23
|
+
assert_equal orig_str.sub(/\357\273\277/, ""), s
|
24
24
|
|
25
25
|
exp_err = ""
|
26
26
|
|
@@ -162,7 +162,7 @@ end
|
|
162
162
|
|
163
163
|
class TestEnvironment < Minitest::Test
|
164
164
|
def deny t
|
165
|
-
assert !
|
165
|
+
assert !t
|
166
166
|
end
|
167
167
|
|
168
168
|
def setup
|
@@ -224,3 +224,38 @@ class TestEnvironment < Minitest::Test
|
|
224
224
|
assert_equal expected0, @env.all
|
225
225
|
end
|
226
226
|
end
|
227
|
+
|
228
|
+
class Fake20
|
229
|
+
include RubyParserStuff
|
230
|
+
|
231
|
+
def initialize
|
232
|
+
end
|
233
|
+
|
234
|
+
def s(*a) # bypass lexer/lineno stuff that RP overrides in
|
235
|
+
Kernel.send :s, *a
|
236
|
+
end
|
237
|
+
end
|
238
|
+
|
239
|
+
class TestValueExpr < Minitest::Test
|
240
|
+
def assert_value_expr exp, input
|
241
|
+
assert_equal exp, Fake20.new.value_expr(input.line(1))
|
242
|
+
end
|
243
|
+
|
244
|
+
def assert_remove_begin exp, input
|
245
|
+
assert_equal exp, Fake20.new.remove_begin(input.line(1))
|
246
|
+
end
|
247
|
+
|
248
|
+
def test_value_expr
|
249
|
+
assert_value_expr s(:nil), s(:begin)
|
250
|
+
assert_value_expr s(:nil), s(:begin, s(:nil))
|
251
|
+
assert_value_expr s(:nil), s(:begin, s(:begin, s(:nil)))
|
252
|
+
assert_value_expr s(:begin, s(:nil), s(:nil)), s(:begin, s(:nil), s(:nil))
|
253
|
+
end
|
254
|
+
|
255
|
+
def test_remove_begin
|
256
|
+
assert_remove_begin s(:nil), s(:begin)
|
257
|
+
assert_remove_begin s(:nil), s(:begin, s(:nil))
|
258
|
+
assert_remove_begin s(:nil), s(:begin, s(:begin, s(:nil)))
|
259
|
+
assert_remove_begin s(:begin, s(:nil), s(:nil)), s(:begin, s(:nil), s(:nil))
|
260
|
+
end
|
261
|
+
end
|
data/tools/munge.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#!/usr/bin/ruby -ws
|
1
|
+
#!/usr/bin/env ruby -ws
|
2
2
|
|
3
3
|
$v ||= false
|
4
4
|
|
@@ -76,12 +76,31 @@ def munge s
|
|
76
76
|
|
77
77
|
# other
|
78
78
|
|
79
|
+
'kTERMINATOR', "tSTRING_END",
|
80
|
+
'"kTERMINATOR"', "tSTRING_END",
|
81
|
+
'kTRCURLY', "tSTRING_DEND",
|
82
|
+
|
83
|
+
'"symbol literal"', "tSYMBEG",
|
84
|
+
'"string literal"', "tSTRING_BEG",
|
85
|
+
'"backtick literal"', "tXSTRING_BEG",
|
86
|
+
'"regexp literal"', "tREGEXP_BEG",
|
87
|
+
'"word list"', "tWORDS_BEG",
|
88
|
+
'"verbatim word list"', "tQWORDS_BEG",
|
89
|
+
'"symbol list"', "tSYMBOLS_BEG",
|
90
|
+
'"verbatim symbol list"', "tQSYMBOLS_BEG",
|
91
|
+
'"terminator"', "tSTRING_END",
|
92
|
+
'"\'}\'"', "tSTRING_DEND",
|
93
|
+
|
94
|
+
'"string literal"',"tSTRING_BEG",
|
95
|
+
'"literal content"', "tSTRING_CONTENT",
|
96
|
+
/\$/, "", # try to remove these lumps?
|
97
|
+
|
79
98
|
'tLBRACK2', "tLBRACK", # HACK
|
80
99
|
|
81
100
|
"' '", "tSPACE", # needs to be later to avoid bad hits
|
82
101
|
|
83
102
|
"/* empty */", "none",
|
84
|
-
/^\s*$/, "
|
103
|
+
/^\s*$/, "",
|
85
104
|
|
86
105
|
"keyword_BEGIN", "klBEGIN",
|
87
106
|
"keyword_END", "klEND",
|
@@ -89,6 +108,7 @@ def munge s
|
|
89
108
|
/\bk_([a-z_]+)/, proc { "k#{$1.upcase}" },
|
90
109
|
/modifier_(\w+)/, proc { "k#{$1.upcase}_MOD" },
|
91
110
|
"kVARIABLE", "keyword_variable", # ugh
|
111
|
+
"tCONST", "kCONST",
|
92
112
|
|
93
113
|
# 2.6 collapses klBEGIN to kBEGIN
|
94
114
|
"klBEGIN", "kBEGIN",
|
@@ -112,12 +132,16 @@ def munge s
|
|
112
132
|
'"do (for condition)"', "kDO_COND",
|
113
133
|
'"do (for lambda)"', "kDO_LAMBDA",
|
114
134
|
'"do (for block)"', "kDO_BLOCK",
|
135
|
+
'"local variable or method"', "tIDENTIFIER",
|
115
136
|
|
116
137
|
/\"(\w+) \(modifier\)\"/, proc { |x| "k#{$1.upcase}_MOD" },
|
117
138
|
/\"(\w+)\"/, proc { |x| "k#{$1.upcase}" },
|
139
|
+
/\"`(\w+)'\"/, proc { |x| "k#{$1.upcase}" },
|
118
140
|
|
119
141
|
/@(\d+)(\s+|$)/, "",
|
120
142
|
/\$?@(\d+) */, "", # TODO: remove?
|
143
|
+
|
144
|
+
/_EXPR/, "",
|
121
145
|
]
|
122
146
|
|
123
147
|
renames.each_slice(2) do |(a, b)|
|
@@ -128,7 +152,11 @@ def munge s
|
|
128
152
|
end
|
129
153
|
end
|
130
154
|
|
131
|
-
s.
|
155
|
+
if s.empty? then
|
156
|
+
nil
|
157
|
+
else
|
158
|
+
s.strip.squeeze " "
|
159
|
+
end
|
132
160
|
end
|
133
161
|
|
134
162
|
ARGF.each_line do |line|
|
@@ -142,19 +170,23 @@ ARGF.each_line do |line|
|
|
142
170
|
when /^Reading a token: Next token is token (.*?) \(\)/ then
|
143
171
|
token = munge $1
|
144
172
|
next if last_token == token
|
145
|
-
puts "next token is %p
|
173
|
+
puts "next token is %p" % [token]
|
146
174
|
last_token = token
|
147
175
|
when /^Reading a token: / then
|
148
176
|
next # skip
|
177
|
+
when /^Reading a token$/ then # wtf?
|
178
|
+
next # skip
|
179
|
+
when /^(?:add_delayed_token|parser_dispatch)/ then # dunno what this is yet
|
180
|
+
next # skip
|
149
181
|
when /^read\s+:(\w+)/ then # read :tNL(tNL) nil
|
150
182
|
token = munge $1
|
151
183
|
next if last_token == token
|
152
|
-
puts "next token is %p
|
184
|
+
puts "next token is %p" % [token]
|
153
185
|
last_token = token
|
154
|
-
when /^Next token is token (
|
186
|
+
when /^Next token is token ("[^"]+"|\S+)/ then
|
155
187
|
token = munge $1
|
156
188
|
next if last_token == token
|
157
|
-
puts "next token is %p
|
189
|
+
puts "next token is %p" % [token]
|
158
190
|
last_token = token
|
159
191
|
when /^read\s+false/ then # read false($end) "$end"
|
160
192
|
puts "next token is EOF"
|
@@ -162,6 +194,8 @@ ARGF.each_line do |line|
|
|
162
194
|
# do nothing
|
163
195
|
when /^.:scan=>\["([^"]+)"/ then
|
164
196
|
puts "scan = %p" % [$1]
|
197
|
+
when /^.:getch=>\["([^"]+)/ then
|
198
|
+
puts "SCAN = %p" % [$1]
|
165
199
|
when /^Reducing stack by rule (\d+) \(line (\d+)\):/ then
|
166
200
|
reduce_line = $2.to_i
|
167
201
|
when /^ \$\d+ = (?:token|nterm) (.+) \(.*\)/ then
|
@@ -170,7 +204,7 @@ ARGF.each_line do |line|
|
|
170
204
|
when /^-> \$\$ = (?:token|nterm) (.+) \(.*\)/ then
|
171
205
|
stack << "none" if stack.empty?
|
172
206
|
item = munge $1
|
173
|
-
x = stack.map { |s| s.strip }.join " "
|
207
|
+
x = stack.compact.map { |s| munge s.strip }.compact.join " "
|
174
208
|
if x != item then # prevent kdef -> kdef
|
175
209
|
if $v && reduce_line then
|
176
210
|
puts "reduce #{x} --> #{item} at #{reduce_line}".squeeze " "
|
@@ -182,7 +216,9 @@ ARGF.each_line do |line|
|
|
182
216
|
reduce_line = nil
|
183
217
|
stack.clear
|
184
218
|
when /^reduce/ then # ruby_parser side
|
185
|
-
|
219
|
+
s = munge line.chomp
|
220
|
+
next if s =~ /reduce\s+(\w+) --> \1/
|
221
|
+
puts s
|
186
222
|
puts
|
187
223
|
when /^(\w+_stack)\.(\w+)/ then
|
188
224
|
# TODO: make pretty, but still informative w/ line numbers etc
|
@@ -193,11 +229,14 @@ ARGF.each_line do |line|
|
|
193
229
|
# puts line
|
194
230
|
# TODO: make pretty, but still informative w/ line numbers etc
|
195
231
|
puts line.gsub("true", "1").gsub("false", "0")
|
196
|
-
when /^lex_state: :?([\w|]+) -> :?([\w|]+)(?: (?:at|from) (.*))?/ then
|
197
|
-
|
198
|
-
|
232
|
+
when /^lex_state: :?([\w|()]+) -> :?([\w|]+)(?: (?:at|from) (.*))?/ then
|
233
|
+
a, b, c = $1.upcase, $2.upcase, $3
|
234
|
+
a.gsub!(/EXPR_/, "")
|
235
|
+
b.gsub!(/EXPR_/, "")
|
236
|
+
if c && $v then
|
237
|
+
puts "lex_state: #{a} -> #{b} at #{c}"
|
199
238
|
else
|
200
|
-
puts "lex_state: #{
|
239
|
+
puts "lex_state: #{a} -> #{b}"
|
201
240
|
end
|
202
241
|
when /debug|FUCK/ then
|
203
242
|
puts line.chomp
|
data/tools/ripper.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
#!/usr/bin/env ruby -ws
|
2
2
|
|
3
|
-
$
|
4
|
-
$
|
3
|
+
$b ||= false # bug mode -- ripper is buggy, use Ripper.sexp
|
4
|
+
$d ||= false # debug -- turn on yydebug
|
5
|
+
$p ||= false # Use pp
|
5
6
|
|
6
7
|
require "ripper/sexp"
|
7
8
|
require "pp" if $p
|
@@ -11,14 +12,31 @@ if ARGV.empty? then
|
|
11
12
|
ARGV << "-"
|
12
13
|
end
|
13
14
|
|
15
|
+
class MySexpBuilder < Ripper::SexpBuilderPP
|
16
|
+
def on_parse_error msg
|
17
|
+
Kernel.warn msg
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
14
21
|
ARGV.each do |path|
|
15
22
|
src = path == "-" ? $stdin.read : File.read(path)
|
16
|
-
rip = Ripper::SexpBuilderPP.new src
|
17
|
-
rip.yydebug = $d
|
18
23
|
|
19
|
-
sexp =
|
24
|
+
sexp = nil
|
25
|
+
|
26
|
+
if $b then
|
27
|
+
sexp = Ripper.sexp src
|
28
|
+
else
|
29
|
+
rip = MySexpBuilder.new src
|
30
|
+
rip.yydebug = $d
|
31
|
+
sexp = rip.parse
|
32
|
+
|
33
|
+
if rip.error? then
|
34
|
+
warn "skipping"
|
35
|
+
next
|
36
|
+
end
|
37
|
+
end
|
20
38
|
|
21
|
-
puts "accept"
|
39
|
+
puts "accept"
|
22
40
|
|
23
41
|
if $p then
|
24
42
|
pp sexp
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.21.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Davis
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
13
|
+
MIIDPjCCAiagAwIBAgIBCDANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
|
14
14
|
ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
|
15
|
-
|
15
|
+
GRYDY29tMB4XDTI0MDEwMjIxMjEyM1oXDTI1MDEwMTIxMjEyM1owRTETMBEGA1UE
|
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
|
+
AQCygvpmncmkiSs9r/Kceo4bBPDszhTv6iBi4LwMReqnFrpNLMOWJw7xi8x+3eL2
|
26
|
+
XS09ZPNOt2zm70KmFouBMgOysnDY4k2dE8uF6B8JbZOO8QfalW+CoNBliefOTcn2
|
27
|
+
bg5IOP7UoGM5lC174/cbDJrJnRG9bzig5FAP0mvsgA8zgTRXQzIUAZEo92D5K7p4
|
28
|
+
B4/O998ho6BSOgYBI9Yk1ttdCtti6Y+8N9+fZESsjtWMykA+WXWeGUScHqiU+gH8
|
29
|
+
S7043fq9EbQdBr2AXdj92+CDwuTfHI6/Hj5FVBDULufrJaan4xUgL70Hvc6pTTeW
|
30
|
+
deKfBjgVAq7EYHu1AczzlUly
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date:
|
32
|
+
date: 2024-01-16 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: sexp_processor
|
@@ -37,42 +37,62 @@ dependencies:
|
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '4.
|
40
|
+
version: '4.16'
|
41
41
|
type: :runtime
|
42
42
|
prerelease: false
|
43
43
|
version_requirements: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '4.
|
47
|
+
version: '4.16'
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: racc
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.5'
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.5'
|
48
62
|
- !ruby/object:Gem::Dependency
|
49
63
|
name: rake
|
50
64
|
requirement: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '10'
|
52
69
|
- - "<"
|
53
70
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
71
|
+
version: '15'
|
55
72
|
type: :development
|
56
73
|
prerelease: false
|
57
74
|
version_requirements: !ruby/object:Gem::Requirement
|
58
75
|
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '10'
|
59
79
|
- - "<"
|
60
80
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
81
|
+
version: '15'
|
62
82
|
- !ruby/object:Gem::Dependency
|
63
83
|
name: oedipus_lex
|
64
84
|
requirement: !ruby/object:Gem::Requirement
|
65
85
|
requirements:
|
66
86
|
- - "~>"
|
67
87
|
- !ruby/object:Gem::Version
|
68
|
-
version: '2.
|
88
|
+
version: '2.6'
|
69
89
|
type: :development
|
70
90
|
prerelease: false
|
71
91
|
version_requirements: !ruby/object:Gem::Requirement
|
72
92
|
requirements:
|
73
93
|
- - "~>"
|
74
94
|
- !ruby/object:Gem::Version
|
75
|
-
version: '2.
|
95
|
+
version: '2.6'
|
76
96
|
- !ruby/object:Gem::Dependency
|
77
97
|
name: rdoc
|
78
98
|
requirement: !ruby/object:Gem::Requirement
|
@@ -93,39 +113,25 @@ dependencies:
|
|
93
113
|
- - "<"
|
94
114
|
- !ruby/object:Gem::Version
|
95
115
|
version: '7'
|
96
|
-
- !ruby/object:Gem::Dependency
|
97
|
-
name: racc
|
98
|
-
requirement: !ruby/object:Gem::Requirement
|
99
|
-
requirements:
|
100
|
-
- - "~>"
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: 1.4.6
|
103
|
-
type: :development
|
104
|
-
prerelease: false
|
105
|
-
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
requirements:
|
107
|
-
- - "~>"
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: 1.4.6
|
110
116
|
- !ruby/object:Gem::Dependency
|
111
117
|
name: hoe
|
112
118
|
requirement: !ruby/object:Gem::Requirement
|
113
119
|
requirements:
|
114
120
|
- - "~>"
|
115
121
|
- !ruby/object:Gem::Version
|
116
|
-
version: '
|
122
|
+
version: '4.2'
|
117
123
|
type: :development
|
118
124
|
prerelease: false
|
119
125
|
version_requirements: !ruby/object:Gem::Requirement
|
120
126
|
requirements:
|
121
127
|
- - "~>"
|
122
128
|
- !ruby/object:Gem::Version
|
123
|
-
version: '
|
129
|
+
version: '4.2'
|
124
130
|
description: |-
|
125
131
|
ruby_parser (RP) is a ruby parser written in pure ruby (utilizing
|
126
|
-
racc--which does by default use a C extension).
|
127
|
-
|
128
|
-
|
132
|
+
racc--which does by default use a C extension). It outputs
|
133
|
+
s-expressions which can be manipulated and converted back to ruby via
|
134
|
+
the ruby2ruby gem.
|
129
135
|
|
130
136
|
As an example:
|
131
137
|
|
@@ -148,6 +154,10 @@ description: |-
|
|
148
154
|
* 1.8 parser is at 99.9739% accuracy, 3.651 sigma
|
149
155
|
* 1.9 parser is at 99.9940% accuracy, 4.013 sigma
|
150
156
|
* 2.0 parser is at 99.9939% accuracy, 4.008 sigma
|
157
|
+
* 2.6 parser is at 99.9972% accuracy, 4.191 sigma
|
158
|
+
* 3.0 parser has a 100% parse rate.
|
159
|
+
* Tested against 2,672,412 unique ruby files across 167k gems.
|
160
|
+
* As do all the others now, basically.
|
151
161
|
email:
|
152
162
|
- ryand-ruby@zenspider.com
|
153
163
|
executables:
|
@@ -159,6 +169,7 @@ extra_rdoc_files:
|
|
159
169
|
- Manifest.txt
|
160
170
|
- README.rdoc
|
161
171
|
- debugging.md
|
172
|
+
- gauntlet.md
|
162
173
|
files:
|
163
174
|
- ".autotest"
|
164
175
|
- History.rdoc
|
@@ -169,28 +180,29 @@ files:
|
|
169
180
|
- bin/ruby_parse_extract_error
|
170
181
|
- compare/normalize.rb
|
171
182
|
- debugging.md
|
183
|
+
- gauntlet.md
|
172
184
|
- lib/.document
|
173
185
|
- lib/rp_extensions.rb
|
174
186
|
- lib/rp_stringscanner.rb
|
175
|
-
- lib/ruby20_parser.rb
|
176
|
-
- lib/ruby20_parser.y
|
177
|
-
- lib/ruby21_parser.rb
|
178
|
-
- lib/ruby21_parser.y
|
179
|
-
- lib/ruby22_parser.rb
|
180
|
-
- lib/ruby22_parser.y
|
181
|
-
- lib/ruby23_parser.rb
|
182
|
-
- lib/ruby23_parser.y
|
183
|
-
- lib/ruby24_parser.rb
|
184
|
-
- lib/ruby24_parser.y
|
185
|
-
- lib/ruby25_parser.rb
|
186
|
-
- lib/ruby25_parser.y
|
187
|
-
- lib/ruby26_parser.rb
|
188
|
-
- lib/ruby26_parser.y
|
189
187
|
- lib/ruby_lexer.rb
|
190
188
|
- lib/ruby_lexer.rex
|
191
189
|
- lib/ruby_lexer.rex.rb
|
190
|
+
- lib/ruby_lexer_strings.rb
|
192
191
|
- lib/ruby_parser.rb
|
193
|
-
- lib/
|
192
|
+
- lib/ruby_parser2.yy
|
193
|
+
- lib/ruby_parser20.rb
|
194
|
+
- lib/ruby_parser21.rb
|
195
|
+
- lib/ruby_parser22.rb
|
196
|
+
- lib/ruby_parser23.rb
|
197
|
+
- lib/ruby_parser24.rb
|
198
|
+
- lib/ruby_parser25.rb
|
199
|
+
- lib/ruby_parser26.rb
|
200
|
+
- lib/ruby_parser27.rb
|
201
|
+
- lib/ruby_parser3.yy
|
202
|
+
- lib/ruby_parser30.rb
|
203
|
+
- lib/ruby_parser31.rb
|
204
|
+
- lib/ruby_parser32.rb
|
205
|
+
- lib/ruby_parser33.rb
|
194
206
|
- lib/ruby_parser_extras.rb
|
195
207
|
- test/test_ruby_lexer.rb
|
196
208
|
- test/test_ruby_parser.rb
|
@@ -200,8 +212,10 @@ files:
|
|
200
212
|
homepage: https://github.com/seattlerb/ruby_parser
|
201
213
|
licenses:
|
202
214
|
- MIT
|
203
|
-
metadata:
|
204
|
-
|
215
|
+
metadata:
|
216
|
+
homepage_uri: https://github.com/seattlerb/ruby_parser
|
217
|
+
bug_tracker_uri: https://github.com/seattlerb/ruby_parser/issues
|
218
|
+
post_install_message:
|
205
219
|
rdoc_options:
|
206
220
|
- "--main"
|
207
221
|
- README.rdoc
|
@@ -211,15 +225,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
211
225
|
requirements:
|
212
226
|
- - ">="
|
213
227
|
- !ruby/object:Gem::Version
|
214
|
-
version: '
|
228
|
+
version: '2.6'
|
229
|
+
- - "<"
|
230
|
+
- !ruby/object:Gem::Version
|
231
|
+
version: '4'
|
215
232
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
216
233
|
requirements:
|
217
234
|
- - ">="
|
218
235
|
- !ruby/object:Gem::Version
|
219
236
|
version: '0'
|
220
237
|
requirements: []
|
221
|
-
rubygems_version: 3.
|
222
|
-
signing_key:
|
238
|
+
rubygems_version: 3.5.3
|
239
|
+
signing_key:
|
223
240
|
specification_version: 4
|
224
241
|
summary: ruby_parser (RP) is a ruby parser written in pure ruby (utilizing racc--which
|
225
242
|
does by default use a C extension)
|
metadata.gz.sig
CHANGED
Binary file
|