Provide identifier-syntax and make-variable-transformer through standardized SRFI libraries.

This commit is contained in:
Marc Nieper-Wißkirchen 2023-02-01 10:33:09 +01:00
parent 598dcad547
commit c6db239882
4 changed files with 54 additions and 0 deletions

View 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
View 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:

View 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:

View file

@ -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)