parser 2.6.0.0 → 3.1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/lib/parser/all.rb +3 -0
  3. data/lib/parser/ast/processor.rb +48 -1
  4. data/lib/parser/base.rb +30 -6
  5. data/lib/parser/builders/default.rb +670 -38
  6. data/lib/parser/context.rb +24 -26
  7. data/lib/parser/current.rb +36 -9
  8. data/lib/parser/current_arg_stack.rb +46 -0
  9. data/lib/parser/diagnostic/engine.rb +1 -2
  10. data/lib/parser/diagnostic.rb +1 -1
  11. data/lib/parser/lexer/dedenter.rb +58 -49
  12. data/lib/parser/lexer/explanation.rb +1 -1
  13. data/lib/parser/lexer.rb +13837 -11893
  14. data/lib/parser/macruby.rb +2544 -2489
  15. data/lib/parser/max_numparam_stack.rb +56 -0
  16. data/lib/parser/messages.rb +78 -44
  17. data/lib/parser/meta.rb +13 -3
  18. data/lib/parser/ruby18.rb +2313 -2259
  19. data/lib/parser/ruby19.rb +2537 -2488
  20. data/lib/parser/ruby20.rb +2724 -2673
  21. data/lib/parser/ruby21.rb +2766 -2727
  22. data/lib/parser/ruby22.rb +2683 -2628
  23. data/lib/parser/ruby23.rb +2796 -2755
  24. data/lib/parser/ruby24.rb +2812 -2771
  25. data/lib/parser/ruby25.rb +2703 -2670
  26. data/lib/parser/ruby26.rb +2794 -2747
  27. data/lib/parser/ruby27.rb +7914 -0
  28. data/lib/parser/ruby28.rb +8047 -0
  29. data/lib/parser/ruby30.rb +8096 -0
  30. data/lib/parser/ruby31.rb +8354 -0
  31. data/lib/parser/rubymotion.rb +2527 -2485
  32. data/lib/parser/runner/ruby_parse.rb +2 -2
  33. data/lib/parser/runner/ruby_rewrite.rb +2 -2
  34. data/lib/parser/runner.rb +36 -2
  35. data/lib/parser/source/buffer.rb +53 -28
  36. data/lib/parser/source/comment/associator.rb +31 -8
  37. data/lib/parser/source/comment.rb +14 -1
  38. data/lib/parser/source/map/method_definition.rb +25 -0
  39. data/lib/parser/source/range.rb +19 -3
  40. data/lib/parser/source/tree_rewriter/action.rb +137 -28
  41. data/lib/parser/source/tree_rewriter.rb +144 -14
  42. data/lib/parser/static_environment.rb +23 -0
  43. data/lib/parser/tree_rewriter.rb +3 -3
  44. data/lib/parser/variables_stack.rb +36 -0
  45. data/lib/parser/version.rb +1 -1
  46. data/lib/parser.rb +4 -0
  47. data/parser.gemspec +12 -19
  48. metadata +34 -99
  49. data/.gitignore +0 -32
  50. data/.travis.yml +0 -45
  51. data/.yardopts +0 -21
  52. data/CHANGELOG.md +0 -943
  53. data/CONTRIBUTING.md +0 -17
  54. data/Gemfile +0 -10
  55. data/README.md +0 -301
  56. data/Rakefile +0 -165
  57. data/ci/run_rubocop_specs +0 -14
  58. data/doc/AST_FORMAT.md +0 -1735
  59. data/doc/CUSTOMIZATION.md +0 -37
  60. data/doc/INTERNALS.md +0 -21
  61. data/doc/css/.gitkeep +0 -0
  62. data/doc/css/common.css +0 -68
  63. data/lib/parser/lexer.rl +0 -2383
  64. data/lib/parser/macruby.y +0 -2198
  65. data/lib/parser/ruby18.y +0 -1934
  66. data/lib/parser/ruby19.y +0 -2175
  67. data/lib/parser/ruby20.y +0 -2353
  68. data/lib/parser/ruby21.y +0 -2357
  69. data/lib/parser/ruby22.y +0 -2364
  70. data/lib/parser/ruby23.y +0 -2370
  71. data/lib/parser/ruby24.y +0 -2408
  72. data/lib/parser/ruby25.y +0 -2405
  73. data/lib/parser/ruby26.y +0 -2413
  74. data/lib/parser/rubymotion.y +0 -2182
  75. data/test/bug_163/fixtures/input.rb +0 -5
  76. data/test/bug_163/fixtures/output.rb +0 -5
  77. data/test/bug_163/rewriter.rb +0 -20
  78. data/test/helper.rb +0 -52
  79. data/test/parse_helper.rb +0 -315
  80. data/test/racc_coverage_helper.rb +0 -133
  81. data/test/test_base.rb +0 -31
  82. data/test/test_current.rb +0 -27
  83. data/test/test_diagnostic.rb +0 -96
  84. data/test/test_diagnostic_engine.rb +0 -62
  85. data/test/test_encoding.rb +0 -99
  86. data/test/test_lexer.rb +0 -3543
  87. data/test/test_lexer_stack_state.rb +0 -78
  88. data/test/test_parse_helper.rb +0 -80
  89. data/test/test_parser.rb +0 -7087
  90. data/test/test_runner_rewrite.rb +0 -47
  91. data/test/test_source_buffer.rb +0 -162
  92. data/test/test_source_comment.rb +0 -36
  93. data/test/test_source_comment_associator.rb +0 -367
  94. data/test/test_source_map.rb +0 -15
  95. data/test/test_source_range.rb +0 -172
  96. data/test/test_source_rewriter.rb +0 -541
  97. data/test/test_source_rewriter_action.rb +0 -46
  98. data/test/test_source_tree_rewriter.rb +0 -173
  99. data/test/test_static_environment.rb +0 -45
  100. data/test/using_tree_rewriter/fixtures/input.rb +0 -3
  101. data/test/using_tree_rewriter/fixtures/output.rb +0 -3
  102. data/test/using_tree_rewriter/using_tree_rewriter.rb +0 -9
@@ -117,6 +117,71 @@ module Parser
117
117
  @action_root = TreeRewriter::Action.new(all_encompassing_range, @enforcer)
118
118
  end
119
119
 
120
+ ##
121
+ # Returns true iff no (non trivial) update has been recorded
122
+ #
123
+ # @return [Boolean]
124
+ #
125
+ def empty?
126
+ @action_root.empty?
127
+ end
128
+
129
+ ##
130
+ # Merges the updates of argument with the receiver.
131
+ # Policies of the receiver are used.
132
+ # This action is atomic in that it won't change the receiver
133
+ # unless it succeeds.
134
+ #
135
+ # @param [Rewriter] with
136
+ # @return [Rewriter] self
137
+ # @raise [ClobberingError] when clobbering is detected
138
+ #
139
+ def merge!(with)
140
+ raise 'TreeRewriter are not for the same source_buffer' unless
141
+ source_buffer == with.source_buffer
142
+
143
+ @action_root = @action_root.combine(with.action_root)
144
+ self
145
+ end
146
+
147
+ ##
148
+ # Returns a new rewriter that consists of the updates of the received
149
+ # and the given argument. Policies of the receiver are used.
150
+ #
151
+ # @param [Rewriter] with
152
+ # @return [Rewriter] merge of receiver and argument
153
+ # @raise [ClobberingError] when clobbering is detected
154
+ #
155
+ def merge(with)
156
+ dup.merge!(with)
157
+ end
158
+
159
+ ##
160
+ # For special cases where one needs to merge a rewriter attached to a different source_buffer
161
+ # or that needs to be offset. Policies of the receiver are used.
162
+ #
163
+ # @param [TreeRewriter] rewriter from different source_buffer
164
+ # @param [Integer] offset
165
+ # @return [Rewriter] self
166
+ # @raise [IndexError] if action ranges (once offset) don't fit the current buffer
167
+ #
168
+ def import!(foreign_rewriter, offset: 0)
169
+ return self if foreign_rewriter.empty?
170
+
171
+ contracted = foreign_rewriter.action_root.contract
172
+ merge_effective_range = ::Parser::Source::Range.new(
173
+ @source_buffer,
174
+ contracted.range.begin_pos + offset,
175
+ contracted.range.end_pos + offset,
176
+ )
177
+ check_range_validity(merge_effective_range)
178
+
179
+ merge_with = contracted.moved(@source_buffer, offset)
180
+
181
+ @action_root = @action_root.combine(merge_with)
182
+ self
183
+ end
184
+
120
185
  ##
121
186
  # Replaces the code of the source range `range` with `content`.
122
187
  #
@@ -185,28 +250,62 @@ module Parser
185
250
  # @return [String]
186
251
  #
187
252
  def process
188
- source = @source_buffer.source.dup
189
- adjustment = 0
253
+ source = @source_buffer.source
190
254
 
255
+ chunks = []
256
+ last_end = 0
191
257
  @action_root.ordered_replacements.each do |range, replacement|
192
- begin_pos = range.begin_pos + adjustment
193
- end_pos = begin_pos + range.length
194
-
195
- source[begin_pos...end_pos] = replacement
196
-
197
- adjustment += replacement.length - range.length
258
+ chunks << source[last_end...range.begin_pos] << replacement
259
+ last_end = range.end_pos
198
260
  end
261
+ chunks << source[last_end...source.length]
262
+ chunks.join
263
+ end
264
+
265
+ ##
266
+ # Returns a representation of the rewriter as an ordered list of replacements.
267
+ #
268
+ # rewriter.as_replacements # => [ [1...1, '('],
269
+ # [2...4, 'foo'],
270
+ # [5...6, ''],
271
+ # [6...6, '!'],
272
+ # [10...10, ')'],
273
+ # ]
274
+ #
275
+ # This representation is sufficient to recreate the result of `process` but it is
276
+ # not sufficient to recreate completely the rewriter for further merging/actions.
277
+ # See `as_nested_actions`
278
+ #
279
+ # @return [Array<Range, String>] an ordered list of pairs of range & replacement
280
+ #
281
+ def as_replacements
282
+ @action_root.ordered_replacements
283
+ end
199
284
 
200
- source
285
+ ##
286
+ # Returns a representation of the rewriter as nested insertions (:wrap) and replacements.
287
+ #
288
+ # rewriter.as_actions # =>[ [:wrap, 1...10, '(', ')'],
289
+ # [:wrap, 2...6, '', '!'], # aka "insert_after"
290
+ # [:replace, 2...4, 'foo'],
291
+ # [:replace, 5...6, ''], # aka "removal"
292
+ # ],
293
+ #
294
+ # Contrary to `as_replacements`, this representation is sufficient to recreate exactly
295
+ # the rewriter.
296
+ #
297
+ # @return [Array<(Symbol, Range, String{, String})>]
298
+ #
299
+ def as_nested_actions
300
+ @action_root.nested_actions
201
301
  end
202
302
 
203
303
  ##
204
304
  # Provides a protected block where a sequence of multiple rewrite actions
205
305
  # are handled atomically. If any of the actions failed by clobbering,
206
- # all the actions are rolled back.
306
+ # all the actions are rolled back. Transactions can be nested.
207
307
  #
208
308
  # @raise [RuntimeError] when no block is passed
209
- # @raise [RuntimeError] when already in a transaction
210
309
  #
211
310
  def transaction
212
311
  unless block_given?
@@ -231,6 +330,11 @@ module Parser
231
330
  @in_transaction
232
331
  end
233
332
 
333
+ # :nodoc:
334
+ def inspect
335
+ "#<#{self.class} #{source_buffer.name}: #{action_summary}>"
336
+ end
337
+
234
338
  ##
235
339
  # @api private
236
340
  # @deprecated Use insert_after or wrap
@@ -256,8 +360,34 @@ module Parser
256
360
 
257
361
  extend Deprecation
258
362
 
363
+ protected
364
+
365
+ attr_reader :action_root
366
+
259
367
  private
260
368
 
369
+ def action_summary
370
+ replacements = as_replacements
371
+ case replacements.size
372
+ when 0 then return 'empty'
373
+ when 1..3 then #ok
374
+ else
375
+ replacements = replacements.first(3)
376
+ suffix = '…'
377
+ end
378
+ parts = replacements.map do |(range, str)|
379
+ if str.empty? # is this a deletion?
380
+ "-#{range.to_range}"
381
+ elsif range.size == 0 # is this an insertion?
382
+ "+#{str.inspect}@#{range.begin_pos}"
383
+ else # it is a replacement
384
+ "^#{str.inspect}@#{range.to_range}"
385
+ end
386
+ end
387
+ parts << suffix if suffix
388
+ parts.join(', ')
389
+ end
390
+
261
391
  ACTIONS = %i[accept warn raise].freeze
262
392
  def check_policy_validity
263
393
  invalid = @policy.values - ACTIONS
@@ -266,14 +396,14 @@ module Parser
266
396
 
267
397
  def combine(range, attributes)
268
398
  range = check_range_validity(range)
269
- action = TreeRewriter::Action.new(range, @enforcer, attributes)
399
+ action = TreeRewriter::Action.new(range, @enforcer, **attributes)
270
400
  @action_root = @action_root.combine(action)
271
401
  self
272
402
  end
273
403
 
274
404
  def check_range_validity(range)
275
405
  if range.begin_pos < 0 || range.end_pos > @source_buffer.source.size
276
- raise IndexError, "The range #{range} is outside the bounds of the source"
406
+ raise IndexError, "The range #{range.to_range} is outside the bounds of the source"
277
407
  end
278
408
  range
279
409
  end
@@ -281,7 +411,7 @@ module Parser
281
411
  def enforce_policy(event)
282
412
  return if @policy[event] == :accept
283
413
  return unless (values = yield)
284
- trigger_policy(event, values)
414
+ trigger_policy(event, **values)
285
415
  end
286
416
 
287
417
  POLICY_TO_LEVEL = {warn: :warning, raise: :error}.freeze
@@ -3,6 +3,9 @@
3
3
  module Parser
4
4
 
5
5
  class StaticEnvironment
6
+ FORWARD_ARGS = :FORWARD_ARGS
7
+ ANONYMOUS_BLOCKARG = :ANONYMOUS_BLOCKARG
8
+
6
9
  def initialize
7
10
  reset
8
11
  end
@@ -41,6 +44,26 @@ module Parser
41
44
  def declared?(name)
42
45
  @variables.include?(name.to_sym)
43
46
  end
47
+
48
+ def declare_forward_args
49
+ declare(FORWARD_ARGS)
50
+ end
51
+
52
+ def declared_forward_args?
53
+ declared?(FORWARD_ARGS)
54
+ end
55
+
56
+ def declare_anonymous_blockarg
57
+ declare(ANONYMOUS_BLOCKARG)
58
+ end
59
+
60
+ def declared_anonymous_blockarg?
61
+ declared?(ANONYMOUS_BLOCKARG)
62
+ end
63
+
64
+ def empty?
65
+ @stack.empty?
66
+ end
44
67
  end
45
68
 
46
69
  end
@@ -27,12 +27,12 @@ module Parser
27
27
  # end
28
28
  # EOF
29
29
  #
30
- # buffer = Parser::Source::Buffer.new('(example)')
31
- # buffer.source = code
30
+ # ast = Parser::CurrentRuby.parse code
31
+ # buffer = Parser::Source::Buffer.new('(example)', source: code)
32
32
  # rewriter = RemoveDo.new
33
33
  #
34
34
  # # Rewrite the AST, returns a String with the new form.
35
- # puts rewriter.rewrite(buffer)
35
+ # puts rewriter.rewrite(buffer, ast)
36
36
  #
37
37
  # This would result in the following Ruby code:
38
38
  #
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Parser
4
+
5
+ class VariablesStack
6
+ def initialize
7
+ @stack = []
8
+ push
9
+ end
10
+
11
+ def empty?
12
+ @stack.empty?
13
+ end
14
+
15
+ def push
16
+ @stack << Set.new
17
+ end
18
+
19
+ def pop
20
+ @stack.pop
21
+ end
22
+
23
+ def reset
24
+ @stack.clear
25
+ end
26
+
27
+ def declare(name)
28
+ @stack.last << name.to_sym
29
+ end
30
+
31
+ def declared?(name)
32
+ @stack.last.include?(name.to_sym)
33
+ end
34
+ end
35
+
36
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Parser
4
- VERSION = '2.6.0.0'
4
+ VERSION = '3.1.0.0'
5
5
  end
data/lib/parser.rb CHANGED
@@ -46,6 +46,7 @@ module Parser
46
46
  require 'parser/source/map/variable'
47
47
  require 'parser/source/map/keyword'
48
48
  require 'parser/source/map/definition'
49
+ require 'parser/source/map/method_definition'
49
50
  require 'parser/source/map/send'
50
51
  require 'parser/source/map/index'
51
52
  require 'parser/source/map/condition'
@@ -73,6 +74,9 @@ module Parser
73
74
  end
74
75
 
75
76
  require 'parser/context'
77
+ require 'parser/max_numparam_stack'
78
+ require 'parser/current_arg_stack'
79
+ require 'parser/variables_stack'
76
80
 
77
81
  require 'parser/base'
78
82
 
data/parser.gemspec CHANGED
@@ -13,31 +13,24 @@ Gem::Specification.new do |spec|
13
13
  spec.homepage = 'https://github.com/whitequark/parser'
14
14
  spec.license = 'MIT'
15
15
 
16
- spec.files = `git ls-files`.split + %w(
17
- lib/parser/lexer.rb
18
- lib/parser/ruby18.rb
19
- lib/parser/ruby19.rb
20
- lib/parser/ruby20.rb
21
- lib/parser/ruby21.rb
22
- lib/parser/ruby22.rb
23
- lib/parser/ruby23.rb
24
- lib/parser/ruby24.rb
25
- lib/parser/ruby25.rb
26
- lib/parser/ruby26.rb
27
- lib/parser/macruby.rb
28
- lib/parser/rubymotion.rb
29
- )
16
+ spec.metadata = {
17
+ 'bug_tracker_uri' => 'https://github.com/whitequark/parser/issues',
18
+ 'changelog_uri' => "https://github.com/whitequark/parser/blob/v#{spec.version}/CHANGELOG.md",
19
+ 'documentation_uri' => "https://www.rubydoc.info/gems/parser/#{spec.version}",
20
+ 'source_code_uri' => "https://github.com/whitequark/parser/tree/v#{spec.version}"
21
+ }
22
+
23
+ spec.files = Dir['bin/*', 'lib/**/*.rb', 'parser.gemspec', 'LICENSE.txt']
30
24
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
31
- spec.test_files = spec.files.grep(%r{^test/})
32
25
  spec.require_paths = ['lib']
33
26
 
34
27
  spec.required_ruby_version = '>= 2.0.0'
35
28
 
36
- spec.add_dependency 'ast', '~> 2.4.0'
29
+ spec.add_dependency 'ast', '~> 2.4.1'
37
30
 
38
- spec.add_development_dependency 'bundler', '~> 1.15'
39
- spec.add_development_dependency 'rake', '~> 10.0'
40
- spec.add_development_dependency 'racc', '= 1.4.14'
31
+ spec.add_development_dependency 'bundler', '>= 1.15', '< 3.0.0'
32
+ spec.add_development_dependency 'rake', '~> 13.0.1'
33
+ spec.add_development_dependency 'racc', '= 1.4.15'
41
34
  spec.add_development_dependency 'cliver', '~> 0.3.2'
42
35
 
43
36
  spec.add_development_dependency 'yard'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.0.0
4
+ version: 3.1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - whitequark
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-16 00:00:00.000000000 Z
11
+ date: 2022-01-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ast
@@ -16,56 +16,62 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.4.0
19
+ version: 2.4.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 2.4.0
26
+ version: 2.4.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.15'
34
+ - - "<"
35
+ - !ruby/object:Gem::Version
36
+ version: 3.0.0
34
37
  type: :development
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
- - - "~>"
41
+ - - ">="
39
42
  - !ruby/object:Gem::Version
40
43
  version: '1.15'
44
+ - - "<"
45
+ - !ruby/object:Gem::Version
46
+ version: 3.0.0
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: rake
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: '10.0'
53
+ version: 13.0.1
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
58
  - - "~>"
53
59
  - !ruby/object:Gem::Version
54
- version: '10.0'
60
+ version: 13.0.1
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: racc
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
65
  - - '='
60
66
  - !ruby/object:Gem::Version
61
- version: 1.4.14
67
+ version: 1.4.15
62
68
  type: :development
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
72
  - - '='
67
73
  - !ruby/object:Gem::Version
68
- version: 1.4.14
74
+ version: 1.4.15
69
75
  - !ruby/object:Gem::Dependency
70
76
  name: cliver
71
77
  requirement: !ruby/object:Gem::Requirement
@@ -159,23 +165,9 @@ executables:
159
165
  extensions: []
160
166
  extra_rdoc_files: []
161
167
  files:
162
- - ".gitignore"
163
- - ".travis.yml"
164
- - ".yardopts"
165
- - CHANGELOG.md
166
- - CONTRIBUTING.md
167
- - Gemfile
168
168
  - LICENSE.txt
169
- - README.md
170
- - Rakefile
171
169
  - bin/ruby-parse
172
170
  - bin/ruby-rewrite
173
- - ci/run_rubocop_specs
174
- - doc/AST_FORMAT.md
175
- - doc/CUSTOMIZATION.md
176
- - doc/INTERNALS.md
177
- - doc/css/.gitkeep
178
- - doc/css/common.css
179
171
  - lib/gauntlet_parser.rb
180
172
  - lib/parser.rb
181
173
  - lib/parser/all.rb
@@ -187,40 +179,34 @@ files:
187
179
  - lib/parser/color.rb
188
180
  - lib/parser/context.rb
189
181
  - lib/parser/current.rb
182
+ - lib/parser/current_arg_stack.rb
190
183
  - lib/parser/deprecation.rb
191
184
  - lib/parser/diagnostic.rb
192
185
  - lib/parser/diagnostic/engine.rb
193
186
  - lib/parser/lexer.rb
194
- - lib/parser/lexer.rl
195
187
  - lib/parser/lexer/dedenter.rb
196
188
  - lib/parser/lexer/explanation.rb
197
189
  - lib/parser/lexer/literal.rb
198
190
  - lib/parser/lexer/stack_state.rb
199
191
  - lib/parser/macruby.rb
200
- - lib/parser/macruby.y
192
+ - lib/parser/max_numparam_stack.rb
201
193
  - lib/parser/messages.rb
202
194
  - lib/parser/meta.rb
203
195
  - lib/parser/rewriter.rb
204
196
  - lib/parser/ruby18.rb
205
- - lib/parser/ruby18.y
206
197
  - lib/parser/ruby19.rb
207
- - lib/parser/ruby19.y
208
198
  - lib/parser/ruby20.rb
209
- - lib/parser/ruby20.y
210
199
  - lib/parser/ruby21.rb
211
- - lib/parser/ruby21.y
212
200
  - lib/parser/ruby22.rb
213
- - lib/parser/ruby22.y
214
201
  - lib/parser/ruby23.rb
215
- - lib/parser/ruby23.y
216
202
  - lib/parser/ruby24.rb
217
- - lib/parser/ruby24.y
218
203
  - lib/parser/ruby25.rb
219
- - lib/parser/ruby25.y
220
204
  - lib/parser/ruby26.rb
221
- - lib/parser/ruby26.y
205
+ - lib/parser/ruby27.rb
206
+ - lib/parser/ruby28.rb
207
+ - lib/parser/ruby30.rb
208
+ - lib/parser/ruby31.rb
222
209
  - lib/parser/rubymotion.rb
223
- - lib/parser/rubymotion.y
224
210
  - lib/parser/runner.rb
225
211
  - lib/parser/runner/ruby_parse.rb
226
212
  - lib/parser/runner/ruby_rewrite.rb
@@ -236,6 +222,7 @@ files:
236
222
  - lib/parser/source/map/heredoc.rb
237
223
  - lib/parser/source/map/index.rb
238
224
  - lib/parser/source/map/keyword.rb
225
+ - lib/parser/source/map/method_definition.rb
239
226
  - lib/parser/source/map/objc_kwarg.rb
240
227
  - lib/parser/source/map/operator.rb
241
228
  - lib/parser/source/map/rescue_body.rb
@@ -250,41 +237,18 @@ files:
250
237
  - lib/parser/static_environment.rb
251
238
  - lib/parser/syntax_error.rb
252
239
  - lib/parser/tree_rewriter.rb
240
+ - lib/parser/variables_stack.rb
253
241
  - lib/parser/version.rb
254
242
  - parser.gemspec
255
- - test/bug_163/fixtures/input.rb
256
- - test/bug_163/fixtures/output.rb
257
- - test/bug_163/rewriter.rb
258
- - test/helper.rb
259
- - test/parse_helper.rb
260
- - test/racc_coverage_helper.rb
261
- - test/test_base.rb
262
- - test/test_current.rb
263
- - test/test_diagnostic.rb
264
- - test/test_diagnostic_engine.rb
265
- - test/test_encoding.rb
266
- - test/test_lexer.rb
267
- - test/test_lexer_stack_state.rb
268
- - test/test_parse_helper.rb
269
- - test/test_parser.rb
270
- - test/test_runner_rewrite.rb
271
- - test/test_source_buffer.rb
272
- - test/test_source_comment.rb
273
- - test/test_source_comment_associator.rb
274
- - test/test_source_map.rb
275
- - test/test_source_range.rb
276
- - test/test_source_rewriter.rb
277
- - test/test_source_rewriter_action.rb
278
- - test/test_source_tree_rewriter.rb
279
- - test/test_static_environment.rb
280
- - test/using_tree_rewriter/fixtures/input.rb
281
- - test/using_tree_rewriter/fixtures/output.rb
282
- - test/using_tree_rewriter/using_tree_rewriter.rb
283
243
  homepage: https://github.com/whitequark/parser
284
244
  licenses:
285
245
  - MIT
286
- metadata: {}
287
- post_install_message:
246
+ metadata:
247
+ bug_tracker_uri: https://github.com/whitequark/parser/issues
248
+ changelog_uri: https://github.com/whitequark/parser/blob/v3.1.0.0/CHANGELOG.md
249
+ documentation_uri: https://www.rubydoc.info/gems/parser/3.1.0.0
250
+ source_code_uri: https://github.com/whitequark/parser/tree/v3.1.0.0
251
+ post_install_message:
288
252
  rdoc_options: []
289
253
  require_paths:
290
254
  - lib
@@ -299,37 +263,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
299
263
  - !ruby/object:Gem::Version
300
264
  version: '0'
301
265
  requirements: []
302
- rubyforge_project:
303
- rubygems_version: 2.7.6
304
- signing_key:
266
+ rubygems_version: 3.2.3
267
+ signing_key:
305
268
  specification_version: 4
306
269
  summary: A Ruby parser written in pure Ruby.
307
- test_files:
308
- - test/bug_163/fixtures/input.rb
309
- - test/bug_163/fixtures/output.rb
310
- - test/bug_163/rewriter.rb
311
- - test/helper.rb
312
- - test/parse_helper.rb
313
- - test/racc_coverage_helper.rb
314
- - test/test_base.rb
315
- - test/test_current.rb
316
- - test/test_diagnostic.rb
317
- - test/test_diagnostic_engine.rb
318
- - test/test_encoding.rb
319
- - test/test_lexer.rb
320
- - test/test_lexer_stack_state.rb
321
- - test/test_parse_helper.rb
322
- - test/test_parser.rb
323
- - test/test_runner_rewrite.rb
324
- - test/test_source_buffer.rb
325
- - test/test_source_comment.rb
326
- - test/test_source_comment_associator.rb
327
- - test/test_source_map.rb
328
- - test/test_source_range.rb
329
- - test/test_source_rewriter.rb
330
- - test/test_source_rewriter_action.rb
331
- - test/test_source_tree_rewriter.rb
332
- - test/test_static_environment.rb
333
- - test/using_tree_rewriter/fixtures/input.rb
334
- - test/using_tree_rewriter/fixtures/output.rb
335
- - test/using_tree_rewriter/using_tree_rewriter.rb
270
+ test_files: []
data/.gitignore DELETED
@@ -1,32 +0,0 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
- coverage
10
- lib/bundler/man
11
- pkg
12
- rdoc
13
- yardoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
17
- tmp
18
- *.output
19
- .ruby-version
20
- .ruby-gemset
21
- lib/parser/lexer.rb
22
- lib/parser/ruby18.rb
23
- lib/parser/ruby19.rb
24
- lib/parser/ruby20.rb
25
- lib/parser/ruby21.rb
26
- lib/parser/ruby22.rb
27
- lib/parser/ruby23.rb
28
- lib/parser/ruby24.rb
29
- lib/parser/ruby25.rb
30
- lib/parser/ruby26.rb
31
- lib/parser/macruby.rb
32
- lib/parser/rubymotion.rb