diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/prism/prism.gemspec | 1 | ||||
-rw-r--r-- | lib/prism/translation.rb | 1 | ||||
-rw-r--r-- | lib/prism/translation/parser_current.rb | 21 |
3 files changed, 23 insertions, 0 deletions
diff --git a/lib/prism/prism.gemspec b/lib/prism/prism.gemspec index e602be9f0f..8c064e31b3 100644 --- a/lib/prism/prism.gemspec +++ b/lib/prism/prism.gemspec @@ -96,6 +96,7 @@ Gem::Specification.new do |spec| "lib/prism/string_query.rb", "lib/prism/translation.rb", "lib/prism/translation/parser.rb", + "lib/prism/translation/parser_current.rb", "lib/prism/translation/parser33.rb", "lib/prism/translation/parser34.rb", "lib/prism/translation/parser35.rb", diff --git a/lib/prism/translation.rb b/lib/prism/translation.rb index f5044b9e38..511c80febc 100644 --- a/lib/prism/translation.rb +++ b/lib/prism/translation.rb @@ -5,6 +5,7 @@ module Prism # syntax trees. module Translation # steep:ignore autoload :Parser, "prism/translation/parser" + autoload :ParserCurrent, "prism/translation/parser_current" autoload :Parser33, "prism/translation/parser33" autoload :Parser34, "prism/translation/parser34" autoload :Parser35, "prism/translation/parser35" diff --git a/lib/prism/translation/parser_current.rb b/lib/prism/translation/parser_current.rb new file mode 100644 index 0000000000..b5a9484666 --- /dev/null +++ b/lib/prism/translation/parser_current.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true +# typed: ignore + +module Prism + module Translation + case RUBY_VERSION + when /^3\.3\./ + ParserCurrent = Parser33 + when /^3\.4\./ + ParserCurrent = Parser34 + when /^3\.5\./ + ParserCurrent = Parser35 + else + # Keep this in sync with released Ruby. + parser = Parser34 + warn "warning: `Prism::Translation::Current` is loading #{parser.name}, " \ + "but you are running #{RUBY_VERSION.to_f}." + ParserCurrent = parser + end + end +end |