lc4-disassembler / lc4.c
lc4.c
Raw
#include "lc4_disassembler.h"
#include "lc4_loader.h"
#include "lc4_memory.h"

#include <stdio.h>
#include <string.h>

int main(int argc, char **argv) {

  if (argc < 2) {
    printf("error1: usage: ./lc4 <object_file>.obj\n");
    return 1;
  }

  char filename[100];
  row_of_memory *memory = NULL;

  strcpy(filename, argv[1]);
  FILE *file = open_file(filename);
  if (!file) {
    printf("error: open_file failed\n");
    return 2;
  }

  if (parse_file(file, &memory) != 0) {
    printf("error: parse_file failed\n");
    return 3;
  }

  if (reverse_assemble(memory) != 0) {
    printf("error: reverse_assemble failed\n");
    delete_list(&memory);
    return 4;
  }

  print_list(memory);

  if (output_file(filename, memory) != 0) {
    printf("error: output_file failed\n");
    delete_list(&memory);
    return 5;
  }

  if (delete_list(&memory) != 0) {
    printf("error: delete_list failed\n");
    return 6;
  }

  return 0;
}