(import prefixes test (chicken base)) (test-assert (eq? (gensym* 'a) (gensym* 'a))) (test-assert (not (eq? (gensym 'a) (gensym 'a)))) (test-begin "expansion") (test (let ((%a (gensym* 'a)) (%b (gensym* 'b)) (%c (gensym* 'c))) `(1 ,%a (,%b ,%a) ,%c d)) (with-prefix (% gensym*) `(1 ,%a (,%b ,%a) ,%c d))) (test (let ((%let (gensym* 'let)) (%a (gensym* 'a)) (%b (gensym* 'b)) (%begin (gensym* 'begin)) (%print (gensym* 'print))) `(,%let ((,%a "a") (,%b 'b)) (,%begin (,%print ,%a) (,%print ,%b)))) (with-prefix (% gensym*) `(,%let ((,%a "a") (,%b 'b)) (,%begin (,%print ,%a) (,%print ,%b))))) (test-end) (test-assert (not (equal? (with-prefix (% gensym*) `(1 ,%a (,%b ,%a) ,%c d)) (let ((%a (gensym* 'a)) (%b (gensym* 'b)) (%c (gensym* 'c))) `(1 ,%a (,%b a) ,%c d))))) (test-assert (not (equal? (with-prefix (% gensym*) `(1 ,%a (,%b a) ,%c d)) (let ((%a (gensym* 'a)) (%b (gensym* 'b)) (%c (gensym* 'c))) `(1 ,%a (,%b ,%a) ,%c d))))) (test-exit) ;