parser 2.7.0.4 → 2.7.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -1
- data/README.md +5 -4
- data/doc/AST_FORMAT.md +4 -4
- data/lib/parser/builders/default.rb +10 -5
- data/lib/parser/ruby27.y +3 -3
- data/lib/parser/version.rb +1 -1
- data/test/test_parser.rb +8 -8
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 00a9bc5b2d70892e4743417168e53dc469c80328c3983e71b41f312becd116b0
|
4
|
+
data.tar.gz: 1abbc88751dc8d3b7c28d2df69b71a773533ed2d3726de50df8cfaaa79887aaa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 32455424b4003ba1510d53b162aa8691bdaea5708b4d88d392d6c89cfa3b6479f1d47c9f42fedd40e663366192434aaf851dbe65cbd1a629c54b7681cfb37879
|
7
|
+
data.tar.gz: 0c464e9acd5cf95161e18552e4680230417a05e7ad14e805b8661e4bb2ee7a99f4ad2f4e0212c48b35bc9f3ed8549b6723925f0b194e0a57873a2eb472450dbb
|
data/CHANGELOG.md
CHANGED
@@ -1,9 +1,18 @@
|
|
1
1
|
Changelog
|
2
2
|
=========
|
3
3
|
|
4
|
-
Not released (2020-03-
|
4
|
+
Not released (2020-03-20)
|
5
5
|
-------------------------
|
6
6
|
|
7
|
+
Features implemented:
|
8
|
+
* ruby27.y: fix array pattern with tail source map (#659) (Vladimir Dementyev)
|
9
|
+
|
10
|
+
Bugs fixed:
|
11
|
+
* builder.rb: fix constant_pattern source map (#660) (Vladimir Dementyev)
|
12
|
+
|
13
|
+
v2.7.0.4 (2020-03-02)
|
14
|
+
---------------------
|
15
|
+
|
7
16
|
Bugs fixed:
|
8
17
|
* lexer.rl: allow spaces before comments-before-leading-dot. (#654) (Ilya Bylich)
|
9
18
|
|
data/README.md
CHANGED
@@ -24,10 +24,11 @@ below for explanation of `emit_*` calls):
|
|
24
24
|
|
25
25
|
require 'parser/current'
|
26
26
|
# opt-in to most recent AST format:
|
27
|
-
Parser::Builders::Default.emit_lambda
|
28
|
-
Parser::Builders::Default.emit_procarg0
|
29
|
-
Parser::Builders::Default.emit_encoding
|
30
|
-
Parser::Builders::Default.emit_index
|
27
|
+
Parser::Builders::Default.emit_lambda = true
|
28
|
+
Parser::Builders::Default.emit_procarg0 = true
|
29
|
+
Parser::Builders::Default.emit_encoding = true
|
30
|
+
Parser::Builders::Default.emit_index = true
|
31
|
+
Parser::Builders::Default.emit_arg_inside_procarg0 = true
|
31
32
|
|
32
33
|
Parse a chunk of code:
|
33
34
|
|
data/doc/AST_FORMAT.md
CHANGED
@@ -2068,7 +2068,7 @@ so a single item match with comma gets interpreted as an array.
|
|
2068
2068
|
(array-pattern-with-tail
|
2069
2069
|
(match-var :foo))
|
2070
2070
|
"in foo,"
|
2071
|
-
|
2071
|
+
~~~~ expression
|
2072
2072
|
~~~
|
2073
2073
|
|
2074
2074
|
### Matching using hash pattern
|
@@ -2139,7 +2139,7 @@ Format:
|
|
2139
2139
|
"in X[^foo bar]"
|
2140
2140
|
~ begin (const-pattern)
|
2141
2141
|
~ end (const-pattern)
|
2142
|
-
|
2142
|
+
~~~~~~~~~~~~ expression (const-pattern)
|
2143
2143
|
~ name (const-pattern.const)
|
2144
2144
|
~ expression (const-pattern.const)
|
2145
2145
|
~~~
|
@@ -2157,7 +2157,7 @@ Format:
|
|
2157
2157
|
"in X[foo:, bar:]"
|
2158
2158
|
~ begin (const-pattern)
|
2159
2159
|
~ end (const-pattern)
|
2160
|
-
|
2160
|
+
~~~~~~~~~~~~~ expression (const-pattern)
|
2161
2161
|
~ name (const-pattern.const)
|
2162
2162
|
~ expression (const-pattern.const)
|
2163
2163
|
~~~
|
@@ -2173,7 +2173,7 @@ Format:
|
|
2173
2173
|
"in X[]"
|
2174
2174
|
~ begin (const-pattern)
|
2175
2175
|
~ end (const-pattern)
|
2176
|
-
|
2176
|
+
~~~ expression (const-pattern)
|
2177
2177
|
~ name (const-pattern.const)
|
2178
2178
|
~ expression (const-pattern.const)
|
2179
2179
|
~~ expression (const-pattern.array_pattern)
|
@@ -1318,7 +1318,7 @@ module Parser
|
|
1318
1318
|
|
1319
1319
|
trailing_comma = false
|
1320
1320
|
|
1321
|
-
|
1321
|
+
node_elements = elements.map do |element|
|
1322
1322
|
if element.type == :match_with_trailing_comma
|
1323
1323
|
trailing_comma = true
|
1324
1324
|
element.children.first
|
@@ -1329,17 +1329,22 @@ module Parser
|
|
1329
1329
|
end
|
1330
1330
|
|
1331
1331
|
node_type = trailing_comma ? :array_pattern_with_tail : :array_pattern
|
1332
|
-
|
1332
|
+
|
1333
|
+
n(node_type, node_elements,
|
1333
1334
|
collection_map(lbrack_t, elements, rbrack_t))
|
1334
1335
|
end
|
1335
1336
|
|
1336
|
-
def match_with_trailing_comma(match)
|
1337
|
-
n(:match_with_trailing_comma, [ match ],
|
1337
|
+
def match_with_trailing_comma(match, comma_t)
|
1338
|
+
n(:match_with_trailing_comma, [ match ], expr_map(match.loc.expression.join(loc(comma_t))))
|
1338
1339
|
end
|
1339
1340
|
|
1340
1341
|
def const_pattern(const, ldelim_t, pattern, rdelim_t)
|
1341
1342
|
n(:const_pattern, [const, pattern],
|
1342
|
-
|
1343
|
+
Source::Map::Collection.new(
|
1344
|
+
loc(ldelim_t), loc(rdelim_t),
|
1345
|
+
const.loc.expression.join(loc(rdelim_t))
|
1346
|
+
)
|
1347
|
+
)
|
1343
1348
|
end
|
1344
1349
|
|
1345
1350
|
def pin(pin_t, var)
|
data/lib/parser/ruby27.y
CHANGED
@@ -1784,7 +1784,7 @@ opt_block_args_tail:
|
|
1784
1784
|
# array patterns that end with comma
|
1785
1785
|
# like 1, 2,
|
1786
1786
|
# must be emitted as `array_pattern_with_tail`
|
1787
|
-
item = @builder.match_with_trailing_comma(val[0])
|
1787
|
+
item = @builder.match_with_trailing_comma(val[0], val[1])
|
1788
1788
|
result = @builder.array_pattern(nil, [ item ], nil)
|
1789
1789
|
}
|
1790
1790
|
| p_expr tCOMMA p_args
|
@@ -1934,7 +1934,7 @@ opt_block_args_tail:
|
|
1934
1934
|
# array patterns that end with comma
|
1935
1935
|
# like [1, 2,]
|
1936
1936
|
# must be emitted as `array_pattern_with_tail`
|
1937
|
-
item = @builder.match_with_trailing_comma(val[0])
|
1937
|
+
item = @builder.match_with_trailing_comma(val[0], val[1])
|
1938
1938
|
result = [ item ]
|
1939
1939
|
}
|
1940
1940
|
| p_args_head p_arg tCOMMA
|
@@ -1942,7 +1942,7 @@ opt_block_args_tail:
|
|
1942
1942
|
# array patterns that end with comma
|
1943
1943
|
# like [1, 2,]
|
1944
1944
|
# must be emitted as `array_pattern_with_tail`
|
1945
|
-
last_item = @builder.match_with_trailing_comma(val[1])
|
1945
|
+
last_item = @builder.match_with_trailing_comma(val[1], val[2])
|
1946
1946
|
result = [ *val[0], last_item ]
|
1947
1947
|
}
|
1948
1948
|
|
data/lib/parser/version.rb
CHANGED
data/test/test_parser.rb
CHANGED
@@ -8422,7 +8422,7 @@ class TestParser < Minitest::Test
|
|
8422
8422
|
nil,
|
8423
8423
|
s(:nil)),
|
8424
8424
|
%q{in x, then nil},
|
8425
|
-
%q{
|
8425
|
+
%q{ ~~ expression (in_pattern.array_pattern_with_tail)}
|
8426
8426
|
)
|
8427
8427
|
|
8428
8428
|
assert_parses_pattern_match(
|
@@ -8468,7 +8468,7 @@ class TestParser < Minitest::Test
|
|
8468
8468
|
nil,
|
8469
8469
|
s(:nil)),
|
8470
8470
|
%q{in x, y, then nil},
|
8471
|
-
%q{
|
8471
|
+
%q{ ~~~~~ expression (in_pattern.array_pattern_with_tail)}
|
8472
8472
|
)
|
8473
8473
|
|
8474
8474
|
assert_parses_pattern_match(
|
@@ -8993,7 +8993,7 @@ class TestParser < Minitest::Test
|
|
8993
8993
|
nil,
|
8994
8994
|
s(:true)),
|
8995
8995
|
%q{in A(1, 2) then true},
|
8996
|
-
%q{
|
8996
|
+
%q{ ~~~~~~~ expression (in_pattern.const_pattern)
|
8997
8997
|
| ~ begin (in_pattern.const_pattern)
|
8998
8998
|
| ~ end (in_pattern.const_pattern)
|
8999
8999
|
| ~ expression (in_pattern.const_pattern.const)
|
@@ -9009,7 +9009,7 @@ class TestParser < Minitest::Test
|
|
9009
9009
|
nil,
|
9010
9010
|
s(:true)),
|
9011
9011
|
%q{in A(x:) then true},
|
9012
|
-
%q{
|
9012
|
+
%q{ ~~~~~ expression (in_pattern.const_pattern)
|
9013
9013
|
| ~ begin (in_pattern.const_pattern)
|
9014
9014
|
| ~ end (in_pattern.const_pattern)
|
9015
9015
|
| ~ expression (in_pattern.const_pattern.const)
|
@@ -9024,7 +9024,7 @@ class TestParser < Minitest::Test
|
|
9024
9024
|
nil,
|
9025
9025
|
s(:true)),
|
9026
9026
|
%q{in A() then true},
|
9027
|
-
%q{
|
9027
|
+
%q{ ~~~ expression (in_pattern.const_pattern)
|
9028
9028
|
| ~ begin (in_pattern.const_pattern)
|
9029
9029
|
| ~ end (in_pattern.const_pattern)
|
9030
9030
|
| ~ expression (in_pattern.const_pattern.const)
|
@@ -9041,7 +9041,7 @@ class TestParser < Minitest::Test
|
|
9041
9041
|
nil,
|
9042
9042
|
s(:true)),
|
9043
9043
|
%q{in A[1, 2] then true},
|
9044
|
-
%q{
|
9044
|
+
%q{ ~~~~~~~ expression (in_pattern.const_pattern)
|
9045
9045
|
| ~ begin (in_pattern.const_pattern)
|
9046
9046
|
| ~ end (in_pattern.const_pattern)
|
9047
9047
|
| ~ expression (in_pattern.const_pattern.const)
|
@@ -9057,7 +9057,7 @@ class TestParser < Minitest::Test
|
|
9057
9057
|
nil,
|
9058
9058
|
s(:true)),
|
9059
9059
|
%q{in A[x:] then true},
|
9060
|
-
%q{
|
9060
|
+
%q{ ~~~~~ expression (in_pattern.const_pattern)
|
9061
9061
|
| ~ begin (in_pattern.const_pattern)
|
9062
9062
|
| ~ end (in_pattern.const_pattern)
|
9063
9063
|
| ~ expression (in_pattern.const_pattern.const)
|
@@ -9072,7 +9072,7 @@ class TestParser < Minitest::Test
|
|
9072
9072
|
nil,
|
9073
9073
|
s(:true)),
|
9074
9074
|
%q{in A[] then true},
|
9075
|
-
%q{
|
9075
|
+
%q{ ~~~ expression (in_pattern.const_pattern)
|
9076
9076
|
| ~ begin (in_pattern.const_pattern)
|
9077
9077
|
| ~ end (in_pattern.const_pattern)
|
9078
9078
|
| ~~ expression (in_pattern.const_pattern.array_pattern)}
|
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.7.0.
|
4
|
+
version: 2.7.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- whitequark
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03-
|
11
|
+
date: 2020-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ast
|
@@ -297,9 +297,9 @@ licenses:
|
|
297
297
|
- MIT
|
298
298
|
metadata:
|
299
299
|
bug_tracker_uri: https://github.com/whitequark/parser/issues
|
300
|
-
changelog_uri: https://github.com/whitequark/parser/blob/v2.7.0.
|
301
|
-
documentation_uri: https://www.rubydoc.info/gems/parser/2.7.0.
|
302
|
-
source_code_uri: https://github.com/whitequark/parser/tree/v2.7.0.
|
300
|
+
changelog_uri: https://github.com/whitequark/parser/blob/v2.7.0.5/CHANGELOG.md
|
301
|
+
documentation_uri: https://www.rubydoc.info/gems/parser/2.7.0.5
|
302
|
+
source_code_uri: https://github.com/whitequark/parser/tree/v2.7.0.5
|
303
303
|
post_install_message:
|
304
304
|
rdoc_options: []
|
305
305
|
require_paths:
|