Added method output_file_suffix to code generator API.
[voodoo-lang.git] / lib / voodoo / generators / amd64_elf_generator.rb
blobaca35248d3dc6aba65b0dd7aaa593007ffb973a4
1 require 'delegate'
2 require 'tempfile'
3 require 'voodoo/generators/amd64_nasm_generator'
4 require 'voodoo/generators/nasm_elf_generator'
6 module Voodoo
7   # Generator that produces ELF objects for amd64
8   class AMD64ELFGenerator < DelegateClass(AMD64NasmGenerator)
9     def initialize params = {}
10       @nasmgenerator = AMD64NasmGenerator.new params
11       super(@nasmgenerator)
12       @elfgenerator = NasmELFGenerator.new @nasmgenerator, '-f elf64'
13     end
15     def output_file_name input_name
16       @elfgenerator.output_file_name input_name
17     end
19     def output_file_suffix
20       @elfgenerator.output_file_suffix
21     end
23     def write io
24       @elfgenerator.write io
25     end
26   end
28   # Register class
29   Voodoo::CodeGenerator.register_generator AMD64ELFGenerator,
30                                            :architecture => :amd64,
31                                            :format => :elf
32 end