summaryrefslogtreecommitdiff
path: root/comp/lucas-standen-NEA/code
diff options
context:
space:
mode:
authorthing1 <thing1@seacrossedlovers.xyz>2024-08-07 18:14:59 +0100
committerthing1 <thing1@seacrossedlovers.xyz>2024-08-07 18:14:59 +0100
commitd4c7c945be76efd7bcc25d1a84455be465876bba (patch)
tree738522dfa962a3e15f34e2ed56833dcfa3a96f3b /comp/lucas-standen-NEA/code
parentfec2f4d9d1989feb0290dfcff416385ec4b97586 (diff)
added too much stuff, my head hurts@
Diffstat (limited to 'comp/lucas-standen-NEA/code')
-rwxr-xr-xcomp/lucas-standen-NEA/code/proto/parser/testbin29656 -> 29728 bytes
-rw-r--r--comp/lucas-standen-NEA/code/tokenizer/parser.c15
-rw-r--r--comp/lucas-standen-NEA/code/tokenizer/parser.h2
-rw-r--r--comp/lucas-standen-NEA/code/zpy/Makefile2
-rwxr-xr-xcomp/lucas-standen-NEA/code/zpy/zpybin30248 -> 30432 bytes
-rw-r--r--comp/lucas-standen-NEA/code/zpy/zpy.c7
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
index 260bab6..6989562 100755
--- 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
index d4fec18..81ddde1 100644
--- 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
index 496bdbc..09375d3 100644
--- 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
index 3bd6ea1..4bfe92a 100644
--- 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
index b7479f6..f3a466f 100755
--- 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
index 70d2757..411a824 100644
--- 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;
}