If an identifier is encountered the user supplied get operand procedure is called to return the value of the operand. Operands are described by the operand structure, and operands are passed about by a pointer to such a structure. The value of the expression is returned as a pointer to an operand structure containing the function value. Operands of different data types may be mixed in an expression with the usual automatic type coercion rules. All SPP operators and intrinsic functions are recognized.
Output is a pointer to an operand structure containing the computed value of the expression.
Note that the second and third arguments are the int entry point addresses of procedures. If there is no function supplied, use NULL for the address. The lexical form of the input expression is the same as that of SPP and the cl for all numeric, character, and string constants and operators. Any other sequence of characters is considered an identifier and will be passed to the user supplied get operand function to be turned into an operand. The operand structure is used to represent all operands in expressions and on the parser stack.