summaryrefslogtreecommitdiff
path: root/lib/prism/translation/parser_current.rb
blob: f13eff6bbe2d90262170e939c8a5cad09ae6ca69 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# frozen_string_literal: true
# :markup: markdown
# typed: ignore

#
module Prism
  module Translation
    case RUBY_VERSION
    when /^3\.3\./
      ParserCurrent = Parser33
    when /^3\.4\./
      ParserCurrent = Parser34
    when /^3\.5\./, /^4\.0\./
      ParserCurrent = Parser40
    when /^4\.1\./
      ParserCurrent = Parser41
    else
      # Keep this in sync with released Ruby.
      parser = Parser40
      major, minor, _patch = Gem::Version.new(RUBY_VERSION).segments
      warn "warning: `Prism::Translation::Current` is loading #{parser.name}, " \
           "but you are running #{major}.#{minor}."
      ParserCurrent = parser
    end
  end
end