From bfce8f0d0d828209ec0bec71371ee94a7ad62d3e Mon Sep 17 00:00:00 2001 From: Michael Hunteman Date: Tue, 4 Jul 2023 17:03:53 -0500 Subject: Initial commit --- four/op.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 four/op.c (limited to 'four/op.c') diff --git a/four/op.c b/four/op.c new file mode 100644 index 0000000..f8e96ed --- /dev/null +++ b/four/op.c @@ -0,0 +1,42 @@ +#include + +#define MAXVAL 100 +#define NUMBER '0' + +int sp = 0; +double val[MAXVAL]; + +void +push(double f) +{ + if (sp < MAXVAL) { + val[sp++] = f; + } else { + printf("error: stack full, can't push %g\n", f); + } +} + +double +pop(void) +{ + if (sp > 0) { + return val[--sp]; + } else { + printf("error: stack empty\n"); + return 0.0; + } +} + +double +peek() +{ + return val[sp - 1]; +} + +void +clear() +{ + while (sp) { + val[sp--] = 0; + } +} -- cgit v1.2.3