parser 2.6.0.0 → 3.1.0.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
- data/lib/parser/all.rb +3 -0
- data/lib/parser/ast/processor.rb +48 -1
- data/lib/parser/base.rb +30 -6
- data/lib/parser/builders/default.rb +670 -38
- data/lib/parser/context.rb +24 -26
- data/lib/parser/current.rb +36 -9
- data/lib/parser/current_arg_stack.rb +46 -0
- data/lib/parser/diagnostic/engine.rb +1 -2
- data/lib/parser/diagnostic.rb +1 -1
- data/lib/parser/lexer/dedenter.rb +58 -49
- data/lib/parser/lexer/explanation.rb +1 -1
- data/lib/parser/lexer.rb +13837 -11893
- data/lib/parser/macruby.rb +2544 -2489
- data/lib/parser/max_numparam_stack.rb +56 -0
- data/lib/parser/messages.rb +78 -44
- data/lib/parser/meta.rb +13 -3
- data/lib/parser/ruby18.rb +2313 -2259
- data/lib/parser/ruby19.rb +2537 -2488
- data/lib/parser/ruby20.rb +2724 -2673
- data/lib/parser/ruby21.rb +2766 -2727
- data/lib/parser/ruby22.rb +2683 -2628
- data/lib/parser/ruby23.rb +2796 -2755
- data/lib/parser/ruby24.rb +2812 -2771
- data/lib/parser/ruby25.rb +2703 -2670
- data/lib/parser/ruby26.rb +2794 -2747
- data/lib/parser/ruby27.rb +7914 -0
- data/lib/parser/ruby28.rb +8047 -0
- data/lib/parser/ruby30.rb +8096 -0
- data/lib/parser/ruby31.rb +8354 -0
- data/lib/parser/rubymotion.rb +2527 -2485
- data/lib/parser/runner/ruby_parse.rb +2 -2
- data/lib/parser/runner/ruby_rewrite.rb +2 -2
- data/lib/parser/runner.rb +36 -2
- data/lib/parser/source/buffer.rb +53 -28
- data/lib/parser/source/comment/associator.rb +31 -8
- data/lib/parser/source/comment.rb +14 -1
- data/lib/parser/source/map/method_definition.rb +25 -0
- data/lib/parser/source/range.rb +19 -3
- data/lib/parser/source/tree_rewriter/action.rb +137 -28
- data/lib/parser/source/tree_rewriter.rb +144 -14
- data/lib/parser/static_environment.rb +23 -0
- data/lib/parser/tree_rewriter.rb +3 -3
- data/lib/parser/variables_stack.rb +36 -0
- data/lib/parser/version.rb +1 -1
- data/lib/parser.rb +4 -0
- data/parser.gemspec +12 -19
- metadata +34 -99
- data/.gitignore +0 -32
- data/.travis.yml +0 -45
- data/.yardopts +0 -21
- data/CHANGELOG.md +0 -943
- data/CONTRIBUTING.md +0 -17
- data/Gemfile +0 -10
- data/README.md +0 -301
- data/Rakefile +0 -165
- data/ci/run_rubocop_specs +0 -14
- data/doc/AST_FORMAT.md +0 -1735
- data/doc/CUSTOMIZATION.md +0 -37
- data/doc/INTERNALS.md +0 -21
- data/doc/css/.gitkeep +0 -0
- data/doc/css/common.css +0 -68
- data/lib/parser/lexer.rl +0 -2383
- data/lib/parser/macruby.y +0 -2198
- data/lib/parser/ruby18.y +0 -1934
- data/lib/parser/ruby19.y +0 -2175
- data/lib/parser/ruby20.y +0 -2353
- data/lib/parser/ruby21.y +0 -2357
- data/lib/parser/ruby22.y +0 -2364
- data/lib/parser/ruby23.y +0 -2370
- data/lib/parser/ruby24.y +0 -2408
- data/lib/parser/ruby25.y +0 -2405
- data/lib/parser/ruby26.y +0 -2413
- data/lib/parser/rubymotion.y +0 -2182
- data/test/bug_163/fixtures/input.rb +0 -5
- data/test/bug_163/fixtures/output.rb +0 -5
- data/test/bug_163/rewriter.rb +0 -20
- data/test/helper.rb +0 -52
- data/test/parse_helper.rb +0 -315
- data/test/racc_coverage_helper.rb +0 -133
- data/test/test_base.rb +0 -31
- data/test/test_current.rb +0 -27
- data/test/test_diagnostic.rb +0 -96
- data/test/test_diagnostic_engine.rb +0 -62
- data/test/test_encoding.rb +0 -99
- data/test/test_lexer.rb +0 -3543
- data/test/test_lexer_stack_state.rb +0 -78
- data/test/test_parse_helper.rb +0 -80
- data/test/test_parser.rb +0 -7087
- data/test/test_runner_rewrite.rb +0 -47
- data/test/test_source_buffer.rb +0 -162
- data/test/test_source_comment.rb +0 -36
- data/test/test_source_comment_associator.rb +0 -367
- data/test/test_source_map.rb +0 -15
- data/test/test_source_range.rb +0 -172
- data/test/test_source_rewriter.rb +0 -541
- data/test/test_source_rewriter_action.rb +0 -46
- data/test/test_source_tree_rewriter.rb +0 -173
- data/test/test_static_environment.rb +0 -45
- data/test/using_tree_rewriter/fixtures/input.rb +0 -3
- data/test/using_tree_rewriter/fixtures/output.rb +0 -3
- 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
|
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
|
-
|
193
|
-
|
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
|
-
|
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
|
data/lib/parser/tree_rewriter.rb
CHANGED
@@ -27,12 +27,12 @@ module Parser
|
|
27
27
|
# end
|
28
28
|
# EOF
|
29
29
|
#
|
30
|
-
#
|
31
|
-
# buffer.source
|
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
|
data/lib/parser/version.rb
CHANGED
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.
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
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.
|
29
|
+
spec.add_dependency 'ast', '~> 2.4.1'
|
37
30
|
|
38
|
-
spec.add_development_dependency 'bundler', '
|
39
|
-
spec.add_development_dependency 'rake', '~>
|
40
|
-
spec.add_development_dependency 'racc', '= 1.4.
|
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:
|
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:
|
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.
|
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.
|
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:
|
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:
|
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.
|
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.
|
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/
|
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/
|
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
|
-
|
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
|
-
|
303
|
-
|
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
|