parser 3.2.2.3 → 3.3.9.0
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 +59 -19
- 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/comment/associator.rb +7 -7
- 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
- metadata +8 -10
- 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
|
@@ -95,10 +95,11 @@ module Parser
|
|
95
95
|
end
|
96
96
|
|
97
97
|
##
|
98
|
-
# Same as {associate}, but
|
99
|
-
# result even in presence
|
98
|
+
# Same as {associate}, but uses `node.loc` instead of `node` as
|
99
|
+
# the hash key, thus producing an unambiguous result even in presence
|
100
|
+
# of equal nodes.
|
100
101
|
#
|
101
|
-
# @return [Hash<Parser::Source::
|
102
|
+
# @return [Hash<Parser::Source::Map, Array<Parser::Source::Comment>>]
|
102
103
|
#
|
103
104
|
def associate_locations
|
104
105
|
@map_using = :location
|
@@ -106,11 +107,10 @@ module Parser
|
|
106
107
|
end
|
107
108
|
|
108
109
|
##
|
109
|
-
# Same as {associate}, but
|
110
|
-
#
|
111
|
-
# of equal nodes.
|
110
|
+
# Same as {associate}, but compares by identity, thus producing an unambiguous
|
111
|
+
# result even in presence of equal nodes.
|
112
112
|
#
|
113
|
-
# @return [Hash<Parser::Source::
|
113
|
+
# @return [Hash<Parser::Source::Node, Array<Parser::Source::Comment>>]
|
114
114
|
#
|
115
115
|
def associate_by_identity
|
116
116
|
@map_using = :identity
|
@@ -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
|
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.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- whitequark
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-07-25 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: ast
|
@@ -205,11 +204,11 @@ files:
|
|
205
204
|
- lib/parser/ruby25.rb
|
206
205
|
- lib/parser/ruby26.rb
|
207
206
|
- lib/parser/ruby27.rb
|
208
|
-
- lib/parser/ruby28.rb
|
209
207
|
- lib/parser/ruby30.rb
|
210
208
|
- lib/parser/ruby31.rb
|
211
209
|
- lib/parser/ruby32.rb
|
212
210
|
- lib/parser/ruby33.rb
|
211
|
+
- lib/parser/ruby34.rb
|
213
212
|
- lib/parser/rubymotion.rb
|
214
213
|
- lib/parser/runner.rb
|
215
214
|
- lib/parser/runner/ruby_parse.rb
|
@@ -241,6 +240,7 @@ files:
|
|
241
240
|
- lib/parser/static_environment.rb
|
242
241
|
- lib/parser/syntax_error.rb
|
243
242
|
- lib/parser/tree_rewriter.rb
|
243
|
+
- lib/parser/unknown_encoding_in_magic_comment_error.rb
|
244
244
|
- lib/parser/variables_stack.rb
|
245
245
|
- lib/parser/version.rb
|
246
246
|
- parser.gemspec
|
@@ -249,10 +249,9 @@ licenses:
|
|
249
249
|
- MIT
|
250
250
|
metadata:
|
251
251
|
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:
|
252
|
+
changelog_uri: https://github.com/whitequark/parser/blob/v3.3.9.0/CHANGELOG.md
|
253
|
+
documentation_uri: https://www.rubydoc.info/gems/parser/3.3.9.0
|
254
|
+
source_code_uri: https://github.com/whitequark/parser/tree/v3.3.9.0
|
256
255
|
rdoc_options: []
|
257
256
|
require_paths:
|
258
257
|
- lib
|
@@ -267,8 +266,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
267
266
|
- !ruby/object:Gem::Version
|
268
267
|
version: '0'
|
269
268
|
requirements: []
|
270
|
-
rubygems_version: 3.2
|
271
|
-
signing_key:
|
269
|
+
rubygems_version: 3.6.2
|
272
270
|
specification_version: 4
|
273
271
|
summary: A Ruby parser written in pure Ruby.
|
274
272
|
test_files: []
|