30 lines
610 B
C
30 lines
610 B
C
#ifndef STACK_H
|
|
#define STACK_H
|
|
|
|
#include "../common/types.h"
|
|
|
|
typedef struct stack_t {
|
|
int top;
|
|
union {
|
|
char bytes[256*4];
|
|
proc_object_t elements[256];
|
|
};
|
|
} stack_t;
|
|
|
|
//object push and pop
|
|
void Stack_push(stack_t *stack, proc_object_t object);
|
|
void Stack_pop(stack_t *stack, proc_object_t *object);
|
|
|
|
//integral push and pop
|
|
void Stack_pushInt(stack_t *stack, integral_t val);
|
|
void Stack_popInt(stack_t *stack, integral_t *val);
|
|
|
|
//decimal push and pop
|
|
void Stack_pushDec(stack_t *stack, decimal_t val);
|
|
void Stack_popDec(stack_t *stack, decimal_t *val);
|
|
|
|
//init
|
|
void initStack(stack_t *stack);
|
|
|
|
#endif
|