class Whitespace::ISA::Binop

Public Class Methods

new(vm, op) click to toggle source
Calls superclass method
# File lib/whitespace/instructions/arithmetic/binop.rb, line 3
def initialize(vm, op)
  unless Whitespace::Util.is_binop?(op)
    raise ArgumentError, "must be a binary operator: #{op}"
  end
  super(vm)
  @op = op
end

Public Instance Methods

execute() click to toggle source
# File lib/whitespace/instructions/arithmetic/binop.rb, line 11
def execute
  right = vm.vstack.pop
  left = vm.vstack.pop

  vm.vstack.push Whitespace::Util::BINOPS[@op].call(left, right)
end