Sha256: bd35828d3c621fe0704101e7bbe102b52d2e1f8d991a1551594b39b46e68ebbe

Contents?: true

Size: 701 Bytes

Versions: 4

Compression:

Stored size: 701 Bytes

Contents

require 'internal/vm'

if defined?(RubyVM::InstructionSequence) then
  require 'internal/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

4 entries across 4 versions & 2 rubygems

Version Path
ruby-decompiler-0.0.1 lib/decompiler/vm/iseq/as_expression.rb
ruby-internal-0.8.2 lib/internal/vm/iseq/as_expression.rb
ruby-internal-0.8.1 lib/internal/vm/iseq/as_expression.rb
ruby-internal-0.8.0 lib/internal/vm/iseq/as_expression.rb