
// HSPOSCmp
// Copyright (c) 2012 mogesystem

#include "bootpack.h"
#include "hsp.h"

PVal mainStack[256];
int stack_now;

void StackInit(void)
{
	stack_now = 0;
}

void StackPushInt(int value)
{
	mainStack[stack_now].type = ST_INT;
	mainStack[stack_now].ival = value;
	stack_now++;
}

/*
void StackPushDouble(double value)
{
	mainStack[stack_now].type = ST_DBL;
	mainStack[stack_now].dval = value;
	stack_now++;
}
*/

void StackPushStr(char *str, int size)
{
	mainStack[stack_now].type = ST_STR;
	mainStack[stack_now].str = str;
	mainStack[stack_now].strsize = size;
	stack_now++;
}

void StackPushLabel(int label)
{
	mainStack[stack_now].type = ST_LABEL;
	mainStack[stack_now].ival = label;
	stack_now++;
}

PVal StackPop(void)
{
	if (stack_now > 0) {
		stack_now--;
	}
	return mainStack[stack_now];
}
