Esempio n. 1
0
def main():
    file_in, file_out = parse_args()
    src_lines = file_in.readlines()
    lines, err = parse_lines(src_lines)
    file_in.close()
    if len(err) > 0:
        print "Syntax errors:"
        print_errors(err)
        file_out.close()
        return errors.ERR_SYNTAX[0]
    asm = Assembler()
    asm.run(lines)
    memory_table = asm.memory
    start_address = asm.start_address
    err = asm.errors
    if len(err) > 0:
        print "Assemble errors:"
        print_errors(err)
        file_out.close()
        return errors.ERR_ASSEMBLE[0]
    if start_address is not None:
        print "Start address: %04i" % start_address
    if memory_table is not None:
        print "Memory:"
        write_memory(sys.stdout, memory_table.memory)
    write_asm_file(file_out, start_address, memory_table.memory)
    file_out.close()
Esempio n. 2
0
  def assemble_program(self, fname):
    with open(fname, "r") as f:
      lines, errors = parse_lines(f.readlines())
      if errors != []:
        print "------------------------------\n",fname, '\nParse_line errors:'
        print_errors(errors)
      self.assertEqual(errors, [])

      asm = Assembler()
      asm.run(lines)

      if asm.errors != []:
        print "------------------------------\n",fname, '\nAssemble errors:'
        print_errors(asm.errors)
      self.assertEqual(asm.errors, [])