~ chicken-core (chicken-5) 50191ad8b52bc5f67740b97aae168aa231f0f8c2


commit 50191ad8b52bc5f67740b97aae168aa231f0f8c2
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Fri May 21 22:08:37 2010 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Fri May 21 22:08:37 2010 +0200

    should be put somewhere else

diff --git a/expand.scm b/expand.scm
index 13e4ee7d..043a6f3a 100644
--- a/expand.scm
+++ b/expand.scm
@@ -1922,73 +1922,3 @@
       (set-module-sexports! mod sexports))))
 
 (define ##sys#module-table '())
-
-
-;;; Procedure to pre-parse keyword argument lists
-
-(define ##sys#parse-keyword-argument-list
-  (let ((reverse reverse)
-	(string-append string-append))
-    (lambda (arglist k+d k #!key (rename identity) (warn? #t) location)
-      (let ((%let (rename 'let)))
-	(define (warn msg . args)
-	  (when warn?
-	    (apply
-	     ##sys#warn
-	     (if location
-		 (string-append 
-		  "(" (##sys#symbol->string location) ") "
-		  msg)
-		 msg)
-	     args)))
-	(define (kw->sym kw) 
-	  (##sys#string->symbol (##sys#symbol->string kw)))
-	(let loop ((args arglist) (bindings '()))
-	  (cond ((null? args)
-		 `(,%let ,(map cdr (reverse bindings))
-			 (,%let	; bind variables with names of keyword args
-			  ,(let loop ((k+d k+d)) ; in case defaults refer to them
-			     (if (null? k+d) 
-				 '()
-				 (let* ((x (car k+d))
-					(kw (car x))
-					(def (cdr x)))
-				   (cond ((assq kw bindings) =>
-					  (lambda (a)
-					    (cons (list (kw->sym kw) (cadr a))
-						  (loop (cdr k+d)))))
-					 (else 
-					  (cons (list (kw->sym kw) def)
-						(loop (cdr k+d))))))))
-			  ,(k (let loop ((k+d k+d))
-				(if (null? k+d) 
-				    '()
-				    (let* ((x (car k+d))
-					   (kw (car x)))
-				      (cond ((assq kw bindings) => 
-					     (lambda (a)
-					       (cons (cadr a) (loop (cdr k+d)))))
-					    (else
-					     (cons (kw->sym kw)
-						   (loop (cdr k+d))))))))))))
-		((not (pair? args))
-		 (warn "invalid argument list syntax" arglist)
-		 #f)
-		(else
-		 (let ((arg (car args))
-		       (rest (cdr args)))
-		   (cond ((keyword? arg)
-			  (cond ((assq arg k+d) =>
-				 (lambda (a)
-				   (cond ((not (pair? rest))
-					  (warn "missing keyword argument value" arg arglist)
-					  #f)
-					 (else
-					  (let ((tmp (gensym arg)))
-					    (loop 
-					     (cdr rest) 
-					     (cons (list arg tmp (car rest)) bindings)))))))
-				(else
-				 (warn "unrecognized keyword argument" arg arglist)
-				 #f)))
-			 (else #f))))))))))
Trap