diff --git a/src/assemble.c b/src/assemble.c index aa54b4e..4ed2733 100755 --- a/src/assemble.c +++ b/src/assemble.c @@ -1,8 +1,8 @@ #include #include #include "parser.c" +#include "fileio.c" int main(int argc, char **argv) { - return EXIT_SUCCESS; } diff --git a/src/fileio.c b/src/fileio.c index 32cfdb2..85fd8d1 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -4,7 +4,7 @@ #define MAX_ASM_LINE_LENGTH 30 int isValidFileFormat(char filename[], char expectedExtension[]){ - int *pointLoc = strrchr(filename, '.'); + char *pointLoc = strrchr(filename, '.'); if(pointLoc != NULL){ if(strcmp(pointLoc, expectedExtension)==0){ @@ -14,9 +14,9 @@ int isValidFileFormat(char filename[], char expectedExtension[]){ return(0); } -int writeBinaryFile(word instrs[], char outputFile[]){ +int writeBinaryFile(word instrs[], char outputFile[], int numInstrs){ - if (!isValidFileFormat(filename, "bin")){ + if (!isValidFileFormat(outputFile, "bin")){ return(-1); } @@ -28,14 +28,14 @@ int writeBinaryFile(word instrs[], char outputFile[]){ return(-1); } - fwrite(instrs, 4, sizeof(instrs), fp); + fwrite(instrs, 4, sizeof(word) * numInstrs, fp); fclose(fp); return(0); } char **readAssemblyFile(char inputFile[]) { - if (!isValidFileFormat(filename, "s")){ + if (!isValidFileFormat(inputFile, "s")){ return(NULL); } @@ -51,24 +51,24 @@ char **readAssemblyFile(char inputFile[]) { { if (ch == '\n' || ch == '\0') { - count++; + lineCount++; } } - char **heap = malloc(sizeof(char *) * count); + char **heap = malloc(sizeof(char *) * lineCount); rewind(fp); - for( int i=0; i