diff options
Diffstat (limited to 'comp/lucas-standen-NEA/code/tokenizer')
-rw-r--r-- | comp/lucas-standen-NEA/code/tokenizer/Makefile | 5 | ||||
-rw-r--r-- | comp/lucas-standen-NEA/code/tokenizer/parser.c | 37 | ||||
-rw-r--r-- | comp/lucas-standen-NEA/code/tokenizer/parser.h | 3 | ||||
-rw-r--r-- | comp/lucas-standen-NEA/code/tokenizer/sample.zpy | 5 | ||||
-rw-r--r-- | comp/lucas-standen-NEA/code/tokenizer/tokenizer.c | 3 | ||||
-rw-r--r-- | comp/lucas-standen-NEA/code/tokenizer/tokenizer.h | 0 | ||||
-rw-r--r-- | comp/lucas-standen-NEA/code/tokenizer/types.c | 0 | ||||
-rw-r--r-- | comp/lucas-standen-NEA/code/tokenizer/types.h | 0 | ||||
-rw-r--r-- | comp/lucas-standen-NEA/code/tokenizer/util.c | 27 | ||||
-rw-r--r-- | comp/lucas-standen-NEA/code/tokenizer/util.h | 3 |
10 files changed, 83 insertions, 0 deletions
diff --git a/comp/lucas-standen-NEA/code/tokenizer/Makefile b/comp/lucas-standen-NEA/code/tokenizer/Makefile new file mode 100644 index 0000000..b5cfe56 --- /dev/null +++ b/comp/lucas-standen-NEA/code/tokenizer/Makefile @@ -0,0 +1,5 @@ + +parser: parser.c util + cc -O3 parser.c util.o -c -o parser.o +util: util.c + cc -O3 util.c -c -o util.o 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); +} diff --git a/comp/lucas-standen-NEA/code/tokenizer/parser.h b/comp/lucas-standen-NEA/code/tokenizer/parser.h new file mode 100644 index 0000000..e4f69a8 --- /dev/null +++ b/comp/lucas-standen-NEA/code/tokenizer/parser.h @@ -0,0 +1,3 @@ +char *Parse(char *fileName); // general parser function + +char *ReadFile(char *fileName); // reads the file into a single var diff --git a/comp/lucas-standen-NEA/code/tokenizer/sample.zpy b/comp/lucas-standen-NEA/code/tokenizer/sample.zpy new file mode 100644 index 0000000..f0d9700 --- /dev/null +++ b/comp/lucas-standen-NEA/code/tokenizer/sample.zpy @@ -0,0 +1,5 @@ +(let x:char[] "he +llo") + +(let y:i32 20) + diff --git a/comp/lucas-standen-NEA/code/tokenizer/tokenizer.c b/comp/lucas-standen-NEA/code/tokenizer/tokenizer.c new file mode 100644 index 0000000..a643455 --- /dev/null +++ b/comp/lucas-standen-NEA/code/tokenizer/tokenizer.c @@ -0,0 +1,3 @@ +#include "parser.h" + + diff --git a/comp/lucas-standen-NEA/code/tokenizer/tokenizer.h b/comp/lucas-standen-NEA/code/tokenizer/tokenizer.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/comp/lucas-standen-NEA/code/tokenizer/tokenizer.h diff --git a/comp/lucas-standen-NEA/code/tokenizer/types.c b/comp/lucas-standen-NEA/code/tokenizer/types.c new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/comp/lucas-standen-NEA/code/tokenizer/types.c diff --git a/comp/lucas-standen-NEA/code/tokenizer/types.h b/comp/lucas-standen-NEA/code/tokenizer/types.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/comp/lucas-standen-NEA/code/tokenizer/types.h diff --git a/comp/lucas-standen-NEA/code/tokenizer/util.c b/comp/lucas-standen-NEA/code/tokenizer/util.c new file mode 100644 index 0000000..de5b6b2 --- /dev/null +++ b/comp/lucas-standen-NEA/code/tokenizer/util.c @@ -0,0 +1,27 @@ +#include <stdio.h> +#include <stdlib.h> +#include <errno.h> +#include <error.h> + +void Die(); // brings down the program +void *CheckedMalloc(long size); // malloc checked +void *CheckedRealloc(void *out, long size); // realloc checked + +void Die(){ + perror("zpy parser"); + exit(errno); +} + +void *CheckedMalloc(long size){ + void *out = malloc(size); + if (out == NULL) + Die(); + return out; +} + +void *CheckedRealloc(void *orig, long size){ + void *out = realloc(orig, size); + if (out == NULL) + Die(); + return out; +} diff --git a/comp/lucas-standen-NEA/code/tokenizer/util.h b/comp/lucas-standen-NEA/code/tokenizer/util.h new file mode 100644 index 0000000..cbcbdfa --- /dev/null +++ b/comp/lucas-standen-NEA/code/tokenizer/util.h @@ -0,0 +1,3 @@ +void Die(); // brings down the program +void *CheckedMalloc(long size); // malloc checked +void *CheckedRealloc(void *out, long size); // realloc checked |