Sha256: 8de7fe19cac7051eeabdadabce1ed55b5e7237d389e67f5ad801e3dd145f4cae

Contents?: true

Size: 703 Bytes

Versions: 2

Compression:

Stored size: 703 Bytes

Contents

require 'internal/vm'

if defined?(RubyVM::InstructionSequence) then
  require 'decompiler/vm/bytedecoder'

  class RubyVM
    class InstructionSequence
      def as_expression
        env = Internal::ByteDecoder::Environment.new(local_table())
        opt_pc = self.opt_pc
        self.bytedecode(env, opt_pc)
        expressions = env.expressions + env.stack
        if expressions.length == 0 then
          return nil
        elsif expressions.length == 1 and
           expressions[0].is_a?(Internal::ByteDecoder::Expression::Literal) and
           expressions[0].value == nil then
          return nil
        else
          return expressions.join('; ')
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ruby-decompiler-0.0.3 lib/decompiler/vm/iseq/as_expression.rb
ruby-decompiler-0.0.2 lib/decompiler/vm/iseq/as_expression.rb