summaryrefslogtreecommitdiff
path: root/comp/lucas-standen-NEA/code/tokenizer/parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'comp/lucas-standen-NEA/code/tokenizer/parser.c')
-rw-r--r--comp/lucas-standen-NEA/code/tokenizer/parser.c37
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);
+}