blob: 3a1f6975415ad13a3ef9a4da3ec7e1b34043acfe (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include "3cl.h"
#include <stdlib.h>
static inline void resize(struct CCLStack *stack)
{
stack->length *= 2;
stack->stack = realloc(stack->stack, stack->length * sizeof(*stack->stack));
}
void ccl_stack_push(struct CCLStack *stack, CCLNum num)
{
if (stack->cur + 1 == stack->length)
resize(stack);
stack->stack[++stack->cur] = num;
}
CCLNum ccl_stack_pop(struct CCLStack *stack, CCLNum num)
{
return stack->stack[stack->cur--];
}
|