[climacs-cvs] CVS update: climacs/prolog-syntax.lisp

Christophe Rhodes crhodes at common-lisp.net
Fri May 27 13:25:02 UTC 2005


Update of /project/climacs/cvsroot/climacs
In directory common-lisp.net:/tmp/cvs-serv3987

Modified Files:
	prolog-syntax.lisp 
Log Message:
Fix for multiple op/3 directives with the same operator.

Date: Fri May 27 15:25:01 2005
Author: crhodes

Index: climacs/prolog-syntax.lisp
diff -u climacs/prolog-syntax.lisp:1.20 climacs/prolog-syntax.lisp:1.21
--- climacs/prolog-syntax.lisp:1.20	Thu May 26 15:22:33 2005
+++ climacs/prolog-syntax.lisp	Fri May 27 15:25:01 2005
@@ -747,11 +747,13 @@
     (with-slots (term) directive-term
       (with-slots (right) term
 	(let* ((a (arg-list right))
-	       (exp (arg-list-nth 2 a))
-	       (term (term exp)))
-	  (let ((value (slot-value term 'value)))
-	    (when (typep value 'atom)
-	      (canonical-name value))))))))
+	       (exp (arg-list-nth 2 a)))
+	  (etypecase exp
+	    (exp-atom (canonical-name (atom exp)))
+	    (exp-term (let* ((term (term exp))
+			     (value (slot-value term 'value)))
+			  (when (typep value 'atom)
+			    (canonical-name value))))))))))
 	   
 (define-prolog-rule (prolog-text -> (prolog-text directive))
   (when (and (op/3-directive-p directive)




More information about the Climacs-cvs mailing list