class Ascode::Interpreter::Environment
Attributes
ast[RW]
register[RW]
stack[RW]
Public Class Methods
new(ast = "")
click to toggle source
# File lib/ascode/interpreter/environment.rb, line 8 def initialize(ast = "") @ast = ast @stack = [] @register = nil end
Public Instance Methods
duplicate()
click to toggle source
# File lib/ascode/interpreter/environment.rb, line 43 def duplicate a = pop push a push a end
pop(ask = true)
click to toggle source
# File lib/ascode/interpreter/environment.rb, line 26 def pop(ask = true) value = @stack.pop if value value elsif ask IO.input itself @stack.pop end end
push(what)
click to toggle source
# File lib/ascode/interpreter/environment.rb, line 14 def push(what) @stack.push what end
reg_copy()
click to toggle source
# File lib/ascode/interpreter/environment.rb, line 18 def reg_copy @register = pop end
reg_paste()
click to toggle source
# File lib/ascode/interpreter/environment.rb, line 22 def reg_paste push @register end
swap()
click to toggle source
# File lib/ascode/interpreter/environment.rb, line 36 def swap a = pop false b = pop false push a push b end