#!/usr/bin/env ruby lib = File.expand_path("../../lib", __FILE__) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require "bundler/setup" require "optparse" begin require "pry-byebug" rescue LoadError end ENV["RUBY_NEXT_EDGE"] ||= "1" ENV["RUBY_NEXT_PROPOSED"] ||= "1" require "ruby-next/language" require "ruby-next/language/rewriters/runtime" contents = if File.exist?(ARGV[0]) File.read(ARGV.shift) else ARGV.shift end transform_opts = {} OptionParser.new do |opts| opts.banner = "Usage: transform filepath_or_code [options]" opts.on("--current", "Use rewriters for the current Ruby version only") do transform_opts[:rewriters] = RubyNext::Language.current_rewriters end opts.on("--rewrite", "Use rewrite transpiling mode") do RubyNext::Language.mode = :rewrite end opts.on("--ast", "Use AST transpiling mode") do RubyNext::Language.mode = :ast end end.parse! puts RubyNext::Language.transform(contents, **transform_opts) puts "\n // Parsed with #{RubyNext::Language.parser_class}"