diff options
Diffstat (limited to 'comp/lucas-standen-NEA/code/tokenizer')
-rw-r--r-- | comp/lucas-standen-NEA/code/tokenizer/parser.c | 27 | ||||
-rw-r--r-- | comp/lucas-standen-NEA/code/tokenizer/parser.h | 2 | ||||
-rw-r--r-- | comp/lucas-standen-NEA/code/tokenizer/tokenizer.c | 1 |
3 files changed, 25 insertions, 5 deletions
diff --git a/comp/lucas-standen-NEA/code/tokenizer/parser.c b/comp/lucas-standen-NEA/code/tokenizer/parser.c index 7d827f9..d4fec18 100644 --- a/comp/lucas-standen-NEA/code/tokenizer/parser.c +++ b/comp/lucas-standen-NEA/code/tokenizer/parser.c @@ -1,12 +1,10 @@ #include <stdio.h> #include <stdlib.h> +#include <string.h> #include "../global/types.h" #include "../global/util.h" -char *readFile(char *fileName); // reads the file into a single var -char *parser(char *fileName); // general parser function - char *readFile(char *filename){ FILE *f = fopen(filename, "r"); if (f == NULL) @@ -58,6 +56,28 @@ FILE *preProcess(char *contents){ return tmp; } +char **getExpressions(char *file){ + int depth = 0; + char *str = CheckedMalloc(strlen(file)+1); + int pos = 0; + for (int i = 0; i < strlen(file); i++){ + str[pos] = str[i]; + pos++; + if (file[i] == '(') + depth++; + if (file[i] == ')') + depth--; + + if (depth == 0) { + str[pos] = '\0'; + printf("%s\n", str); + pos = 0; + } + } + + return NULL; +} + char *parser(char *fileName){ FILE *tmp = preProcess(readFile(fileName)); fseek(tmp, 0, SEEK_END); @@ -66,5 +86,6 @@ char *parser(char *fileName){ char *buf = CheckedMalloc(len); fgets(buf, len, tmp); fclose(tmp); + getExpressions(buf); return buf; } diff --git a/comp/lucas-standen-NEA/code/tokenizer/parser.h b/comp/lucas-standen-NEA/code/tokenizer/parser.h index 993d257..496bdbc 100644 --- a/comp/lucas-standen-NEA/code/tokenizer/parser.h +++ b/comp/lucas-standen-NEA/code/tokenizer/parser.h @@ -1,3 +1 @@ char *parser(char *fileName); // general parser function -char *readFile(char *fileName); // reads the file into a single var -FILE *preProcess(char *contents); diff --git a/comp/lucas-standen-NEA/code/tokenizer/tokenizer.c b/comp/lucas-standen-NEA/code/tokenizer/tokenizer.c index afd68fe..8e45531 100644 --- a/comp/lucas-standen-NEA/code/tokenizer/tokenizer.c +++ b/comp/lucas-standen-NEA/code/tokenizer/tokenizer.c @@ -1,4 +1,5 @@ #include <stdio.h> +#include <stdlib.h> #include <string.h> #include "../global/types.h" |