parser 3.2.2.4 → 3.3.11.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/LICENSE.txt +2 -1
- data/lib/gauntlet_parser.rb +1 -1
- data/lib/parser/all.rb +15 -14
- data/lib/parser/ast/processor.rb +3 -1
- data/lib/parser/base.rb +3 -0
- data/lib/parser/builders/default.rb +40 -10
- data/lib/parser/context.rb +2 -0
- data/lib/parser/current.rb +37 -19
- data/lib/parser/lexer/literal.rb +16 -1
- data/lib/parser/lexer-F0.rb +360 -299
- data/lib/parser/lexer-F1.rb +634 -564
- data/lib/parser/lexer-strings.rb +89 -80
- data/lib/parser/macruby.rb +3 -3
- data/lib/parser/messages.rb +46 -41
- data/lib/parser/meta.rb +11 -3
- data/lib/parser/ruby18.rb +3 -3
- data/lib/parser/ruby19.rb +3 -3
- data/lib/parser/ruby20.rb +3 -3
- data/lib/parser/ruby21.rb +3 -3
- data/lib/parser/ruby22.rb +3 -3
- data/lib/parser/ruby23.rb +3 -3
- data/lib/parser/ruby24.rb +3 -3
- data/lib/parser/ruby25.rb +3 -3
- data/lib/parser/ruby26.rb +3 -3
- data/lib/parser/ruby27.rb +5 -4
- data/lib/parser/ruby30.rb +5 -4
- data/lib/parser/ruby31.rb +5 -4
- data/lib/parser/ruby32.rb +5 -4
- data/lib/parser/ruby33.rb +6764 -6878
- data/lib/parser/ruby34.rb +12597 -0
- data/lib/parser/rubymotion.rb +3 -3
- data/lib/parser/runner/ruby_parse.rb +3 -3
- data/lib/parser/runner/ruby_rewrite.rb +1 -1
- data/lib/parser/runner.rb +37 -31
- data/lib/parser/source/buffer.rb +6 -1
- data/lib/parser/source/tree_rewriter/action.rb +5 -4
- data/lib/parser/static_environment.rb +56 -9
- data/lib/parser/unknown_encoding_in_magic_comment_error.rb +15 -0
- data/lib/parser/version.rb +1 -1
- data/lib/parser.rb +54 -53
- data/parser.gemspec +1 -1
- metadata +8 -16
- data/lib/parser/ruby28.rb +0 -8047
data/lib/parser/rubymotion.rb
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# -*- encoding:utf-8; warn-indent:false; frozen_string_literal: true -*-
|
|
2
2
|
#
|
|
3
3
|
# DO NOT MODIFY!!!!
|
|
4
|
-
# This file is automatically generated by Racc 1.
|
|
5
|
-
# from Racc grammar file "".
|
|
4
|
+
# This file is automatically generated by Racc 1.8.1
|
|
5
|
+
# from Racc grammar file "rubymotion.y".
|
|
6
6
|
#
|
|
7
7
|
|
|
8
8
|
require 'racc/parser.rb'
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
require_relative '../parser'
|
|
12
12
|
|
|
13
13
|
module Parser
|
|
14
14
|
class RubyMotion < Parser::Base
|
data/lib/parser/runner.rb
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'benchmark'
|
|
4
3
|
require 'find'
|
|
5
4
|
require 'optparse'
|
|
6
5
|
|
|
7
|
-
|
|
6
|
+
require_relative '../parser'
|
|
8
7
|
|
|
9
8
|
module Parser
|
|
10
9
|
|
|
@@ -64,82 +63,87 @@ module Parser
|
|
|
64
63
|
end
|
|
65
64
|
|
|
66
65
|
opts.on '--18', 'Parse as Ruby 1.8.7 would' do
|
|
67
|
-
|
|
66
|
+
require_relative 'ruby18'
|
|
68
67
|
@parser_class = Parser::Ruby18
|
|
69
68
|
end
|
|
70
69
|
|
|
71
70
|
opts.on '--19', 'Parse as Ruby 1.9.3 would' do
|
|
72
|
-
|
|
71
|
+
require_relative 'ruby19'
|
|
73
72
|
@parser_class = Parser::Ruby19
|
|
74
73
|
end
|
|
75
74
|
|
|
76
75
|
opts.on '--20', 'Parse as Ruby 2.0 would' do
|
|
77
|
-
|
|
76
|
+
require_relative 'ruby20'
|
|
78
77
|
@parser_class = Parser::Ruby20
|
|
79
78
|
end
|
|
80
79
|
|
|
81
80
|
opts.on '--21', 'Parse as Ruby 2.1 would' do
|
|
82
|
-
|
|
81
|
+
require_relative 'ruby21'
|
|
83
82
|
@parser_class = Parser::Ruby21
|
|
84
83
|
end
|
|
85
84
|
|
|
86
85
|
opts.on '--22', 'Parse as Ruby 2.2 would' do
|
|
87
|
-
|
|
86
|
+
require_relative 'ruby22'
|
|
88
87
|
@parser_class = Parser::Ruby22
|
|
89
88
|
end
|
|
90
89
|
|
|
91
90
|
opts.on '--23', 'Parse as Ruby 2.3 would' do
|
|
92
|
-
|
|
91
|
+
require_relative 'ruby23'
|
|
93
92
|
@parser_class = Parser::Ruby23
|
|
94
93
|
end
|
|
95
94
|
|
|
96
95
|
opts.on '--24', 'Parse as Ruby 2.4 would' do
|
|
97
|
-
|
|
96
|
+
require_relative 'ruby24'
|
|
98
97
|
@parser_class = Parser::Ruby24
|
|
99
98
|
end
|
|
100
99
|
|
|
101
100
|
opts.on '--25', 'Parse as Ruby 2.5 would' do
|
|
102
|
-
|
|
101
|
+
require_relative 'ruby25'
|
|
103
102
|
@parser_class = Parser::Ruby25
|
|
104
103
|
end
|
|
105
104
|
|
|
106
105
|
opts.on '--26', 'Parse as Ruby 2.6 would' do
|
|
107
|
-
|
|
106
|
+
require_relative 'ruby26'
|
|
108
107
|
@parser_class = Parser::Ruby26
|
|
109
108
|
end
|
|
110
109
|
|
|
111
110
|
opts.on '--27', 'Parse as Ruby 2.7 would' do
|
|
112
|
-
|
|
111
|
+
require_relative 'ruby27'
|
|
113
112
|
@parser_class = Parser::Ruby27
|
|
114
113
|
end
|
|
115
114
|
|
|
116
115
|
opts.on '--30', 'Parse as Ruby 3.0 would' do
|
|
117
|
-
|
|
116
|
+
require_relative 'ruby30'
|
|
118
117
|
@parser_class = Parser::Ruby30
|
|
119
118
|
end
|
|
120
119
|
|
|
121
120
|
opts.on '--31', 'Parse as Ruby 3.1 would' do
|
|
122
|
-
|
|
121
|
+
require_relative 'ruby31'
|
|
123
122
|
@parser_class = Parser::Ruby31
|
|
124
123
|
end
|
|
125
124
|
|
|
126
125
|
opts.on '--32', 'Parse as Ruby 3.2 would' do
|
|
127
|
-
|
|
126
|
+
require_relative 'ruby32'
|
|
128
127
|
@parser_class = Parser::Ruby32
|
|
129
128
|
end
|
|
130
129
|
|
|
131
130
|
opts.on '--33', 'Parse as Ruby 3.3 would' do
|
|
132
|
-
|
|
131
|
+
require_relative 'ruby33'
|
|
133
132
|
@parser_class = Parser::Ruby33
|
|
134
133
|
end
|
|
135
134
|
|
|
135
|
+
opts.on '--34', 'Parse as Ruby 3.4 would' do
|
|
136
|
+
require_relative 'ruby34'
|
|
137
|
+
@parser_class = Parser::Ruby34
|
|
138
|
+
end
|
|
139
|
+
|
|
136
140
|
opts.on '--mac', 'Parse as MacRuby 0.12 would' do
|
|
137
|
-
|
|
141
|
+
require_relative 'macruby'
|
|
138
142
|
@parser_class = Parser::MacRuby
|
|
139
143
|
end
|
|
140
144
|
|
|
141
145
|
opts.on '--ios', 'Parse as mid-2015 RubyMotion would' do
|
|
142
|
-
|
|
146
|
+
require_relative 'rubymotion'
|
|
143
147
|
@parser_class = Parser::RubyMotion
|
|
144
148
|
end
|
|
145
149
|
|
|
@@ -188,7 +192,7 @@ module Parser
|
|
|
188
192
|
end
|
|
189
193
|
|
|
190
194
|
if @parser_class.nil?
|
|
191
|
-
|
|
195
|
+
require_relative 'current'
|
|
192
196
|
@parser_class = Parser::CurrentRuby
|
|
193
197
|
end
|
|
194
198
|
end
|
|
@@ -215,14 +219,13 @@ module Parser
|
|
|
215
219
|
end
|
|
216
220
|
|
|
217
221
|
def process_all_input
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
end
|
|
222
|
+
time_start = Process.clock_gettime(Process::CLOCK_MONOTONIC)
|
|
223
|
+
process_fragments
|
|
224
|
+
process_files
|
|
225
|
+
time_elapsed = Process.clock_gettime(Process::CLOCK_MONOTONIC) - time_start
|
|
223
226
|
|
|
224
227
|
if @benchmark
|
|
225
|
-
report_with_time(
|
|
228
|
+
report_with_time(time_elapsed)
|
|
226
229
|
end
|
|
227
230
|
end
|
|
228
231
|
|
|
@@ -239,7 +242,12 @@ module Parser
|
|
|
239
242
|
|
|
240
243
|
def process_files
|
|
241
244
|
@files.each do |filename|
|
|
242
|
-
source =
|
|
245
|
+
source = begin
|
|
246
|
+
File.read(filename).force_encoding(@parser.default_encoding)
|
|
247
|
+
rescue Errno::EISDIR
|
|
248
|
+
# Will happen for a folder called `foo.rb`. Just catch this here, it's cheaper than checking every file.
|
|
249
|
+
next
|
|
250
|
+
end
|
|
243
251
|
|
|
244
252
|
buffer = Parser::Source::Buffer.new(filename)
|
|
245
253
|
|
|
@@ -273,12 +281,10 @@ module Parser
|
|
|
273
281
|
raise NotImplementedError, "implement #{self.class}##{__callee__}"
|
|
274
282
|
end
|
|
275
283
|
|
|
276
|
-
def report_with_time(
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
speed = '%.3f' % (@source_size / cpu_time / 1000)
|
|
284
|
+
def report_with_time(time_elapsed)
|
|
285
|
+
speed = '%.3f' % (@source_size / time_elapsed / 1000)
|
|
280
286
|
puts "Parsed #{@source_count} files (#{@source_size} characters)" \
|
|
281
|
-
" in #{'%.2f' %
|
|
287
|
+
" in #{'%.2f' % time_elapsed} seconds (#{speed} kchars/s)."
|
|
282
288
|
|
|
283
289
|
if defined?(RUBY_ENGINE)
|
|
284
290
|
engine = RUBY_ENGINE
|
data/lib/parser/source/buffer.rb
CHANGED
|
@@ -46,6 +46,7 @@ module Parser
|
|
|
46
46
|
# magic encoding comment or UTF-8 BOM. `string` can be in any encoding.
|
|
47
47
|
#
|
|
48
48
|
# @param [String] string
|
|
49
|
+
# @raise [Parser::UnknownEncodingInMagicComment] if the encoding is not recognized
|
|
49
50
|
# @return [String, nil] encoding name, if recognized
|
|
50
51
|
#
|
|
51
52
|
def self.recognize_encoding(string)
|
|
@@ -66,7 +67,11 @@ module Parser
|
|
|
66
67
|
return nil if encoding_line.nil? || encoding_line[0] != '#'
|
|
67
68
|
|
|
68
69
|
if (result = ENCODING_RE.match(encoding_line))
|
|
69
|
-
|
|
70
|
+
begin
|
|
71
|
+
Encoding.find(result[3] || result[4] || result[6])
|
|
72
|
+
rescue ArgumentError => e
|
|
73
|
+
raise Parser::UnknownEncodingInMagicComment, e.message
|
|
74
|
+
end
|
|
70
75
|
else
|
|
71
76
|
nil
|
|
72
77
|
end
|
|
@@ -6,9 +6,10 @@ module Parser
|
|
|
6
6
|
# @api private
|
|
7
7
|
#
|
|
8
8
|
# Actions are arranged in a tree and get combined so that:
|
|
9
|
-
#
|
|
10
|
-
#
|
|
11
|
-
#
|
|
9
|
+
#
|
|
10
|
+
# * Children are strictly contained by their parent
|
|
11
|
+
# * Siblings are all disjointed from one another and ordered
|
|
12
|
+
# * Only actions with `replacement == nil` may have children
|
|
12
13
|
#
|
|
13
14
|
class TreeRewriter::Action
|
|
14
15
|
attr_reader :range, :replacement, :insert_before, :insert_after
|
|
@@ -60,7 +61,7 @@ module Parser
|
|
|
60
61
|
|
|
61
62
|
##
|
|
62
63
|
# A root action has its range set to the whole source range, even
|
|
63
|
-
# though it typically
|
|
64
|
+
# though it typically does not act on that range.
|
|
64
65
|
# This method returns the action as if it was a child action with
|
|
65
66
|
# its range contracted.
|
|
66
67
|
# @return [Action]
|
|
@@ -4,9 +4,15 @@ module Parser
|
|
|
4
4
|
|
|
5
5
|
class StaticEnvironment
|
|
6
6
|
FORWARD_ARGS = :FORWARD_ARGS
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
|
|
8
|
+
ANONYMOUS_RESTARG_IN_CURRENT_SCOPE = :ANONYMOUS_RESTARG_IN_CURRENT_SCOPE
|
|
9
|
+
ANONYMOUS_RESTARG_INHERITED = :ANONYMOUS_RESTARG_INHERITED
|
|
10
|
+
|
|
11
|
+
ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE = :ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE
|
|
12
|
+
ANONYMOUS_KWRESTARG_INHERITED = :ANONYMOUS_KWRESTARG_INHERITED
|
|
13
|
+
|
|
14
|
+
ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE = :ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE
|
|
15
|
+
ANONYMOUS_BLOCKARG_INHERITED = :ANONYMOUS_BLOCKARG_INHERITED
|
|
10
16
|
|
|
11
17
|
def initialize
|
|
12
18
|
reset
|
|
@@ -27,6 +33,15 @@ module Parser
|
|
|
27
33
|
def extend_dynamic
|
|
28
34
|
@stack.push(@variables)
|
|
29
35
|
@variables = @variables.dup
|
|
36
|
+
if @variables.delete(ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE)
|
|
37
|
+
@variables.add(ANONYMOUS_BLOCKARG_INHERITED)
|
|
38
|
+
end
|
|
39
|
+
if @variables.delete(ANONYMOUS_RESTARG_IN_CURRENT_SCOPE)
|
|
40
|
+
@variables.add(ANONYMOUS_RESTARG_INHERITED)
|
|
41
|
+
end
|
|
42
|
+
if @variables.delete(ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE)
|
|
43
|
+
@variables.add(ANONYMOUS_KWRESTARG_INHERITED)
|
|
44
|
+
end
|
|
30
45
|
|
|
31
46
|
self
|
|
32
47
|
end
|
|
@@ -47,6 +62,8 @@ module Parser
|
|
|
47
62
|
@variables.include?(name.to_sym)
|
|
48
63
|
end
|
|
49
64
|
|
|
65
|
+
# Forward args
|
|
66
|
+
|
|
50
67
|
def declare_forward_args
|
|
51
68
|
declare(FORWARD_ARGS)
|
|
52
69
|
end
|
|
@@ -55,28 +72,58 @@ module Parser
|
|
|
55
72
|
declared?(FORWARD_ARGS)
|
|
56
73
|
end
|
|
57
74
|
|
|
75
|
+
# Anonymous blockarg
|
|
76
|
+
|
|
58
77
|
def declare_anonymous_blockarg
|
|
59
|
-
declare(
|
|
78
|
+
declare(ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE)
|
|
60
79
|
end
|
|
61
80
|
|
|
62
81
|
def declared_anonymous_blockarg?
|
|
63
|
-
declared?(
|
|
82
|
+
declared?(ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE) || declared?(ANONYMOUS_BLOCKARG_INHERITED)
|
|
64
83
|
end
|
|
65
84
|
|
|
85
|
+
def declared_anonymous_blockarg_in_current_scpe?
|
|
86
|
+
declared?(ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE)
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def parent_has_anonymous_blockarg?
|
|
90
|
+
@stack.any? { |variables| variables.include?(ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE) }
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
# Anonymous restarg
|
|
94
|
+
|
|
66
95
|
def declare_anonymous_restarg
|
|
67
|
-
declare(
|
|
96
|
+
declare(ANONYMOUS_RESTARG_IN_CURRENT_SCOPE)
|
|
68
97
|
end
|
|
69
98
|
|
|
70
99
|
def declared_anonymous_restarg?
|
|
71
|
-
declared?(
|
|
100
|
+
declared?(ANONYMOUS_RESTARG_IN_CURRENT_SCOPE) || declared?(ANONYMOUS_RESTARG_INHERITED)
|
|
72
101
|
end
|
|
73
102
|
|
|
103
|
+
def declared_anonymous_restarg_in_current_scope?
|
|
104
|
+
declared?(ANONYMOUS_RESTARG_IN_CURRENT_SCOPE)
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def parent_has_anonymous_restarg?
|
|
108
|
+
@stack.any? { |variables| variables.include?(ANONYMOUS_RESTARG_IN_CURRENT_SCOPE) }
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# Anonymous kwresarg
|
|
112
|
+
|
|
74
113
|
def declare_anonymous_kwrestarg
|
|
75
|
-
declare(
|
|
114
|
+
declare(ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE)
|
|
76
115
|
end
|
|
77
116
|
|
|
78
117
|
def declared_anonymous_kwrestarg?
|
|
79
|
-
declared?(
|
|
118
|
+
declared?(ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE) || declared?(ANONYMOUS_KWRESTARG_INHERITED)
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def declared_anonymous_kwrestarg_in_current_scope?
|
|
122
|
+
declared?(ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE)
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
def parent_has_anonymous_kwrestarg?
|
|
126
|
+
@stack.any? { |variables| variables.include?(ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE) }
|
|
80
127
|
end
|
|
81
128
|
|
|
82
129
|
def empty?
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Parser
|
|
4
|
+
##
|
|
5
|
+
# {Parser::UnknownEncodingInMagicComment} is raised when a magic encoding
|
|
6
|
+
# comment is encountered that the currently running Ruby version doesn't
|
|
7
|
+
# recognize. It inherits from {ArgumentError} since that is the exception
|
|
8
|
+
# Ruby itself raises when trying to execute a file with an unknown encoding.
|
|
9
|
+
# As such, it is also not a {Parser::SyntaxError}.
|
|
10
|
+
#
|
|
11
|
+
# @api public
|
|
12
|
+
#
|
|
13
|
+
class UnknownEncodingInMagicComment < ArgumentError
|
|
14
|
+
end
|
|
15
|
+
end
|
data/lib/parser/version.rb
CHANGED
data/lib/parser.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
if RUBY_VERSION =~ /^1\.[89]\./
|
|
4
|
-
|
|
4
|
+
require_relative 'parser/version'
|
|
5
5
|
raise LoadError, <<-UNSUPPORTED_VERSION_MSG
|
|
6
6
|
parser v#{Parser::VERSION} cannot run on Ruby #{RUBY_VERSION}.
|
|
7
7
|
Please upgrade to Ruby 2.0.0 or higher, or use an older version of the parser gem.
|
|
@@ -17,74 +17,75 @@ require 'ast'
|
|
|
17
17
|
# @api public
|
|
18
18
|
#
|
|
19
19
|
module Parser
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
require_relative 'parser/version'
|
|
21
|
+
require_relative 'parser/messages'
|
|
22
|
+
require_relative 'parser/deprecation'
|
|
23
23
|
|
|
24
24
|
module AST
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
require_relative 'parser/ast/node'
|
|
26
|
+
require_relative 'parser/ast/processor'
|
|
27
|
+
require_relative 'parser/meta'
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
module Source
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
31
|
+
require_relative 'parser/source/buffer'
|
|
32
|
+
require_relative 'parser/source/range'
|
|
33
|
+
|
|
34
|
+
require_relative 'parser/source/comment'
|
|
35
|
+
require_relative 'parser/source/comment/associator'
|
|
36
|
+
|
|
37
|
+
require_relative 'parser/source/rewriter'
|
|
38
|
+
require_relative 'parser/source/rewriter/action'
|
|
39
|
+
require_relative 'parser/source/tree_rewriter'
|
|
40
|
+
require_relative 'parser/source/tree_rewriter/action'
|
|
41
|
+
|
|
42
|
+
require_relative 'parser/source/map'
|
|
43
|
+
require_relative 'parser/source/map/operator'
|
|
44
|
+
require_relative 'parser/source/map/collection'
|
|
45
|
+
require_relative 'parser/source/map/constant'
|
|
46
|
+
require_relative 'parser/source/map/variable'
|
|
47
|
+
require_relative 'parser/source/map/keyword'
|
|
48
|
+
require_relative 'parser/source/map/definition'
|
|
49
|
+
require_relative 'parser/source/map/method_definition'
|
|
50
|
+
require_relative 'parser/source/map/send'
|
|
51
|
+
require_relative 'parser/source/map/index'
|
|
52
|
+
require_relative 'parser/source/map/condition'
|
|
53
|
+
require_relative 'parser/source/map/ternary'
|
|
54
|
+
require_relative 'parser/source/map/for'
|
|
55
|
+
require_relative 'parser/source/map/rescue_body'
|
|
56
|
+
require_relative 'parser/source/map/heredoc'
|
|
57
|
+
require_relative 'parser/source/map/objc_kwarg'
|
|
58
58
|
end
|
|
59
59
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
require_relative 'parser/syntax_error'
|
|
61
|
+
require_relative 'parser/clobbering_error'
|
|
62
|
+
require_relative 'parser/unknown_encoding_in_magic_comment_error'
|
|
63
|
+
require_relative 'parser/diagnostic'
|
|
64
|
+
require_relative 'parser/diagnostic/engine'
|
|
64
65
|
|
|
65
|
-
|
|
66
|
+
require_relative 'parser/static_environment'
|
|
66
67
|
|
|
67
68
|
if RUBY_ENGINE == 'truffleruby'
|
|
68
|
-
|
|
69
|
+
require_relative 'parser/lexer-F0'
|
|
69
70
|
else
|
|
70
|
-
|
|
71
|
+
require_relative 'parser/lexer-F1'
|
|
71
72
|
end
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
require_relative 'parser/lexer-strings'
|
|
74
|
+
require_relative 'parser/lexer/literal'
|
|
75
|
+
require_relative 'parser/lexer/stack_state'
|
|
76
|
+
require_relative 'parser/lexer/dedenter'
|
|
76
77
|
|
|
77
78
|
module Builders
|
|
78
|
-
|
|
79
|
+
require_relative 'parser/builders/default'
|
|
79
80
|
end
|
|
80
81
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
82
|
+
require_relative 'parser/context'
|
|
83
|
+
require_relative 'parser/max_numparam_stack'
|
|
84
|
+
require_relative 'parser/current_arg_stack'
|
|
85
|
+
require_relative 'parser/variables_stack'
|
|
85
86
|
|
|
86
|
-
|
|
87
|
+
require_relative 'parser/base'
|
|
87
88
|
|
|
88
|
-
|
|
89
|
-
|
|
89
|
+
require_relative 'parser/rewriter'
|
|
90
|
+
require_relative 'parser/tree_rewriter'
|
|
90
91
|
end
|
data/parser.gemspec
CHANGED
|
@@ -29,7 +29,7 @@ Gem::Specification.new do |spec|
|
|
|
29
29
|
spec.add_dependency 'ast', '~> 2.4.1'
|
|
30
30
|
spec.add_dependency 'racc'
|
|
31
31
|
|
|
32
|
-
spec.add_development_dependency 'bundler', '>= 1.15'
|
|
32
|
+
spec.add_development_dependency 'bundler', '>= 1.15'
|
|
33
33
|
spec.add_development_dependency 'rake', '~> 13.0.1'
|
|
34
34
|
spec.add_development_dependency 'cliver', '~> 0.3.2'
|
|
35
35
|
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: parser
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.3.11.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- whitequark
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 2026-03-27 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: ast
|
|
@@ -45,9 +44,6 @@ dependencies:
|
|
|
45
44
|
- - ">="
|
|
46
45
|
- !ruby/object:Gem::Version
|
|
47
46
|
version: '1.15'
|
|
48
|
-
- - "<"
|
|
49
|
-
- !ruby/object:Gem::Version
|
|
50
|
-
version: 3.0.0
|
|
51
47
|
type: :development
|
|
52
48
|
prerelease: false
|
|
53
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -55,9 +51,6 @@ dependencies:
|
|
|
55
51
|
- - ">="
|
|
56
52
|
- !ruby/object:Gem::Version
|
|
57
53
|
version: '1.15'
|
|
58
|
-
- - "<"
|
|
59
|
-
- !ruby/object:Gem::Version
|
|
60
|
-
version: 3.0.0
|
|
61
54
|
- !ruby/object:Gem::Dependency
|
|
62
55
|
name: rake
|
|
63
56
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -205,11 +198,11 @@ files:
|
|
|
205
198
|
- lib/parser/ruby25.rb
|
|
206
199
|
- lib/parser/ruby26.rb
|
|
207
200
|
- lib/parser/ruby27.rb
|
|
208
|
-
- lib/parser/ruby28.rb
|
|
209
201
|
- lib/parser/ruby30.rb
|
|
210
202
|
- lib/parser/ruby31.rb
|
|
211
203
|
- lib/parser/ruby32.rb
|
|
212
204
|
- lib/parser/ruby33.rb
|
|
205
|
+
- lib/parser/ruby34.rb
|
|
213
206
|
- lib/parser/rubymotion.rb
|
|
214
207
|
- lib/parser/runner.rb
|
|
215
208
|
- lib/parser/runner/ruby_parse.rb
|
|
@@ -241,6 +234,7 @@ files:
|
|
|
241
234
|
- lib/parser/static_environment.rb
|
|
242
235
|
- lib/parser/syntax_error.rb
|
|
243
236
|
- lib/parser/tree_rewriter.rb
|
|
237
|
+
- lib/parser/unknown_encoding_in_magic_comment_error.rb
|
|
244
238
|
- lib/parser/variables_stack.rb
|
|
245
239
|
- lib/parser/version.rb
|
|
246
240
|
- parser.gemspec
|
|
@@ -249,10 +243,9 @@ licenses:
|
|
|
249
243
|
- MIT
|
|
250
244
|
metadata:
|
|
251
245
|
bug_tracker_uri: https://github.com/whitequark/parser/issues
|
|
252
|
-
changelog_uri: https://github.com/whitequark/parser/blob/v3.
|
|
253
|
-
documentation_uri: https://www.rubydoc.info/gems/parser/3.
|
|
254
|
-
source_code_uri: https://github.com/whitequark/parser/tree/v3.
|
|
255
|
-
post_install_message:
|
|
246
|
+
changelog_uri: https://github.com/whitequark/parser/blob/v3.3.11.1/CHANGELOG.md
|
|
247
|
+
documentation_uri: https://www.rubydoc.info/gems/parser/3.3.11.1
|
|
248
|
+
source_code_uri: https://github.com/whitequark/parser/tree/v3.3.11.1
|
|
256
249
|
rdoc_options: []
|
|
257
250
|
require_paths:
|
|
258
251
|
- lib
|
|
@@ -267,8 +260,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
267
260
|
- !ruby/object:Gem::Version
|
|
268
261
|
version: '0'
|
|
269
262
|
requirements: []
|
|
270
|
-
rubygems_version: 3.2
|
|
271
|
-
signing_key:
|
|
263
|
+
rubygems_version: 3.6.2
|
|
272
264
|
specification_version: 4
|
|
273
265
|
summary: A Ruby parser written in pure Ruby.
|
|
274
266
|
test_files: []
|