rewrite error exits for consistency
This commit is contained in:
parent
6203e65bdc
commit
1ff18a4fb9
3
src/assemblylineconversion.c
Normal file
3
src/assemblylineconversion.c
Normal file
@ -0,0 +1,3 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
0
src/assemblylineconversion.h
Normal file
0
src/assemblylineconversion.h
Normal file
@ -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);
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user