parser 3.2.0.0 → 3.2.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/parser/all.rb +1 -0
- data/lib/parser/ast/node.rb +2 -2
- data/lib/parser/builders/default.rb +16 -22
- data/lib/parser/current.rb +13 -4
- data/lib/parser/lexer-F0.rb +8695 -13467
- data/lib/parser/lexer-F1.rb +11590 -17983
- data/lib/parser/lexer-strings.rb +5424 -0
- data/lib/parser/macruby.rb +1 -1
- data/lib/parser/ruby18.rb +1 -1
- data/lib/parser/ruby19.rb +1 -1
- data/lib/parser/ruby20.rb +1 -1
- data/lib/parser/ruby21.rb +1 -1
- data/lib/parser/ruby22.rb +1 -1
- data/lib/parser/ruby23.rb +1 -1
- data/lib/parser/ruby24.rb +1 -1
- data/lib/parser/ruby25.rb +1 -1
- data/lib/parser/ruby26.rb +1 -1
- data/lib/parser/ruby27.rb +1 -1
- data/lib/parser/ruby30.rb +1 -1
- data/lib/parser/ruby31.rb +1 -1
- data/lib/parser/ruby32.rb +1 -1
- data/lib/parser/ruby33.rb +12702 -0
- data/lib/parser/rubymotion.rb +1 -1
- data/lib/parser/runner.rb +5 -0
- data/lib/parser/version.rb +1 -1
- data/lib/parser.rb +1 -0
- data/parser.gemspec +1 -1
- metadata +9 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8675f26d1fb8a457da79bb3f675a57647eefdefec8bf05d75bf97677e20860b0
|
4
|
+
data.tar.gz: fe0759d1f51da6d85b89b5cc9d1fb34a4493f2c58e71cef9598753b9643b2a0a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2271cfa20f5c8bd349e8465f0b5f4f667309c410ec7f622ec330e28adf4b896b560e0ce2f744bc267b6a7e4be687dfe351599660b200487de5ef9a7f2317121c
|
7
|
+
data.tar.gz: 86e4b5e6368f0857ebeed00fafd2fb9ff274288602458aff86eac29324fa743c5acf4d3d5e45e0ea767b2501ec315888ef37b154d8c75069826b02631320f31d
|
data/lib/parser/all.rb
CHANGED
data/lib/parser/ast/node.rb
CHANGED
@@ -5,8 +5,8 @@ module Parser
|
|
5
5
|
|
6
6
|
##
|
7
7
|
# {Parser::AST::Node} contains information about a single AST node and its
|
8
|
-
# child nodes. It extends the basic [AST::Node](
|
9
|
-
# class provided by gem [ast](
|
8
|
+
# child nodes. It extends the basic [AST::Node](https://www.rubydoc.info/gems/ast/AST/Node)
|
9
|
+
# class provided by gem [ast](https://www.rubydoc.info/gems/ast).
|
10
10
|
#
|
11
11
|
# @api public
|
12
12
|
#
|
@@ -538,29 +538,23 @@ module Parser
|
|
538
538
|
end
|
539
539
|
|
540
540
|
def associate(begin_t, pairs, end_t)
|
541
|
-
|
542
|
-
(i + 1).upto(pairs.length - 1) do |j|
|
543
|
-
key1, = *pairs[i]
|
544
|
-
key2, = *pairs[j]
|
545
|
-
|
546
|
-
do_warn = false
|
547
|
-
|
548
|
-
# keys have to be simple nodes, MRI ignores equal composite keys like
|
549
|
-
# `{ a(1) => 1, a(1) => 1 }`
|
550
|
-
case key1.type
|
551
|
-
when :sym, :str, :int, :float
|
552
|
-
if key1 == key2
|
553
|
-
do_warn = true
|
554
|
-
end
|
555
|
-
when :rational, :complex, :regexp
|
556
|
-
if @parser.version >= 31 && key1 == key2
|
557
|
-
do_warn = true
|
558
|
-
end
|
559
|
-
end
|
541
|
+
key_set = Set.new
|
560
542
|
|
561
|
-
|
562
|
-
|
563
|
-
|
543
|
+
pairs.each do |pair|
|
544
|
+
next unless pair.type.eql?(:pair)
|
545
|
+
|
546
|
+
key, = *pair
|
547
|
+
|
548
|
+
case key.type
|
549
|
+
when :sym, :str, :int, :float
|
550
|
+
when :rational, :complex, :regexp
|
551
|
+
next unless @parser.version >= 31
|
552
|
+
else
|
553
|
+
next
|
554
|
+
end
|
555
|
+
|
556
|
+
unless key_set.add?(key)
|
557
|
+
diagnostic :warning, :duplicate_hash_key, nil, key.loc.expression
|
564
558
|
end
|
565
559
|
end
|
566
560
|
|
data/lib/parser/current.rb
CHANGED
@@ -75,7 +75,7 @@ module Parser
|
|
75
75
|
CurrentRuby = Ruby26
|
76
76
|
|
77
77
|
when /^2\.7\./
|
78
|
-
current_version = '2.7.
|
78
|
+
current_version = '2.7.8'
|
79
79
|
if RUBY_VERSION != current_version
|
80
80
|
warn_syntax_deviation 'parser/ruby27', current_version
|
81
81
|
end
|
@@ -84,7 +84,7 @@ module Parser
|
|
84
84
|
CurrentRuby = Ruby27
|
85
85
|
|
86
86
|
when /^3\.0\./
|
87
|
-
current_version = '3.0.
|
87
|
+
current_version = '3.0.6'
|
88
88
|
if RUBY_VERSION != current_version
|
89
89
|
warn_syntax_deviation 'parser/ruby30', current_version
|
90
90
|
end
|
@@ -93,7 +93,7 @@ module Parser
|
|
93
93
|
CurrentRuby = Ruby30
|
94
94
|
|
95
95
|
when /^3\.1\./
|
96
|
-
current_version = '3.1.
|
96
|
+
current_version = '3.1.4'
|
97
97
|
if RUBY_VERSION != current_version
|
98
98
|
warn_syntax_deviation 'parser/ruby31', current_version
|
99
99
|
end
|
@@ -102,7 +102,7 @@ module Parser
|
|
102
102
|
CurrentRuby = Ruby31
|
103
103
|
|
104
104
|
when /^3\.2\./
|
105
|
-
current_version = '3.2.
|
105
|
+
current_version = '3.2.2'
|
106
106
|
if RUBY_VERSION != current_version
|
107
107
|
warn_syntax_deviation 'parser/ruby32', current_version
|
108
108
|
end
|
@@ -110,6 +110,15 @@ module Parser
|
|
110
110
|
require 'parser/ruby32'
|
111
111
|
CurrentRuby = Ruby32
|
112
112
|
|
113
|
+
when /^3\.3\./
|
114
|
+
current_version = '3.3.0-dev'
|
115
|
+
if RUBY_VERSION != current_version
|
116
|
+
warn_syntax_deviation 'parser/ruby33', current_version
|
117
|
+
end
|
118
|
+
|
119
|
+
require 'parser/ruby33'
|
120
|
+
CurrentRuby = Ruby33
|
121
|
+
|
113
122
|
else # :nocov:
|
114
123
|
# Keep this in sync with released Ruby.
|
115
124
|
warn_syntax_deviation 'parser/ruby32', '3.2.x'
|