Changeset 4009
- Timestamp:
- 09/22/03 22:56:12 (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/j/src/org/armedbear/lisp/defstruct.lisp
r4008 r4009 2 2 ;;; 3 3 ;;; Copyright (C) 2003 Peter Graves 4 ;;; $Id: defstruct.lisp,v 1.2 0 2003-09-22 17:46:26piso Exp $4 ;;; $Id: defstruct.lisp,v 1.21 2003-09-22 22:56:12 piso Exp $ 5 5 ;;; 6 6 ;;; This program is free software; you can redistribute it and/or … … 39 39 40 40 (defun define-predicate () 41 (let ((pred (intern (concatenate 'string (symbol-name *ds-name*) "-P")))) 42 `((defun ,pred (object) 43 (typep object ',*ds-name*))))) 41 (when *ds-predicate* 42 (let ((pred (intern *ds-predicate*))) 43 `((defun ,pred (object) 44 (typep object ',*ds-name*)))))) 45 44 46 45 47 (defmacro get-slot-accessor (slot) … … 88 90 (make-symbol (string (cadr option)))))) 89 91 (:constructor 90 (when (= (length (cdr option)) 1)92 (when (= (length option) 2) 91 93 (if (null (cadr option)) 92 94 (setf *ds-constructor* nil) 93 (setf *ds-constructor* (symbol-name (cadr option)))))))) 95 (setf *ds-constructor* (symbol-name (cadr option)))))) 96 (:predicate 97 (when (= (length option) 2) 98 (if (null (cadr option)) 99 (setf *ds-predicate* nil) 100 (setf *ds-predicate* (symbol-name (cadr option)))))))) 94 101 95 102 (defun parse-name-and-options (name-and-options) … … 97 104 (setf *ds-conc-name* (make-symbol (concatenate 'string (symbol-name *ds-name*) "-"))) 98 105 (setf *ds-constructor* (concatenate 'string "MAKE-" (symbol-name *ds-name*))) 106 (setf *ds-predicate* (concatenate 'string (symbol-name *ds-name*) "-P")) 99 107 (let ((options (cdr name-and-options))) 100 108 (dolist (option options)
Note: See TracChangeset
for help on using the changeset viewer.