1(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))))))) 23