Sha256: 8d89d7b05ba31b127daa8b85d63b109a39246f9c60fd8bb99461c6706a7630b1

Contents?: true

Size: 431 Bytes

Versions: 1

Compression:

Stored size: 431 Bytes

Contents

module Whitespace::ISA
  class Zjmp < Instruction
    attr_reader :name

    def initialize(vm, name)
      unless Whitespace::Util.is_label?(name)
        raise ArgumentError, "must be a label: #{name}"
      end
      super(vm)
      @name = name
    end

    def execute
      if vm.vstack.pop == 0
        index = Whitespace::Util.find_label(vm.instructions, name)
        vm.pc.change_to index + 1
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
whitespace-ruby-1.0.0 lib/whitespace/instructions/flow_control/zjmp.rb