X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/sod/blobdiff_plain/1d8cc67a3f4ded443f5efc673a616883cbae9c50..ceed01afc84505ed0d116ee7a00e8b4a1a4bed6c:/src/parser/parser-expr-impl.lisp?ds=sidebyside diff --git a/src/parser/parser-expr-impl.lisp b/src/parser/parser-expr-impl.lisp index e0c681b..16e0c53 100644 --- a/src/parser/parser-expr-impl.lisp +++ b/src/parser/parser-expr-impl.lisp @@ -7,7 +7,7 @@ ;;;----- Licensing notice --------------------------------------------------- ;;; -;;; This file is part of the Sensble Object Design, an object system for C. +;;; This file is part of the Sensible Object Design, an object system for C. ;;; ;;; SOD is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by @@ -116,14 +116,14 @@ (defmethod push-operator (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))))) @@ -151,7 +151,7 @@ (defmethod push-operator (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)))