parser 2.5.1.0 → 3.0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. checksums.yaml +4 -4
  2. data/lib/parser.rb +4 -0
  3. data/lib/parser/all.rb +3 -0
  4. data/lib/parser/ast/processor.rb +49 -1
  5. data/lib/parser/base.rb +30 -6
  6. data/lib/parser/builders/default.rb +586 -29
  7. data/lib/parser/context.rb +17 -0
  8. data/lib/parser/current.rb +34 -7
  9. data/lib/parser/current_arg_stack.rb +46 -0
  10. data/lib/parser/diagnostic.rb +1 -1
  11. data/lib/parser/diagnostic/engine.rb +1 -2
  12. data/lib/parser/lexer.rb +23780 -0
  13. data/lib/parser/lexer/dedenter.rb +52 -49
  14. data/lib/parser/lexer/literal.rb +4 -0
  15. data/lib/parser/lexer/stack_state.rb +4 -0
  16. data/lib/parser/macruby.rb +6149 -0
  17. data/lib/parser/max_numparam_stack.rb +56 -0
  18. data/lib/parser/messages.rb +74 -44
  19. data/lib/parser/meta.rb +13 -3
  20. data/lib/parser/ruby18.rb +5667 -0
  21. data/lib/parser/ruby19.rb +6092 -0
  22. data/lib/parser/ruby20.rb +6527 -0
  23. data/lib/parser/ruby21.rb +6578 -0
  24. data/lib/parser/ruby22.rb +6613 -0
  25. data/lib/parser/ruby23.rb +6624 -0
  26. data/lib/parser/ruby24.rb +6694 -0
  27. data/lib/parser/ruby25.rb +6662 -0
  28. data/lib/parser/ruby26.rb +6676 -0
  29. data/lib/parser/ruby27.rb +7862 -0
  30. data/lib/parser/ruby28.rb +8047 -0
  31. data/lib/parser/ruby30.rb +8060 -0
  32. data/lib/parser/ruby31.rb +8075 -0
  33. data/lib/parser/rubymotion.rb +6086 -0
  34. data/lib/parser/runner.rb +36 -2
  35. data/lib/parser/runner/ruby_parse.rb +2 -2
  36. data/lib/parser/runner/ruby_rewrite.rb +2 -2
  37. data/lib/parser/source/buffer.rb +54 -29
  38. data/lib/parser/source/comment.rb +18 -5
  39. data/lib/parser/source/comment/associator.rb +34 -11
  40. data/lib/parser/source/map.rb +1 -1
  41. data/lib/parser/source/map/method_definition.rb +25 -0
  42. data/lib/parser/source/range.rb +20 -4
  43. data/lib/parser/source/tree_rewriter.rb +146 -16
  44. data/lib/parser/source/tree_rewriter/action.rb +137 -28
  45. data/lib/parser/static_environment.rb +14 -0
  46. data/lib/parser/tree_rewriter.rb +3 -3
  47. data/lib/parser/variables_stack.rb +36 -0
  48. data/lib/parser/version.rb +1 -1
  49. data/parser.gemspec +13 -21
  50. metadata +34 -98
  51. data/.gitignore +0 -32
  52. data/.travis.yml +0 -21
  53. data/.yardopts +0 -21
  54. data/CHANGELOG.md +0 -909
  55. data/CONTRIBUTING.md +0 -17
  56. data/Gemfile +0 -10
  57. data/README.md +0 -301
  58. data/Rakefile +0 -165
  59. data/doc/AST_FORMAT.md +0 -1718
  60. data/doc/CUSTOMIZATION.md +0 -37
  61. data/doc/INTERNALS.md +0 -21
  62. data/doc/css/.gitkeep +0 -0
  63. data/doc/css/common.css +0 -68
  64. data/lib/parser/lexer.rl +0 -2376
  65. data/lib/parser/macruby.y +0 -2198
  66. data/lib/parser/ruby18.y +0 -1934
  67. data/lib/parser/ruby19.y +0 -2175
  68. data/lib/parser/ruby20.y +0 -2353
  69. data/lib/parser/ruby21.y +0 -2357
  70. data/lib/parser/ruby22.y +0 -2364
  71. data/lib/parser/ruby23.y +0 -2370
  72. data/lib/parser/ruby24.y +0 -2395
  73. data/lib/parser/ruby25.y +0 -2392
  74. data/lib/parser/ruby26.y +0 -2392
  75. data/lib/parser/rubymotion.y +0 -2182
  76. data/test/bug_163/fixtures/input.rb +0 -5
  77. data/test/bug_163/fixtures/output.rb +0 -5
  78. data/test/bug_163/rewriter.rb +0 -20
  79. data/test/helper.rb +0 -52
  80. data/test/parse_helper.rb +0 -315
  81. data/test/racc_coverage_helper.rb +0 -133
  82. data/test/test_base.rb +0 -31
  83. data/test/test_current.rb +0 -27
  84. data/test/test_diagnostic.rb +0 -96
  85. data/test/test_diagnostic_engine.rb +0 -62
  86. data/test/test_encoding.rb +0 -99
  87. data/test/test_lexer.rb +0 -3537
  88. data/test/test_lexer_stack_state.rb +0 -78
  89. data/test/test_parse_helper.rb +0 -80
  90. data/test/test_parser.rb +0 -6968
  91. data/test/test_runner_rewrite.rb +0 -47
  92. data/test/test_source_buffer.rb +0 -162
  93. data/test/test_source_comment.rb +0 -36
  94. data/test/test_source_comment_associator.rb +0 -367
  95. data/test/test_source_map.rb +0 -15
  96. data/test/test_source_range.rb +0 -172
  97. data/test/test_source_rewriter.rb +0 -541
  98. data/test/test_source_rewriter_action.rb +0 -46
  99. data/test/test_source_tree_rewriter.rb +0 -173
  100. data/test/test_static_environment.rb +0 -45
  101. data/test/using_tree_rewriter/fixtures/input.rb +0 -3
  102. data/test/using_tree_rewriter/fixtures/output.rb +0 -3
  103. data/test/using_tree_rewriter/using_tree_rewriter.rb +0 -9
@@ -3,6 +3,8 @@
3
3
  module Parser
4
4
 
5
5
  class StaticEnvironment
6
+ FORWARD_ARGS = :FORWARD_ARGS
7
+
6
8
  def initialize
7
9
  reset
8
10
  end
@@ -41,6 +43,18 @@ module Parser
41
43
  def declared?(name)
42
44
  @variables.include?(name.to_sym)
43
45
  end
46
+
47
+ def declare_forward_args
48
+ declare(FORWARD_ARGS)
49
+ end
50
+
51
+ def declared_forward_args?
52
+ declared?(FORWARD_ARGS)
53
+ end
54
+
55
+ def empty?
56
+ @stack.empty?
57
+ end
44
58
  end
45
59
 
46
60
  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.5.1.0'
4
+ VERSION = '3.0.1.1'
5
5
  end
data/parser.gemspec CHANGED
@@ -12,33 +12,25 @@ Gem::Specification.new do |spec|
12
12
  spec.summary = spec.description
13
13
  spec.homepage = 'https://github.com/whitequark/parser'
14
14
  spec.license = 'MIT'
15
- spec.has_rdoc = 'yard'
16
-
17
- spec.files = `git ls-files`.split + %w(
18
- lib/parser/lexer.rb
19
- lib/parser/ruby18.rb
20
- lib/parser/ruby19.rb
21
- lib/parser/ruby20.rb
22
- lib/parser/ruby21.rb
23
- lib/parser/ruby22.rb
24
- lib/parser/ruby23.rb
25
- lib/parser/ruby24.rb
26
- lib/parser/ruby25.rb
27
- lib/parser/ruby26.rb
28
- lib/parser/macruby.rb
29
- lib/parser/rubymotion.rb
30
- )
15
+
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']
31
24
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
32
- spec.test_files = spec.files.grep(%r{^test/})
33
25
  spec.require_paths = ['lib']
34
26
 
35
27
  spec.required_ruby_version = '>= 2.0.0'
36
28
 
37
- spec.add_dependency 'ast', '~> 2.4.0'
29
+ spec.add_dependency 'ast', '~> 2.4.1'
38
30
 
39
- spec.add_development_dependency 'bundler', '~> 1.15'
40
- spec.add_development_dependency 'rake', '~> 10.0'
41
- 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'
42
34
  spec.add_development_dependency 'cliver', '~> 0.3.2'
43
35
 
44
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.5.1.0
4
+ version: 3.0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - whitequark
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-12 00:00:00.000000000 Z
11
+ date: 2021-05-02 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,22 +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
- - doc/AST_FORMAT.md
174
- - doc/CUSTOMIZATION.md
175
- - doc/INTERNALS.md
176
- - doc/css/.gitkeep
177
- - doc/css/common.css
178
171
  - lib/gauntlet_parser.rb
179
172
  - lib/parser.rb
180
173
  - lib/parser/all.rb
@@ -186,40 +179,34 @@ files:
186
179
  - lib/parser/color.rb
187
180
  - lib/parser/context.rb
188
181
  - lib/parser/current.rb
182
+ - lib/parser/current_arg_stack.rb
189
183
  - lib/parser/deprecation.rb
190
184
  - lib/parser/diagnostic.rb
191
185
  - lib/parser/diagnostic/engine.rb
192
186
  - lib/parser/lexer.rb
193
- - lib/parser/lexer.rl
194
187
  - lib/parser/lexer/dedenter.rb
195
188
  - lib/parser/lexer/explanation.rb
196
189
  - lib/parser/lexer/literal.rb
197
190
  - lib/parser/lexer/stack_state.rb
198
191
  - lib/parser/macruby.rb
199
- - lib/parser/macruby.y
192
+ - lib/parser/max_numparam_stack.rb
200
193
  - lib/parser/messages.rb
201
194
  - lib/parser/meta.rb
202
195
  - lib/parser/rewriter.rb
203
196
  - lib/parser/ruby18.rb
204
- - lib/parser/ruby18.y
205
197
  - lib/parser/ruby19.rb
206
- - lib/parser/ruby19.y
207
198
  - lib/parser/ruby20.rb
208
- - lib/parser/ruby20.y
209
199
  - lib/parser/ruby21.rb
210
- - lib/parser/ruby21.y
211
200
  - lib/parser/ruby22.rb
212
- - lib/parser/ruby22.y
213
201
  - lib/parser/ruby23.rb
214
- - lib/parser/ruby23.y
215
202
  - lib/parser/ruby24.rb
216
- - lib/parser/ruby24.y
217
203
  - lib/parser/ruby25.rb
218
- - lib/parser/ruby25.y
219
204
  - lib/parser/ruby26.rb
220
- - lib/parser/ruby26.y
205
+ - lib/parser/ruby27.rb
206
+ - lib/parser/ruby28.rb
207
+ - lib/parser/ruby30.rb
208
+ - lib/parser/ruby31.rb
221
209
  - lib/parser/rubymotion.rb
222
- - lib/parser/rubymotion.y
223
210
  - lib/parser/runner.rb
224
211
  - lib/parser/runner/ruby_parse.rb
225
212
  - lib/parser/runner/ruby_rewrite.rb
@@ -235,6 +222,7 @@ files:
235
222
  - lib/parser/source/map/heredoc.rb
236
223
  - lib/parser/source/map/index.rb
237
224
  - lib/parser/source/map/keyword.rb
225
+ - lib/parser/source/map/method_definition.rb
238
226
  - lib/parser/source/map/objc_kwarg.rb
239
227
  - lib/parser/source/map/operator.rb
240
228
  - lib/parser/source/map/rescue_body.rb
@@ -249,41 +237,18 @@ files:
249
237
  - lib/parser/static_environment.rb
250
238
  - lib/parser/syntax_error.rb
251
239
  - lib/parser/tree_rewriter.rb
240
+ - lib/parser/variables_stack.rb
252
241
  - lib/parser/version.rb
253
242
  - parser.gemspec
254
- - test/bug_163/fixtures/input.rb
255
- - test/bug_163/fixtures/output.rb
256
- - test/bug_163/rewriter.rb
257
- - test/helper.rb
258
- - test/parse_helper.rb
259
- - test/racc_coverage_helper.rb
260
- - test/test_base.rb
261
- - test/test_current.rb
262
- - test/test_diagnostic.rb
263
- - test/test_diagnostic_engine.rb
264
- - test/test_encoding.rb
265
- - test/test_lexer.rb
266
- - test/test_lexer_stack_state.rb
267
- - test/test_parse_helper.rb
268
- - test/test_parser.rb
269
- - test/test_runner_rewrite.rb
270
- - test/test_source_buffer.rb
271
- - test/test_source_comment.rb
272
- - test/test_source_comment_associator.rb
273
- - test/test_source_map.rb
274
- - test/test_source_range.rb
275
- - test/test_source_rewriter.rb
276
- - test/test_source_rewriter_action.rb
277
- - test/test_source_tree_rewriter.rb
278
- - test/test_static_environment.rb
279
- - test/using_tree_rewriter/fixtures/input.rb
280
- - test/using_tree_rewriter/fixtures/output.rb
281
- - test/using_tree_rewriter/using_tree_rewriter.rb
282
243
  homepage: https://github.com/whitequark/parser
283
244
  licenses:
284
245
  - MIT
285
- metadata: {}
286
- 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.0.1.1/CHANGELOG.md
249
+ documentation_uri: https://www.rubydoc.info/gems/parser/3.0.1.1
250
+ source_code_uri: https://github.com/whitequark/parser/tree/v3.0.1.1
251
+ post_install_message:
287
252
  rdoc_options: []
288
253
  require_paths:
289
254
  - lib
@@ -298,37 +263,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
298
263
  - !ruby/object:Gem::Version
299
264
  version: '0'
300
265
  requirements: []
301
- rubyforge_project:
302
- rubygems_version: 2.7.6
303
- signing_key:
266
+ rubygems_version: 3.0.6
267
+ signing_key:
304
268
  specification_version: 4
305
269
  summary: A Ruby parser written in pure Ruby.
306
- test_files:
307
- - test/bug_163/fixtures/input.rb
308
- - test/bug_163/fixtures/output.rb
309
- - test/bug_163/rewriter.rb
310
- - test/helper.rb
311
- - test/parse_helper.rb
312
- - test/racc_coverage_helper.rb
313
- - test/test_base.rb
314
- - test/test_current.rb
315
- - test/test_diagnostic.rb
316
- - test/test_diagnostic_engine.rb
317
- - test/test_encoding.rb
318
- - test/test_lexer.rb
319
- - test/test_lexer_stack_state.rb
320
- - test/test_parse_helper.rb
321
- - test/test_parser.rb
322
- - test/test_runner_rewrite.rb
323
- - test/test_source_buffer.rb
324
- - test/test_source_comment.rb
325
- - test/test_source_comment_associator.rb
326
- - test/test_source_map.rb
327
- - test/test_source_range.rb
328
- - test/test_source_rewriter.rb
329
- - test/test_source_rewriter_action.rb
330
- - test/test_source_tree_rewriter.rb
331
- - test/test_static_environment.rb
332
- - test/using_tree_rewriter/fixtures/input.rb
333
- - test/using_tree_rewriter/fixtures/output.rb
334
- - 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
data/.travis.yml DELETED
@@ -1,21 +0,0 @@
1
- dist: trusty
2
- language: ruby
3
- rvm:
4
- - 2.0.0
5
- - 2.2.9
6
- - 2.3.6
7
- - 2.4.3
8
- - 2.5.0
9
- - ruby-head
10
- - jruby-9.1.15.0
11
- - rbx-2
12
- matrix:
13
- allow_failures:
14
- - rvm: ruby-head
15
- - rvm: rbx-2
16
- before_install:
17
- - gem install bundler
18
- - bundle --version
19
- - gem --version
20
- script:
21
- - bundle exec rake test_cov