From 1ff18a4fb9b2e9da595e34d02e9617a9492ab88e Mon Sep 17 00:00:00 2001 From: EDiasAlberto Date: Mon, 3 Jun 2024 21:23:18 +0100 Subject: [PATCH] rewrite error exits for consistency --- src/assemblylineconversion.c | 3 +++ src/assemblylineconversion.h | 0 src/fileaccess.c | 18 +++++++++++------- 3 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 src/assemblylineconversion.c create mode 100644 src/assemblylineconversion.h diff --git a/src/assemblylineconversion.c b/src/assemblylineconversion.c new file mode 100644 index 0000000..f612329 --- /dev/null +++ b/src/assemblylineconversion.c @@ -0,0 +1,3 @@ +#include +#include + diff --git a/src/assemblylineconversion.h b/src/assemblylineconversion.h new file mode 100644 index 0000000..e69de29 diff --git a/src/fileaccess.c b/src/fileaccess.c index 3ee3831..621de3c 100644 --- a/src/fileaccess.c +++ b/src/fileaccess.c @@ -3,6 +3,7 @@ #define MAX_ASM_LINE_LENGTH 100 +//validates inputted charlist as valid filename against expected extension int isValidFileFormat(char filename[], char expectedExtension[]){ int *pointLoc = strrchr(filename, '.'); @@ -14,10 +15,11 @@ int isValidFileFormat(char filename[], char expectedExtension[]){ return(0); } +//writes a list of words (list of binary instructions) to a named output file int writeBinaryFile(word instrs[], char outputFile[]){ if (!isValidFileFormat(filename, "bin")){ - return(-1); + exit(EXIT_FAILURE); } FILE *fp; @@ -25,18 +27,20 @@ int writeBinaryFile(word instrs[], char outputFile[]){ fp = fopen(outputFile, "wb"); if(fp == NULL){ - return(-1); + exit(EXIT_FAILURE); } - fwrite(instrs, 4, sizeof(instrs), fp); + fwrite(instrs, sizeof(word), sizeof(instrs), fp); fclose(fp); - return(0); + exit(EXIT_SUCCESS); } + +//reads assembly file of "inputFile" name, int readAssemblyFile(char inputFile[]) { if (!isValidFileFormat(filename, "s")){ - return(1); + exit(EXIT_FAILURE); } FILE *fp; @@ -45,12 +49,12 @@ int readAssemblyFile(char inputFile[]) { fp = fopen(inputFile, "r"); if(fp == NULL){ - return(-1); + exit(EXIT_FAILURE); } while (fgets(savedLine, MAX_ASM_LINE_LENGTH-1, fp) != NULL) { //pass line to parser } - return(0); + exit(EXIT_SUCCESS); } \ No newline at end of file