school

thing1's amazing school repo
Log | Files | Refs | Submodules | README

commit d4c7c945be76efd7bcc25d1a84455be465876bba
parent fec2f4d9d1989feb0290dfcff416385ec4b97586
Author: thing1 <thing1@seacrossedlovers.xyz>
Date:   Wed,  7 Aug 2024 18:14:59 +0100

added too much stuff, my head hurts@

Diffstat:
Mcomp/lucas-standen-NEA/code/proto/parser/test | 0
Mcomp/lucas-standen-NEA/code/tokenizer/parser.c | 15+++++++++------
Mcomp/lucas-standen-NEA/code/tokenizer/parser.h | 2+-
Mcomp/lucas-standen-NEA/code/zpy/Makefile | 2+-
Mcomp/lucas-standen-NEA/code/zpy/zpy | 0
Mcomp/lucas-standen-NEA/code/zpy/zpy.c | 7++++++-
6 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/comp/lucas-standen-NEA/code/proto/parser/test b/comp/lucas-standen-NEA/code/proto/parser/test Binary files differ. diff --git a/comp/lucas-standen-NEA/code/tokenizer/parser.c b/comp/lucas-standen-NEA/code/tokenizer/parser.c @@ -57,11 +57,13 @@ FILE *preProcess(char *contents){ } char **getExpressions(char *file){ + char **code = CheckedMalloc((strlen(file)/2)*sizeof(char *)); + int counter = 0; int depth = 0; char *str = CheckedMalloc(strlen(file)+1); int pos = 0; for (int i = 0; i < strlen(file); i++){ - str[pos] = str[i]; + str[pos] = file[i]; pos++; if (file[i] == '(') depth++; @@ -71,14 +73,16 @@ char **getExpressions(char *file){ if (depth == 0) { str[pos] = '\0'; printf("%s\n", str); + code[counter] = str; + counter++; pos = 0; } } - - return NULL; + return code; + } -char *parser(char *fileName){ +char **parser(char *fileName){ FILE *tmp = preProcess(readFile(fileName)); fseek(tmp, 0, SEEK_END); int len = ftell(tmp); @@ -86,6 +90,5 @@ char *parser(char *fileName){ char *buf = CheckedMalloc(len); fgets(buf, len, tmp); fclose(tmp); - getExpressions(buf); - return buf; + return getExpressions(buf); } diff --git a/comp/lucas-standen-NEA/code/tokenizer/parser.h b/comp/lucas-standen-NEA/code/tokenizer/parser.h @@ -1 +1 @@ -char *parser(char *fileName); // general parser function +char **parser(char *fileName); // general parser function diff --git a/comp/lucas-standen-NEA/code/zpy/Makefile b/comp/lucas-standen-NEA/code/zpy/Makefile @@ -1,2 +1,2 @@ -zpy: +zpy: zpy.c cc zpy.c ../global/util.o ../tokenizer/parser.o -o zpy -ggdb diff --git a/comp/lucas-standen-NEA/code/zpy/zpy b/comp/lucas-standen-NEA/code/zpy/zpy Binary files differ. diff --git a/comp/lucas-standen-NEA/code/zpy/zpy.c b/comp/lucas-standen-NEA/code/zpy/zpy.c @@ -2,6 +2,7 @@ #include "../tokenizer/parser.h" #include "../global/types.h" +#include "../tokenizer/tokenizer.h" #include "../global/util.h" int main(int argc, char **argv){ @@ -9,6 +10,10 @@ int main(int argc, char **argv){ printf("repl not yet implemented\n"); Die(); } - parser(argv[1]); + char **file = parser(argv[1]); + + for (int i = 0; i < 10; i++){ + printf("%s\n", file[i]); + } return 0; }