(with-slots (valstack) state
(assert (not (null valstack)))
(push (funcall function (pop valstack)) valstack))))
(defmethod apply-operator
((operator simple-binary-operator) (state expression-parse-state))
(with-slots (valstack) state
(assert (not (null valstack)))
(push (funcall function (pop valstack)) valstack))))
(defmethod apply-operator
((operator simple-binary-operator) (state expression-parse-state))
(let ((head (car opstack)))
(cond ((not (typep head 'open-parenthesis))
(apply-operator head state))
(let ((head (car opstack)))
(cond ((not (typep head 'open-parenthesis))
(apply-operator head state))
(cerror* "Parse error: missing `~A'" tag)))
(defmethod operator-push-action (left (right open-parenthesis))
(cerror* "Parse error: missing `~A'" tag)))
(defmethod operator-push-action (left (right open-parenthesis))