Basic Routines
TOKEN opstack, opndstack; /* + - * / ... */ int opprec[20] = { 0, 6, 6, 7, 7, ...}; void pushop (TOKEN tok) /* push op onto stack */ { tok->link = opstack; opstack = tok; } TOKEN popop () /* pop op from stack */ { TOKEN tok; tok = opstack; opstack = tok->link; return(tok); } int prec (TOKEN tok) /* precedence of op tok */ { if (tok == NULL) return(-1); /* -1 for empty stack */ else if (tok->tokentype == OPERATOR) return(opprec[tok->whichval]); else return(-1); } /* -1 for ( */