Class: RBF::JIT::Code

Inherits:
Object
  • Object
show all
Defined in:
lib/rbf/jit/code.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(tree, options = nil) ⇒ Code

Returns a new instance of Code.



18
19
20
21
22
23
24
25
26
27
# File 'lib/rbf/jit/code.rb', line 18

def initialize (tree, options=nil)
  @options = options

  @module = LLVM::Module.create('brainfuck')
  @module.functions.add('self', [], LLVM::Void) do |func|
    builder = LLVM::Builder.create
  end

  @module.verify
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



16
17
18
# File 'lib/rbf/jit/code.rb', line 16

def options
  @options
end

Instance Method Details

#executeObject



29
30
31
# File 'lib/rbf/jit/code.rb', line 29

def execute
  LLVM::ExecutionEngine.create_jit_compiler(@module).run_function(@module.functions['self'])
end