[movitz-cvs] CVS movitz/losp/muerte

ffjeld ffjeld at common-lisp.net
Fri Mar 21 22:27:17 UTC 2008


Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory clnet:/tmp/cvs-serv3728

Modified Files:
	eval.lisp 
Log Message:
Add multiple-value-call special-operator.


--- /project/movitz/cvsroot/movitz/losp/muerte/eval.lisp	2008/03/21 00:20:48	1.27
+++ /project/movitz/cvsroot/movitz/losp/muerte/eval.lisp	2008/03/21 22:27:17	1.28
@@ -10,7 +10,7 @@
 ;;;; Author:        Frode Vatvedt Fjeld <frodef at acm.org>
 ;;;; Created at:    Fri Oct 19 21:15:12 2001
 ;;;;                
-;;;; $Id: eval.lisp,v 1.27 2008/03/21 00:20:48 ffjeld Exp $
+;;;; $Id: eval.lisp,v 1.28 2008/03/21 22:27:17 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -117,12 +117,19 @@
     (setq (eval-setq form env))
     (setf (eval-setf form env))
     ((defvar) (eval-defvar form env))
-    (let (eval-let (cadr form) (cddr form) env))
-    (let* (multiple-value-bind (body declarations)
-	      (parse-declarations-and-body (cddr form))
-	    (eval-let* (cadr form) declarations body env)))
+    ((let)
+     (eval-let (cadr form) (cddr form) env))
+    ((let*)
+     (multiple-value-bind (body declarations)
+	 (parse-declarations-and-body (cddr form))
+       (eval-let* (cadr form) declarations body env)))
     ((defun) (eval-defun (cadr form) (caddr form) (cdddr form) env))
     ((lambda) (eval-function form env)) ; the lambda macro..
+    ((multiple-value-call)
+     (apply (eval-form (cadr form) env)
+	    (mapcan (lambda (args-form)
+		      (multiple-value-list (eval-form args-form env)))
+		    (cddr form))))
     ((multiple-value-bind)
      (eval-m-v-bind form env))
     ((multiple-value-prog1)




More information about the Movitz-cvs mailing list