Skip to content

occultlang/occlib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 

Repository files navigation

occlib

The occult C backend, using tgc as a garbage collector.

Issues now

#1

How to use

Dynamic arrays

#include <stdio.h>
#include "occ_dynarray.h"

int main(int argc, char *argv[]) {
    tgc_start(&gc, argv);

    dyn_array* vec = create_array_string();

    DYN_VECTOR_PUSH_BACK(vec, "Hi World!");

    char* a = DYN_VECTOR_AT(vec, 0, a);

    printf("%s\n", a);

    tgc_stop(&gc);

    return 0;
}

Basic multidimensional array of

int array[2][2] = { {1, 2},
                    {3, 4} };
int main(int argc, char *argv[]) {
    tgc_start(&gc, argv);

    dyn_array* array = create_array_self();
    printf("Created new self\n");
    
    DYN_VECTOR_PUSH_BACK(array, create_array_long());
    DYN_VECTOR_PUSH_BACK(array, create_array_long());

    printf("Created new array(s)\n");

    dyn_array* row_array = DYN_VECTOR_AT(array, 0, row_array);
    DYN_VECTOR_PUSH_BACK(row_array, 1);
    DYN_VECTOR_PUSH_BACK(row_array, 2);
    printf("Added content to (1)\n");

    dyn_array* row_array2 = DYN_VECTOR_AT(array, 1, row_array2);
    DYN_VECTOR_PUSH_BACK(row_array2, 3);
    DYN_VECTOR_PUSH_BACK(row_array2, 4);
    printf("Added content to (2)\n");

    for (int row = 0; row < DYN_VECTOR_SIZE(array); row++) {
        dyn_array* row_array = DYN_VECTOR_AT(array, row, row_array);
        for (int col = 0; col < DYN_VECTOR_SIZE(row_array); col++) {
            printf("%ld ", DYN_VECTOR_AT(row_array, col, TYPE_NUM));
        }
        printf("\n");
    }

    tgc_stop(&gc);

    return 0;
}

Releases

No releases published

Packages

No packages published

Languages