ruby_parser 3.13.1 → 3.14.0
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 +38 -0
- data/README.rdoc +3 -3
- data/Rakefile +10 -13
- data/bin/ruby_parse +3 -1
- data/lib/ruby20_parser.rb +3042 -2866
- data/lib/ruby20_parser.y +391 -247
- data/lib/ruby21_parser.rb +3088 -2916
- data/lib/ruby21_parser.y +399 -254
- data/lib/ruby22_parser.rb +3118 -2937
- data/lib/ruby22_parser.y +400 -255
- data/lib/ruby23_parser.rb +3119 -2940
- data/lib/ruby23_parser.y +400 -255
- data/lib/ruby24_parser.rb +3089 -2905
- data/lib/ruby24_parser.y +404 -257
- data/lib/ruby25_parser.rb +3089 -2905
- data/lib/ruby25_parser.y +404 -257
- data/lib/ruby26_parser.rb +3095 -2909
- data/lib/ruby26_parser.y +410 -261
- data/lib/ruby_lexer.rb +424 -432
- data/lib/ruby_lexer.rex.rb +1 -1
- data/lib/ruby_parser.rb +27 -27
- data/lib/ruby_parser.yy +412 -262
- data/lib/ruby_parser_extras.rb +627 -406
- data/test/test_ruby_lexer.rb +1148 -1093
- data/test/test_ruby_parser.rb +2259 -1915
- data/test/test_ruby_parser_extras.rb +39 -4
- data/tools/munge.rb +1 -1
- data/tools/ripper.rb +13 -2
- metadata +8 -8
- 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
@@ -151,7 +151,7 @@ ARGF.each_line do |line|
|
|
151
151
|
next if last_token == token
|
152
152
|
puts "next token is %p (%p)" % [token, last_token]
|
153
153
|
last_token = token
|
154
|
-
when /^Next token is token (
|
154
|
+
when /^Next token is token ("[^"]+"|\S+)/ then
|
155
155
|
token = munge $1
|
156
156
|
next if last_token == token
|
157
157
|
puts "next token is %p (%p)" % [token, last_token]
|
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,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.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Davis
|
@@ -29,7 +29,7 @@ cert_chain:
|
|
29
29
|
Em82dBUFsipwMLCYj39kcyHWAxyl6Ae1Cn9r/ItVBCxoeFdrHjfavnrIEoXUt4bU
|
30
30
|
UfBugfLD19bu3nvL+zTAGx/U
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date: 2019-
|
32
|
+
date: 2019-09-25 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.18'
|
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.18'
|
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
|
|
@@ -218,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
218
218
|
- !ruby/object:Gem::Version
|
219
219
|
version: '0'
|
220
220
|
requirements: []
|
221
|
-
rubygems_version: 3.0.
|
221
|
+
rubygems_version: 3.0.6
|
222
222
|
signing_key:
|
223
223
|
specification_version: 4
|
224
224
|
summary: ruby_parser (RP) is a ruby parser written in pure ruby (utilizing racc--which
|
metadata.gz.sig
CHANGED
Binary file
|