class Q::VM

Public Class Methods

new() click to toggle source
# File lib/q/vm.rb, line 50
def initialize
  Q.load

  @scope  = ToplevelScope.new
  @parser = QParser.new
end

Public Instance Methods

eval(input) click to toggle source
# File lib/q/vm.rb, line 57
def eval input
  parsed = @parser.parse input

  if parsed.nil?
    raise ParsingException.new input, @parser.failure_line, @parser.failure_index, @parser.failure_reason
  end

  parsed.eval @scope
end
reset(with_scope = false) click to toggle source
# File lib/q/vm.rb, line 67
def reset with_scope = false
  @parser = QParser.new
  @scope  = Q::Scope.new if with_scope
end