Casio_asm/interpreter/stack.h

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