mirror of
https://github.com/samsonjs/compiler.git
synced 2026-03-25 08:45:52 +00:00
26 lines
No EOL
507 B
Ruby
26 lines
No EOL
507 B
Ruby
module Assembler
|
|
|
|
class UnimplementedMethodError < RuntimeError; end
|
|
|
|
|
|
# Abstract base class.
|
|
class ObjWriter
|
|
|
|
def write!(filename)
|
|
File.open(filename, 'wb') do |file|
|
|
file.print(serialize)
|
|
end
|
|
end
|
|
|
|
def fail(name)
|
|
raise UnimplementedMethodError, name
|
|
end
|
|
|
|
# These methods must be defined for most uses of the library.
|
|
%w[header segment section text data bss symtab serialize].each do |name|
|
|
define_method(name) { fail(name) }
|
|
end
|
|
|
|
end
|
|
|
|
end |