parser 3.1.2.0 → 3.2.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/parser/runner.rb CHANGED
@@ -128,6 +128,11 @@ module Parser
128
128
  @parser_class = Parser::Ruby32
129
129
  end
130
130
 
131
+ opts.on '--33', 'Parse as Ruby 3.3 would' do
132
+ require 'parser/ruby33'
133
+ @parser_class = Parser::Ruby33
134
+ end
135
+
131
136
  opts.on '--mac', 'Parse as MacRuby 0.12 would' do
132
137
  require 'parser/macruby'
133
138
  @parser_class = Parser::MacRuby
@@ -191,11 +191,20 @@ module Parser
191
191
  end
192
192
  end
193
193
 
194
- def slice(range)
194
+ def slice(start, length = nil)
195
+ if length.nil?
196
+ if start.is_a?(::Range)
197
+ length = start.size
198
+ start = start.begin
199
+ else
200
+ length = 1
201
+ end
202
+ end
203
+
195
204
  if @slice_source.nil?
196
- @source[range]
205
+ @source[start, length]
197
206
  else
198
- @slice_source[range].encode(@source.encoding)
207
+ @slice_source[start, length].encode(@source.encoding)
199
208
  end
200
209
  end
201
210
 
@@ -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
  ##
@@ -5,6 +5,8 @@ module Parser
5
5
  class StaticEnvironment
6
6
  FORWARD_ARGS = :FORWARD_ARGS
7
7
  ANONYMOUS_BLOCKARG = :ANONYMOUS_BLOCKARG
8
+ ANONYMOUS_RESTARG = :ANONYMOUS_RESTARG
9
+ ANONYMOUS_KWRESTARG = :ANONYMOUS_KWRESTARG
8
10
 
9
11
  def initialize
10
12
  reset
@@ -61,6 +63,22 @@ module Parser
61
63
  declared?(ANONYMOUS_BLOCKARG)
62
64
  end
63
65
 
66
+ def declare_anonymous_restarg
67
+ declare(ANONYMOUS_RESTARG)
68
+ end
69
+
70
+ def declared_anonymous_restarg?
71
+ declared?(ANONYMOUS_RESTARG)
72
+ end
73
+
74
+ def declare_anonymous_kwrestarg
75
+ declare(ANONYMOUS_KWRESTARG)
76
+ end
77
+
78
+ def declared_anonymous_kwrestarg?
79
+ declared?(ANONYMOUS_KWRESTARG)
80
+ end
81
+
64
82
  def empty?
65
83
  @stack.empty?
66
84
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Parser
4
- VERSION = '3.1.2.0'
4
+ VERSION = '3.2.1.0'
5
5
  end
data/lib/parser.rb CHANGED
@@ -64,7 +64,12 @@ module Parser
64
64
 
65
65
  require 'parser/static_environment'
66
66
 
67
- require 'parser/lexer'
67
+ if RUBY_ENGINE == 'truffleruby'
68
+ require 'parser/lexer-F0'
69
+ else
70
+ require 'parser/lexer-F1'
71
+ end
72
+ require 'parser/lexer-strings'
68
73
  require 'parser/lexer/literal'
69
74
  require 'parser/lexer/stack_state'
70
75
  require 'parser/lexer/dedenter'
data/parser.gemspec CHANGED
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
30
30
 
31
31
  spec.add_development_dependency 'bundler', '>= 1.15', '< 3.0.0'
32
32
  spec.add_development_dependency 'rake', '~> 13.0.1'
33
- spec.add_development_dependency 'racc', '= 1.4.15'
33
+ spec.add_development_dependency 'racc', '= 1.6.1'
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.2.0
4
+ version: 3.2.1.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-04-12 00:00:00.000000000 Z
11
+ date: 2023-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ast
@@ -64,14 +64,14 @@ dependencies:
64
64
  requirements:
65
65
  - - '='
66
66
  - !ruby/object:Gem::Version
67
- version: 1.4.15
67
+ version: 1.6.1
68
68
  type: :development
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - '='
73
73
  - !ruby/object:Gem::Version
74
- version: 1.4.15
74
+ version: 1.6.1
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,7 @@ files:
207
209
  - lib/parser/ruby30.rb
208
210
  - lib/parser/ruby31.rb
209
211
  - lib/parser/ruby32.rb
212
+ - lib/parser/ruby33.rb
210
213
  - lib/parser/rubymotion.rb
211
214
  - lib/parser/runner.rb
212
215
  - lib/parser/runner/ruby_parse.rb
@@ -246,9 +249,9 @@ licenses:
246
249
  - MIT
247
250
  metadata:
248
251
  bug_tracker_uri: https://github.com/whitequark/parser/issues
249
- changelog_uri: https://github.com/whitequark/parser/blob/v3.1.2.0/CHANGELOG.md
250
- documentation_uri: https://www.rubydoc.info/gems/parser/3.1.2.0
251
- source_code_uri: https://github.com/whitequark/parser/tree/v3.1.2.0
252
+ changelog_uri: https://github.com/whitequark/parser/blob/v3.2.1.0/CHANGELOG.md
253
+ documentation_uri: https://www.rubydoc.info/gems/parser/3.2.1.0
254
+ source_code_uri: https://github.com/whitequark/parser/tree/v3.2.1.0
252
255
  post_install_message:
253
256
  rdoc_options: []
254
257
  require_paths: