~ 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