Module: HackAssembler
- Defined in:
- lib/hack_assembler.rb,
lib/hack_assembler/version.rb,
lib/hack_assembler/assembler.rb,
lib/hack_assembler/parser_error.rb,
lib/hack_assembler/symbol_table.rb,
lib/hack_assembler/a_instruction.rb,
lib/hack_assembler/c_instruction.rb,
lib/hack_assembler/jump_translator.rb,
lib/hack_assembler/computation_translator.rb,
lib/hack_assembler/destination_translator.rb
Defined Under Namespace
Modules: AInstruction, Assembler, CInstruction, ComputationTranslator, DestinationTranslator, JumpTranslator Classes: ParserError, SymbolTable
Constant Summary collapse
- VERSION =
"0.2.0"
Class Method Summary collapse
Class Method Details
.translate_file(input_file, output_file) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# 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 |