Class: Esoteric::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/esoteric/runner.rb

Class Method Summary collapse

Class Method Details

.run(source, compiler, vm, options = {}, logger = nil) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/esoteric/runner.rb', line 7

def self.run(source, compiler, vm, options={}, logger=nil)
  logger ||= Logger.new(STDOUT)
  logger.level = options[:loglevel] if !!options[:loglevel]
  if options[:interactive]
    raise NotImplementedError
  else
    esm = !!compiler ? compiler.compile(source) : source
    if options[:checkonly]
      puts 'Syntax OK'
    else
      vm.run esm, logger
    end
  end
end