X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/aa14a4cddcb96b681d5c19a2ec8bad382f43b264..8eb242b160e163a1cfc6e810aeda4788116bba1a:/src/parser/parser-expr-impl.lisp diff --git a/src/parser/parser-expr-impl.lisp b/src/parser/parser-expr-impl.lisp index 89b0f58..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 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 @@ (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))) @@ -165,9 +165,11 @@ (cerror* "Parse error: missing `~A'" tag))) (defmethod operator-push-action (left (right open-parenthesis)) + (declare (ignore left)) :push) (defmethod operator-push-action ((left open-parenthesis) right) + (declare (ignore right)) :push) ;;;--------------------------------------------------------------------------