1;;;; reader-tests.scm 2 3(import (only chicken.io read-line read-string) 4 (only chicken.port with-input-from-string with-output-to-string) 5 (only chicken.read-syntax set-read-syntax! set-sharp-read-syntax!)) 6 7(set-sharp-read-syntax! #\& (lambda (p) (read p) (values))) 8(set-sharp-read-syntax! #\^ (lambda (p) (read p))) 9(set-read-syntax! #\! (lambda (p) (read-line p) (values))) 10 11(define output 12 (with-output-to-string 13 (lambda () 14 (print "hi") ! this is fortran 15 (print "foo") #&(print "amp-comment") (print "baz") 16 #^(print "bye")))) 17 18!! output: 19!! hi 20!! foo 21!! baz 22!! bye 23 24(assert (string=? output "hi\nfoo\nbaz\nbye\n")) 25(assert (string=? " ." (with-input-from-string "\x20\u0020\U00000020\056" read-string))) 26