class Mapleseed::MathRing
command ring for whirl math operations
Public Class Methods
new(interpreter)
click to toggle source
initialize commands for math ring
Calls superclass method
Mapleseed::Ring::new
# File lib/mapleseed/ring.rb, line 133 def initialize(interpreter) super(interpreter) @commands = [:noop, :load, :store, :add, :mult, :div, :zero, :lt, :gt, :equal, :not, :neg] end
Public Instance Methods
add()
click to toggle source
set ring value += memory value
# File lib/mapleseed/ring.rb, line 154 def add @value += @interpreter.memory.get(@interpreter.memory_position) end
div()
click to toggle source
set ring value /= memory value
# File lib/mapleseed/ring.rb, line 164 def div @value /= @interpreter.memory.get(@interpreter.memory_position) end
equal()
click to toggle source
if ring value is equal to memory value, set value to 1, otherwise 0
# File lib/mapleseed/ring.rb, line 192 def equal if @value == @interpreter.memory.get(@interpreter.memory_position) @value = 1 else @value = 0 end end
gt()
click to toggle source
if ring value is greater than memory value, set value to 1, otherwise 0
# File lib/mapleseed/ring.rb, line 183 def gt if @value > @interpreter.memory.get(@interpreter.memory_position) @value = 1 else @value = 0 end end
load()
click to toggle source
set the ring value to the current memory value
# File lib/mapleseed/ring.rb, line 144 def load @value = @interpreter.memory.get(@interpreter.memory_position) end
lt()
click to toggle source
if ring value is less than memory value, set value to 1, otherwise 0
# File lib/mapleseed/ring.rb, line 174 def lt if @value < @interpreter.memory.get(@interpreter.memory_position) @value = 1 else @value = 0 end end
mult()
click to toggle source
set ring value *= memory value
# File lib/mapleseed/ring.rb, line 159 def mult @value *= @interpreter.memory.get(@interpreter.memory_position) end
neg()
click to toggle source
inverse ring value
# File lib/mapleseed/ring.rb, line 210 def neg @value *= -1 end
noop()
click to toggle source
do nothing
# File lib/mapleseed/ring.rb, line 139 def noop #... end
not()
click to toggle source
if ring value is not 0, set value to 1, otherwise 0
# File lib/mapleseed/ring.rb, line 201 def not if @value == 0 @value = 1 else @value = 0 end end
store()
click to toggle source
set the current value in memory to the ring value
# File lib/mapleseed/ring.rb, line 149 def store @interpreter.memory.set(@interpreter.memory_position, @value) end
zero()
click to toggle source
set ring value to 0
# File lib/mapleseed/ring.rb, line 169 def zero @value = 0 end