diff options
| author | Nakidai <nakidai@disroot.org> | 2025-03-23 21:11:13 +0300 |
|---|---|---|
| committer | Nakidai <nakidai@disroot.org> | 2025-03-23 21:11:13 +0300 |
| commit | ad9d6a199db7c28f8b20f131dfb55a26e0e251de (patch) | |
| tree | e5bb112cd902d9c09f5ad79ce98ba8a315d20bbb /src/3cl.c | |
| parent | 159666bae6cc185a5abac154b85c49406f32f30c (diff) | |
| download | 3cl-ad9d6a199db7c28f8b20f131dfb55a26e0e251de.tar.gz 3cl-ad9d6a199db7c28f8b20f131dfb55a26e0e251de.zip | |
Again...
Diffstat (limited to 'src/3cl.c')
| -rw-r--r-- | src/3cl.c | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/src/3cl.c b/src/3cl.c deleted file mode 100644 index bcadf4d..0000000 --- a/src/3cl.c +++ /dev/null @@ -1,80 +0,0 @@ -#include "3cl.h" - -#include <errno.h> -#include <stdbool.h> -#include <stdio.h> -#include <stdlib.h> - -#include "instruction.h" - - -int ccl_init(struct CCL *ccl, const char *code, int (*in)(), void (*out)(int)) -{ - *ccl = (struct CCL) - { - .code = code, - .stopped = false, - .in = in, - .out = out, - .rootframe = (struct CCLFrame) - { - .prev = NULL, .next = NULL, - .type = CCL_ROOT, - .ep = 0, - .vars = (struct CCLVariable) - { - .prev = NULL, - .next = NULL, - .name = '_', - .value = 0 - }, - }, - .stack = (struct CCLStack) - { - .length = CCL_STACKSIZE, - .stack = (CCLNum *)malloc(CCL_STACKSIZE) - }, - }; - - return errno; -} - -void ccl_free(struct CCL *ccl) -{ - free(ccl->stack.stack); - if (ccl->rootframe.next != NULL) - { - for (struct CCLFrame *frame = ccl->rootframe.next, *new;;) - { - if (frame->vars.next != NULL) - { - for (struct CCLVariable *var = frame->vars.next, *new;;) - { - if (var->next == NULL) - break; - new = var->next; - free(var); - var = new; - } - } - - if (frame->next == NULL) - break; - new = frame->next; - free(frame); - frame = new; - } - } -} - -void ccl_exec(struct CCL *ccl) -{ - struct CCLFrame *curframe = &ccl->rootframe; - - for (;;) - { - curframe = ccl_instruction(ccl, curframe); - if (ccl->stopped) - break; - } -} |