#include "stack.h"	/* スタック操作用ヘッダファイル読み込み */

/* デバッグプリント用のprintf()のため */
#include <stdio.h>

int sp = 0;			/* スタックポインタ */
double val[MAXVAL];	/* 値のスタック */


/* push: fをスタックにプッシュする */
void push(double f)
{
	if (sp < MAXVAL) {
		printf("push  sp:%d  val:%g\n", sp, f);
		val[sp++] = f;
	}
	else {
		printf("error: stack full, can't push %g\n", f);
	}
}

/* pop: スタックから一番上の値をポップして返す */
double pop(void)
{
	if (sp > 0) {
		double f = val[--sp];
		printf("pop   sp:%d  val:%g\n", sp, f);
		return f;
	}
	else {
		printf("error: stack empty\n");
	}
	return 0.0;
}