summaryrefslogtreecommitdiff
path: root/util.lisp
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <matthias@benkard.de>2008-08-17 22:43:25 +0200
committerMatthias Andreas Benkard <matthias@benkard.de>2008-08-18 01:21:41 +0200
commitd86ccf58d5b462100d1f4ec5d016024543ec7f53 (patch)
tree857892d893278f2f405d7b0280cb65f96c940899 /util.lisp
parent79b29bf6e41ca122d469040cd671d43ce81bd6df (diff)
Replace special operator %DEFMACRO with intrinsic function %MACROSET.
Diffstat (limited to 'util.lisp')
-rw-r--r--util.lisp11
1 files changed, 11 insertions, 0 deletions
diff --git a/util.lisp b/util.lisp
index 412b23d..ede7eeb 100644
--- a/util.lisp
+++ b/util.lisp
@@ -22,6 +22,17 @@
otherwise unless when eq boundp))
+(%macroset '%defmacro
+ (%lambda args
+ (let ((form (car args)))
+ (let ((name (car (cdr form)))
+ (lambda-list-name (car (cdr (cdr form))))
+ (body (cdr (cdr (cdr form)))))
+ (list '%macroset
+ (list 'quote name)
+ (cons '%lambda
+ (cons lambda-list-name body)))))))
+
(%defmacro %defun args
(list '%fset
(list 'quote (car (cdr (car args))))