From f7a08d4db77eaef1f6685c3fb263bb1cb1376deb Mon Sep 17 00:00:00 2001 From: Moon Flower Date: Fri, 28 Feb 2025 01:50:25 +0330 Subject: Added a (rather useless) profiler (and also linked list speed optimizations) --- main.c | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index 58c28dd..c59984f 100644 --- a/main.c +++ b/main.c @@ -2,17 +2,30 @@ #include "moonshine.h" -datatype(binarytree, ((leaf, int), (node, binarytree *, int, binarytree *) )); +const enum { test_datatype, test_linkedlist } current_test = test_linkedlist; int main() { - const auto tree = instance(binarytree, leaf, 3); + if (current_test == test_datatype) { + datatype(binarytree, ((leaf, int), (node, binarytree *, int, binarytree *) )); + const auto tree = instance(binarytree, leaf, 3); - print(&tree); + print(&tree); - match(tree) { - of(leaf, v) print("Leafy ", v); - of(node, _, v, _) print("Nodey ", v); - other() print("Idk man"); + match(tree) { + of(leaf, v) print("Leafy ", v); + of(node, _, v, _) print("Nodey ", v); + other() print("Idk man"); + } + } else if (current_test == test_linkedlist) { + const auto ll = create_linkedlist(); + + for (u8 i = 0; i < 100; i++) push_linkedlist(ll, (var) i); + + print((u8) index_to_ptr(ll, 12)->data); + } + + else { + print("Unknown test."); } return 0; -- cgit v1.2.3