ruby_parser 3.8.3 → 3.8.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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/{History.txt → History.rdoc} +8 -0
- data/Manifest.txt +2 -2
- data/{README.txt → README.rdoc} +0 -0
- data/Rakefile +1 -0
- data/lib/ruby18_parser.rb +1657 -1647
- data/lib/ruby18_parser.y +2 -2
- data/lib/ruby19_parser.rb +1632 -1636
- data/lib/ruby19_parser.y +2 -2
- data/lib/ruby20_parser.rb +1729 -1733
- data/lib/ruby20_parser.y +3 -3
- data/lib/ruby21_parser.rb +1849 -1853
- data/lib/ruby21_parser.y +3 -3
- data/lib/ruby22_parser.rb +1890 -1895
- data/lib/ruby22_parser.y +3 -3
- data/lib/ruby23_parser.rb +1807 -1808
- data/lib/ruby23_parser.y +3 -3
- data/lib/ruby_lexer.rb +1 -1
- data/lib/ruby_lexer.rex.rb +1 -1
- data/lib/ruby_parser.yy +3 -3
- data/lib/ruby_parser_extras.rb +2 -2
- data/test/test_ruby_parser.rb +14 -0
- data/test/test_ruby_parser_extras.rb +1 -1
- metadata +26 -26
- metadata.gz.sig +0 -0
data/lib/ruby23_parser.y
CHANGED
|
@@ -652,7 +652,7 @@ rule
|
|
|
652
652
|
| arg tDOT2 arg
|
|
653
653
|
{
|
|
654
654
|
v1, v2 = val[0], val[2]
|
|
655
|
-
if v1.node_type == :lit and v2.node_type == :lit and
|
|
655
|
+
if v1.node_type == :lit and v2.node_type == :lit and Integer === v1.last and Integer === v2.last then
|
|
656
656
|
result = s(:lit, (v1.last)..(v2.last))
|
|
657
657
|
else
|
|
658
658
|
result = s(:dot2, v1, v2)
|
|
@@ -661,7 +661,7 @@ rule
|
|
|
661
661
|
| arg tDOT3 arg
|
|
662
662
|
{
|
|
663
663
|
v1, v2 = val[0], val[2]
|
|
664
|
-
if v1.node_type == :lit and v2.node_type == :lit and
|
|
664
|
+
if v1.node_type == :lit and v2.node_type == :lit and Integer === v1.last and Integer === v2.last then
|
|
665
665
|
result = s(:lit, (v1.last)...(v2.last))
|
|
666
666
|
else
|
|
667
667
|
result = s(:dot3, v1, v2)
|
|
@@ -2216,7 +2216,7 @@ keyword_variable: kNIL { result = s(:nil) }
|
|
|
2216
2216
|
}
|
|
2217
2217
|
| kwrest_mark
|
|
2218
2218
|
{
|
|
2219
|
-
|
|
2219
|
+
result = :"**"
|
|
2220
2220
|
}
|
|
2221
2221
|
|
|
2222
2222
|
f_opt: f_arg_asgn tEQL arg_value
|
data/lib/ruby_lexer.rb
CHANGED
|
@@ -788,7 +788,7 @@ class RubyLexer
|
|
|
788
788
|
else
|
|
789
789
|
result(state, :kDO, value)
|
|
790
790
|
end
|
|
791
|
-
when in_lex_state?(:expr_beg, :expr_value) then
|
|
791
|
+
when in_lex_state?(:expr_beg, :expr_value, :expr_labelarg) then
|
|
792
792
|
result(state, keyword.id0, value)
|
|
793
793
|
when keyword.id0 != keyword.id1 then
|
|
794
794
|
result(:expr_beg, keyword.id1, value)
|
data/lib/ruby_lexer.rex.rb
CHANGED
data/lib/ruby_parser.yy
CHANGED
|
@@ -675,7 +675,7 @@ rule
|
|
|
675
675
|
| arg tDOT2 arg
|
|
676
676
|
{
|
|
677
677
|
v1, v2 = val[0], val[2]
|
|
678
|
-
if v1.node_type == :lit and v2.node_type == :lit and
|
|
678
|
+
if v1.node_type == :lit and v2.node_type == :lit and Integer === v1.last and Integer === v2.last then
|
|
679
679
|
result = s(:lit, (v1.last)..(v2.last))
|
|
680
680
|
else
|
|
681
681
|
result = s(:dot2, v1, v2)
|
|
@@ -684,7 +684,7 @@ rule
|
|
|
684
684
|
| arg tDOT3 arg
|
|
685
685
|
{
|
|
686
686
|
v1, v2 = val[0], val[2]
|
|
687
|
-
if v1.node_type == :lit and v2.node_type == :lit and
|
|
687
|
+
if v1.node_type == :lit and v2.node_type == :lit and Integer === v1.last and Integer === v2.last then
|
|
688
688
|
result = s(:lit, (v1.last)...(v2.last))
|
|
689
689
|
else
|
|
690
690
|
result = s(:dot3, v1, v2)
|
|
@@ -2287,7 +2287,7 @@ keyword_variable: kNIL { result = s(:nil) }
|
|
|
2287
2287
|
}
|
|
2288
2288
|
| kwrest_mark
|
|
2289
2289
|
{
|
|
2290
|
-
|
|
2290
|
+
result = :"**"
|
|
2291
2291
|
}
|
|
2292
2292
|
|
|
2293
2293
|
#if defined(RUBY20)
|
data/lib/ruby_parser_extras.rb
CHANGED
|
@@ -91,7 +91,7 @@ class RPStringScanner < StringScanner
|
|
|
91
91
|
end
|
|
92
92
|
|
|
93
93
|
module RubyParserStuff
|
|
94
|
-
VERSION = "3.8.
|
|
94
|
+
VERSION = "3.8.4" unless constants.include? "VERSION" # SIGH
|
|
95
95
|
|
|
96
96
|
attr_accessor :lexer, :in_def, :in_single, :file
|
|
97
97
|
attr_reader :env, :comments
|
|
@@ -109,7 +109,7 @@ module RubyParserStuff
|
|
|
109
109
|
|
|
110
110
|
ruby19 = "".respond_to? :encoding
|
|
111
111
|
|
|
112
|
-
#
|
|
112
|
+
# This is in sorted order of occurrence according to
|
|
113
113
|
# charlock_holmes against 500k files, with UTF_8 forced
|
|
114
114
|
# to the top.
|
|
115
115
|
#
|
data/test/test_ruby_parser.rb
CHANGED
|
@@ -2083,6 +2083,13 @@ module TestRubyParserShared19to22
|
|
|
2083
2083
|
assert_parse rb, pt
|
|
2084
2084
|
end
|
|
2085
2085
|
|
|
2086
|
+
def test_call_assoc_new_if_multiline
|
|
2087
|
+
rb = "a(b: if :c\n1\nelse\n2\nend)"
|
|
2088
|
+
pt = s(:call, nil, :a, s(:hash, s(:lit, :b), s(:if, s(:lit, :c), s(:lit, 1), s(:lit, 2))))
|
|
2089
|
+
|
|
2090
|
+
assert_parse rb, pt
|
|
2091
|
+
end
|
|
2092
|
+
|
|
2086
2093
|
def test_do_lambda
|
|
2087
2094
|
rb = "->() do end"
|
|
2088
2095
|
pt = s(:iter, s(:call, nil, :lambda), s(:args))
|
|
@@ -2255,6 +2262,13 @@ module TestRubyParserShared20to22
|
|
|
2255
2262
|
assert_parse rb, pt
|
|
2256
2263
|
end
|
|
2257
2264
|
|
|
2265
|
+
def test_defn_kwarg_kwsplat_anon
|
|
2266
|
+
rb = "def a(b: 1, **) end"
|
|
2267
|
+
pt = s(:defn, :a, s(:args, s(:kwarg, :b, s(:lit, 1)), :"**"), s(:nil))
|
|
2268
|
+
|
|
2269
|
+
assert_parse rb, pt
|
|
2270
|
+
end
|
|
2271
|
+
|
|
2258
2272
|
def test_defn_kwarg_env
|
|
2259
2273
|
rb = "def test(**testing) test_splat(**testing) end"
|
|
2260
2274
|
pt = s(:defn, :test, s(:args, :"**testing"),
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ruby_parser
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.8.
|
|
4
|
+
version: 3.8.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ryan Davis
|
|
@@ -30,92 +30,92 @@ cert_chain:
|
|
|
30
30
|
E4oJcnPkJAr0rw504JGtlZtONZQblwmRJOIdXzolaE3NRGUzGVOUSptZppAKiavY
|
|
31
31
|
fO6tdKQc/5RfA8oQEkg8hrxA5PQSz4TOFJGLpFvIapEk6tMruQ0bHgkhr9auXg==
|
|
32
32
|
-----END CERTIFICATE-----
|
|
33
|
-
date:
|
|
33
|
+
date: 2017-01-13 00:00:00.000000000 Z
|
|
34
34
|
dependencies:
|
|
35
35
|
- !ruby/object:Gem::Dependency
|
|
36
36
|
name: sexp_processor
|
|
37
37
|
requirement: !ruby/object:Gem::Requirement
|
|
38
38
|
requirements:
|
|
39
|
-
- - ~>
|
|
39
|
+
- - "~>"
|
|
40
40
|
- !ruby/object:Gem::Version
|
|
41
41
|
version: '4.1'
|
|
42
42
|
type: :runtime
|
|
43
43
|
prerelease: false
|
|
44
44
|
version_requirements: !ruby/object:Gem::Requirement
|
|
45
45
|
requirements:
|
|
46
|
-
- - ~>
|
|
46
|
+
- - "~>"
|
|
47
47
|
- !ruby/object:Gem::Version
|
|
48
48
|
version: '4.1'
|
|
49
49
|
- !ruby/object:Gem::Dependency
|
|
50
50
|
name: rake
|
|
51
51
|
requirement: !ruby/object:Gem::Requirement
|
|
52
52
|
requirements:
|
|
53
|
-
- - <
|
|
53
|
+
- - "<"
|
|
54
54
|
- !ruby/object:Gem::Version
|
|
55
55
|
version: '11'
|
|
56
56
|
type: :development
|
|
57
57
|
prerelease: false
|
|
58
58
|
version_requirements: !ruby/object:Gem::Requirement
|
|
59
59
|
requirements:
|
|
60
|
-
- - <
|
|
60
|
+
- - "<"
|
|
61
61
|
- !ruby/object:Gem::Version
|
|
62
62
|
version: '11'
|
|
63
63
|
- !ruby/object:Gem::Dependency
|
|
64
64
|
name: oedipus_lex
|
|
65
65
|
requirement: !ruby/object:Gem::Requirement
|
|
66
66
|
requirements:
|
|
67
|
-
- - ~>
|
|
67
|
+
- - "~>"
|
|
68
68
|
- !ruby/object:Gem::Version
|
|
69
69
|
version: '2.1'
|
|
70
70
|
type: :development
|
|
71
71
|
prerelease: false
|
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
|
73
73
|
requirements:
|
|
74
|
-
- - ~>
|
|
74
|
+
- - "~>"
|
|
75
75
|
- !ruby/object:Gem::Version
|
|
76
76
|
version: '2.1'
|
|
77
77
|
- !ruby/object:Gem::Dependency
|
|
78
78
|
name: rdoc
|
|
79
79
|
requirement: !ruby/object:Gem::Requirement
|
|
80
80
|
requirements:
|
|
81
|
-
- - ~>
|
|
81
|
+
- - "~>"
|
|
82
82
|
- !ruby/object:Gem::Version
|
|
83
83
|
version: '4.0'
|
|
84
84
|
type: :development
|
|
85
85
|
prerelease: false
|
|
86
86
|
version_requirements: !ruby/object:Gem::Requirement
|
|
87
87
|
requirements:
|
|
88
|
-
- - ~>
|
|
88
|
+
- - "~>"
|
|
89
89
|
- !ruby/object:Gem::Version
|
|
90
90
|
version: '4.0'
|
|
91
91
|
- !ruby/object:Gem::Dependency
|
|
92
92
|
name: racc
|
|
93
93
|
requirement: !ruby/object:Gem::Requirement
|
|
94
94
|
requirements:
|
|
95
|
-
- - ~>
|
|
95
|
+
- - "~>"
|
|
96
96
|
- !ruby/object:Gem::Version
|
|
97
97
|
version: 1.4.6
|
|
98
98
|
type: :development
|
|
99
99
|
prerelease: false
|
|
100
100
|
version_requirements: !ruby/object:Gem::Requirement
|
|
101
101
|
requirements:
|
|
102
|
-
- - ~>
|
|
102
|
+
- - "~>"
|
|
103
103
|
- !ruby/object:Gem::Version
|
|
104
104
|
version: 1.4.6
|
|
105
105
|
- !ruby/object:Gem::Dependency
|
|
106
106
|
name: hoe
|
|
107
107
|
requirement: !ruby/object:Gem::Requirement
|
|
108
108
|
requirements:
|
|
109
|
-
- - ~>
|
|
109
|
+
- - "~>"
|
|
110
110
|
- !ruby/object:Gem::Version
|
|
111
|
-
version: '3.
|
|
111
|
+
version: '3.16'
|
|
112
112
|
type: :development
|
|
113
113
|
prerelease: false
|
|
114
114
|
version_requirements: !ruby/object:Gem::Requirement
|
|
115
115
|
requirements:
|
|
116
|
-
- - ~>
|
|
116
|
+
- - "~>"
|
|
117
117
|
- !ruby/object:Gem::Version
|
|
118
|
-
version: '3.
|
|
118
|
+
version: '3.16'
|
|
119
119
|
description: |-
|
|
120
120
|
ruby_parser (RP) is a ruby parser written in pure ruby (utilizing
|
|
121
121
|
racc--which does by default use a C extension). RP's output is
|
|
@@ -150,14 +150,14 @@ executables:
|
|
|
150
150
|
- ruby_parse_extract_error
|
|
151
151
|
extensions: []
|
|
152
152
|
extra_rdoc_files:
|
|
153
|
-
- History.
|
|
153
|
+
- History.rdoc
|
|
154
154
|
- Manifest.txt
|
|
155
|
-
- README.
|
|
155
|
+
- README.rdoc
|
|
156
156
|
files:
|
|
157
|
-
- .autotest
|
|
158
|
-
- History.
|
|
157
|
+
- ".autotest"
|
|
158
|
+
- History.rdoc
|
|
159
159
|
- Manifest.txt
|
|
160
|
-
- README.
|
|
160
|
+
- README.rdoc
|
|
161
161
|
- Rakefile
|
|
162
162
|
- bin/ruby_parse
|
|
163
163
|
- bin/ruby_parse_extract_error
|
|
@@ -189,23 +189,23 @@ licenses:
|
|
|
189
189
|
metadata: {}
|
|
190
190
|
post_install_message:
|
|
191
191
|
rdoc_options:
|
|
192
|
-
- --main
|
|
193
|
-
- README.
|
|
192
|
+
- "--main"
|
|
193
|
+
- README.rdoc
|
|
194
194
|
require_paths:
|
|
195
195
|
- lib
|
|
196
196
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
197
197
|
requirements:
|
|
198
|
-
- -
|
|
198
|
+
- - ">="
|
|
199
199
|
- !ruby/object:Gem::Version
|
|
200
200
|
version: '0'
|
|
201
201
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
202
202
|
requirements:
|
|
203
|
-
- -
|
|
203
|
+
- - ">="
|
|
204
204
|
- !ruby/object:Gem::Version
|
|
205
205
|
version: '0'
|
|
206
206
|
requirements: []
|
|
207
207
|
rubyforge_project:
|
|
208
|
-
rubygems_version: 2.
|
|
208
|
+
rubygems_version: 2.6.8
|
|
209
209
|
signing_key:
|
|
210
210
|
specification_version: 4
|
|
211
211
|
summary: ruby_parser (RP) is a ruby parser written in pure ruby (utilizing racc--which
|
metadata.gz.sig
CHANGED
|
Binary file
|