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