~ chicken-core (chicken-5) a59c9a110e49b8395b8845f2de12f27b3941e066


commit a59c9a110e49b8395b8845f2de12f27b3941e066
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Fri Mar 12 14:33:21 2010 +0100
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Wed Mar 24 07:31:20 2010 +0100

    started work on fully consistent syntax

diff --git a/expand.scm b/expand.scm
index a64dbb5a..c952aa37 100644
--- a/expand.scm
+++ b/expand.scm
@@ -1087,6 +1087,50 @@
 	     `((##sys#setter ,(car dest)) ,@(cdr dest) ,val))
 	    (else `(##core#set! ,dest ,val)))))))
 
+(##sys#extend-macro-environment
+ 'let
+ '()
+ (##sys#er-transformer
+  (lambda (form r c)
+    (##sys#check-syntax 'let x '(_ #((symbol _) 0) . #(_ 1)))
+    `(##core#let ,@(cdr x)))))
+
+(##sys#extend-macro-environment
+ 'letrec
+ '()
+ (##sys#er-transformer
+  (lambda (form r c)
+    (##sys#check-syntax 'letrec x '(_ #((symbol _) 0) . #(_ 1)))
+    `(##core#letrec ,@(cdr x)))))
+
+(##sys#extend-macro-environment
+ 'let-syntax
+ '()
+ (##sys#er-transformer
+  (lambda (form r c)
+    (##sys#check-syntax 'let-syntax x '(_ #((symbol _) 0) . #(_ 1)))
+    `(##core#let-syntax ,@(cdr x)))))
+
+(##sys#extend-macro-environment
+ 'letrec-syntax
+ '()
+ (##sys#er-transformer
+  (lambda (form r c)
+    (##sys#check-syntax 'letrec-syntax x '(_ #((symbol _) 0) . #(_ 1)))
+    `(##core#letrec-syntax ,@(cdr x)))))
+
+(##sys#extend-macro-environment
+ 'set!
+ '()
+ (##sys#er-transformer
+  (lambda (form r c)
+    (##sys#check-syntax 'set! x '(_ _ _))
+    (let ((dest (cadr x))
+	  (val (caddr x)))
+      (cond ((pair? dest)
+	     `((##sys#setter ,(car dest)) ,@(cdr dest) ,val))
+	    (else `(##core#set! ,dest ,val)))))))
+
 (##sys#extend-macro-environment
  'and
  '()
Trap