module HackAssembler

Constants

VERSION

Public Class Methods

translate_file(input_file, output_file) click to toggle source
# File lib/hack_assembler.rb, line 12
def self.translate_file(input_file, output_file)
  source_file = File.open(input_file)
  source_code = source_file.read

  symbol_table = SymbolTable.new

  label_less_code = Assembler.scan_and_remove_labels(source_code, symbol_table)
  processed_source = Assembler.process_symbols(label_less_code, symbol_table)
  machine_code = Assembler.translate(processed_source)

  File.open(output_file, 'w') { |file| file.write(machine_code); file.close }

  source_file.close
end