Changeset 5599
- Timestamp:
- Dec 6, 2006, 4:05:11 PM (18 years ago)
- File:
-
- 1 edited
-
trunk/ccl/compiler/nx0.lisp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/compiler/nx0.lisp
r5573 r5599 200 200 (defmacro define-compiler-macro (name arglist &body body &environment env) 201 201 "Define a compiler-macro for NAME." 202 (setq name (validate-function-name name)) 203 (let ((body (parse-macro-1 name arglist body env))) 204 `(eval-when (:compile-toplevel :load-toplevel :execute) 205 (setf (compiler-macro-function ',name) 206 (nfunction (compiler-macro-function ,name) ,body)) 207 ',name))) 202 (let* ((block-name name) 203 (def-name (validate-function-name name))) 204 (unless (eq def-name block-name) 205 (setq block-name (cadr block-name))) 206 (let ((body (parse-macro-1 block-name arglist body env))) 207 `(eval-when (:compile-toplevel :load-toplevel :execute) 208 (setf (compiler-macro-function ',name) 209 (nfunction (compiler-macro-function ,name) ,body)) 210 ',name)))) 208 211 209 212 ;;; This is silly (as may be the whole idea of actually -using- compiler-macros). … … 236 239 "If NAME names a compiler-macro in ENV, return the expansion function, else 237 240 return NIL. Can be set with SETF when ENV is NIL." 241 (setq name (validate-function-name name)) 238 242 (unless (nx-lexical-finfo name env) 239 243 (or (cdr (assq name *nx-compile-time-compiler-macros*)) … … 241 245 242 246 (defun set-compiler-macro-function (name def) 243 ( unless (symbolp name) (report-bad-arg name 'symbol))247 (setq name (validate-function-name name)) 244 248 (if def 245 249 (setf (gethash name *compiler-macros*) def)
Note:
See TracChangeset
for help on using the changeset viewer.
