~ chicken-core (chicken-5) /tests/redact-gensyms.scm
Trap1(module redact-gensyms ()
2 (import (scheme))
3 (import (chicken base))
4 (import (chicken irregex))
5 (import (chicken type))
6 (import (only (chicken io) read-line)
7 (only (chicken process-context) command-line-arguments)
8 (only (chicken string) string-split))
9
10 (define prefixes (if (null? (command-line-arguments))
11 '("tmp" "g" "scm:")
12 (string-split (car (command-line-arguments)) ",")))
13
14 (let ((rege (irregex `(: bow ($ (or ,@prefixes)) (+ numeric)))))
15 (print ";; numbers replaced with XXX by redact-gensyms.scm")
16 (print ";; prefixes: " prefixes)
17 (let lp ()
18 (let ((l (read-line)))
19 (if (not (eof-object? l))
20 (begin
21 (print (irregex-replace/all rege l 1 "XXX"))
22 (lp)))))))