parser 3.2.0.0 → 3.2.2.1
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/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'
|