class Stack

CLAZ declare############################################

Public Class Methods

destroy() click to toggle source
# File lib/AoBane/utilities.rb, line 402
def self.destroy
  if @stack.nil? then @stack = [] else @stack.clear end
  p @stack
  @sp = 0
end
dump() click to toggle source
# File lib/AoBane/utilities.rb, line 398
def self.dump
  @@log.debug("Stack DUMP:#{@stack}")
end
new() click to toggle source
# File lib/AoBane/utilities.rb, line 347
def initialize
  @stack = []
  @sp = 0
end

Public Instance Methods

evalStackTop() click to toggle source
# File lib/AoBane/utilities.rb, line 376
def evalStackTop
  return @stack.last
end
getSp() click to toggle source
# File lib/AoBane/utilities.rb, line 380
def getSp
  if @sp >= 0 then return @sp
  else raise FatalError,"SP is negative!"
  end
end
insertNumber() click to toggle source
# File lib/AoBane/utilities.rb, line 372
 def insertNumber
#   return str
 end
isTopofStack(item) click to toggle source
# File lib/AoBane/utilities.rb, line 390
def isTopofStack(item)
  if item == @stack.last then
    return true
  else
    return false
  end
end
pop() click to toggle source
# File lib/AoBane/utilities.rb, line 363
def pop
  @@log.debug("#{__LINE__} pop")
  if (@stack.size - 1) >= 0 then @sp -= 1;return @stack.pop
  else
    raise SyntaxError,"Stack Under Flow!"
  end
  @@log.debug "#{@stack}"
end
push(pair) click to toggle source
# File lib/AoBane/utilities.rb, line 352
def push(pair)
  @@log.debug("#{__LINE__} push #{pair}")
  if (@stack.size + 1) < $MAX_STACK then
    @stack.push(pair)
    @sp += 1
    @@log.debug @stack
  else
    raise SyntaxError,"Stack Over Flow!"
  end
end
sizeofStack() click to toggle source
# File lib/AoBane/utilities.rb, line 386
def sizeofStack
  return @stack.size
end