parser 2.6.5.0 → 2.7.0.4
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/.travis.yml +6 -0
- data/CHANGELOG.md +52 -0
- data/README.md +8 -1
- data/doc/AST_FORMAT.md +384 -20
- data/lib/parser.rb +3 -1
- data/lib/parser/ast/processor.rb +19 -0
- data/lib/parser/base.rb +19 -0
- data/lib/parser/builders/default.rb +250 -12
- data/lib/parser/context.rb +4 -0
- data/lib/parser/current.rb +4 -4
- data/lib/parser/current_arg_stack.rb +43 -0
- data/lib/parser/lexer.rl +98 -95
- data/lib/parser/lexer/dedenter.rb +52 -49
- data/lib/parser/{lexer/max_numparam_stack.rb → max_numparam_stack.rb} +10 -4
- data/lib/parser/messages.rb +35 -29
- data/lib/parser/meta.rb +7 -2
- data/lib/parser/ruby27.y +495 -35
- data/lib/parser/source/tree_rewriter/action.rb +2 -2
- data/lib/parser/static_environment.rb +10 -0
- data/lib/parser/variables_stack.rb +32 -0
- data/lib/parser/version.rb +1 -1
- data/parser.gemspec +7 -0
- data/test/helper.rb +1 -0
- data/test/parse_helper.rb +3 -0
- data/test/test_lexer.rb +7 -66
- data/test/test_parser.rb +1831 -118
- data/test/test_source_comment_associator.rb +20 -20
- metadata +11 -5
@@ -31,16 +31,16 @@ class TestSourceCommentAssociator < Minitest::Test
|
|
31
31
|
ast, associations = associate(<<-END)
|
32
32
|
#!/usr/bin/env ruby
|
33
33
|
# coding: utf-8
|
34
|
-
# class
|
35
|
-
# another class
|
34
|
+
# class preceding
|
35
|
+
# another class preceding
|
36
36
|
class Foo # class keyword line
|
37
|
-
# method foo
|
37
|
+
# method foo preceding
|
38
38
|
def foo
|
39
39
|
puts 'foo'
|
40
40
|
end # method foo decorating
|
41
|
-
# method bar
|
41
|
+
# method bar preceding
|
42
42
|
def bar
|
43
|
-
# expression
|
43
|
+
# expression preceding
|
44
44
|
1 + # 1 decorating
|
45
45
|
2
|
46
46
|
# method bar sparse
|
@@ -58,8 +58,8 @@ end # class decorating
|
|
58
58
|
|
59
59
|
assert_equal 6, associations.size
|
60
60
|
assert_equal [
|
61
|
-
'# class
|
62
|
-
'# another class
|
61
|
+
'# class preceding',
|
62
|
+
'# another class preceding',
|
63
63
|
'# class sparse',
|
64
64
|
'# class decorating'
|
65
65
|
], associations[klass_node].map(&:text)
|
@@ -67,16 +67,16 @@ end # class decorating
|
|
67
67
|
'# class keyword line'
|
68
68
|
], associations[klass_name_node].map(&:text)
|
69
69
|
assert_equal [
|
70
|
-
'# method foo
|
70
|
+
'# method foo preceding',
|
71
71
|
'# method foo decorating'
|
72
72
|
], associations[foo_node].map(&:text)
|
73
73
|
assert_equal [
|
74
|
-
'# method bar
|
74
|
+
'# method bar preceding',
|
75
75
|
'# method bar sparse',
|
76
76
|
'# method bar decorating'
|
77
77
|
], associations[bar_node].map(&:text)
|
78
78
|
assert_equal [
|
79
|
-
'# expression
|
79
|
+
'# expression preceding'
|
80
80
|
], associations[expr_node].map(&:text)
|
81
81
|
assert_equal [
|
82
82
|
'# 1 decorating'
|
@@ -112,16 +112,16 @@ end
|
|
112
112
|
ast, associations = associate_locations(<<-END)
|
113
113
|
#!/usr/bin/env ruby
|
114
114
|
# coding: utf-8
|
115
|
-
# class
|
116
|
-
# another class
|
115
|
+
# class preceding
|
116
|
+
# another class preceding
|
117
117
|
class Foo # class keyword line
|
118
|
-
# method foo
|
118
|
+
# method foo preceding
|
119
119
|
def foo
|
120
120
|
puts 'foo'
|
121
121
|
end # method foo decorating
|
122
|
-
# method bar
|
122
|
+
# method bar preceding
|
123
123
|
def bar
|
124
|
-
# expression
|
124
|
+
# expression preceding
|
125
125
|
1 + # 1 decorating
|
126
126
|
2
|
127
127
|
# method bar sparse
|
@@ -139,8 +139,8 @@ end # class decorating
|
|
139
139
|
|
140
140
|
assert_equal 6, associations.size
|
141
141
|
assert_equal [
|
142
|
-
'# class
|
143
|
-
'# another class
|
142
|
+
'# class preceding',
|
143
|
+
'# another class preceding',
|
144
144
|
'# class sparse',
|
145
145
|
'# class decorating'
|
146
146
|
], associations[klass_node.loc].map(&:text)
|
@@ -148,16 +148,16 @@ end # class decorating
|
|
148
148
|
'# class keyword line'
|
149
149
|
], associations[klass_name_node.loc].map(&:text)
|
150
150
|
assert_equal [
|
151
|
-
'# method foo
|
151
|
+
'# method foo preceding',
|
152
152
|
'# method foo decorating'
|
153
153
|
], associations[foo_node.loc].map(&:text)
|
154
154
|
assert_equal [
|
155
|
-
'# method bar
|
155
|
+
'# method bar preceding',
|
156
156
|
'# method bar sparse',
|
157
157
|
'# method bar decorating'
|
158
158
|
], associations[bar_node.loc].map(&:text)
|
159
159
|
assert_equal [
|
160
|
-
'# expression
|
160
|
+
'# expression preceding'
|
161
161
|
], associations[expr_node.loc].map(&:text)
|
162
162
|
assert_equal [
|
163
163
|
'# 1 decorating'
|
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.
|
4
|
+
version: 2.7.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- whitequark
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-03-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ast
|
@@ -193,6 +193,7 @@ files:
|
|
193
193
|
- lib/parser/color.rb
|
194
194
|
- lib/parser/context.rb
|
195
195
|
- lib/parser/current.rb
|
196
|
+
- lib/parser/current_arg_stack.rb
|
196
197
|
- lib/parser/deprecation.rb
|
197
198
|
- lib/parser/diagnostic.rb
|
198
199
|
- lib/parser/diagnostic/engine.rb
|
@@ -201,10 +202,10 @@ files:
|
|
201
202
|
- lib/parser/lexer/dedenter.rb
|
202
203
|
- lib/parser/lexer/explanation.rb
|
203
204
|
- lib/parser/lexer/literal.rb
|
204
|
-
- lib/parser/lexer/max_numparam_stack.rb
|
205
205
|
- lib/parser/lexer/stack_state.rb
|
206
206
|
- lib/parser/macruby.rb
|
207
207
|
- lib/parser/macruby.y
|
208
|
+
- lib/parser/max_numparam_stack.rb
|
208
209
|
- lib/parser/messages.rb
|
209
210
|
- lib/parser/meta.rb
|
210
211
|
- lib/parser/rewriter.rb
|
@@ -259,6 +260,7 @@ files:
|
|
259
260
|
- lib/parser/static_environment.rb
|
260
261
|
- lib/parser/syntax_error.rb
|
261
262
|
- lib/parser/tree_rewriter.rb
|
263
|
+
- lib/parser/variables_stack.rb
|
262
264
|
- lib/parser/version.rb
|
263
265
|
- parser.gemspec
|
264
266
|
- test/bug_163/fixtures/input.rb
|
@@ -293,7 +295,11 @@ files:
|
|
293
295
|
homepage: https://github.com/whitequark/parser
|
294
296
|
licenses:
|
295
297
|
- MIT
|
296
|
-
metadata:
|
298
|
+
metadata:
|
299
|
+
bug_tracker_uri: https://github.com/whitequark/parser/issues
|
300
|
+
changelog_uri: https://github.com/whitequark/parser/blob/v2.7.0.4/CHANGELOG.md
|
301
|
+
documentation_uri: https://www.rubydoc.info/gems/parser/2.7.0.4
|
302
|
+
source_code_uri: https://github.com/whitequark/parser/tree/v2.7.0.4
|
297
303
|
post_install_message:
|
298
304
|
rdoc_options: []
|
299
305
|
require_paths:
|
@@ -309,7 +315,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
309
315
|
- !ruby/object:Gem::Version
|
310
316
|
version: '0'
|
311
317
|
requirements: []
|
312
|
-
rubygems_version: 3.0.
|
318
|
+
rubygems_version: 3.0.6
|
313
319
|
signing_key:
|
314
320
|
specification_version: 4
|
315
321
|
summary: A Ruby parser written in pure Ruby.
|