diff --git a/lib/srfi/211/identifier-syntax.sld b/lib/srfi/211/identifier-syntax.sld new file mode 100644 index 00000000..79e3ff35 --- /dev/null +++ b/lib/srfi/211/identifier-syntax.sld @@ -0,0 +1,7 @@ +(define-library (srfi 211 identifier-syntax) + (export identifier-syntax) + (import (only (chibi ast) identifier-syntax))) + +;; Local Variables: +;; mode: scheme +;; End: diff --git a/lib/srfi/211/test.sld b/lib/srfi/211/test.sld new file mode 100644 index 00000000..2327e8f2 --- /dev/null +++ b/lib/srfi/211/test.sld @@ -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: diff --git a/lib/srfi/211/variable-transformer.sld b/lib/srfi/211/variable-transformer.sld new file mode 100644 index 00000000..2b67f1b7 --- /dev/null +++ b/lib/srfi/211/variable-transformer.sld @@ -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: diff --git a/tests/lib-tests.scm b/tests/lib-tests.scm index 75f67d1e..89a2c474 100644 --- a/tests/lib-tests.scm +++ b/tests/lib-tests.scm @@ -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)