// // Created by egor on 24.04.23. // #ifndef LAMA_RUNTIME_VIRT_STACK_H #define LAMA_RUNTIME_VIRT_STACK_H #define RUNTIME_VSTACK_SIZE 100000 #include #include struct { size_t buf[RUNTIME_VSTACK_SIZE + 1]; size_t cur; } typedef virt_stack; virt_stack *vstack_create (); void vstack_destruct (virt_stack *st); void vstack_init (virt_stack *st); void vstack_push (virt_stack *st, size_t value); size_t vstack_pop (virt_stack *st); void *vstack_top (virt_stack *st); size_t vstack_size (virt_stack *st); size_t vstack_kth_from_start (virt_stack *st, size_t k); #endif //LAMA_RUNTIME_VIRT_STACK_H