generated by the Parser), the evaluator will produce a token sequence consisting of two tokens: a single &quot;result&quot; token (which may be an error token), followed by the &quot;end-of-expression&quot; token. It does this by doing two main things: simplifying arithmetic expressions, and making function calls. </P>
<P>
The evaluator maintains two stacks, an Operator stack and an Argument stack. It reads the tokens from beginning to end. Each time it reads a token, it takes an action; this may involve pu