mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-20 22:29:16 +02:00
adding unhygiene tests
This commit is contained in:
parent
90280258d0
commit
60a435825d
4 changed files with 45 additions and 0 deletions
|
@ -2,3 +2,4 @@
|
|||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
|
|
|
@ -10,3 +10,16 @@
|
|||
(write (or #f tmp))
|
||||
(newline))
|
||||
|
||||
(write
|
||||
(letrec-syntax
|
||||
((myor
|
||||
(er-macro-transformer
|
||||
(lambda (expr rename compare)
|
||||
(if (null? (cdr expr))
|
||||
#f
|
||||
(list (rename 'let) (list (list (rename 'tmp) (cadr expr)))
|
||||
(list (rename 'if) (rename 'tmp)
|
||||
(rename 'tmp)
|
||||
(cons (rename 'myor) (cddr expr)))))))))
|
||||
(let ((tmp 5)) (myor #f tmp))))
|
||||
(newline)
|
||||
|
|
4
tests/basic/test10-unhygiene.res
Normal file
4
tests/basic/test10-unhygiene.res
Normal file
|
@ -0,0 +1,4 @@
|
|||
1
|
||||
1
|
||||
1
|
||||
6
|
27
tests/basic/test10-unhygiene.scm
Normal file
27
tests/basic/test10-unhygiene.scm
Normal file
|
@ -0,0 +1,27 @@
|
|||
|
||||
(define-syntax aif
|
||||
(sc-macro-transformer
|
||||
(lambda (form environment)
|
||||
(let ((condition
|
||||
(make-syntactic-closure environment '() (cadr form)))
|
||||
(consequent
|
||||
(make-syntactic-closure environment '(it) (caddr form)))
|
||||
(alternative
|
||||
(make-syntactic-closure environment '() (cadddr form))))
|
||||
`(let ((it ,condition))
|
||||
(if it
|
||||
,consequent
|
||||
,alternative))))))
|
||||
|
||||
(write (aif 1 it 3))
|
||||
(newline)
|
||||
|
||||
(write (let ((it 4)) (aif 1 it 3)))
|
||||
(newline)
|
||||
|
||||
(write (let ((it 4)) (aif (let ((it 5)) 1) it 3)))
|
||||
(newline)
|
||||
|
||||
(write (let ((it 4)) (aif (let ((it 5)) 1) (let ((it 6)) it) 3)))
|
||||
(newline)
|
||||
|
Loading…
Add table
Reference in a new issue