GigglyCode
Compiler BackendC++23 / LLVM IR Compiler & Runtime Engine
# Define a generic struct for a linked list node
@generic(T: Any)
struct ListNode {
value: T;
next: ListNode[T];
def __init__(self: ListNode[T], value: T, next: ListNode[T]) -> void {
self.value = value;
self.next = next;
};
};
@generic(T: Any)
struct LinkedList {
head: ListNode[T];
def add(self: LinkedList[T], value: T) -> void {
newNode: ListNode[T] = new ListNode(value, nullptr);
if (self.head == nullptr) {
self.head = newNode;
} else {
current: ListNode[T] = self.head;
while (current.next != nullptr) {
current = current.next;
}
current.next = newNode;
};
};
};
# Switch-case example
val: int = 2;
switch (val) {
case (1) { printf("Value is 1."); }
case (2) { printf("Value is 2."); }
default { printf("Value is unknown."); }
}
# While loop example
counter: int = 0;
while (counter < 5) {
printf("Counter: %i", counter);
counter = counter + 1;
};