mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 05:39:18 +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 158 test) (run-tests run-srfi-158-tests))
|
||||||
(rename (srfi 160 test) (run-tests run-srfi-160-tests))
|
(rename (srfi 160 test) (run-tests run-srfi-160-tests))
|
||||||
(rename (srfi 166 test) (run-tests run-srfi-166-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 219 test) (run-tests run-srfi-219-tests))
|
||||||
(rename (srfi 229 test) (run-tests run-srfi-229-tests))
|
(rename (srfi 229 test) (run-tests run-srfi-229-tests))
|
||||||
(rename (scheme bytevector-test) (run-tests run-scheme-bytevector-tests))
|
(rename (scheme bytevector-test) (run-tests run-scheme-bytevector-tests))
|
||||||
|
@ -107,6 +108,7 @@
|
||||||
(run-srfi-158-tests)
|
(run-srfi-158-tests)
|
||||||
(run-srfi-160-tests)
|
(run-srfi-160-tests)
|
||||||
(run-srfi-166-tests)
|
(run-srfi-166-tests)
|
||||||
|
(run-srfi-211-tests)
|
||||||
(run-srfi-219-tests)
|
(run-srfi-219-tests)
|
||||||
(run-srfi-229-tests)
|
(run-srfi-229-tests)
|
||||||
(run-scheme-bytevector-tests)
|
(run-scheme-bytevector-tests)
|
||||||
|
|
Loading…
Add table
Reference in a new issue