ruby_parser 3.13.1 → 3.15.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.autotest +18 -29
- data/History.rdoc +97 -0
- data/Manifest.txt +2 -0
- data/README.rdoc +3 -3
- data/Rakefile +39 -21
- data/bin/ruby_parse +3 -1
- data/bin/ruby_parse_extract_error +8 -3
- data/compare/normalize.rb +43 -3
- data/debugging.md +39 -0
- data/lib/ruby20_parser.rb +3431 -3238
- data/lib/ruby20_parser.y +474 -300
- data/lib/ruby21_parser.rb +3491 -3295
- data/lib/ruby21_parser.y +482 -307
- data/lib/ruby22_parser.rb +3432 -3240
- data/lib/ruby22_parser.y +483 -308
- data/lib/ruby23_parser.rb +3338 -3150
- data/lib/ruby23_parser.y +483 -308
- data/lib/ruby24_parser.rb +3483 -3273
- data/lib/ruby24_parser.y +487 -310
- data/lib/ruby25_parser.rb +3482 -3272
- data/lib/ruby25_parser.y +487 -310
- data/lib/ruby26_parser.rb +3490 -3278
- data/lib/ruby26_parser.y +493 -314
- data/lib/ruby27_parser.rb +7224 -0
- data/lib/ruby27_parser.y +2657 -0
- data/lib/ruby_lexer.rb +483 -459
- data/lib/ruby_lexer.rex +5 -6
- data/lib/ruby_lexer.rex.rb +6 -8
- data/lib/ruby_parser.rb +29 -27
- data/lib/ruby_parser.yy +497 -315
- data/lib/ruby_parser_extras.rb +670 -420
- data/test/test_ruby_lexer.rb +1208 -1121
- data/test/test_ruby_parser.rb +2517 -1955
- data/test/test_ruby_parser_extras.rb +39 -4
- data/tools/munge.rb +10 -5
- data/tools/ripper.rb +13 -2
- metadata +28 -21
- metadata.gz.sig +0 -0
@@ -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
|
|
@@ -118,6 +118,8 @@ def munge s
|
|
118
118
|
|
119
119
|
/@(\d+)(\s+|$)/, "",
|
120
120
|
/\$?@(\d+) */, "", # TODO: remove?
|
121
|
+
|
122
|
+
/_EXPR/, "",
|
121
123
|
]
|
122
124
|
|
123
125
|
renames.each_slice(2) do |(a, b)|
|
@@ -151,7 +153,7 @@ ARGF.each_line do |line|
|
|
151
153
|
next if last_token == token
|
152
154
|
puts "next token is %p (%p)" % [token, last_token]
|
153
155
|
last_token = token
|
154
|
-
when /^Next token is token (
|
156
|
+
when /^Next token is token ("[^"]+"|\S+)/ then
|
155
157
|
token = munge $1
|
156
158
|
next if last_token == token
|
157
159
|
puts "next token is %p (%p)" % [token, last_token]
|
@@ -194,10 +196,13 @@ ARGF.each_line do |line|
|
|
194
196
|
# TODO: make pretty, but still informative w/ line numbers etc
|
195
197
|
puts line.gsub("true", "1").gsub("false", "0")
|
196
198
|
when /^lex_state: :?([\w|]+) -> :?([\w|]+)(?: (?:at|from) (.*))?/ then
|
197
|
-
|
198
|
-
|
199
|
+
a, b, c = $1.upcase, $2.upcase, $3
|
200
|
+
a.gsub! /EXPR_/, ""
|
201
|
+
b.gsub! /EXPR_/, ""
|
202
|
+
if c && $v then
|
203
|
+
puts "lex_state: #{a} -> #{b} at #{c}"
|
199
204
|
else
|
200
|
-
puts "lex_state: #{
|
205
|
+
puts "lex_state: #{a} -> #{b}"
|
201
206
|
end
|
202
207
|
when /debug|FUCK/ then
|
203
208
|
puts line.chomp
|
data/tools/ripper.rb
CHANGED
@@ -11,14 +11,25 @@ if ARGV.empty? then
|
|
11
11
|
ARGV << "-"
|
12
12
|
end
|
13
13
|
|
14
|
+
class MySexpBuilder < Ripper::SexpBuilderPP
|
15
|
+
def on_parse_error msg
|
16
|
+
Kernel.warn msg
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
14
20
|
ARGV.each do |path|
|
15
21
|
src = path == "-" ? $stdin.read : File.read(path)
|
16
|
-
rip =
|
22
|
+
rip = MySexpBuilder.new src
|
17
23
|
rip.yydebug = $d
|
18
24
|
|
19
25
|
sexp = rip.parse
|
20
26
|
|
21
|
-
|
27
|
+
if rip.error? then
|
28
|
+
warn "skipping"
|
29
|
+
next
|
30
|
+
end
|
31
|
+
|
32
|
+
puts "accept"
|
22
33
|
|
23
34
|
if $p then
|
24
35
|
pp sexp
|
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.15.1
|
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
|
+
MIIDPjCCAiagAwIBAgIBBTANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
|
14
14
|
ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
|
15
|
-
|
15
|
+
GRYDY29tMB4XDTIwMTIyMjIwMzgzMFoXDTIxMTIyMjIwMzgzMFowRTETMBEGA1UE
|
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
|
+
AQAE3XRm1YZcCVjAJy5yMZvTOFrS7B2SYErc+0QwmKYbHztTTDY2m5Bii+jhpuxh
|
26
|
+
H+ETcU1z8TUKLpsBUP4kUpIRowkVN1p/jKapV8T3Rbwq+VuYFe+GMKsf8wGZSecG
|
27
|
+
oMQ8DzzauZfbvhe2kDg7G9BBPU0wLQlY25rDcCy9bLnD7R0UK3ONqpwvsI5I7x5X
|
28
|
+
ZIMXR0a9/DG+55mawwdGzCQobDKiSNLK89KK7OcNTALKU0DfgdTkktdgKchzKHqZ
|
29
|
+
d/AHw/kcnU6iuMUoJEcGiJd4gVCTn1l3cDcIvxakGslCA88Jubw0Sqatan0TnC9g
|
30
|
+
KToW560QIey7SPfHWduzFJnV
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date:
|
32
|
+
date: 2021-01-11 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: sexp_processor
|
@@ -113,19 +113,19 @@ dependencies:
|
|
113
113
|
requirements:
|
114
114
|
- - "~>"
|
115
115
|
- !ruby/object:Gem::Version
|
116
|
-
version: '3.
|
116
|
+
version: '3.22'
|
117
117
|
type: :development
|
118
118
|
prerelease: false
|
119
119
|
version_requirements: !ruby/object:Gem::Requirement
|
120
120
|
requirements:
|
121
121
|
- - "~>"
|
122
122
|
- !ruby/object:Gem::Version
|
123
|
-
version: '3.
|
123
|
+
version: '3.22'
|
124
124
|
description: |-
|
125
125
|
ruby_parser (RP) is a ruby parser written in pure ruby (utilizing
|
126
|
-
racc--which does by default use a C extension).
|
127
|
-
|
128
|
-
|
126
|
+
racc--which does by default use a C extension). It outputs
|
127
|
+
s-expressions which can be manipulated and converted back to ruby via
|
128
|
+
the ruby2ruby gem.
|
129
129
|
|
130
130
|
As an example:
|
131
131
|
|
@@ -186,6 +186,8 @@ files:
|
|
186
186
|
- lib/ruby25_parser.y
|
187
187
|
- lib/ruby26_parser.rb
|
188
188
|
- lib/ruby26_parser.y
|
189
|
+
- lib/ruby27_parser.rb
|
190
|
+
- lib/ruby27_parser.y
|
189
191
|
- lib/ruby_lexer.rb
|
190
192
|
- lib/ruby_lexer.rex
|
191
193
|
- lib/ruby_lexer.rex.rb
|
@@ -200,8 +202,10 @@ files:
|
|
200
202
|
homepage: https://github.com/seattlerb/ruby_parser
|
201
203
|
licenses:
|
202
204
|
- MIT
|
203
|
-
metadata:
|
204
|
-
|
205
|
+
metadata:
|
206
|
+
homepage_uri: https://github.com/seattlerb/ruby_parser
|
207
|
+
bug_tracker_uri: https://github.com/seattlerb/ruby_parser/issues
|
208
|
+
post_install_message:
|
205
209
|
rdoc_options:
|
206
210
|
- "--main"
|
207
211
|
- README.rdoc
|
@@ -211,15 +215,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
211
215
|
requirements:
|
212
216
|
- - ">="
|
213
217
|
- !ruby/object:Gem::Version
|
214
|
-
version: '
|
218
|
+
version: '2.1'
|
219
|
+
- - "<"
|
220
|
+
- !ruby/object:Gem::Version
|
221
|
+
version: '4'
|
215
222
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
216
223
|
requirements:
|
217
224
|
- - ">="
|
218
225
|
- !ruby/object:Gem::Version
|
219
226
|
version: '0'
|
220
227
|
requirements: []
|
221
|
-
rubygems_version: 3.
|
222
|
-
signing_key:
|
228
|
+
rubygems_version: 3.1.4
|
229
|
+
signing_key:
|
223
230
|
specification_version: 4
|
224
231
|
summary: ruby_parser (RP) is a ruby parser written in pure ruby (utilizing racc--which
|
225
232
|
does by default use a C extension)
|
metadata.gz.sig
CHANGED
Binary file
|