class Rufo::Parser

def self.sexp_unparsable_code(code)

def self.sexp_unparsable_code(code)
  code_type = detect_unparsable_code_type(code)
  case code_type
  when :yield
    extract_original_code_sexp(
      "def __rufo_dummy; #{code}; end",
      ->(exp) { exp => [:def, *, [:bodystmt, exps, *]]; exps }
    )
  when :next, :break, :redo
    extract_original_code_sexp(
      "loop do; #{code}; end",
      ->(exp) { exp => [:method_add_block, *, [:do_block, nil, [:bodystmt, [[:void_stmt], *exps], *]]]; exps }
    )
  when :retry
    extract_original_code_sexp(
      "begin; rescue; #{code}; end",
      ->(exp) { exp => [:begin, [:bodystmt, Array, [:rescue, nil, nil, exps, *], *]]; exps }
    )
  end
end