diff options
Diffstat (limited to 'comp/lucas-standen-NEA/code/tokenizer/parser.c')
-rw-r--r-- | comp/lucas-standen-NEA/code/tokenizer/parser.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/comp/lucas-standen-NEA/code/tokenizer/parser.c b/comp/lucas-standen-NEA/code/tokenizer/parser.c new file mode 100644 index 0000000..9ac9fde --- /dev/null +++ b/comp/lucas-standen-NEA/code/tokenizer/parser.c @@ -0,0 +1,37 @@ +#include <stdio.h> +#include <stdlib.h> + +#include "util.h" + +char *Parse(char *fileName); // general parser function + +char *ReadFile(char *fileName); // reads the file into a single var + +char *ReadFile(char *filename){ + FILE *f = fopen(filename, "r"); + if (f == NULL) + Die(); + + fseek(f, 0, SEEK_END); + size_t len = ftell(f); + rewind(f); + + char *out = malloc(len+1); + + char c; + for (int i = 0; i < len; i++){ + c = fgetc(f); + if (c == '\n' || c == '\t') + out[i] = ' '; + else + out[i] = c; + } + out[len+1] = '\0'; + + fclose(f); + return out; +} + +char *Parser(char *fileName){ + return ReadFile(fileName); +} |