src/parser/parser-expr-impl.lisp: Compare paren tags with `eql'.
[sod] / src / parser / parser-expr-impl.lisp
index e0c681b..41c154f 100644 (file)
 
 (defmethod apply-operator
     ((operator simple-unary-operator) (state expression-parse-state))
-  (with-slots (function) operator
+  (with-slots ((function %function)) operator
     (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 (function) operator
+  (with-slots ((function %function)) operator
     (with-slots (valstack) state
       (assert (not (or (null valstack)
                       (null (cdr valstack)))))
          (let ((head (car opstack)))
            (cond ((not (typep head 'open-parenthesis))
                   (apply-operator head state))
-                 ((not (eq (slot-value head 'tag) tag))
+                 ((not (eql (slot-value head 'tag) tag))
                   (fail))
                  (t
                   (return)))