mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-18 21:29:19 +02:00
Provide identifier-syntax and make-variable-transformer through standardized SRFI libraries.
This commit is contained in:
parent
598dcad547
commit
c6db239882
4 changed files with 54 additions and 0 deletions
7
lib/srfi/211/identifier-syntax.sld
Normal file
7
lib/srfi/211/identifier-syntax.sld
Normal file
|
@ -0,0 +1,7 @@
|
|||
(define-library (srfi 211 identifier-syntax)
|
||||
(export identifier-syntax)
|
||||
(import (only (chibi ast) identifier-syntax)))
|
||||
|
||||
;; Local Variables:
|
||||
;; mode: scheme
|
||||
;; End:
|
38
lib/srfi/211/test.sld
Normal file
38
lib/srfi/211/test.sld
Normal file
|
@ -0,0 +1,38 @@
|
|||
(define-library (srfi 211 test)
|
||||
(export run-tests)
|
||||
(import (scheme base)
|
||||
(only (chibi) er-macro-transformer)
|
||||
(srfi 211 variable-transformer)
|
||||
(srfi 211 identifier-syntax)
|
||||
(chibi test))
|
||||
(begin
|
||||
(define (run-tests)
|
||||
(test-begin "srfi-211")
|
||||
|
||||
(test '(1 2)
|
||||
(let-syntax
|
||||
((foo (identifier-syntax (list 1 2))))
|
||||
foo))
|
||||
|
||||
(test '(5 5)
|
||||
(let ((x 3))
|
||||
(let-syntax
|
||||
((foo (identifier-syntax
|
||||
(_ x)
|
||||
((set! _ e) (set! x e)))))
|
||||
(set! foo (+ foo 2))
|
||||
(list foo x))))
|
||||
|
||||
(test 42
|
||||
(let-syntax
|
||||
((foo (make-variable-transformer
|
||||
(er-macro-transformer
|
||||
(lambda (e r c)
|
||||
(list-ref e 2))))))
|
||||
(set! foo 42)))
|
||||
|
||||
(test-end))))
|
||||
|
||||
;; Local Variables:
|
||||
;; mode: scheme
|
||||
;; End:
|
7
lib/srfi/211/variable-transformer.sld
Normal file
7
lib/srfi/211/variable-transformer.sld
Normal file
|
@ -0,0 +1,7 @@
|
|||
(define-library (srfi 211 variable-transformer)
|
||||
(export make-variable-transformer)
|
||||
(import (only (chibi ast) make-variable-transformer)))
|
||||
|
||||
;; Local Variables:
|
||||
;; mode: scheme
|
||||
;; End:
|
|
@ -34,6 +34,7 @@
|
|||
(rename (srfi 158 test) (run-tests run-srfi-158-tests))
|
||||
(rename (srfi 160 test) (run-tests run-srfi-160-tests))
|
||||
(rename (srfi 166 test) (run-tests run-srfi-166-tests))
|
||||
(rename (srfi 211 test) (run-tests run-srfi-211-tests))
|
||||
(rename (srfi 219 test) (run-tests run-srfi-219-tests))
|
||||
(rename (srfi 229 test) (run-tests run-srfi-229-tests))
|
||||
(rename (scheme bytevector-test) (run-tests run-scheme-bytevector-tests))
|
||||
|
@ -107,6 +108,7 @@
|
|||
(run-srfi-158-tests)
|
||||
(run-srfi-160-tests)
|
||||
(run-srfi-166-tests)
|
||||
(run-srfi-211-tests)
|
||||
(run-srfi-219-tests)
|
||||
(run-srfi-229-tests)
|
||||
(run-scheme-bytevector-tests)
|
||||
|
|
Loading…
Add table
Reference in a new issue