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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/lib/gauntlet_parser.rb +1 -1
  3. data/lib/parser/all.rb +15 -13
  4. data/lib/parser/ast/node.rb +2 -2
  5. data/lib/parser/ast/processor.rb +3 -1
  6. data/lib/parser/builders/default.rb +53 -32
  7. data/lib/parser/current.rb +37 -19
  8. data/lib/parser/lexer/literal.rb +16 -1
  9. data/lib/parser/lexer-F0.rb +12922 -0
  10. data/lib/parser/lexer-F1.rb +14875 -0
  11. data/lib/parser/lexer-strings.rb +5424 -0
  12. data/lib/parser/macruby.rb +5 -3
  13. data/lib/parser/messages.rb +46 -41
  14. data/lib/parser/ruby18.rb +5 -3
  15. data/lib/parser/ruby19.rb +5 -3
  16. data/lib/parser/ruby20.rb +5 -3
  17. data/lib/parser/ruby21.rb +5 -3
  18. data/lib/parser/ruby22.rb +5 -3
  19. data/lib/parser/ruby23.rb +5 -3
  20. data/lib/parser/ruby24.rb +5 -3
  21. data/lib/parser/ruby25.rb +5 -3
  22. data/lib/parser/ruby26.rb +5 -3
  23. data/lib/parser/ruby27.rb +5 -3
  24. data/lib/parser/ruby30.rb +5 -3
  25. data/lib/parser/ruby31.rb +5 -3
  26. data/lib/parser/ruby32.rb +1039 -1026
  27. data/lib/parser/ruby33.rb +12589 -0
  28. data/lib/parser/ruby34.rb +12589 -0
  29. data/lib/parser/rubymotion.rb +5 -3
  30. data/lib/parser/runner/ruby_parse.rb +3 -3
  31. data/lib/parser/runner/ruby_rewrite.rb +1 -1
  32. data/lib/parser/runner.rb +27 -17
  33. data/lib/parser/source/buffer.rb +18 -4
  34. data/lib/parser/source/comment/associator.rb +7 -7
  35. data/lib/parser/source/range.rb +1 -1
  36. data/lib/parser/source/tree_rewriter/action.rb +5 -4
  37. data/lib/parser/static_environment.rb +56 -9
  38. data/lib/parser/unknown_encoding_in_magic_comment_error.rb +15 -0
  39. data/lib/parser/version.rb +1 -1
  40. data/lib/parser.rb +57 -51
  41. data/parser.gemspec +1 -1
  42. metadata +26 -21
  43. data/lib/parser/lexer.rb +0 -25045
@@ -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.6.0
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
- require 'parser'
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
 
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'parser/runner'
4
- require 'parser/color'
5
- require 'parser/lexer/explanation'
3
+ require_relative '../runner'
4
+ require_relative '../color'
5
+ require_relative '../lexer/explanation'
6
6
  require 'json'
7
7
 
8
8
  module Parser
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'parser/runner'
3
+ require_relative '../runner'
4
4
  require 'tempfile'
5
5
 
6
6
  module Parser
data/lib/parser/runner.rb CHANGED
@@ -4,7 +4,7 @@ require 'benchmark'
4
4
  require 'find'
5
5
  require 'optparse'
6
6
 
7
- require 'parser'
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
- require 'parser/ruby18'
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
- require 'parser/ruby19'
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
- require 'parser/ruby20'
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
- require 'parser/ruby21'
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
- require 'parser/ruby22'
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
- require 'parser/ruby23'
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
- require 'parser/ruby24'
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
- require 'parser/ruby25'
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
- require 'parser/ruby26'
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
- require 'parser/ruby27'
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
- require 'parser/ruby30'
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
- require 'parser/ruby31'
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
- require 'parser/ruby32'
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
- require 'parser/macruby'
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
- require 'parser/rubymotion'
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
- require 'parser/current'
196
+ require_relative 'current'
187
197
  @parser_class = Parser::CurrentRuby
188
198
  end
189
199
  end
@@ -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
- Encoding.find(result[3] || result[4] || result[6])
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(range)
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[range]
210
+ @source[start, length]
197
211
  else
198
- @slice_source[range].encode(@source.encoding)
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 compares by identity, thus producing an unambiguous
99
- # result even in presence of equal nodes.
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::Node, Array<Parser::Source::Comment>>]
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 uses `node.loc` instead of `node` as
110
- # the hash key, thus producing an unambiguous result even in presence
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::Map, Array<Parser::Source::Comment>>]
113
+ # @return [Hash<Parser::Source::Node, Array<Parser::Source::Comment>>]
114
114
  #
115
115
  def associate_by_identity
116
116
  @map_using = :identity
@@ -130,7 +130,7 @@ module Parser
130
130
  # @return [String] all source code covered by this range.
131
131
  #
132
132
  def source
133
- @source_buffer.slice(self.begin_pos...self.end_pos)
133
+ @source_buffer.slice(@begin_pos, @end_pos - @begin_pos)
134
134
  end
135
135
 
136
136
  ##
@@ -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
- # children are strictly contained by their parent
10
- # sibblings all disjoint from one another and ordered
11
- # only actions with replacement==nil may have children
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 do not act on that range.
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
- ANONYMOUS_BLOCKARG = :ANONYMOUS_BLOCKARG
8
- ANONYMOUS_RESTARG = :ANONYMOUS_RESTARG
9
- ANONYMOUS_KWRESTARG = :ANONYMOUS_KWRESTARG
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(ANONYMOUS_BLOCKARG)
78
+ declare(ANONYMOUS_BLOCKARG_IN_CURRENT_SCOPE)
60
79
  end
61
80
 
62
81
  def declared_anonymous_blockarg?
63
- declared?(ANONYMOUS_BLOCKARG)
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(ANONYMOUS_RESTARG)
96
+ declare(ANONYMOUS_RESTARG_IN_CURRENT_SCOPE)
68
97
  end
69
98
 
70
99
  def declared_anonymous_restarg?
71
- declared?(ANONYMOUS_RESTARG)
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(ANONYMOUS_KWRESTARG)
114
+ declare(ANONYMOUS_KWRESTARG_IN_CURRENT_SCOPE)
76
115
  end
77
116
 
78
117
  def declared_anonymous_kwrestarg?
79
- declared?(ANONYMOUS_KWRESTARG)
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Parser
4
- VERSION = '3.1.3.0'
4
+ VERSION = '3.3.2.0'
5
5
  end
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
- require 'parser/version'
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
- require 'parser/version'
21
- require 'parser/messages'
22
- require 'parser/deprecation'
20
+ require_relative 'parser/version'
21
+ require_relative 'parser/messages'
22
+ require_relative 'parser/deprecation'
23
23
 
24
24
  module AST
25
- require 'parser/ast/node'
26
- require 'parser/ast/processor'
27
- require 'parser/meta'
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
- require 'parser/source/buffer'
32
- require 'parser/source/range'
33
-
34
- require 'parser/source/comment'
35
- require 'parser/source/comment/associator'
36
-
37
- require 'parser/source/rewriter'
38
- require 'parser/source/rewriter/action'
39
- require 'parser/source/tree_rewriter'
40
- require 'parser/source/tree_rewriter/action'
41
-
42
- require 'parser/source/map'
43
- require 'parser/source/map/operator'
44
- require 'parser/source/map/collection'
45
- require 'parser/source/map/constant'
46
- require 'parser/source/map/variable'
47
- require 'parser/source/map/keyword'
48
- require 'parser/source/map/definition'
49
- require 'parser/source/map/method_definition'
50
- require 'parser/source/map/send'
51
- require 'parser/source/map/index'
52
- require 'parser/source/map/condition'
53
- require 'parser/source/map/ternary'
54
- require 'parser/source/map/for'
55
- require 'parser/source/map/rescue_body'
56
- require 'parser/source/map/heredoc'
57
- require 'parser/source/map/objc_kwarg'
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
- require 'parser/syntax_error'
61
- require 'parser/clobbering_error'
62
- require 'parser/diagnostic'
63
- require 'parser/diagnostic/engine'
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
- require 'parser/static_environment'
66
+ require_relative 'parser/static_environment'
66
67
 
67
- require 'parser/lexer'
68
- require 'parser/lexer/literal'
69
- require 'parser/lexer/stack_state'
70
- require 'parser/lexer/dedenter'
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
- require 'parser/builders/default'
79
+ require_relative 'parser/builders/default'
74
80
  end
75
81
 
76
- require 'parser/context'
77
- require 'parser/max_numparam_stack'
78
- require 'parser/current_arg_stack'
79
- require 'parser/variables_stack'
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
- require 'parser/base'
87
+ require_relative 'parser/base'
82
88
 
83
- require 'parser/rewriter'
84
- require 'parser/tree_rewriter'
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.1.3.0
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: 2022-11-25 00:00:00.000000000 Z
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.1.3.0/CHANGELOG.md
250
- documentation_uri: https://www.rubydoc.info/gems/parser/3.1.3.0
251
- source_code_uri: https://github.com/whitequark/parser/tree/v3.1.3.0
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.2.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.