parser 3.1.3.0 → 3.3.2.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/lib/gauntlet_parser.rb +1 -1
- data/lib/parser/all.rb +15 -13
- data/lib/parser/ast/node.rb +2 -2
- data/lib/parser/ast/processor.rb +3 -1
- data/lib/parser/builders/default.rb +53 -32
- data/lib/parser/current.rb +37 -19
- data/lib/parser/lexer/literal.rb +16 -1
- data/lib/parser/lexer-F0.rb +12922 -0
- data/lib/parser/lexer-F1.rb +14875 -0
- data/lib/parser/lexer-strings.rb +5424 -0
- data/lib/parser/macruby.rb +5 -3
- data/lib/parser/messages.rb +46 -41
- data/lib/parser/ruby18.rb +5 -3
- data/lib/parser/ruby19.rb +5 -3
- data/lib/parser/ruby20.rb +5 -3
- data/lib/parser/ruby21.rb +5 -3
- data/lib/parser/ruby22.rb +5 -3
- data/lib/parser/ruby23.rb +5 -3
- data/lib/parser/ruby24.rb +5 -3
- data/lib/parser/ruby25.rb +5 -3
- data/lib/parser/ruby26.rb +5 -3
- data/lib/parser/ruby27.rb +5 -3
- data/lib/parser/ruby30.rb +5 -3
- data/lib/parser/ruby31.rb +5 -3
- data/lib/parser/ruby32.rb +1039 -1026
- data/lib/parser/ruby33.rb +12589 -0
- data/lib/parser/ruby34.rb +12589 -0
- data/lib/parser/rubymotion.rb +5 -3
- data/lib/parser/runner/ruby_parse.rb +3 -3
- data/lib/parser/runner/ruby_rewrite.rb +1 -1
- data/lib/parser/runner.rb +27 -17
- data/lib/parser/source/buffer.rb +18 -4
- data/lib/parser/source/comment/associator.rb +7 -7
- data/lib/parser/source/range.rb +1 -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 +57 -51
- data/parser.gemspec +1 -1
- metadata +26 -21
- data/lib/parser/lexer.rb +0 -25045
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.7.3
|
|
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
|
|
@@ -6160,6 +6160,7 @@ Racc_arg = [
|
|
|
6160
6160
|
racc_shift_n,
|
|
6161
6161
|
racc_reduce_n,
|
|
6162
6162
|
racc_use_result_var ]
|
|
6163
|
+
Ractor.make_shareable(Racc_arg) if defined?(Ractor)
|
|
6163
6164
|
|
|
6164
6165
|
Racc_token_to_s_table = [
|
|
6165
6166
|
"$end",
|
|
@@ -6456,6 +6457,7 @@ Racc_token_to_s_table = [
|
|
|
6456
6457
|
"restarg_mark",
|
|
6457
6458
|
"blkarg_mark",
|
|
6458
6459
|
"assoc" ]
|
|
6460
|
+
Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)
|
|
6459
6461
|
|
|
6460
6462
|
Racc_debug_parser = false
|
|
6461
6463
|
|
data/lib/parser/runner.rb
CHANGED
|
@@ -4,7 +4,7 @@ require 'benchmark'
|
|
|
4
4
|
require 'find'
|
|
5
5
|
require 'optparse'
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
require_relative '../parser'
|
|
8
8
|
|
|
9
9
|
module Parser
|
|
10
10
|
|
|
@@ -64,77 +64,87 @@ module Parser
|
|
|
64
64
|
end
|
|
65
65
|
|
|
66
66
|
opts.on '--18', 'Parse as Ruby 1.8.7 would' do
|
|
67
|
-
|
|
67
|
+
require_relative 'ruby18'
|
|
68
68
|
@parser_class = Parser::Ruby18
|
|
69
69
|
end
|
|
70
70
|
|
|
71
71
|
opts.on '--19', 'Parse as Ruby 1.9.3 would' do
|
|
72
|
-
|
|
72
|
+
require_relative 'ruby19'
|
|
73
73
|
@parser_class = Parser::Ruby19
|
|
74
74
|
end
|
|
75
75
|
|
|
76
76
|
opts.on '--20', 'Parse as Ruby 2.0 would' do
|
|
77
|
-
|
|
77
|
+
require_relative 'ruby20'
|
|
78
78
|
@parser_class = Parser::Ruby20
|
|
79
79
|
end
|
|
80
80
|
|
|
81
81
|
opts.on '--21', 'Parse as Ruby 2.1 would' do
|
|
82
|
-
|
|
82
|
+
require_relative 'ruby21'
|
|
83
83
|
@parser_class = Parser::Ruby21
|
|
84
84
|
end
|
|
85
85
|
|
|
86
86
|
opts.on '--22', 'Parse as Ruby 2.2 would' do
|
|
87
|
-
|
|
87
|
+
require_relative 'ruby22'
|
|
88
88
|
@parser_class = Parser::Ruby22
|
|
89
89
|
end
|
|
90
90
|
|
|
91
91
|
opts.on '--23', 'Parse as Ruby 2.3 would' do
|
|
92
|
-
|
|
92
|
+
require_relative 'ruby23'
|
|
93
93
|
@parser_class = Parser::Ruby23
|
|
94
94
|
end
|
|
95
95
|
|
|
96
96
|
opts.on '--24', 'Parse as Ruby 2.4 would' do
|
|
97
|
-
|
|
97
|
+
require_relative 'ruby24'
|
|
98
98
|
@parser_class = Parser::Ruby24
|
|
99
99
|
end
|
|
100
100
|
|
|
101
101
|
opts.on '--25', 'Parse as Ruby 2.5 would' do
|
|
102
|
-
|
|
102
|
+
require_relative 'ruby25'
|
|
103
103
|
@parser_class = Parser::Ruby25
|
|
104
104
|
end
|
|
105
105
|
|
|
106
106
|
opts.on '--26', 'Parse as Ruby 2.6 would' do
|
|
107
|
-
|
|
107
|
+
require_relative 'ruby26'
|
|
108
108
|
@parser_class = Parser::Ruby26
|
|
109
109
|
end
|
|
110
110
|
|
|
111
111
|
opts.on '--27', 'Parse as Ruby 2.7 would' do
|
|
112
|
-
|
|
112
|
+
require_relative 'ruby27'
|
|
113
113
|
@parser_class = Parser::Ruby27
|
|
114
114
|
end
|
|
115
115
|
|
|
116
116
|
opts.on '--30', 'Parse as Ruby 3.0 would' do
|
|
117
|
-
|
|
117
|
+
require_relative 'ruby30'
|
|
118
118
|
@parser_class = Parser::Ruby30
|
|
119
119
|
end
|
|
120
120
|
|
|
121
121
|
opts.on '--31', 'Parse as Ruby 3.1 would' do
|
|
122
|
-
|
|
122
|
+
require_relative 'ruby31'
|
|
123
123
|
@parser_class = Parser::Ruby31
|
|
124
124
|
end
|
|
125
125
|
|
|
126
126
|
opts.on '--32', 'Parse as Ruby 3.2 would' do
|
|
127
|
-
|
|
127
|
+
require_relative 'ruby32'
|
|
128
128
|
@parser_class = Parser::Ruby32
|
|
129
129
|
end
|
|
130
130
|
|
|
131
|
+
opts.on '--33', 'Parse as Ruby 3.3 would' do
|
|
132
|
+
require_relative 'ruby33'
|
|
133
|
+
@parser_class = Parser::Ruby33
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
opts.on '--34', 'Parse as Ruby 3.4 would' do
|
|
137
|
+
require_relative 'ruby34'
|
|
138
|
+
@parser_class = Parser::Ruby34
|
|
139
|
+
end
|
|
140
|
+
|
|
131
141
|
opts.on '--mac', 'Parse as MacRuby 0.12 would' do
|
|
132
|
-
|
|
142
|
+
require_relative 'macruby'
|
|
133
143
|
@parser_class = Parser::MacRuby
|
|
134
144
|
end
|
|
135
145
|
|
|
136
146
|
opts.on '--ios', 'Parse as mid-2015 RubyMotion would' do
|
|
137
|
-
|
|
147
|
+
require_relative 'rubymotion'
|
|
138
148
|
@parser_class = Parser::RubyMotion
|
|
139
149
|
end
|
|
140
150
|
|
|
@@ -183,7 +193,7 @@ module Parser
|
|
|
183
193
|
end
|
|
184
194
|
|
|
185
195
|
if @parser_class.nil?
|
|
186
|
-
|
|
196
|
+
require_relative 'current'
|
|
187
197
|
@parser_class = Parser::CurrentRuby
|
|
188
198
|
end
|
|
189
199
|
end
|
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
|
|
@@ -191,11 +196,20 @@ module Parser
|
|
|
191
196
|
end
|
|
192
197
|
end
|
|
193
198
|
|
|
194
|
-
def slice(
|
|
199
|
+
def slice(start, length = nil)
|
|
200
|
+
if length.nil?
|
|
201
|
+
if start.is_a?(::Range)
|
|
202
|
+
length = start.size
|
|
203
|
+
start = start.begin
|
|
204
|
+
else
|
|
205
|
+
length = 1
|
|
206
|
+
end
|
|
207
|
+
end
|
|
208
|
+
|
|
195
209
|
if @slice_source.nil?
|
|
196
|
-
@source[
|
|
210
|
+
@source[start, length]
|
|
197
211
|
else
|
|
198
|
-
@slice_source[
|
|
212
|
+
@slice_source[start, length].encode(@source.encoding)
|
|
199
213
|
end
|
|
200
214
|
end
|
|
201
215
|
|
|
@@ -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
|
data/lib/parser/source/range.rb
CHANGED
|
@@ -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,69 +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
|
-
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
if RUBY_ENGINE == 'truffleruby'
|
|
69
|
+
require_relative 'parser/lexer-F0'
|
|
70
|
+
else
|
|
71
|
+
require_relative 'parser/lexer-F1'
|
|
72
|
+
end
|
|
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'
|
|
71
77
|
|
|
72
78
|
module Builders
|
|
73
|
-
|
|
79
|
+
require_relative 'parser/builders/default'
|
|
74
80
|
end
|
|
75
81
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
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'
|
|
80
86
|
|
|
81
|
-
|
|
87
|
+
require_relative 'parser/base'
|
|
82
88
|
|
|
83
|
-
|
|
84
|
-
|
|
89
|
+
require_relative 'parser/rewriter'
|
|
90
|
+
require_relative 'parser/tree_rewriter'
|
|
85
91
|
end
|
data/parser.gemspec
CHANGED
|
@@ -27,10 +27,10 @@ Gem::Specification.new do |spec|
|
|
|
27
27
|
spec.required_ruby_version = '>= 2.0.0'
|
|
28
28
|
|
|
29
29
|
spec.add_dependency 'ast', '~> 2.4.1'
|
|
30
|
+
spec.add_dependency 'racc'
|
|
30
31
|
|
|
31
32
|
spec.add_development_dependency 'bundler', '>= 1.15', '< 3.0.0'
|
|
32
33
|
spec.add_development_dependency 'rake', '~> 13.0.1'
|
|
33
|
-
spec.add_development_dependency 'racc', '= 1.6.0'
|
|
34
34
|
spec.add_development_dependency 'cliver', '~> 0.3.2'
|
|
35
35
|
|
|
36
36
|
spec.add_development_dependency 'yard'
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: parser
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.3.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- whitequark
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2024-05-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: ast
|
|
@@ -24,6 +24,20 @@ dependencies:
|
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: 2.4.1
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: racc
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '0'
|
|
27
41
|
- !ruby/object:Gem::Dependency
|
|
28
42
|
name: bundler
|
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -58,20 +72,6 @@ dependencies:
|
|
|
58
72
|
- - "~>"
|
|
59
73
|
- !ruby/object:Gem::Version
|
|
60
74
|
version: 13.0.1
|
|
61
|
-
- !ruby/object:Gem::Dependency
|
|
62
|
-
name: racc
|
|
63
|
-
requirement: !ruby/object:Gem::Requirement
|
|
64
|
-
requirements:
|
|
65
|
-
- - '='
|
|
66
|
-
- !ruby/object:Gem::Version
|
|
67
|
-
version: 1.6.0
|
|
68
|
-
type: :development
|
|
69
|
-
prerelease: false
|
|
70
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
71
|
-
requirements:
|
|
72
|
-
- - '='
|
|
73
|
-
- !ruby/object:Gem::Version
|
|
74
|
-
version: 1.6.0
|
|
75
75
|
- !ruby/object:Gem::Dependency
|
|
76
76
|
name: cliver
|
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -183,7 +183,9 @@ files:
|
|
|
183
183
|
- lib/parser/deprecation.rb
|
|
184
184
|
- lib/parser/diagnostic.rb
|
|
185
185
|
- lib/parser/diagnostic/engine.rb
|
|
186
|
-
- lib/parser/lexer.rb
|
|
186
|
+
- lib/parser/lexer-F0.rb
|
|
187
|
+
- lib/parser/lexer-F1.rb
|
|
188
|
+
- lib/parser/lexer-strings.rb
|
|
187
189
|
- lib/parser/lexer/dedenter.rb
|
|
188
190
|
- lib/parser/lexer/explanation.rb
|
|
189
191
|
- lib/parser/lexer/literal.rb
|
|
@@ -207,6 +209,8 @@ files:
|
|
|
207
209
|
- lib/parser/ruby30.rb
|
|
208
210
|
- lib/parser/ruby31.rb
|
|
209
211
|
- lib/parser/ruby32.rb
|
|
212
|
+
- lib/parser/ruby33.rb
|
|
213
|
+
- lib/parser/ruby34.rb
|
|
210
214
|
- lib/parser/rubymotion.rb
|
|
211
215
|
- lib/parser/runner.rb
|
|
212
216
|
- lib/parser/runner/ruby_parse.rb
|
|
@@ -238,6 +242,7 @@ files:
|
|
|
238
242
|
- lib/parser/static_environment.rb
|
|
239
243
|
- lib/parser/syntax_error.rb
|
|
240
244
|
- lib/parser/tree_rewriter.rb
|
|
245
|
+
- lib/parser/unknown_encoding_in_magic_comment_error.rb
|
|
241
246
|
- lib/parser/variables_stack.rb
|
|
242
247
|
- lib/parser/version.rb
|
|
243
248
|
- parser.gemspec
|
|
@@ -246,9 +251,9 @@ licenses:
|
|
|
246
251
|
- MIT
|
|
247
252
|
metadata:
|
|
248
253
|
bug_tracker_uri: https://github.com/whitequark/parser/issues
|
|
249
|
-
changelog_uri: https://github.com/whitequark/parser/blob/v3.
|
|
250
|
-
documentation_uri: https://www.rubydoc.info/gems/parser/3.
|
|
251
|
-
source_code_uri: https://github.com/whitequark/parser/tree/v3.
|
|
254
|
+
changelog_uri: https://github.com/whitequark/parser/blob/v3.3.2.0/CHANGELOG.md
|
|
255
|
+
documentation_uri: https://www.rubydoc.info/gems/parser/3.3.2.0
|
|
256
|
+
source_code_uri: https://github.com/whitequark/parser/tree/v3.3.2.0
|
|
252
257
|
post_install_message:
|
|
253
258
|
rdoc_options: []
|
|
254
259
|
require_paths:
|
|
@@ -264,7 +269,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
264
269
|
- !ruby/object:Gem::Version
|
|
265
270
|
version: '0'
|
|
266
271
|
requirements: []
|
|
267
|
-
rubygems_version: 3.
|
|
272
|
+
rubygems_version: 3.5.3
|
|
268
273
|
signing_key:
|
|
269
274
|
specification_version: 4
|
|
270
275
|
summary: A Ruby parser written in pure Ruby.
|