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.
@@ -16,11 +16,11 @@ class TestStackState < Minitest::Test
16
16
  p = RubyParser.latest
17
17
  s = nil
18
18
 
19
- out, err = capture_io do
19
+ out, err = capture_io {
20
20
  s = p.handle_encoding str
21
- end
21
+ }
22
22
 
23
- assert_equal orig_str.sub(/\357\273\277/, ''), s
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 ! t
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 (\S+)/ then
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 = Ripper::SexpBuilderPP.new src
22
+ rip = MySexpBuilder.new src
17
23
  rip.yydebug = $d
18
24
 
19
25
  sexp = rip.parse
20
26
 
21
- puts "accept" unless rip.error?
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.13.1
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-03-26 00:00:00.000000000 Z
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.17'
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.17'
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). RP's output is
127
- the same as ParseTree's output: s-expressions using ruby's arrays and
128
- base types.
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.2
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