about summary refs log tree commit diff
path: root/src/3cl.c
diff options
context:
space:
mode:
authorNakidai <nakidai@disroot.org>2025-03-23 21:11:13 +0300
committerNakidai <nakidai@disroot.org>2025-03-23 21:11:13 +0300
commitad9d6a199db7c28f8b20f131dfb55a26e0e251de (patch)
treee5bb112cd902d9c09f5ad79ce98ba8a315d20bbb /src/3cl.c
parent159666bae6cc185a5abac154b85c49406f32f30c (diff)
download3cl-ad9d6a199db7c28f8b20f131dfb55a26e0e251de.tar.gz
3cl-ad9d6a199db7c28f8b20f131dfb55a26e0e251de.zip
Again...
Diffstat (limited to 'src/3cl.c')
-rw-r--r--src/3cl.c80
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;
-    }
-}