rewrite error exits for consistency

This commit is contained in:
EDiasAlberto 2024-06-03 21:23:18 +01:00
parent 6203e65bdc
commit 1ff18a4fb9
3 changed files with 14 additions and 7 deletions

View File

@ -0,0 +1,3 @@
#include <stdio.h>
#include <string.h>

View File

View File

@ -3,6 +3,7 @@
#define MAX_ASM_LINE_LENGTH 100 #define MAX_ASM_LINE_LENGTH 100
//validates inputted charlist as valid filename against expected extension
int isValidFileFormat(char filename[], char expectedExtension[]){ int isValidFileFormat(char filename[], char expectedExtension[]){
int *pointLoc = strrchr(filename, '.'); int *pointLoc = strrchr(filename, '.');
@ -14,10 +15,11 @@ int isValidFileFormat(char filename[], char expectedExtension[]){
return(0); return(0);
} }
//writes a list of words (list of binary instructions) to a named output file
int writeBinaryFile(word instrs[], char outputFile[]){ int writeBinaryFile(word instrs[], char outputFile[]){
if (!isValidFileFormat(filename, "bin")){ if (!isValidFileFormat(filename, "bin")){
return(-1); exit(EXIT_FAILURE);
} }
FILE *fp; FILE *fp;
@ -25,18 +27,20 @@ int writeBinaryFile(word instrs[], char outputFile[]){
fp = fopen(outputFile, "wb"); fp = fopen(outputFile, "wb");
if(fp == NULL){ if(fp == NULL){
return(-1); exit(EXIT_FAILURE);
} }
fwrite(instrs, 4, sizeof(instrs), fp); fwrite(instrs, sizeof(word), sizeof(instrs), fp);
fclose(fp); fclose(fp);
return(0); exit(EXIT_SUCCESS);
} }
//reads assembly file of "inputFile" name,
int readAssemblyFile(char inputFile[]) { int readAssemblyFile(char inputFile[]) {
if (!isValidFileFormat(filename, "s")){ if (!isValidFileFormat(filename, "s")){
return(1); exit(EXIT_FAILURE);
} }
FILE *fp; FILE *fp;
@ -45,12 +49,12 @@ int readAssemblyFile(char inputFile[]) {
fp = fopen(inputFile, "r"); fp = fopen(inputFile, "r");
if(fp == NULL){ if(fp == NULL){
return(-1); exit(EXIT_FAILURE);
} }
while (fgets(savedLine, MAX_ASM_LINE_LENGTH-1, fp) != NULL) { while (fgets(savedLine, MAX_ASM_LINE_LENGTH-1, fp) != NULL) {
//pass line to parser //pass line to parser
} }
return(0); exit(EXIT_SUCCESS);
} }