home *** CD-ROM | disk | FTP | other *** search
- ;;; setf.x - copyright(c) 1986 by David Morein
- ;;; this file contains experimental code related
- ;;; to SETF and DEFSETF.
- ;;;
- (pdq /sys/cmd)
- ;;;
- ;;; DEFSETF - simplified define-setf-method
- ;;;
- (defmacro defsetf (access-fn &rest body)
- (if (consp (car body))
- `(complex-defsetf ,access-fn ,(car body) ,(cadr body) ,(cddr body))
- `(simple-defsetf ,access-fn ,(car body))))
- ;;;
- ;;; SIMPLE-DEFSETF - handles defsetf of the form (defsetf access-fn update-fn)
- ;;;
- (defmacro simple-defsetf (access-fn update-fn)
- `(define-setf-method
- ,access-fn
- ,(setq lambda-list (construct-lambda-list access-fn))
- ,(setq temporaries (construct-temporaries-generator access-fn))
- ,(setq value-forms (construct-value-forms access-fn))
- ,(setq store-vars (construct-store-vars-generator access-fn))
- ,(setq store-form
- (construct-store-form-generator
- access-fn
- temporaries
- store-vars))
- ,(construct-accessing-form access-fn)))
- ;;;
- (popd) ;return to original directory
-