-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathplt-pregexp.scm
65 lines (51 loc) · 1.19 KB
/
plt-pregexp.scm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
;last change 2005-04-27
(scmxlate-compile #f)
(scmxlate-insert
";pregexp.ss
;Portable regular expressions for Scheme
;Dorai Sitaram
;http://www.ccs.neu.edu/~dorai/pregexp/pregexp.html
")
(scmxlate-insert
"(module pregexp mzscheme
(provide pregexp
pregexp-match-positions
pregexp-match
pregexp-split
pregexp-replace
pregexp-replace*
pregexp-quote
*pregexp-comment-char*)
" ;)
)
;(scmxlate-ignore
; *pregexp-return-char*
; *pregexp-tab-char*
; pregexp-reverse!
; )
(scmxlate-ignore
*pregexp-nul-char-int*)
(scmxlate-rename-define
(*pregexp-return-char* #\return)
(*pregexp-tab-char* #\tab )
(pregexp-reverse! reverse!)
;(pregexp-error error)
)
(scmxlate-postamble)
(scmxlate-insert
")
")
(scmxlate-postprocess
(call-with-input-file "my-pregexp.scm"
(lambda (i)
(call-with-output-file "pregexp.ss"
(lambda (o)
(let loop ()
(let ((c (read-char i)))
(unless (eof-object? c)
(display c o)
(loop)))))
'replace)))
(delete-file "my-pregexp.scm")
(printf "Resulting file is pregexp.ss~n")
)