summaryrefslogtreecommitdiff
path: root/comp/cw
diff options
context:
space:
mode:
Diffstat (limited to 'comp/cw')
-rw-r--r--comp/cw/code/ads/dict/Makefile4
-rw-r--r--comp/cw/code/ads/dict/dict.c29
-rw-r--r--comp/cw/code/ads/dict/dict.h9
-rwxr-xr-xcomp/cw/code/ads/dict/dicttestbin20536 -> 0 bytes
-rw-r--r--comp/cw/code/ads/dict/dicttest.c10
-rw-r--r--comp/cw/code/ads/ll/Makefile5
-rw-r--r--comp/cw/code/ads/ll/ll.c50
-rw-r--r--comp/cw/code/ads/ll/ll.h15
-rwxr-xr-xcomp/cw/code/ads/ll/lltestbin20592 -> 0 bytes
-rw-r--r--comp/cw/code/ads/ll/lltest.c18
-rw-r--r--comp/cw/code/parser/Makefile12
-rwxr-xr-xcomp/cw/code/parser/parserbin20880 -> 0 bytes
-rw-r--r--comp/cw/code/parser/parser.c32
-rw-r--r--comp/cw/code/parser/parser.obin2256 -> 0 bytes
-rw-r--r--comp/cw/code/parser/preprocessor.c24
-rw-r--r--comp/cw/code/parser/preprocessor.h5
-rw-r--r--comp/cw/code/parser/preprocessor.obin1504 -> 0 bytes
-rw-r--r--comp/cw/code/parser/readfile.c61
-rw-r--r--comp/cw/code/parser/readfile.h1
-rw-r--r--comp/cw/code/parser/readfile.obin2208 -> 0 bytes
-rw-r--r--comp/cw/code/parser/sample.zpy15
-rw-r--r--comp/cw/code/tokenizer/ads/dict/Makefile4
-rw-r--r--comp/cw/code/tokenizer/ads/dict/dict.c29
-rw-r--r--comp/cw/code/tokenizer/ads/dict/dict.h9
-rw-r--r--comp/cw/code/tokenizer/ads/dict/dict.obin1768 -> 0 bytes
-rwxr-xr-xcomp/cw/code/tokenizer/ads/dict/dicttestbin20536 -> 0 bytes
-rw-r--r--comp/cw/code/tokenizer/ads/dict/dicttest.c10
-rw-r--r--comp/cw/code/tokenizer/ads/dll/Makefile5
-rw-r--r--comp/cw/code/tokenizer/ads/dll/dll.c62
-rw-r--r--comp/cw/code/tokenizer/ads/dll/dll.h19
-rw-r--r--comp/cw/code/tokenizer/ads/dll/dll.obin2424 -> 0 bytes
-rwxr-xr-xcomp/cw/code/tokenizer/ads/dll/dlltestbin20640 -> 0 bytes
-rw-r--r--comp/cw/code/tokenizer/ads/dll/dlltest.c20
-rw-r--r--comp/cw/code/tokenizer/ads/ll/Makefile5
-rw-r--r--comp/cw/code/tokenizer/ads/ll/ll.c50
-rw-r--r--comp/cw/code/tokenizer/ads/ll/ll.h15
-rw-r--r--comp/cw/code/tokenizer/ads/ll/ll.obin2184 -> 0 bytes
-rwxr-xr-xcomp/cw/code/tokenizer/ads/ll/lltestbin20592 -> 0 bytes
-rw-r--r--comp/cw/code/tokenizer/ads/ll/lltest.c18
-rw-r--r--comp/cw/overview302
40 files changed, 0 insertions, 838 deletions
diff --git a/comp/cw/code/ads/dict/Makefile b/comp/cw/code/ads/dict/Makefile
deleted file mode 100644
index f224267..0000000
--- a/comp/cw/code/ads/dict/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-all: dict.c
- cc dict.c -c -o dict.o
-test: all
- cc dict.o dicttest.c -o dicttest
diff --git a/comp/cw/code/ads/dict/dict.c b/comp/cw/code/ads/dict/dict.c
deleted file mode 100644
index 551afca..0000000
--- a/comp/cw/code/ads/dict/dict.c
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <stdlib.h>
-#include <string.h>
-
-typedef struct dict_t {
- int id;
- void *data;
-}dict_t;
-
-dict_t *dictalloc(){
- dict_t *output = malloc(sizeof(dict_t));
- return output;
-}
-
-int dictset(dict_t *dict, int id, void *data){
- dict->id = id;
-
- dict->data = malloc(sizeof(data));
- if (dict->data == NULL)
- return 1;
- memcpy(dict->data, data, sizeof(data));
-
- return 0;
-}
-
-void dictfree(dict_t *dict){
- free(dict->data);
- free(dict);
-}
-
diff --git a/comp/cw/code/ads/dict/dict.h b/comp/cw/code/ads/dict/dict.h
deleted file mode 100644
index e6ab69d..0000000
--- a/comp/cw/code/ads/dict/dict.h
+++ /dev/null
@@ -1,9 +0,0 @@
-typedef struct dict_t {
- int id;
- void *data;
-}dict_t;
-
-dict_t *dictalloc();
-int dictset(dict_t *dict, int id, void *data);
-void dictfree(dict_t *dict);
-
diff --git a/comp/cw/code/ads/dict/dicttest b/comp/cw/code/ads/dict/dicttest
deleted file mode 100755
index dddf2a0..0000000
--- a/comp/cw/code/ads/dict/dicttest
+++ /dev/null
Binary files differ
diff --git a/comp/cw/code/ads/dict/dicttest.c b/comp/cw/code/ads/dict/dicttest.c
deleted file mode 100644
index 4a20870..0000000
--- a/comp/cw/code/ads/dict/dicttest.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <stdio.h>
-
-#include "dict.h"
-
-int main(){
- dict_t *dict = dictalloc();
- dictset(dict, 1, "hello");
- printf("%d:%s\n", dict->id, (char *)dict->data);
- dictfree(dict);
-}
diff --git a/comp/cw/code/ads/ll/Makefile b/comp/cw/code/ads/ll/Makefile
deleted file mode 100644
index aaf0241..0000000
--- a/comp/cw/code/ads/ll/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-all: ll.c
- cc ll.c -c -o ll.o
-
-test: all
- cc ll.o lltest.c -o lltest
diff --git a/comp/cw/code/ads/ll/ll.c b/comp/cw/code/ads/ll/ll.c
deleted file mode 100644
index c45ab0c..0000000
--- a/comp/cw/code/ads/ll/ll.c
+++ /dev/null
@@ -1,50 +0,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-typedef struct ll_t ll_t;
-
-typedef struct ll_t {
- void *data;
- ll_t *next;
-} ll_t;
-
-ll_t *llalloc(){
- ll_t *output = malloc(sizeof(ll_t));
- if (output == NULL)
- return NULL;
- output->next = NULL;
- return output;
-}
-
-void llsetdata(ll_t *node, void *data){
- node->data = malloc(sizeof(data));
- memcpy(node->data, data, sizeof(data));
-}
-
-void llsetnext(ll_t *node, ll_t *next){
- if (node->next == NULL)
- node->next = next;
- else
- llsetnext(node->next, next);
-}
-
-void *llgetat(ll_t *head, int index){
- if (index == 0)
- return head->data;
- else {
- if (head->next != NULL) {
- return llgetat(head->next, index - 1);
- }else {
- return NULL;
- }
- }
-}
-
-void llfreeall(ll_t *head){
- if (head->next != NULL)
- llfreeall(head->next);
- free(head->data);
- free(head);
-}
-
diff --git a/comp/cw/code/ads/ll/ll.h b/comp/cw/code/ads/ll/ll.h
deleted file mode 100644
index 30830b1..0000000
--- a/comp/cw/code/ads/ll/ll.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <stdlib.h>
-#include <string.h>
-
-typedef struct ll_t ll_t;
-
-typedef struct ll_t {
- void *data;
- ll_t *next;
-} ll_t;
-
-ll_t *llalloc();
-void llsetdata(ll_t *node, void *data);
-void llsetnext(ll_t *node, ll_t *next);
-void *llgetat(ll_t *head, int index);
-void llfreeall(ll_t *head);
diff --git a/comp/cw/code/ads/ll/lltest b/comp/cw/code/ads/ll/lltest
deleted file mode 100755
index b98c5de..0000000
--- a/comp/cw/code/ads/ll/lltest
+++ /dev/null
Binary files differ
diff --git a/comp/cw/code/ads/ll/lltest.c b/comp/cw/code/ads/ll/lltest.c
deleted file mode 100644
index 8aa6514..0000000
--- a/comp/cw/code/ads/ll/lltest.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <stdio.h>
-
-#include "ll.h"
-
-int main(){
- ll_t *head = llalloc();
- llsetdata(head, "hello");
-
- for (int i = 0; i < 3; i++){
- ll_t *node = llalloc();
- llsetdata(node, "hi");
- llsetnext(head, node);
- }
- for (int i = 0; i < 4; i++)
- printf("%s\n", (char *)llgetat(head, i));
-
- llfreeall(head);
-}
diff --git a/comp/cw/code/parser/Makefile b/comp/cw/code/parser/Makefile
deleted file mode 100644
index 9325d95..0000000
--- a/comp/cw/code/parser/Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-all: readfile preprocesor parser
- cc readfile.o preprocessor.o parser.o -o parser
-
-readfile:
- cc -c readfile.c -o readfile.o
-preprocesor:
- cc -c preprocessor.c -o preprocessor.o
-parser: parser.c
- cc -c parser.c -o parser.o
-
-clean:
- rm -rf *.o parser
diff --git a/comp/cw/code/parser/parser b/comp/cw/code/parser/parser
deleted file mode 100755
index 9d996a8..0000000
--- a/comp/cw/code/parser/parser
+++ /dev/null
Binary files differ
diff --git a/comp/cw/code/parser/parser.c b/comp/cw/code/parser/parser.c
deleted file mode 100644
index 3162841..0000000
--- a/comp/cw/code/parser/parser.c
+++ /dev/null
@@ -1,32 +0,0 @@
-#include <string.h>
-#include <stdio.h>
-#include <stdbool.h>
-
-#include "preprocessor.h"
-
-int main(int argc, char **argv){
- if (argc <= 1){
- printf("no args given!\n");
- return 1;
- }
- char *code = preprocessor(argc, argv);
- if (code == NULL){
- printf("falled to open file\n");
- return 1;
- }
- for (int i = 0; i < strlen(code); i++){
- if (code[i] == '{'){
- printf("\nopen-scope\n");
- } else if (code[i] == '}'){
- printf("\nclose-scope\n");
- }else {
- if (code[i] == '(')
- printf("\n");
- else if (code[i] != ')')
- printf("%c", code[i]);
- }
- }
- printf("\n");
- free(code);
- return 0;
-}
diff --git a/comp/cw/code/parser/parser.o b/comp/cw/code/parser/parser.o
deleted file mode 100644
index baccd37..0000000
--- a/comp/cw/code/parser/parser.o
+++ /dev/null
Binary files differ
diff --git a/comp/cw/code/parser/preprocessor.c b/comp/cw/code/parser/preprocessor.c
deleted file mode 100644
index 92c6127..0000000
--- a/comp/cw/code/parser/preprocessor.c
+++ /dev/null
@@ -1,24 +0,0 @@
-#include <stdbool.h>
-#include <string.h>
-
-#include "readfile.h"
-
-char *preprocessor(int argc, char **argv){
- char *buf = readfile(argv[1]);
- if (buf == NULL)
- return NULL;
-
- int i = 0;
-
- while (buf[i] != '\0'){
- if (buf[i] == '\n'){
- buf[i] = ' ';
- }
- if (buf[i] == '\t'){
- buf[i] = ' ';
- }
- i++;
- }
-
- return buf;
-}
diff --git a/comp/cw/code/parser/preprocessor.h b/comp/cw/code/parser/preprocessor.h
deleted file mode 100644
index 855240f..0000000
--- a/comp/cw/code/parser/preprocessor.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-char *preprocessor(int argc, char **argv);
diff --git a/comp/cw/code/parser/preprocessor.o b/comp/cw/code/parser/preprocessor.o
deleted file mode 100644
index fad2c87..0000000
--- a/comp/cw/code/parser/preprocessor.o
+++ /dev/null
Binary files differ
diff --git a/comp/cw/code/parser/readfile.c b/comp/cw/code/parser/readfile.c
deleted file mode 100644
index 391d5a5..0000000
--- a/comp/cw/code/parser/readfile.c
+++ /dev/null
@@ -1,61 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdbool.h>
-
-bool instring = false;
-
-char *readfile(char *filepath){
- FILE *fptr;
- fptr = fopen(filepath, "r");
-
- if (fptr == NULL)
- return NULL;
- int size = 10;
- char *buf = malloc(size);
- char c;
-
- int i = 0;
-
- buf = buf+i;
- buf[0] = '{';
- buf = buf-i;
-
- i++;
-
- while ((c = getc(fptr)) != EOF){
- if (i > size + 1){
- size = size + 10;
- buf = realloc(buf, size);
- }
- if (c == '"'){
- if (instring == false)
- instring = true;
- else
- instring = false;
- }
-
- if (c == '!' && instring == false){
- while ((c = getc(fptr)) != EOF && c != '\n'){}
- }
- buf = buf+i;
- buf[0] = c;
- buf = buf-i;
- i++;
-
- }
-
- buf = buf+i;
- buf[0] = '}';
- buf = buf-i;
-
- i++;
-
- buf = buf+i;
- buf[0] = '\0';
- buf = buf-i;
-
- fclose(fptr);
-
- return buf;
-}
diff --git a/comp/cw/code/parser/readfile.h b/comp/cw/code/parser/readfile.h
deleted file mode 100644
index 12d98ec..0000000
--- a/comp/cw/code/parser/readfile.h
+++ /dev/null
@@ -1 +0,0 @@
-char *readfile(char *filepath);
diff --git a/comp/cw/code/parser/readfile.o b/comp/cw/code/parser/readfile.o
deleted file mode 100644
index 32bc31d..0000000
--- a/comp/cw/code/parser/readfile.o
+++ /dev/null
Binary files differ
diff --git a/comp/cw/code/parser/sample.zpy b/comp/cw/code/parser/sample.zpy
deleted file mode 100644
index e289d9d..0000000
--- a/comp/cw/code/parser/sample.zpy
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-(let fib:function
-(defun num:i32 i32
- (if (< num 2)
- (return num)
- )
- (else
- (return (+ (fib (- num 1)) (fib (- num 2)) ))
- )
-))
-}
-(let a:i32 (fib 5))
-(const str[]:char "hello!")
-! returns the 5th fib number
-(const str[]:char "hello!")
diff --git a/comp/cw/code/tokenizer/ads/dict/Makefile b/comp/cw/code/tokenizer/ads/dict/Makefile
deleted file mode 100644
index f224267..0000000
--- a/comp/cw/code/tokenizer/ads/dict/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-all: dict.c
- cc dict.c -c -o dict.o
-test: all
- cc dict.o dicttest.c -o dicttest
diff --git a/comp/cw/code/tokenizer/ads/dict/dict.c b/comp/cw/code/tokenizer/ads/dict/dict.c
deleted file mode 100644
index 551afca..0000000
--- a/comp/cw/code/tokenizer/ads/dict/dict.c
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <stdlib.h>
-#include <string.h>
-
-typedef struct dict_t {
- int id;
- void *data;
-}dict_t;
-
-dict_t *dictalloc(){
- dict_t *output = malloc(sizeof(dict_t));
- return output;
-}
-
-int dictset(dict_t *dict, int id, void *data){
- dict->id = id;
-
- dict->data = malloc(sizeof(data));
- if (dict->data == NULL)
- return 1;
- memcpy(dict->data, data, sizeof(data));
-
- return 0;
-}
-
-void dictfree(dict_t *dict){
- free(dict->data);
- free(dict);
-}
-
diff --git a/comp/cw/code/tokenizer/ads/dict/dict.h b/comp/cw/code/tokenizer/ads/dict/dict.h
deleted file mode 100644
index e6ab69d..0000000
--- a/comp/cw/code/tokenizer/ads/dict/dict.h
+++ /dev/null
@@ -1,9 +0,0 @@
-typedef struct dict_t {
- int id;
- void *data;
-}dict_t;
-
-dict_t *dictalloc();
-int dictset(dict_t *dict, int id, void *data);
-void dictfree(dict_t *dict);
-
diff --git a/comp/cw/code/tokenizer/ads/dict/dict.o b/comp/cw/code/tokenizer/ads/dict/dict.o
deleted file mode 100644
index aefd77a..0000000
--- a/comp/cw/code/tokenizer/ads/dict/dict.o
+++ /dev/null
Binary files differ
diff --git a/comp/cw/code/tokenizer/ads/dict/dicttest b/comp/cw/code/tokenizer/ads/dict/dicttest
deleted file mode 100755
index dddf2a0..0000000
--- a/comp/cw/code/tokenizer/ads/dict/dicttest
+++ /dev/null
Binary files differ
diff --git a/comp/cw/code/tokenizer/ads/dict/dicttest.c b/comp/cw/code/tokenizer/ads/dict/dicttest.c
deleted file mode 100644
index 4a20870..0000000
--- a/comp/cw/code/tokenizer/ads/dict/dicttest.c
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <stdio.h>
-
-#include "dict.h"
-
-int main(){
- dict_t *dict = dictalloc();
- dictset(dict, 1, "hello");
- printf("%d:%s\n", dict->id, (char *)dict->data);
- dictfree(dict);
-}
diff --git a/comp/cw/code/tokenizer/ads/dll/Makefile b/comp/cw/code/tokenizer/ads/dll/Makefile
deleted file mode 100644
index 651681d..0000000
--- a/comp/cw/code/tokenizer/ads/dll/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-all: dll.c
- cc dll.c -c -o dll.o
-
-test: all
- cc dll.o dlltest.c -o dlltest
diff --git a/comp/cw/code/tokenizer/ads/dll/dll.c b/comp/cw/code/tokenizer/ads/dll/dll.c
deleted file mode 100644
index b24b13f..0000000
--- a/comp/cw/code/tokenizer/ads/dll/dll.c
+++ /dev/null
@@ -1,62 +0,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-typedef struct dll_t dll_t;
-
-typedef struct dll_t {
- void *data;
- dll_t *next;
- dll_t *prev;
-} dll_t;
-
-dll_t *dllalloc(){
- dll_t *output = malloc(sizeof(dll_t));
- if (output == NULL)
- return NULL;
- output->next = NULL;
- output->prev = NULL;
- return output;
-}
-
-void dllsetdata(dll_t *node, void *data){
- node->data = malloc(sizeof(data));
- memcpy(node->data, data, sizeof(data));
-}
-
-void dllsetnext(dll_t *node, dll_t *next){
- if (node->next == NULL) {
- node->next = next;
- node->next->prev = node;
- }
- else
- dllsetnext(node->next, next);
-}
-void dllsetprev(dll_t *node, dll_t *prev){
- if (node->prev == NULL) {
- node->prev = prev;
- node->prev->next = node;
- }
- else
- dllsetprev(node->prev, prev);
-}
-
-void *dllgetat(dll_t *head, int index){
- if (index == 0)
- return head->data;
- else {
- if (head->next != NULL) {
- return dllgetat(head->next, index - 1);
- }else {
- return NULL;
- }
- }
-}
-
-void dllfreeall(dll_t *head){
- if (head->next != NULL)
- dllfreeall(head->next);
- free(head->data);
- free(head);
-}
-
diff --git a/comp/cw/code/tokenizer/ads/dll/dll.h b/comp/cw/code/tokenizer/ads/dll/dll.h
deleted file mode 100644
index 44940ce..0000000
--- a/comp/cw/code/tokenizer/ads/dll/dll.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-typedef struct dll_t dll_t;
-
-typedef struct dll_t {
- void *data;
- dll_t *next;
- dll_t *prev;
-} dll_t;
-
-dll_t *dllalloc();
-void dllsetdata(dll_t *node, void *data);
-void dllsetnext(dll_t *node, dll_t *next);
-void dllsetprev(dll_t *node, dll_t *prev);
-void *dllgetat(dll_t *head, int index);
-void dllfreeall(dll_t *head);
-
diff --git a/comp/cw/code/tokenizer/ads/dll/dll.o b/comp/cw/code/tokenizer/ads/dll/dll.o
deleted file mode 100644
index 2c9a145..0000000
--- a/comp/cw/code/tokenizer/ads/dll/dll.o
+++ /dev/null
Binary files differ
diff --git a/comp/cw/code/tokenizer/ads/dll/dlltest b/comp/cw/code/tokenizer/ads/dll/dlltest
deleted file mode 100755
index 83f900c..0000000
--- a/comp/cw/code/tokenizer/ads/dll/dlltest
+++ /dev/null
Binary files differ
diff --git a/comp/cw/code/tokenizer/ads/dll/dlltest.c b/comp/cw/code/tokenizer/ads/dll/dlltest.c
deleted file mode 100644
index 4544d2e..0000000
--- a/comp/cw/code/tokenizer/ads/dll/dlltest.c
+++ /dev/null
@@ -1,20 +0,0 @@
-#include <stdio.h>
-
-#include "dll.h"
-
-int main(){
- dll_t *head = dllalloc();
- dllsetdata(head, "hello");
-
- for (int i = 0; i < 3; i++){
- dll_t *node = dllalloc();
- dllsetdata(node, "hi");
- dllsetnext(head, node);
- }
-
- for (int i = 0; i < 4; i++)
- printf("%s\n", (char *)dllgetat(head, i));
- printf("%s\n", (char *)head->prev->next->data);
-
- dllfreeall(head);
-}
diff --git a/comp/cw/code/tokenizer/ads/ll/Makefile b/comp/cw/code/tokenizer/ads/ll/Makefile
deleted file mode 100644
index aaf0241..0000000
--- a/comp/cw/code/tokenizer/ads/ll/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-all: ll.c
- cc ll.c -c -o ll.o
-
-test: all
- cc ll.o lltest.c -o lltest
diff --git a/comp/cw/code/tokenizer/ads/ll/ll.c b/comp/cw/code/tokenizer/ads/ll/ll.c
deleted file mode 100644
index c45ab0c..0000000
--- a/comp/cw/code/tokenizer/ads/ll/ll.c
+++ /dev/null
@@ -1,50 +0,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-typedef struct ll_t ll_t;
-
-typedef struct ll_t {
- void *data;
- ll_t *next;
-} ll_t;
-
-ll_t *llalloc(){
- ll_t *output = malloc(sizeof(ll_t));
- if (output == NULL)
- return NULL;
- output->next = NULL;
- return output;
-}
-
-void llsetdata(ll_t *node, void *data){
- node->data = malloc(sizeof(data));
- memcpy(node->data, data, sizeof(data));
-}
-
-void llsetnext(ll_t *node, ll_t *next){
- if (node->next == NULL)
- node->next = next;
- else
- llsetnext(node->next, next);
-}
-
-void *llgetat(ll_t *head, int index){
- if (index == 0)
- return head->data;
- else {
- if (head->next != NULL) {
- return llgetat(head->next, index - 1);
- }else {
- return NULL;
- }
- }
-}
-
-void llfreeall(ll_t *head){
- if (head->next != NULL)
- llfreeall(head->next);
- free(head->data);
- free(head);
-}
-
diff --git a/comp/cw/code/tokenizer/ads/ll/ll.h b/comp/cw/code/tokenizer/ads/ll/ll.h
deleted file mode 100644
index 30830b1..0000000
--- a/comp/cw/code/tokenizer/ads/ll/ll.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <stdlib.h>
-#include <string.h>
-
-typedef struct ll_t ll_t;
-
-typedef struct ll_t {
- void *data;
- ll_t *next;
-} ll_t;
-
-ll_t *llalloc();
-void llsetdata(ll_t *node, void *data);
-void llsetnext(ll_t *node, ll_t *next);
-void *llgetat(ll_t *head, int index);
-void llfreeall(ll_t *head);
diff --git a/comp/cw/code/tokenizer/ads/ll/ll.o b/comp/cw/code/tokenizer/ads/ll/ll.o
deleted file mode 100644
index b033278..0000000
--- a/comp/cw/code/tokenizer/ads/ll/ll.o
+++ /dev/null
Binary files differ
diff --git a/comp/cw/code/tokenizer/ads/ll/lltest b/comp/cw/code/tokenizer/ads/ll/lltest
deleted file mode 100755
index b98c5de..0000000
--- a/comp/cw/code/tokenizer/ads/ll/lltest
+++ /dev/null
Binary files differ
diff --git a/comp/cw/code/tokenizer/ads/ll/lltest.c b/comp/cw/code/tokenizer/ads/ll/lltest.c
deleted file mode 100644
index 8aa6514..0000000
--- a/comp/cw/code/tokenizer/ads/ll/lltest.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <stdio.h>
-
-#include "ll.h"
-
-int main(){
- ll_t *head = llalloc();
- llsetdata(head, "hello");
-
- for (int i = 0; i < 3; i++){
- ll_t *node = llalloc();
- llsetdata(node, "hi");
- llsetnext(head, node);
- }
- for (int i = 0; i < 4; i++)
- printf("%s\n", (char *)llgetat(head, i));
-
- llfreeall(head);
-}
diff --git a/comp/cw/overview b/comp/cw/overview
deleted file mode 100644
index 5f7904e..0000000
--- a/comp/cw/overview
+++ /dev/null
@@ -1,302 +0,0 @@
-CS course work project
-
-zippy - a high level functional programing language
-
-zippy will be an interpreted language designed to replace C in higher level use
-C is used largely to write most of the unix desktop, however c can be difficult
-when writing larger programs, and is missing moddern features like oop or
-functional patterns (higher order functions)
-
-requirents:
- - must be human readable, even a non programmer should be able to figure
- out what a program is doing
- - faster than competion, other languages that have tried to slot into
- this position like python are far to slow, and thus it must be faster
- - low runtime overhead, the interpreter should be small, it shouldn't
- force the developer to think about how the interpreter works to use it
- efficently
- - have moddern tools, a pkg manager and enviroment manager, making it
- easy to develop for
- - needs to support c libarys
-
-language info
-
-zippy will use function programming as a primary solution, however also support
-simple oop, with classes (no inheritence)
-its syntax will be comparable to lisp, with prolific use of "()"
-it will need a stdlib, which can be taken from C's stdlib
-
-types:
-
- char - just like a c char
- i32 - 32 bit signed int
- f32 - 32 bit signed float
- u32 - unsigned 32 bit int
- i16- 16 bit signed int
- u16 - 16 bit unsigned int
- bool - TRUE/FALSE
-
-
- arrays:
-
- arrays can be created like so
- (let arr[]:char "hello there")
- (let arr[]:i32 1 2 3)
-
- all arrays are linked lists of there data type
- their size is not fixed
-
- you can get, or set the value of an array at a specific index using
- arr[index]
-
- strings:
-
- strings are arrays of chars
- a string can be defined by a litteral like so
- "hello world" - this is the same as 'h' 'e' 'l'....
- because this is represented as a linked list there is no need to have a
- NULL terminator like in c, the end of the string is jus the point where the
- linked list has no more nodes
-
-comments:
-
- comments can be writen like so
- ! this is a comment
-
-indentation and spacing:
-
- indentation and new lines arent at all necesary
- any new lines will be converted to spaces, and tabs will be removed
- the only place that needs spaces is when calling a function and giving its args
-
-scopes:
-
- () can be placed anywhere, and anything that is in them is in there own scope
- as soon as the bracket is closed, any variables defined in the scope
- will be deleted
- any scope inherets all variables and functions from the scope that contains it
- code writen in the main body of the file can be imagined like so
- (
- ...
- ...
- ...
- your code
- ...
- ...
- ...
- )
- however that level of indentation is not needed
-
- this can be helpful if you want to have two scopes with different imports
- (
- (import z)
- (
- (import x)
- ! anything writen here has access to libary x and z
- )
- (
- (import y)
- ! anything writen here has access to libary y and z
- )
- ! anything writen here has access to libary z
- )
-
-libarys:
-
- libarys are similar to header files in c
- when imported the user can use any function contained within the file
-
- it would be good practice to put your libary in a struct to avoid functions with the
- same names coming from 2 libarys, however its not needed
-
-errors:
-
- errors would be
-
-keywords:
-
- (defun arg1:type arg2:type returnType
- ...
- ...
- ...
- )
- defines a function, can be done anywhere in the program, all functions
- must return a value, return type and arguments must be known at runtime
-
- returns the function that can be asigned with let
-
- (return VALUE)
- returns VALUE from a function, VALUE must be of the same tupe as returnType
- in defun
-
- (for x a b function)
-
- runs the function inside the loop, x will be increment by 1 each iteration and
- it will have a starting value of a running until it reaches b (inclusive)
- x cant be changed in any way other than the for loop
- x, a, b are all of type i32
-
- (while condtion function)
-
- runs all code inside the loop until the condion is not TRUE
- condition must be a bool (TRUE/FALSE)
-
- (let name:type value)
-
- assign value to variable name, this will create the variable if it doesn't already
- exist, and overwrite it if it does
- names type must be defined by type
-
- (const name:type value)
-
- same as let but creates an imutable variable
-
- (import libary)
-
- searches the libary dir and imports the libary to the current project
- libary can also be a specific path if it starts with / or ./ or ../
-
- (struct name
- ...
- ...
- ...
- (defun init arg1:type type
- ...
- ...
- ...
- )
- (defun deinit arg1:type type
- ...
- ...
- ...
- )
- )
-
- structs can be used as a custom data type
- creates a struct/class called name, functions called init will be ran when an
- object is created
- when deinit is called the code init will be ran, then the object will be deleted
- if deinit is not defined it can still be called to delete the instace of the class
-
- you can create a struct like so:
- (let mystruct:name (name.init arg1 arg2))
-
- you can call a method attached to an instace of a struct like this:
- (mystruct.method arg1 arg2)
-
- and to destroy it you can just use this:
- (mystruct.deinit arg1 arg2)
-
- structs can be recursive
- eg:
- (struct node
- (defun init next:node
- (let next:node next)
- )
- )
-
- a struct can have default values
- eg:
- (struct person
- (let age:i32 50)
- (let name[]:char "john doe")
- ...
- ...
- ...
- )
-
- this will make the struct have default values
-
- overall in simple terms structs are just like c structs but they can contain
- functions
-
- (symbol arg1:type arg2:type returntype location)
-
- returns a function that can be called. the function is retrieved from a .o file
- which can be writen in C, the args, should be the args that the function takes in
- and there types
- the interpreter will try to convert data to the equal type in C, however this may need
- to be done manually
- the location should be a string which is is the file path to the .o file
-
- (if condition
- ...
- ...
- ...
- )(elif condition
- ...
- ...
- ...
- )(else
- ...
- ...
- ...
- )
-
- simple if statment, if condition is TRUE run the code inside, elif runs if the condition in it
- is TRUE and if the previous has not been TRUE
- else will run if nothing else is TRUE
-
- (cast TYPE variable)
-
- returns a variable casted to type TYPE, if type is function, will return a function with no args
- that returns the variable value in its starting type
-
- conditions:
- (= a b) returns TRUE if a is equal to be (works with arrays)
- (!= a b) returns TRUE if a is not equal to be (works with arrays)
- (> a b) returns TRUE if a > b (does not work with arrays)
- (< a b) returns TRUE if a < b (does not work with arrays)
- (>= a b) returns TRUE if a >= b (does not work with arrays)
- (<= a b) returns TRUE if a <= b (does not work with arrays)
- (! a) returns TRUE if a is FALSE (only works on bools)
- (| a b) returns TRUE if a or b are TRUE (only works on bools)
- (& a b) returns TRUE if a and b are TRUE (only works on bools)
- (^ a b) returns TRUE if a xor b is true (only works on bools)
-
- all these are just functions that can be used to assign values
- eg:
- (let mybool:bool (= a b))
- ! mybool will be TRUE if a = b
-
- mathmatical operations:
- zippy uses reverse polish notation
- (+ a b) returns a + b
- (- a b) returns a - b
- (* a b) returns a * b
- (/ a b) returns a / b, whole number eg: (/ 7 3) = 2
- (/. a b) returns a / b, floating point number eg: (/. 7 3) = 2.5
- (% a b) returns the remander of (/ a b)
- (** a b) returns a ^ b
-
-
-sample code
- (let fib:function (defun num:i32 i32
- (if (< num 2)
- (return num)
- )
- (else
- (return (+ (fib (- num 1)) (fib (- num 2)) ))
- )
- )
- )
- (let a:i32 (fib 5))
- ! returns the 5th fib number
-
-stdlib:
- (import io)
- io contains a few types
- they are:
- (io.file)
- io contains many io related functions
- they are:
-
- (io.write "hello %s\n" name) ! this is very similar to printf in C
- (let input:char[] (io.read))
-
- (let file:io.file (io.open path[]:char "method"))
-
- (io.fwrite file:io.file "hello %s" name)
- (let file[]:char (io.fread file:io.file))
- (let line[]:char (io.freadline file:io.file lineno:i32))
-