parser 2.7.0.4 → 2.7.0.5
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/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:
|